:root{color-scheme:dark;--cyan:#91eeff;--ice:#f0fbff;--muted:#9aafc6;--line:#6b93b747;--blue:#61bffa}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#040a15;color:var(--ice);font-family:Inter,Arial,sans-serif}button,a{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #76e9ff;outline-offset:4px}button:disabled{opacity:.5;cursor:not-allowed}#world{height:100%;width:100%;position:relative;isolation:isolate;overflow:hidden}#render,#render canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#veil{position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(90deg,#030715b8 0%,#0307165c 18%,transparent 41%,transparent 66%,#03081733 100%),linear-gradient(0deg,#020710b9 0%,transparent 22%,transparent 85%,#03071466 100%)}.topbar{position:absolute;z-index:11;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:24px 33px;background:linear-gradient(#040a17da,transparent);pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;color:#f4fbff;font:700 19px 'Space Grotesk',Arial;letter-spacing:.20em}.brand small{display:block;margin-top:5px;color:#84a7c1;font:600 8px Inter,Arial;letter-spacing:.26em}.mark{font:700 39px 'Space Grotesk',Arial;letter-spacing:-.12em;background:linear-gradient(138deg,#fff 10%,#73def9 56%,#a578e9);background-clip:text;color:transparent}.top-meta{display:flex;align-items:center;gap:10px}.live-chip,.back{border:1px solid #658ca74d;background:#0c1c30bb;backdrop-filter:blur(12px);border-radius:99px;padding:12px 15px;color:#d4ebf6;font:700 10px Inter;letter-spacing:.10em;white-space:nowrap}.live-chip i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#6df3bc;margin-right:7px;box-shadow:0 0 15px #55dbaa}.divider{color:#526c80;margin:0 6px}.back{text-decoration:none;transition:background .2s}.back:hover{background:#183349}.intro{position:absolute;z-index:8;top:19%;left:50%;transform:translateX(-50%);text-align:center;width:min(95%,650px);transition:opacity 1.3s ease,transform 1.3s ease;pointer-events:none;text-shadow:0 12px 40px #020614}.intro.fade{opacity:0;transform:translate(-50%,-25px)}.intro>*{pointer-events:auto}.eyebrow{font:700 10px Inter;letter-spacing:.35em;color:#85e4ff}.intro h1{font:600 clamp(45px,7.1vw,90px)/.95 'Space Grotesk';letter-spacing:-.08em;margin:15px 0}.intro h1 em{font-style:normal;background:linear-gradient(125deg,#92efff,#ab92ff);background-clip:text;color:transparent}.intro p{color:#bbccdd;font-size:13px;letter-spacing:.025em}.intro button{margin-top:12px;padding:11px 20px;border:1px solid #a7d8ec75;color:#ddfaff;background:#1632479e;backdrop-filter:blur(15px);border-radius:99px;font:700 10px Inter;letter-spacing:.14em}.intro button span{padding-left:9px}.left-rail{position:absolute;z-index:7;top:22%;left:29px;width:235px;pointer-events:none;opacity:0;transform:translateX(-10px);transition:opacity 1.1s ease,transform 1.1s ease}.left-rail.ready{opacity:1;transform:none;pointer-events:auto}.side-kicker{font:700 9px Inter;letter-spacing:.22em;color:#7db6d2}.side-kicker span,.work-label span{color:#b795ff}.side-title{font:600 30px/1.05 'Space Grotesk';letter-spacing:-.06em;margin:13px 0}.side-copy{font-size:11px;line-height:1.7;color:#9aacc5;max-width:210px}.world-choices{margin-top:23px;display:flex;flex-direction:column;gap:6px}.world-tab{text-align:left;background:#0b1a2ba1;border:1px solid #5d87a129;color:#b6cedf;font:700 10px Inter;letter-spacing:.06em;padding:12px;border-radius:9px;backdrop-filter:blur(10px);display:flex;gap:9px;align-items:center}.world-tab span{color:#70c9e5;font-size:9px}.world-tab b{margin-left:auto;font-size:12px}.world-tab:hover,.world-tab.selected{border-color:#83d8f087;color:#f0fdff;background:#18435fba}.agent-card{position:absolute;z-index:7;top:119px;right:27px;display:flex;gap:14px;align-items:center;width:235px;padding:15px;background:#091a2acb;backdrop-filter:blur(24px);border:1px solid #6a99b359;border-radius:15px;box-shadow:0 18px 55px #0005;opacity:0;transform:translateY(-9px);transition:.6s}.agent-card.ready{opacity:1;transform:none}.agent-pip{width:11px;height:11px;border-radius:50%;background:#7ce9ff;box-shadow:0 0 20px #76eaff;flex:none}.agent-card h2{font:700 18px 'Space Grotesk';letter-spacing:.06em;margin:5px 0}.agent-overline{font:700 8px Inter;letter-spacing:.2em;color:#79aec4}.agent-card p{font-size:10px;margin:0;color:#bcdbeb}.agent-card #agentStatus{font-size:9px;margin-top:8px;line-height:1.5;color:#82a2b7}.agent-card button{align-self:stretch;margin-left:auto;border:0;border-left:1px solid #ffffff21;padding:0 0 0 12px;background:transparent;color:#8ddcf4;font-size:20px}.dialog-bubble{position:absolute;z-index:6;max-width:265px;min-width:90px;min-height:35px;background:#f4fbff;color:#11283d;border:1px solid #ffffff;border-radius:13px 13px 13px 3px;padding:11px 13px;font:600 12px/1.5 Inter;box-shadow:0 12px 39px #0008;pointer-events:none;opacity:0;transition:opacity .25s}.dialog-bubble.show{opacity:1}.dialog-bubble:after{content:"";position:absolute;bottom:-8px;left:16px;border-top:9px solid #f4fbff;border-right:9px solid transparent}.buildbar{position:absolute;z-index:10;left:28px;bottom:28px;display:flex;gap:13px;align-items:center;min-width:330px;padding:13px 15px;border:1px solid #6399b366;border-radius:13px;background:linear-gradient(110deg,#0b1e31ef,#0a1530e8);box-shadow:0 16px 55px #0006;backdrop-filter:blur(18px)}.work-icon{color:#8ee9fc;display:grid;place-items:center;width:38px;height:38px;border:1px solid #6298b254;border-radius:9px;font-size:19px}.work-info{flex:1}.work-label{color:#93b9d1;font:700 8px Inter;letter-spacing:.15em}.work-title{font:700 12px 'Space Grotesk';letter-spacing:.05em;margin:6px 0 7px}.work-title span{color:#8aebfd;font:700 11px Inter;margin-left:8px}.progress{height:3px;background:#546c8059;border-radius:4px;overflow:hidden}.progress div{height:100%;width:0;background:linear-gradient(90deg,#64dff4,#b58eff);transition:width .3s}.buildbar button{color:#bcf2ff;border:1px solid #4b8dad6e;border-radius:9px;background:#173448ac;padding:8px 12px;font-size:18px}.bottom-actions{position:absolute;right:27px;bottom:28px;display:flex;z-index:10;gap:7px}.bottom-actions button{background:#0a1d31e5;border:1px solid #6b9ebf65;backdrop-filter:blur(18px);border-radius:10px;padding:13px 16px;color:#eaf9ff;font:700 10px Inter;letter-spacing:.07em;white-space:nowrap}.bottom-actions button:hover,.bottom-actions button[aria-pressed=true]{background:#185571dd;border-color:#6cddff}.soundicon{font-size:16px;color:#8ce3fb;vertical-align:-1px;margin-right:3px}#unreadBadge{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:6px;background:#195d75;border-radius:50%;font-size:10px}.chat-panel{position:absolute;z-index:11;right:27px;bottom:87px;width:min(372px,calc(100vw - 24px));height:min(438px,62vh);display:flex;flex-direction:column;background:linear-gradient(155deg,#0b1c2cf7,#0a1122f6);border:1px solid #6c9cb65c;border-radius:19px;backdrop-filter:blur(22px);box-shadow:0 24px 80px #000a;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(15px);transition:opacity .3s,transform .3s}.chat-panel.open{opacity:1;pointer-events:auto;transform:none}.chat-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff1b;padding:17px 18px}.chat-title span{font:700 13px 'Space Grotesk';letter-spacing:.04em}.chat-title small{display:block;color:#8daec3;margin-top:5px;font-size:10px}.chat-title button{border:1px solid #6591ab54;border-radius:8px;background:#0c1d2f;color:#d4eafa;padding:9px 12px}.chat-list{padding:18px;overflow-y:auto;flex:1;scrollbar-color:#5d829e #0b1423;scrollbar-width:thin}.chat-item{display:flex;gap:10px;margin-bottom:18px;animation:rise .3s ease}.chat-face{height:33px;width:33px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;font-weight:800;font-size:12px;border:1px solid #ffffff2e}.chat-author{font-size:11px;font-weight:700}.chat-author small{margin-left:8px;font-size:9px;color:#7f9db6;font-weight:500}.chat-text{font-size:11px;line-height:1.67;color:#bfd1e0;margin:6px 0 0}.chat-footer{padding:12px 17px;border-top:1px solid #ffffff15;color:#95b0c2;font-size:9px;letter-spacing:.05em}.warn-dot{display:inline-block;background:#f5bb7c;width:6px;height:6px;border-radius:50%;margin-right:5px}.hud-tip{position:absolute;z-index:3;left:50%;bottom:35px;transform:translateX(-50%);color:#b7d3dfad;font:700 9px Inter;letter-spacing:.1em;white-space:nowrap;pointer-events:none}.notice{position:absolute;z-index:20;top:95px;left:50%;transform:translate(-50%,-10px);border:1px solid #7ebed26c;background:#092337e6;padding:13px 19px;font-size:12px;border-radius:99px;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none}.notice.on{opacity:1;transform:translate(-50%,0)}#fallback{position:absolute;inset:0;z-index:30;background:#081323;text-align:center;padding-top:25vh}#fallback a{color:#9ce6ff}.minimal .left-rail,.minimal .agent-card,.minimal .buildbar,.minimal .hud-tip{opacity:0;pointer-events:none}.minimal .topbar,.minimal .bottom-actions{opacity:.25;transition:opacity .3s}.minimal .topbar:hover,.minimal .bottom-actions:hover{opacity:1}@keyframes rise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@media(max-width:920px){.left-rail{left:19px;top:27%;width:180px}.side-title{font-size:24px}.agent-card{right:16px;top:92px}.hud-tip{display:none}}@media(max-width:680px){.topbar{padding:14px}.brand{font-size:13px;gap:7px}.mark{font-size:30px}.brand small{font-size:6px}.live-chip{display:none}.back{font-size:9px;padding:11px}.intro{top:17%}.intro p{font-size:11px}.left-rail{top:104px;left:12px;width:145px}.side-kicker{font-size:7px}.side-title{font-size:19px}.side-copy{display:none}.world-choices{margin-top:12px}.world-tab{font-size:8px;padding:9px}.world-tab b{display:none}.agent-card{top:auto;bottom:132px;right:10px;width:194px;padding:10px}.agent-card h2{font-size:14px}.agent-overline{font-size:7px}.buildbar{left:9px;bottom:12px;min-width:0;width:45%;padding:8px;gap:5px}.work-icon{display:none}.work-label{font-size:6px}.work-title{font-size:9px}.work-title span{font-size:8px}.buildbar button{padding:5px}.bottom-actions{bottom:12px;right:8px;gap:4px}.bottom-actions button{font-size:8px;padding:9px 7px}.soundicon{display:none}.chat-panel{right:7px;bottom:74px;width:min(350px,calc(100vw - 14px));height:min(430px,50vh)}.dialog-bubble{font-size:10px;max-width:160px;padding:7px}.notice{max-width:90%;text-align:center;font-size:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}


/* SOCIETY CLEAN VIEW — world first, controls only on demand */
.topbar{justify-content:flex-start;padding:18px 22px;background:none}
.topbar .back{display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;font-size:21px;line-height:1;color:#dcf5ff;background:rgba(5,18,36,.55);border:1px solid rgba(144,194,222,.28)}
.topbar .back:hover{background:rgba(20,50,78,.9)}
.left-rail,.agent-card,.buildbar,.hud-tip,#toggleUI{display:none!important}
#veil{background:linear-gradient(0deg,rgba(4,8,20,.55),transparent 19%,transparent 85%,rgba(4,8,20,.32))}
.bottom-actions{bottom:24px;right:24px;gap:10px}
.bottom-actions button{background:rgba(7,20,39,.72);border-color:rgba(124,183,219,.38);font-size:10px;box-shadow:0 5px 25px rgba(0,0,0,.3)}
.bottom-actions .chaticon{font-size:16px;vertical-align:-2px;padding-right:5px}
#unreadBadge{background:rgba(32,79,111,.92);min-width:16px;height:16px;font-size:9px}
@media(max-width:680px){
  .topbar{padding:12px 13px}
  .topbar .back{width:43px;height:43px;font-size:22px;box-shadow:none}
  .intro{top:16%}
  .intro .eyebrow{font-size:8px;letter-spacing:.25em}
  .intro h1{font-size:35px;letter-spacing:-.055em;margin:10px 0}
  .intro p{font-size:10px;margin:8px 0}
  .intro button{padding:9px 14px;font-size:9px;margin-top:8px}
  .bottom-actions{bottom:calc(15px + env(safe-area-inset-bottom));right:50%;transform:translateX(50%);gap:12px;flex-wrap:nowrap;max-width:none}
  .bottom-actions button{width:48px;height:48px;padding:0!important;border-radius:50%;font-size:0!important;display:flex;align-items:center;justify-content:center;background:rgba(6,23,41,.67);backdrop-filter:blur(12px)}
  .bottom-actions .soundicon,.bottom-actions .chaticon{font-size:21px;display:inline-block;margin:0;padding:0;color:#b8f0ff}
  #unreadBadge{display:none}
  .dialog-bubble{display:none!important}
  .chat-panel{right:7px;left:7px;width:auto;bottom:calc(79px + env(safe-area-inset-bottom));height:min(420px,50%);max-height:calc(100% - 125px)}
  .notice{top:16px;max-width:70%;font-size:10px;padding:9px 12px}
}

.chat-form{border-top:1px solid rgba(153,196,214,.15);padding:12px;background:rgba(6,20,35,.5)}
.chat-form label{display:block;font:700 9px Inter;letter-spacing:.1em;color:#96bdd5;margin:0 0 9px}
.chat-input-row{display:flex;gap:6px;align-items:center}
.chat-input-row select,.chat-input-row input{min-width:0;background:#10243a;border:1px solid rgba(107,157,187,.42);color:#e4f6ff;border-radius:8px;font:500 11px Inter;padding:10px}
.chat-input-row select{width:84px;font-size:10px}
.chat-input-row input{flex:1;font-size:12px;min-width:70px}
.chat-input-row button{border:1px solid #5f9bba;border-radius:8px;background:#115071;color:white;padding:9px 12px;min-width:40px}
.chat-input-row select:focus-visible,.chat-input-row input:focus-visible{outline:2px solid #69d8ff}
@media(max-width:680px){.chat-form{padding:10px}.chat-input-row select{width:75px}.chat-panel{height:min(430px,64%) !important}}

/* Learning studio lives inside the expandable chat panel; no extra mobile HUD. */
[hidden]{display:none!important}
.chat-panel .society-modes{display:flex;flex:none;gap:5px;margin:0 12px;padding:10px 0 5px;border-top:1px solid #ffffff15}
.society-modes button{flex:1;border:1px solid #395e7a;background:#0d2033;color:#a8c4d8;padding:9px 11px;border-radius:9px;font:700 10px Inter,Arial;letter-spacing:.1em}
.society-modes button[aria-pressed=true]{border-color:#79d1e9;background:#12415b;color:#f1fcff}
.chat-panel .resident-mini{display:flex;flex:none;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 12px;color:#9fbcd2;font:600 9px/1.4 Inter;border-top:1px solid #ffffff0e}
.resident-mini #residentMood{flex:1;min-width:90px;line-height:1.5}
.resident-mini button{border-radius:8px;border:1px solid #52708a;background:#152b41;color:#c9f0fe;font:700 9px Inter;padding:9px;white-space:nowrap}
.resident-mini button:hover,.resident-mini button[aria-pressed=true]{background:#245574;border-color:#90dff5}
#chatReplyStatus{font:600 10px/1.5 Inter;color:#a4d8ec;padding:1px 13px 5px;min-height:8px}
.chat-panel.teach-open .chat-list{display:none}
.chat-panel.teach-open #chatReplyStatus{display:none}
.chat-panel.teach-open .chat-form{display:none}
.chat-panel .teach-form{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:12px 14px 14px;overflow-y:auto}
.teach-form>label{color:#9bd9ed;font:700 9px Inter;letter-spacing:.13em}
.teach-selector{display:flex;gap:7px}
.teach-selector select,.teach-selector input,.teach-form textarea{min-width:0;color:#e6f6ff;background:#12263b;border:1px solid #466985;border-radius:9px;padding:10px;font:500 11px Inter;outline:none}
.teach-selector select{width:43%;flex:none}
.teach-selector input{flex:1}
.teach-form textarea{resize:vertical;min-height:78px;line-height:1.55}
.teach-selector :focus-visible,.teach-form textarea:focus-visible{border-color:#96e8ff;outline:1px solid #7cdaf9}
.teach-disclaimer{color:#8daabb;font:400 10px/1.5 Inter;margin:0}
.teach-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.teach-actions button{border:1px solid #4e91ad;background:#17617f;border-radius:9px;padding:10px 12px;color:#f2fbff;font:800 10px Inter;letter-spacing:.06em}
.teach-actions button:disabled{opacity:.5;cursor:wait}
#teachResult{font:600 10px/1.4 Inter;color:#93e3db;flex:1}
.lesson-history{display:flex;flex-direction:column;gap:6px}
.lesson-history .lesson-line{font:500 10px/1.5 Inter;color:#b9d2df;background:#102437;border:1px solid #ffffff12;border-radius:8px;padding:8px 10px}
.lesson-history .lesson-line strong{color:#94d7f0;font-weight:700}
.visitor-line{background:#113b503c;padding:9px;border-left:2px solid #69bfdc;border-radius:9px}
@media(max-width:690px){
 .chat-panel{max-height:78vh}
 .chat-panel.teach-open{height:min(480px,68vh)!important}
 .resident-mini{padding:7px 9px!important}
 .resident-mini button{padding:7px}
 .teach-form{padding:10px!important}
 .teach-disclaimer{font-size:9px}
 .teach-selector select{width:40%}
}

/* Ephemeral one-tap camera action; never obstructs the world when idle. */
#watchAction[hidden]{display:none!important}
#watchAction.watch-action{position:absolute;z-index:12;top:19px;right:22px;border-radius:99px;
 border:1px solid rgba(137,214,255,.56);background:rgba(12,29,51,.77);color:#eaf9ff;
 padding:12px 15px;font:700 10px Inter,sans-serif;letter-spacing:.085em;
 backdrop-filter:blur(14px);box-shadow:0 10px 35px #0019;transition:background .18s ease}
#watchAction:hover{background:rgba(22,73,105,.92)}
@media(max-width:680px){#watchAction.watch-action{top:12px;right:12px;padding:13px 12px;font-size:9px;max-width:142px}}

/* Keep real rap verses readable as separate bars in the chat feed. */
.chat-text{white-space:pre-line}

.cloud-notice{color:#84d5e1;font:500 10px/1.5 Inter,sans-serif;margin:0 12px 7px;padding:6px 8px;border:1px solid #4daac330;border-radius:9px;background:#0d28334a}
#beatStyle{min-width:30px}
#cloudNotice[hidden]{display:none!important}


/* SOCIETY CHAT USABILITY FIX: chat history is independently scrollable, no overlay
   or shrink-to-content can push the composer behind the bottom edge. */
.chat-panel{
 position:absolute;z-index:18;right:24px;bottom:90px;
 width:min(460px,calc(100vw - 24px));
 height:min(560px,calc(100dvh - 123px));
 max-height:calc(100dvh - 123px);
 min-height:280px;
 display:flex;flex-direction:column;overflow:hidden;
 border:1px solid rgba(114,175,207,.48);border-radius:18px;
 box-shadow:0 24px 70px #020817ae;background:#091829f7;
}
.chat-panel>*{flex-shrink:0;min-width:0}
.chat-panel .chat-title{flex:0 0 auto;padding:11px 16px 9px;min-height:55px}
.chat-title span{font-size:12px}
.chat-title small{font-size:9px;margin-top:3px}
.chat-title button{width:36px;height:36px;padding:0;display:grid;place-items:center}
.chat-panel .chat-list{
 min-height:82px;flex:1 1 0!important;height:auto!important;overflow-y:auto!important;
 overflow-x:hidden;overscroll-behavior:contain;
 scrollbar-gutter:stable; padding:11px 14px;
}
.chat-item{margin-bottom:11px;max-width:100%;overflow-wrap:anywhere}
.chat-text{font-size:12px;line-height:1.53;white-space:pre-line;overflow-wrap:anywhere}
.chat-panel #chatReplyStatus{
 flex:0 0 auto;padding:4px 14px;font-size:10px;line-height:1.4;
 min-height:0;max-height:35px;overflow:hidden;
}
.chat-panel #cloudNotice.cloud-notice{
 flex:0 0 auto;margin:0 12px 3px;padding:5px 9px;
 font-size:9px;line-height:1.3;min-height:0;
 background:#1233427a;color:#b7e6ed;
}
.chat-panel .resident-mini{
 flex:0 0 auto;display:flex;flex-wrap:nowrap;gap:6px;align-items:center;
 padding:6px 12px;min-height:40px;
}
.resident-mini #residentMood{
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;
 font-size:9px;flex:1;
}
.resident-mini button{padding:7px 8px;font-size:9px;flex-shrink:0}
.chat-panel .society-modes{flex:0 0 auto;padding:5px 0;margin:0 12px}
.society-modes button{padding:9px 10px;font-size:10px}
.chat-panel .chat-form{
 flex:0 0 auto;margin:0;padding:10px 13px 13px;display:block;
 background:#0c1c2cf5;z-index:1;
}
.chat-form label{font-size:9px;margin-bottom:7px}
.chat-input-row{display:flex;align-items:stretch;gap:7px;min-height:43px}
.chat-input-row select{flex:0 0 106px;width:106px;min-width:0;font-size:10px}
.chat-input-row input{flex:1 1 0;min-width:0;font-size:12px}
.chat-input-row button{flex:0 0 44px;width:44px;padding:8px;font-size:18px}
.chat-panel .chat-footer{flex:0 0 auto;padding:6px 14px;font-size:8px;max-height:24px}
.chat-panel.teach-open .teach-form{flex:1 1 0;min-height:0;overflow-y:auto}
.chat-panel.teach-open .chat-list{display:none}
@media(max-width:680px){
 .chat-panel{
  position:absolute;left:8px;right:8px;bottom:calc(72px + env(safe-area-inset-bottom));
  width:auto;height:min(590px,calc(100dvh - 112px))!important;
  max-height:calc(100dvh - 112px);min-height:220px;
  border-radius:15px;
 }
 .chat-panel .chat-title{padding:9px 12px;min-height:49px}
 .chat-panel .chat-list{padding:10px;min-height:64px}
 .chat-text{font-size:11px;line-height:1.5}
 .chat-panel .resident-mini{padding:5px 9px;min-height:37px}
 .chat-panel .resident-mini button{padding:7px 7px;font-size:8px}
 .chat-panel .society-modes button{padding:8px 6px;font-size:9px}
 .chat-panel .chat-form{padding:9px 10px 11px}
 .chat-input-row select{flex:0 0 94px;width:94px;font-size:9px}
 .chat-input-row button{flex:0 0 42px;width:42px}
 .chat-panel .chat-footer{display:none}
 .chat-panel #cloudNotice.cloud-notice{font-size:9px;margin:0 9px 3px;padding:4px 6px}
 .chat-panel.teach-open{height:min(540px,calc(100dvh - 112px))!important}
}
@media(max-height:560px){
 .chat-panel{bottom:58px;height:calc(100dvh - 78px)!important;max-height:calc(100dvh - 78px)}
 .chat-panel .resident-mini{display:none}
 .chat-panel .chat-footer{display:none}
}

/* On-demand resident dossiers, with no fake marketplace inventory or balances. */
.chat-title-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}
#viewProfiles{width:auto;min-width:78px;font:700 9px Inter;padding:9px!important;letter-spacing:.05em}
.profile-drawer[hidden]{display:none!important}
.profile-drawer{
 position:absolute;right:24px;top:66px;z-index:21;overflow:hidden;
 width:min(396px,calc(100vw - 24px));max-height:calc(100dvh - 110px);
 display:flex;flex-direction:column;border:1px solid #80b6d15c;
 border-radius:16px;background:#09192bfa;box-shadow:0 24px 90px #000c;
 backdrop-filter:blur(26px);
}
.profile-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;border-bottom:1px solid #779bb333}
.profile-drawer-header strong{font:700 14px Space Grotesk,Arial;letter-spacing:.13em}
.profile-drawer-header small{display:block;color:#98bad1;font:500 9px Inter;margin-top:4px}
.profile-drawer-header button{padding:9px 12px;color:#dcf5ff;border:1px solid #6f9cba62;background:#102b43;border-radius:8px}
.profile-cards{overflow-y:auto;min-height:0;padding:10px;display:flex;flex-direction:column;gap:8px}
.resident-profile{border:1px solid #4c6f8a57;border-radius:11px;background:#10263bca;padding:11px;display:grid;grid-template-columns:33px 1fr;gap:10px}
.resident-profile-avatar{width:33px;height:33px;display:grid;place-items:center;border-radius:9px;color:#0b1927;font:900 17px Space Grotesk}
.resident-profile h3{font:700 12px Space Grotesk;margin:0 0 4px}
.resident-profile p{font:500 10px/1.4 Inter;color:#a2c6d8;margin:0 0 7px}
.profile-actions{display:flex;gap:5px;flex-wrap:wrap}
.profile-actions button{border:1px solid #6491ac7d;background:#153c56;border-radius:7px;color:#def7ff;font:700 9px Inter;padding:7px 9px}
.profile-note{color:#92afc0;border-top:1px solid #6689a43e;margin:0;padding:10px 12px;font:500 9px/1.5 Inter}
@media(max-width:680px){
 .profile-drawer{left:8px;right:8px;top:60px;width:auto;max-height:calc(100dvh - 145px)}
 #viewProfiles{min-width:71px;padding:9px 7px!important}
 .profile-drawer-header{padding:11px}
}

/* Compact optional guest-model connection: never blocks the 3D world. */
#addMyAI{width:auto!important;min-width:48px!important;font:700 10px Inter;letter-spacing:.03em;padding:9px 10px!important;color:#d2ffad;background:#183124;border:1px solid #a6ef6d70}
.guest-drawer[hidden]{display:none!important}
.guest-drawer{position:absolute;right:20px;top:64px;z-index:23;display:flex;flex-direction:column;
 width:min(448px,calc(100vw - 24px));max-height:calc(100dvh - 96px);
 border:1px solid #94c5bf85;border-radius:16px;background:#071825fa;color:#edfaff;
 box-shadow:0 22px 70px #000b;backdrop-filter:blur(22px);overflow:hidden}
.guest-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;border-bottom:1px solid #91b9d13f;flex-shrink:0}
.guest-drawer-header strong{font:700 14px Space Grotesk;letter-spacing:.09em}
.guest-drawer-header small{display:block;margin-top:5px;color:#b3d1e2;font:500 10px Inter}
.guest-drawer-header button{border:1px solid #64879a;background:#122b3b;color:#f2faff;border-radius:7px;padding:7px 11px;flex-shrink:0}
.guest-drawer-scroll{padding:14px;overflow:auto;min-height:0;overscroll-behavior:contain}
.guest-intro,.guest-security{font:500 10px/1.6 Inter;color:#b8d2de;margin:0 0 13px}
.guest-intro b{color:#e6faff}
.guest-login-state{color:#aee1e8;font:600 11px/1.5 Inter;margin:7px 0 10px}
.guest-login-state a{color:#b6fb7e;text-decoration:underline}
.guest-connect-form{display:flex;flex-direction:column;gap:6px}
.guest-connect-form>label:not(.guest-check){font:700 9px Inter;letter-spacing:.12em;margin-top:7px;color:#b9d9e7}
.guest-connect-form label span{font:500 8px Inter;color:#91aabb}
.guest-connect-form :is(input:not([type=checkbox]),select,textarea){
 width:100%;min-width:0;border:1px solid #668daa75;border-radius:8px;background:#0e2436;
 color:#f0faff;padding:9px 11px;outline:none;font:500 12px Inter;box-sizing:border-box}
.guest-connect-form :is(input,select,textarea):focus{border-color:#a9ee8c}
.guest-connect-form textarea{resize:vertical}
.guest-check{display:flex;align-items:flex-start;gap:10px;padding:8px 0;color:#c1d7e1;font:500 10px/1.5 Inter;cursor:pointer}
.guest-check input{flex-shrink:0;margin:2px 0;accent-color:#b7f435;width:15px;height:15px}
.guest-cost-consent{border-top:1px solid #94b4c444;margin-top:3px;padding-top:11px;color:#d6ebdc}
#guestConnectButton{background:#b7f435;color:#142117;border:0;border-radius:9px;padding:12px;font:800 11px Inter;letter-spacing:.045em;margin-top:7px}
#guestConnectButton:disabled{opacity:.5;cursor:not-allowed}
.guest-status{font:500 10px/1.5 Inter;min-height:12px;color:#d6e0a5;white-space:pre-wrap}
.guest-list-heading{font:700 12px Space Grotesk;letter-spacing:.10em;color:#f1faff;margin:16px 0 8px}
.guest-list-heading span{font:500 9px Inter;color:#8fb6cc}
.guest-mine{display:flex;flex-direction:column;gap:9px}
.guest-mine-card{border:1px solid #7399ae75;border-radius:10px;padding:10px;background:#102838}
.guest-mine-card strong{font:700 12px Space Grotesk}
.guest-mine-card small{display:block;color:#adc4d3;font:500 10px/1.5 Inter;margin:5px 0}
.guest-mine-card .guest-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.guest-mine-card .guest-actions button{padding:7px 9px;border-radius:6px;border:1px solid #6b9f9e;background:#193b46;color:#e4faff;font:700 9px Inter}
.guest-mine-card .guest-actions button.danger{color:#ffd4d4;border-color:#d98f8f8a}
.guest-security{border-top:1px solid #6386a744;padding-top:12px;margin-top:18px}
@media(max-width:680px){
 .chat-title-actions{gap:4px}
 #addMyAI{min-width:42px!important;padding:8px 7px!important}
 .guest-drawer{left:8px;right:8px;top:50px;bottom:calc(67px + env(safe-area-inset-bottom));height:auto;width:auto;max-height:none;border-radius:13px}
 .guest-drawer-header{padding:10px 12px}
 .guest-drawer-scroll{padding:10px 12px}
 .guest-connect-form>label:not(.guest-check){margin-top:4px}
}

/* THE PLAYABLE SOCIETY: guest locomotion, skateboards and UFO encounters. */
.enter-world{
 pointer-events:auto;margin-left:auto;display:inline-flex;align-items:center;
 border:1px solid rgba(143,237,220,.48);border-radius:99px;
 background:linear-gradient(120deg,rgba(16,52,66,.92),rgba(13,41,66,.8));
 color:#d6fff4;padding:13px 18px;min-height:43px;
 font:800 10px Inter,sans-serif;letter-spacing:.09em;
 backdrop-filter:blur(18px);box-shadow:0 8px 34px rgba(0,0,0,.4);
}
.enter-world:hover,.enter-world[aria-pressed=true]{
 background:linear-gradient(130deg,#23685b,#15435a);border-color:#8cf6db;
}
#watchAction.watch-action{top:79px}
.visitor-hud[hidden],.visitor-hud [hidden]{display:none!important}
.visitor-hud{
 position:absolute;inset:0;z-index:13;pointer-events:none;
 color:#e9fffa;font-family:Inter,Arial,sans-serif;
}
.visitor-speed{
 position:absolute;left:24px;top:89px;
 border:1px solid rgba(137,234,206,.38);border-radius:11px;
 background:rgba(5,27,34,.66);backdrop-filter:blur(14px);
 padding:11px 14px;font:700 11px 'Space Grotesk',Arial;letter-spacing:.12em;
 color:#adffe1;
}
.visitor-hint{
 position:absolute;left:50%;bottom:91px;transform:translateX(-50%);
 border:1px solid rgba(129,223,204,.29);
 background:rgba(5,19,30,.66);
 box-shadow:0 8px 32px rgba(0,0,0,.2);border-radius:99px;
 padding:8px 16px;font:700 9px Inter;letter-spacing:.11em;
 color:#b3d6e7;white-space:nowrap;text-align:center;
}
.visitor-actions{
 position:absolute;right:26px;bottom:94px;pointer-events:auto;
 display:flex;gap:8px;align-items:flex-end;
}
.visitor-actions button{
 border-radius:11px;min-height:43px;
 border:1px solid rgba(131,237,212,.5);
 background:linear-gradient(130deg,rgba(17,63,71,.89),rgba(10,35,55,.94));
 color:#dffff3;font:800 11px Inter;letter-spacing:.055em;
 padding:12px 16px;backdrop-filter:blur(18px);
 box-shadow:0 10px 30px rgba(0,0,0,.32);
 touch-action:manipulation;cursor:pointer;
}
.visitor-actions button:hover,.visitor-actions button[aria-pressed=true]{
 background:linear-gradient(125deg,#22755c,#12526d);border-color:#a6ffda;
}
.visitor-actions .action-ufo{
 background:linear-gradient(130deg,rgba(60,37,109,.94),rgba(20,80,99,.92));
 color:#f1e6ff;border-color:#aa9aff;
}
.move-pad{display:none}
@media(max-width:680px){
 .topbar{gap:10px;align-items:flex-start}
 .enter-world{
  min-height:42px;margin-left:auto;padding:10px 13px;
  font-size:9px;letter-spacing:.04em;
 }
 #watchAction.watch-action{top:64px;right:12px;font-size:8px}
 .visitor-speed{
  left:12px;top:65px;padding:9px 11px;font-size:9px;letter-spacing:.07em;
 }
 .visitor-hint{
  bottom:auto;top:106px;left:50%;max-width:96vw;
  padding:8px 10px;font-size:8px;letter-spacing:.05em;
  overflow:hidden;text-overflow:ellipsis;
 }
 .move-pad{
  position:absolute;display:block;left:17px;
  bottom:calc(89px + env(safe-area-inset-bottom));
  width:132px;height:132px;touch-action:none;
  pointer-events:auto;border:1.5px solid rgba(121,205,203,.58);
  border-radius:50%;background:rgba(12,32,48,.37);
  box-shadow:inset 0 0 27px rgba(57,165,191,.14),0 8px 32px rgba(0,0,0,.22);
  backdrop-filter:blur(7px);
  user-select:none;-webkit-user-select:none;
 }
 .move-pad-rings{
  position:absolute;inset:20px;border:1px dashed rgba(157,230,222,.26);
  border-radius:50%;pointer-events:none;
 }
 .move-thumb{
  position:absolute;left:50%;top:50%;
  width:53px;height:53px;border-radius:50%;
  border:1.5px solid rgba(173,255,221,.76);
  background:linear-gradient(145deg,rgba(52,156,153,.82),rgba(17,72,101,.94));
  box-shadow:0 0 28px rgba(28,175,160,.22);
  transform:translate(-50%,-50%);pointer-events:none;
  transition:none;
 }
 .move-pad.engaged .move-thumb{background:#2b9d87}
 .move-label{
  position:absolute;left:50%;bottom:9px;transform:translateX(-50%);
  font:700 8px Inter;letter-spacing:.13em;color:#a0c6ca;pointer-events:none;
 }
 .visitor-actions{
  right:12px;bottom:calc(95px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;align-items:stretch;gap:8px;
 }
 .visitor-actions button{
  width:98px;min-height:43px;padding:10px 8px;font-size:10px;
  border-radius:12px;
 }
 .visitor-actions .action-ufo{width:112px}
}
@media(max-height:570px){
 .visitor-speed{top:58px}
 .visitor-hint{display:none}
 .move-pad{bottom:72px;width:99px;height:99px}
 .visitor-actions{bottom:74px;flex-direction:row;right:12px}
 .visitor-actions button{min-height:35px}
}
@media(prefers-reduced-motion:reduce){
 .visitor-actions button,.enter-world{animation:none!important}
}

.profile-shop-link{display:inline-flex;align-items:center;padding:9px 12px;border:1px solid #486375;border-radius:8px;color:#cbebde;font-size:10px;font-weight:700;}
/* Graceful chat-first fallback for devices where the 3D engine cannot start. */
#fallback.society-text-fallback {
  z-index: 2; pointer-events: none; text-align: left; padding: 19vh 5vw 0;
  background: radial-gradient(ellipse at 64% 25%, #173c55 0%, #0a1e30 42%, #050b16 82%);
}
.society-text-fallback-message { max-width: 480px; pointer-events: auto; }
.society-text-fallback-message > p:first-child { color: #7ae2df; font: 700 10px Inter,sans-serif; letter-spacing: .21em; }
.society-text-fallback-message h2 { color: #ecf7ff; font: 600 clamp(30px,5vw,57px)/1.09 'Space Grotesk',sans-serif; letter-spacing: -.05em; margin: 18px 0; }
.society-text-fallback-message > p { color: #a5c8d8; font-size: 14px; line-height: 1.7; }
.society-text-fallback-message button { color: #07151f; background: #8befe1; border: 0; border-radius: 11px; font-weight: 700; padding: 15px 22px; margin-top: 14px; }
.society-text-fallback-message button:focus-visible { outline: 2px solid #fff; }
.chat-panel .chat-error .chat-text { color: #f6bfac; }
@media(max-width:680px) { #fallback.society-text-fallback {padding: 14vh 24px 0;} .society-text-fallback-message{max-width: 320px;} .society-text-fallback-message h2{font-size: 31px;} }

/* One immersive city, no duplicate marketing splash or obsolete status panels. */
#intro,.left-rail,.agent-card,.buildbar{display:none!important}
#metroIdentity{display:none!important}
#fallback.society-text-fallback{z-index:2}
