.mobile-only{display:none}
.voice-preferences{width:min(480px,calc(100vw - 24px));max-width:480px;padding:24px}
.voice-preferences>header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.voice-preferences h2{margin:0;font-size:20px}.voice-preferences>header button{min-width:44px;min-height:44px;font-size:26px}
.voice-preferences>#voice-preferences-body{display:block;margin:20px 0}
.voice-preferences .voice-options{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px 10px;padding:0}
.voice-preferences .voice-options label{font-size:12px;letter-spacing:.04em;color:#bacfe3}
.voice-preferences .voice-options select{width:100%;max-width:none;min-height:44px;font-size:16px;border-radius:10px;padding:10px 12px}
.voice-preferences #voice-preview{grid-column:2;min-height:44px;text-align:left;font-size:14px;color:#b8dfff}
#voice-preferences-done{width:100%;min-height:46px;border-radius:12px;background:#c2e4ff;color:#10263c;font-size:15px}
@media(max-width:900px){
 :root{--bottom-band:calc(88px + env(safe-area-inset-bottom,0px));--dock-height:178px;--scene-top:130px;--keyboard-inset:0px}
 .mobile-only{display:block}
 .header{height:calc(62px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 16px 0;justify-content:space-between;z-index:35;background:linear-gradient(#080f1bed,#080f1bba)}
 .brand{gap:9px}.brand img{width:30px}.brand>span{font-size:19px;letter-spacing:-.5px}.brand small{font-size:6px;letter-spacing:2px}
 #mobile-menu{min-height:44px;padding:8px 10px;color:#cde3f7;font-size:12px;border:1px solid #6086a03d;border-radius:12px}
 .header #site-nav{display:none;position:absolute;top:calc(66px + env(safe-area-inset-top,0px));right:12px;width:min(310px,calc(100vw - 24px));margin:0;padding:12px;flex-direction:column;align-items:stretch;gap:4px;background:#112236fa;border:1px solid #45617b;border-radius:16px;box-shadow:0 18px 50px #0009;max-height:calc(100dvh - 90px);overflow:auto}
 .mobile-menu-open .header #site-nav{display:flex}
 .header #site-nav .nav-current{display:none}.header #site-nav a,.header #site-nav button,.header #site-nav #voice-settings{display:flex!important;align-items:center;min-height:46px;font-size:14px;max-width:none;width:100%;border:0;border-radius:9px;padding:12px;text-align:left;white-space:normal;margin:0}
 .header #site-nav .contact-nav{background:#badcff14}
 .library-toolbar,.mode-ai .library-toolbar{top:calc(70px + env(safe-area-inset-top,0px));width:calc(100% - 24px);max-width:none;padding:4px 8px;gap:6px;border-radius:18px;justify-content:center}
 .library-tabs{width:100%;justify-content:center}.library-tabs button{flex:1;min-height:42px;padding:8px;font-size:13px}
 .library-toolbar select{font-size:16px;min-height:42px;max-width:100%;min-width:0;flex:1;width:calc(50% - 6px)}
 #world{top:var(--scene-top);bottom:calc(var(--bottom-band) + var(--dock-height) + 58px);height:auto;min-height:1px}
 .vignette{pointer-events:none}.introduction,.scene-caption,.welcome{display:none}
 .dock-wrap{left:12px;right:12px;transform:none;width:auto;bottom:calc(var(--bottom-band) + var(--keyboard-inset));z-index:20}
 .dock{padding:12px;gap:10px;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;border-radius:20px;background:#13263bec;backdrop-filter:blur(18px)}
 .mic,#send{width:44px;height:44px;min-height:44px;border-radius:14px}.mic{border-radius:50%}
 .input-zone{min-width:0}#question{font-size:16px;line-height:1.55;min-height:32px;max-height:104px;padding:4px 0}
 .input-options{gap:8px;margin-top:4px;flex-wrap:wrap}.input-options button{min-height:36px;font-size:11px;padding:4px 0}.input-options label{font-size:11px;display:flex;gap:5px;min-height:36px}.input-options label input{display:block;width:15px;height:15px}
 .input-options label{flex-basis:100%}
 .dock-footer{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;margin:4px 0 0;padding:0 4px;align-items:center}
 .dock-footer #notice{grid-row:2;grid-column:1/-1;min-height:18px;max-height:36px;overflow:auto;font-size:11px;line-height:1.6;color:#a9c1d7}
 .dock-footer button{font-size:12px;min-height:40px;text-align:left;padding:4px 0}.dock-footer #auto-voice{text-align:right}
 #voice-options-home:empty{display:none}
 .contact-launcher{right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px) + var(--keyboard-inset));width:144px;min-height:54px;padding:9px 10px;grid-template-columns:18px minmax(0,1fr);gap:0 7px;border-radius:16px;z-index:25}
 .contact-launcher span{font-size:23px;align-self:center}.contact-launcher strong{font-size:12px;line-height:1.5;white-space:normal}.contact-launcher small{display:none}
 .page-footer{left:12px;right:170px;bottom:calc(10px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:flex-start;gap:0;z-index:24}
 .page-footer a{font-size:11px;line-height:1.5;min-height:32px;display:flex;align-items:center;color:#a5bdd4;white-space:nowrap}.page-footer>span,.page-footer>button{display:none}
 .view-controls,.mode-ai .view-controls{left:50%;transform:translateX(-50%);bottom:calc(var(--bottom-band) + var(--dock-height) + 8px);max-width:calc(100% - 24px);width:max-content;z-index:14;gap:0;padding:2px}
 .view-controls button,.view-controls #motion{font-size:12px;min-height:40px;padding:8px 11px;white-space:nowrap}
 .operator-sign{display:none}
 .library-access,.mode-ai .library-access{left:12px;right:12px;transform:none;max-width:none;width:auto;bottom:calc(var(--bottom-band) + var(--dock-height) + 62px);gap:8px}
 .library-access button{flex:1;max-width:none;min-width:0;min-height:36px;font-size:11px;background:#0e2033d9;border:1px solid #5881a544;border-radius:9px;padding:7px}
 .spatial-controls,.mode-ai .spatial-controls{top:auto;bottom:calc(var(--bottom-band) + var(--dock-height) + 8px);max-width:calc(100% - 24px);gap:6px;padding:4px 8px;z-index:15}
 .spatial-controls button{font-size:12px;min-height:40px;padding:6px}.spatial-controls>span{display:none}
 .live-caption,.last-answer{bottom:calc(var(--bottom-band) + var(--dock-height) + 62px);left:12px;right:12px;transform:none;width:auto;max-height:112px;padding:12px;font-size:14px;z-index:17}
 .last-answer p{font-size:13px}.last-answer button{font-size:12px;min-height:40px}.live-caption strong{font-size:11px}
 .conversation{left:12px;right:12px;top:calc(70px + env(safe-area-inset-top,0px));bottom:calc(var(--bottom-band) + var(--dock-height) + 8px);width:auto;z-index:30;min-height:80px}
 .conversation>.panel-top{padding:10px 14px}.conversation h2{font-size:15px;margin:4px 0}.panel-actions{gap:4px}.panel-actions button,.panel-actions #save{font-size:13px;min-height:44px;min-width:40px}
 #messages{padding:16px}.bubble,.message.user .bubble{font-size:15px;line-height:1.85}.message-label{font-size:11px}.message-actions button,.source-links a{font-size:12px;min-height:36px;padding:8px}.bubble h3{font-size:16px}
 .waiting-room{top:calc(var(--scene-top) + 8px);right:12px;width:min(290px,calc(100% - 24px));max-height:calc(100dvh - var(--scene-top) - var(--bottom-band) - var(--dock-height) - 70px);overflow:auto;z-index:16}
 .waiting-room h3{font-size:14px}.waiting-room p{font-size:13px}.waiting-room .panel-top button{min-width:40px;min-height:40px}.wait-film{height:100px}
 .projection{inset:calc(var(--scene-top) + 8px) 12px auto;width:auto;max-height:calc(100dvh - var(--scene-top) - var(--bottom-band) - var(--dock-height) - 70px);z-index:18}
 dialog.source-dialog,dialog.legal-dialog,dialog.intake-dialog,dialog.voice-consent,dialog.voice-preferences,dialog#reset-dialog{position:fixed;inset:calc(var(--visual-top,0px) + 12px) 12px auto;margin:0 auto;width:calc(100% - 24px)!important;max-width:620px!important;max-height:calc(var(--visual-height,100dvh) - 24px)!important;border-radius:18px}
 dialog.legal-dialog,dialog.intake-dialog{height:calc(var(--visual-height,100dvh) - 24px)}
 dialog.voice-consent{padding:22px!important}.voice-consent h2{font-size:25px!important}.consent-actions button{min-height:48px;font-size:14px!important}.consent-leave{min-height:40px;display:grid;place-items:center}
 .legal-check{min-height:48px}.legal-dialog-header,.legal-dialog-footer{padding:14px 18px}.legal-dialog .legal-document{padding:22px 18px}.legal-dialog-header h2{font-size:17px}
 .source-chrome{padding:8px 12px}#source-content{padding:22px 18px}.source-tools button{min-width:42px;min-height:44px}
 .intake-dialog>header,.intake-dialog>footer{padding:14px 18px}.intake-dialog>header h2{font-size:20px}.intake-dialog>header>button{min-width:44px;min-height:44px}.intake-body{padding:18px}.intake-body input:not([type=checkbox]),.intake-body textarea,.intake-body select{font-size:16px;min-height:44px}.intake-body textarea{max-height:none;min-height:160px}.intake-fields,#intake-services{grid-template-columns:1fr}#intake-services label{min-height:44px}.intake-dialog>footer{flex-direction:column;gap:8px}.intake-dialog>footer button{min-height:44px;font-size:14px}
 body:has(dialog[open]) .contact-launcher{visibility:hidden}
 .keyboard-open{--bottom-band:68px}
 .keyboard-open .page-footer,.keyboard-open .library-toolbar,.keyboard-open .view-controls,.keyboard-open .library-access,.keyboard-open .spatial-controls,.keyboard-open .live-caption,.keyboard-open .last-answer,.keyboard-open .input-options,.keyboard-open #notice{display:none!important}
 .keyboard-open #world{visibility:hidden}.keyboard-open .contact-launcher{min-height:48px}
 .keyboard-open .conversation{bottom:calc(var(--bottom-band) + var(--dock-height) + var(--keyboard-inset) + 8px)}
}
@media(max-width:360px){.brand>span{font-size:17px}.brand img{width:26px}.header{padding-left:12px;padding-right:12px}#mobile-menu{padding:8px;font-size:11px}.contact-launcher{width:132px}.page-footer{right:156px}.page-footer a{font-size:10px}.view-controls button,.view-controls #motion{padding:8px 9px;font-size:11px}.dock{gap:8px;padding:10px}.input-options button,.input-options label{font-size:10px}}
@media(max-width:900px) and (orientation:landscape) and (max-height:500px){
 .library-toolbar,.mode-ai .library-toolbar{left:12px;transform:none;width:44%;top:68px}.dock-wrap{left:auto;right:12px;width:49%}.view-controls,.mode-ai .view-controls{left:12px;transform:none;bottom:calc(var(--bottom-band) + 6px);max-width:44%}.view-controls button,.view-controls #motion{font-size:11px;padding:8px}
 #world{left:0;right:52%;top:118px;bottom:calc(var(--bottom-band) + 54px)}.library-access{display:none}.conversation{right:12px;left:12px;bottom:var(--bottom-band);z-index:31}.live-caption,.last-answer{left:12px;right:53%;bottom:calc(var(--bottom-band) + 52px)}
 .keyboard-open .dock-wrap{left:12px;right:12px;width:auto}.keyboard-open .header{visibility:hidden}
}
@media(max-width:900px){
 /* Give the message its own full-width row; tools never steal its writing space. */
 .dock{row-gap:8px}.input-zone{display:contents}#question{grid-column:1/-1;grid-row:1;min-height:40px}
 .mic{grid-column:1;grid-row:2}#send{grid-column:3;grid-row:2}
 .input-options{grid-column:2;grid-row:2;flex-wrap:nowrap;gap:9px;margin:0;justify-content:center}
 .input-options label{flex-basis:auto;font-size:0;min-height:36px;flex-shrink:0}.input-options button{white-space:nowrap;font-size:11px}
 .dock-footer #notice:not(.error){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
 .attachment{max-width:100%;margin-left:0;overflow-wrap:anywhere}
 .keyboard-open #question{grid-column:2;grid-row:1}.keyboard-open .mic{grid-column:1;grid-row:1}.keyboard-open #send{grid-column:3;grid-row:1}
}
.mobile-short{display:none}
@media(max-width:900px){.input-options .desktop-label{display:none}.input-options .mobile-short{display:inline;font-size:11px}.input-options label{gap:4px}}

/* Keep the action area reachable in long permission dialogs. */
#consent-close{position:sticky;top:0;float:right;min-width:44px;min-height:44px;font-size:28px;border-radius:12px;background:#193249;z-index:3}
.voice-consent .consent-actions{position:sticky;bottom:0;background:#102034;padding:12px 0 4px;z-index:2;box-shadow:0 -12px 18px #102034}
.voice-consent .legal-consent-group[hidden]{display:none!important}

#enter-room{position:absolute;z-index:3;transform:translateX(-50%);padding:10px 16px;min-height:44px;white-space:nowrap;border:1px solid #81bfe455;border-radius:24px;background:#0b1d30dd;color:#cceaff;font-size:13px;box-shadow:0 8px 32px #0005}
.office-home .introduction,.office-home .welcome,.office-home .scene-caption,.office-home .library-access{display:none}
@media(max-width:900px){#enter-room{font-size:11px;padding:8px 12px}.office-home #world{bottom:calc(var(--bottom-band) + var(--dock-height) + 50px)}}
