/* Community controls complement the existing full-screen landscape. */
.wordmark { white-space:nowrap; }
.profile-button { display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:24px;color:var(--hud);font-size:10px; }
.profile-button:hover { background:#e9edce20; }
.profile-button svg { width:17px;height:17px; }
.profile-button span { max-width:115px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.presence-button { position:absolute;top:105px;right:35px;z-index:5;display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid #e1dfbe35;border-radius:24px;background:#283c2cb5;backdrop-filter:blur(12px);color:#eff1d8;font-size:10px; }
.presence-button i { width:5px;height:5px;border-radius:50%;background:#bfbba8; }
.presence-button[data-status=connected] i { background:#c8dc9d;box-shadow:0 0 8px #c8dc9d50; }
.more-places { border-left:1px solid #7a8f6329!important;border-radius:0 22px 22px 0!important; }
.more-places span { margin-left:3px; }
.peer-label { position:absolute;z-index:3;pointer-events:none;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transform:translate(-50%,-100%);padding:5px 11px;border-radius:20px;background:#f7f3e5e8;border:1px solid #e8ecd1a6;box-shadow:0 2px 10px #183a2226;color:#3e5541;font:10px 'Segoe UI',sans-serif; }
.peer-label[hidden] { display:none; }
.avatar-label { max-width:175px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.modal { max-height:min(86dvh,850px);overflow-y:auto;overscroll-behavior:contain; }
.profile-modal input { display:block;box-sizing:border-box;width:100%;padding:14px 16px;margin-top:9px;background:#f6f5ed;border:1px solid #d2d9c5;border-radius:10px;font:16px 'Segoe UI',sans-serif;color:#40543d; }
.profile-modal label { display:block;text-align:left;font-size:12px;color:#627455; }
.profile-modal form { margin-top:26px; }
.profile-modal .privacy-note { text-align:left;line-height:1.7;margin:14px 0 22px;font-size:11px; }
.places-modal { width:min(800px,calc(100vw - 36px));max-width:800px;padding:38px; }
.places-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:25px; }
.place-card { position:relative;isolation:isolate;overflow:hidden;min-height:135px;padding:17px 14px;text-align:left;border:1px solid #8c9f7636;border-radius:12px;background:#f1f2e8;color:#3f573c;transition:transform .15s,background .15s; }
.place-card::before { content:'';position:absolute;inset:auto -25px -40px auto;width:140px;height:140px;border-radius:50%;background:var(--place-color);opacity:.26;z-index:-1; }
.place-card:hover { transform:translateY(-2px);background:#e9eddf; }
.place-card>span { display:block;font-size:9px;letter-spacing:1px;color:#78896a;margin-bottom:15px; }
.place-card strong { display:block;font:19px Georgia,'Times New Roman',serif;margin-bottom:6px; }
.place-card small { display:block;font-size:10px;line-height:1.55;color:#78836b; }
.community-list { padding:0;margin:22px 0;list-style:none;text-align:left;max-height:300px;overflow:auto; }
.community-list li { display:grid;grid-template-columns:10px 1fr;gap:5px 12px;padding:13px 4px;border-bottom:1px solid #8b9b752c; }
.community-list i { width:9px;height:9px;border-radius:50%;grid-row:span 2;align-self:center; }
.community-list strong { font-size:13px;font-weight:500;overflow-wrap:anywhere; }
.community-list small { font-size:10px;color:#7b8c6b; }
body.night .profile-modal input { background:#263b2d;color:#e5ebce;border-color:#879b6955; }
body.night .profile-modal label { color:#ced9ba; }
body.night .place-card { background:#2e4434;color:#dce8c7;border-color:#b6c79533; }
body.night .place-card small,body.night .place-card>span { color:#bbcaa9; }
body.night .peer-label { background:#314a39eb;color:#e5ebd2;border-color:#a9bd7a66; }
@media(max-width:1200px) {
  .presence-button { top:145px;right:24px; }
  .scene-caption { top:145px; }
  .locations { max-width:calc(100vw - 32px);overflow-x:auto;scrollbar-width:none; }
}
@media(max-width:760px) {
  .wordmark,body.night .wordmark { font-size:22px; }
  .profile-button { padding:6px; }
  .profile-button span { display:none; }
  .profile-button svg { width:16px;height:16px; }
  .topbar-right { gap:0; }
  .location,.location.active { padding:8px 10px; }
  .presence-button { top:145px;right:15px;padding:7px 10px;font-size:8px; }
  .scene-caption { top:149px;left:20px; }
  .scene-weather { font-size:7px; }
  .welcome-copy { top:25%; }
  .modal { max-height:85dvh; }
  .places-modal { padding:30px 20px 22px; }
  .places-modal h2 { font-size:27px; }
  .places-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:18px; }
  .place-card { min-height:125px;padding:13px; }
  .place-card strong { font-size:17px; }
  .place-card>span { margin-bottom:10px; }
  .peer-label { max-width:135px;font-size:9px; }
  .avatar-label { max-width:140px; }
  #avatar-status { max-width:65vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
}
@media(prefers-reduced-motion:reduce) { .place-card { transition:none; } }
