:root{color-scheme:dark;--bg:#171316;--panel:#221d21;--ink:#f4eee6;--muted:#b4a6a8;--gold:#e8d2aa;--line:#ffffff20;--deck-height:156px;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,a,input,select{-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{cursor:pointer;color:inherit}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{opacity:.45;cursor:default}[hidden]{display:none!important}.masthead{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;border-bottom:1px solid var(--line)}.brand{display:flex;gap:14px;align-items:center;text-decoration:none;font-size:15px;letter-spacing:3px;font-weight:600}.brand-mark{font:italic 35px Georgia,serif;letter-spacing:-4px;border:1px solid #c5af883f;border-radius:50%;width:40px;height:40px;text-align:center;line-height:39px;padding-right:7px;color:var(--gold)}.brand small{display:block;font-size:8px;letter-spacing:2.4px;color:var(--muted);margin-top:4px}.quiet{background:transparent;border:0;display:inline-flex;align-items:center;gap:14px;min-height:44px;font-size:12px;color:var(--muted)}.quiet:hover{color:var(--ink)}main{max-width:1800px;margin:auto}.stage{height:calc(100svh - 78px - var(--deck-height));min-height:340px;position:relative;isolation:isolate;overflow:hidden}#scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}#scene:active{cursor:grabbing}.stage-heading{position:absolute;top:25px;left:4vw;pointer-events:none}.eyebrow{display:block;font-size:8px;letter-spacing:2.2px;color:var(--gold);font-weight:600}h1{font:400 clamp(26px,3.1vw,44px)/1.14 Georgia,serif;letter-spacing:-.7px;margin:11px 0}h1 em{font-weight:400;color:#d7c1b5}.stage-state{position:absolute;top:30px;right:4vw;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);pointer-events:none}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px #e8d2aa44}.status-dot.live{background:#a6c9af}.status-dot.waiting{background:#dfad72}.stage-foot{position:absolute;bottom:24px;left:4vw;right:4vw;display:flex;align-items:end;justify-content:space-between;pointer-events:none}.piece-note{display:block;color:var(--muted);font-size:10px;margin-top:4px}#gesture-hint{font-size:10px;color:var(--muted)}.view-meter{position:absolute;bottom:67px;left:50%;transform:translateX(-50%);display:flex;gap:9px;align-items:center;color:#a6979c;font-size:8px;pointer-events:none}.view-meter>div{width:100px;height:1px;background:#d8c9bb30;position:relative}.view-meter i{position:absolute;left:50%;top:-2px;width:5px;height:5px;border-radius:50%;background:var(--gold);transform:translateX(-50%)}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;background:#171316e8;font-size:12px;color:var(--muted);z-index:3}.loading-ring{width:18px;height:18px;border:1px solid #e8d2aa33;border-top-color:var(--gold);border-radius:50%;animation:spin 1.3s linear infinite}.loading.error{padding:25px;text-align:center}.loading.error .loading-ring{display:none}@keyframes spin{to{transform:rotate(360deg)}}.control-deck{min-height:var(--deck-height);border-top:1px solid var(--line);padding:18px 4vw 12px;background:linear-gradient(#211b20,#171316);position:relative;z-index:4}.primary-controls,.secondary-controls{display:flex;align-items:center;justify-content:center;gap:10px}.button{border:1px solid #d9c7b331;background:#ffffff06;border-radius:8px;padding:0 17px;min-height:46px;display:inline-flex;gap:10px;align-items:center;justify-content:center;font-size:12px;white-space:nowrap}.button:hover{border-color:#e8d2aa88;background:#ffffff0b}.primary{background:var(--gold);color:#271f21;border-color:var(--gold);font-weight:600}.primary:hover{background:#f6e1bd}.primary[aria-pressed=true]{background:#bad0bd;border-color:#bad0bd}.primary-controls>a{display:block;height:46px}.primary-controls img{display:block;width:176px;height:46px}.secondary-controls{justify-content:space-between;max-width:800px;margin:11px auto 0}.zoom-controls{display:flex;align-items:center;gap:1px}.zoom-controls>button{border:0;background:none;min-width:35px;min-height:34px;color:var(--muted);font-size:17px}.zoom-controls output{font-size:11px;font-variant-numeric:tabular-nums;min-width:37px;text-align:center;color:var(--gold)}.zoom-controls .reset{border-left:1px solid var(--line);margin-left:9px;padding-left:13px;font-size:11px}.compare-button{gap:10px;min-height:34px}.compare-button #cue-label{color:var(--gold);font-size:11px}.compare-label{font-size:10px}.experience-status{font-size:10px;color:var(--muted);text-align:center;margin:7px 0 0;min-height:15px}.panel{position:fixed;background:#241e23f5;border:1px solid #d0b29a40;box-shadow:0 15px 80px #0009;backdrop-filter:blur(24px);border-radius:14px;padding:22px;z-index:8;width:350px;max-height:calc(100svh - 180px);overflow:auto}.panel-title{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:18px}.panel h2{font:22px/1.2 Georgia,serif;font-weight:400;margin:7px 0 0}.icon-button{font-size:23px;background:transparent;border:1px solid var(--line);border-radius:50%;height:32px;min-width:32px;line-height:24px;color:var(--muted)}.icon-button:hover{color:var(--ink);border-color:var(--gold)}.compare-panel{right:4vw;bottom:calc(var(--deck-height) + 15px)}.cue-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cue-options button{text-align:left;padding:13px 11px;border:1px solid var(--line);border-radius:8px;background:#ffffff03;min-height:86px}.cue-options strong{font-size:12px;font-weight:500;display:block}.cue-options span{display:block;font-size:10px;color:var(--muted);margin-top:5px;line-height:1.4}.cue-options button[aria-pressed=true]{border-color:var(--gold);background:#e8d2aa0b}.cue-options button[aria-pressed=true] strong{color:var(--gold)}.panel p{font-size:11px;color:var(--muted);line-height:1.6}.slider-label{display:flex;justify-content:space-between;font-size:11px;margin-top:20px}.slider-label span{color:var(--muted)}input[type=range]{width:100%;accent-color:var(--gold);margin:14px 0;cursor:pointer}.text-button{padding:0;border:0;background:none;color:var(--gold);font-size:11px;min-height:35px;text-decoration:underline;text-underline-offset:4px}.fine-print{font-size:10px!important;line-height:1.55;color:var(--muted)}.camera-panel{top:94px;right:4vw;width:310px;max-height:calc(100svh - 110px)}.camera-image{aspect-ratio:4/3;position:relative;background:#0a080b;border-radius:8px;overflow:hidden}.camera-image video,.camera-image canvas{width:100%;height:100%;position:absolute;inset:0;object-fit:fill;transform:scaleX(-1)}.camera-image>span{position:absolute;bottom:6px;left:8px;font-size:9px;padding:2px 5px;background:#0008;border-radius:3px}.camera-panel label{font-size:10px;color:var(--muted)}select{display:block;width:100%;padding:8px;background:#181418;color:var(--ink);border:1px solid var(--line);border-radius:6px;font-size:11px;margin-top:5px}.camera-actions{display:flex;gap:20px;margin-top:15px;align-items:center}.camera-actions .button{min-height:38px}dialog{max-width:650px;width:calc(100% - 32px);max-height:90svh;background:#241e23;color:var(--ink);border:1px solid #bda58b55;border-radius:16px;padding:35px;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#08060bc9;backdrop-filter:blur(7px)}dialog h2{font:35px/1.15 Georgia,serif;font-weight:400;margin:17px 0}dialog h3{font-size:13px;color:var(--gold);font-weight:500;margin:23px 0 6px}dialog p{color:var(--muted);font-size:12px;line-height:1.7}dialog a{color:var(--gold)}.dialog-close{position:absolute;right:18px;top:18px}.explanation-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}dialog details{margin-top:23px;border-top:1px solid var(--line);padding-top:15px;font-size:12px}dialog summary{cursor:pointer}dialog ul{padding-left:18px}dialog li{margin:12px 0}.no-script{padding:25px}
@media(min-width:1400px){.stage-heading{left:7vw}.stage-foot{left:7vw;right:7vw}.stage-state{right:7vw}}
@media(max-width:700px){:root{--deck-height:204px}.masthead{height:66px;padding:0 18px}.brand{font-size:12px;gap:10px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:1.9px}.brand-mark{width:32px;height:32px;font-size:29px;line-height:31px}.masthead .quiet{font-size:10px;gap:7px}.stage{height:calc(100svh - 66px - var(--deck-height));min-height:340px}.stage-heading{top:20px;left:22px}h1{font-size:27px;margin-top:8px}.eyebrow{font-size:6px;letter-spacing:1.7px}.stage-state{top:auto;bottom:15px;right:20px;font-size:9px}.stage-foot{left:22px;bottom:13px}.stage-foot .piece-note{font-size:8px}.stage-foot #gesture-hint{display:none}.view-meter{bottom:49px}.control-deck{padding:14px 16px max(12px,env(safe-area-inset-bottom));min-height:204px}.primary-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}.primary-controls .button{min-height:44px;padding:0 10px;font-size:11px}.primary-controls>a{grid-column:1/-1;justify-self:center;margin-top:1px}.primary-controls img{width:176px;height:46px}.secondary-controls{margin-top:6px;gap:6px}.zoom-controls{gap:0}.zoom-controls>button{min-width:26px;min-height:30px}.zoom-controls output{min-width:30px;font-size:10px}.zoom-controls .reset{font-size:9px;padding-left:8px;margin-left:4px}.compare-button{gap:6px}.compare-label{font-size:9px}.compare-button #cue-label{font-size:10px}.experience-status{font-size:9px;line-height:1.4;margin-top:7px}.panel{left:12px;right:12px;width:auto;padding:19px;max-height:calc(100svh - 92px)}.compare-panel{bottom:18px}.camera-panel{top:77px;left:auto;width:280px}.panel h2{font-size:21px}.cue-options button{min-height:73px}dialog{padding:29px 22px}dialog h2{font-size:29px}.explanation-grid{gap:18px}}
@media(max-height:650px) and (min-width:701px){:root{--deck-height:142px}.masthead{height:58px}.stage{height:calc(100svh - 200px);min-height:300px}.stage-heading h1{font-size:29px}.stage-heading{top:16px}.control-deck{padding-top:12px}.compare-panel{max-height:calc(100svh - 35px);bottom:15px}}
@media(prefers-reduced-motion:reduce){.loading-ring{animation:none}}
@media(max-width:700px){.compare-panel{bottom:8px;padding:15px}.compare-panel .panel-title{margin-bottom:12px}.compare-panel h2{font-size:18px;margin-top:4px}.compare-panel .cue-options{grid-template-columns:repeat(4,1fr);gap:5px}.compare-panel .cue-options button{min-height:54px;padding:8px;text-align:center}.compare-panel .cue-options strong{font-size:10px}.compare-panel .cue-options span,.compare-panel .fine-print{display:none}.compare-panel .slider-label{margin-top:10px}.compare-panel input[type=range]{margin:8px 0}.compare-panel #cue-description{min-height:34px;margin:10px 0 0;font-size:10px}.compare-panel .text-button{min-height:30px}}
/* The display leads; labels describe the available controls. */
:root{--bg:#111218;--panel:#1c1d25;--deck-height:154px;--muted:#b0afb9}
.masthead{height:62px;border-bottom:1px solid #ffffff12}
.brand{font-size:15px;letter-spacing:0;font-weight:500}
.stage{height:calc(100svh - 62px - var(--deck-height))}
.stage-heading{top:22px;left:4vw}
.stage-heading h1{font:500 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:0;margin:0;color:var(--ink)}
.stage-heading>span{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.stage-state{top:25px}
.stage-foot{bottom:19px;align-items:center}
.gesture-options{pointer-events:auto;display:flex;gap:2px;padding:3px;border:1px solid #ffffff22;border-radius:9px;background:#12131ab8;backdrop-filter:blur(10px)}
.gesture-options button{border:0;border-radius:6px;background:none;color:var(--muted);font-size:11px;min-height:36px;padding:0 13px}
.gesture-options button[aria-pressed=true]{background:#ffffff17;color:var(--ink)}
#room-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#111218;pointer-events:none}
.camera-view .stage-heading,.camera-view .stage-state{padding:7px 10px;border-radius:7px;background:#111218b8;color:#fff;backdrop-filter:blur(10px)}
.camera-view .stage-heading>span,.camera-view #gesture-hint{color:#eee}
.camera-view .view-meter{display:none}
.camera-view #gesture-hint{background:#111218b8;border-radius:6px;padding:6px 9px}
.view-meter{bottom:78px}
.control-deck{background:#171820;padding-top:17px}
.primary-controls{gap:8px}
.primary-controls .button{min-width:135px}
.button[aria-pressed=true]:not(.primary){border-color:var(--gold);background:#e8d2aa0d}
.panel,dialog{background:#20212a;color:var(--ink)}
.panel h2{font:500 17px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0}
.compare-panel{width:360px}
.camera-panel{top:76px}
#sensitivity{margin:7px 0 0}
#sensitivity-value{color:var(--gold)}
#ar-launch{display:inline-block;margin-top:10px}
#ar-launch img{display:block}
.ar-gestures{font-size:12px;line-height:1.6;color:var(--muted)}
dialog h2{font:500 25px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:12px 25px 20px 0}
.loading{background:#111218ed}
@media(max-width:700px){
  :root{--deck-height:202px}
  .masthead{height:54px;padding:0 20px}
  .brand{font-size:13px;letter-spacing:0}
  .stage{height:calc(100svh - 54px - var(--deck-height));min-height:285px}
  .stage-heading{top:15px;left:20px}
  .stage-heading h1{font-size:11px}
  .stage-heading>span{font-size:9px}
  .stage-state{top:18px;bottom:auto;right:20px;font-size:8px;max-width:43%;text-align:right}
  .stage-foot{left:20px;right:20px;bottom:15px;justify-content:center}
  .gesture-options button{font-size:10px;min-height:34px;padding:0 13px}
  .view-meter{bottom:73px}
  .control-deck{padding:12px 16px max(10px,env(safe-area-inset-bottom));min-height:var(--deck-height)}
  .primary-controls .button{min-width:0;min-height:42px}
  .secondary-controls{margin-top:7px}
  .zoom-controls>button{min-width:30px;min-height:34px}
  .experience-status{margin-top:6px;font-size:9px;line-height:1.45;min-height:26px}
  .compare-panel{width:auto;bottom:8px}
  .compare-panel .panel-title{margin-bottom:11px}
  .compare-panel h2{font-size:16px;margin:0}
  .camera-panel{top:65px;width:280px;max-height:calc(100svh - 80px)}
  .camera-panel .camera-image{aspect-ratio:16/10}
  .camera-panel .slider-label{margin-top:12px}
  dialog h2{font-size:23px}
}
@media(max-height:650px) and (min-width:701px){
  :root{--deck-height:142px}
  .masthead{height:50px}
  .stage{height:calc(100svh - 192px);min-height:250px}
  .stage-heading{top:16px}
  .stage-heading h1{font-size:13px}
}
/* AR orientation picker */
.ar-orientation-picker{display:flex;gap:8px;margin:16px 0}
.ar-option{display:flex;align-items:center;gap:10px;flex:1;padding:12px;border-radius:10px;border:1.5px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);cursor:pointer;transition:border-color .15s,background .15s}
.ar-option input[type="radio"]{display:none}
.ar-option.selected{border-color:#e0c38c;background:rgba(224,195,140,.08)}
.ar-option:hover{border-color:rgba(255,255,255,.3)}
.ar-option-icon{font-size:22px;opacity:.7;min-width:24px;text-align:center}
.ar-option.selected .ar-option-icon{opacity:1}
.ar-option-text{display:flex;flex-direction:column;gap:2px}
.ar-option-text strong{font-size:13px;font-weight:600;color:#f0ece4}
.ar-option-text small{font-size:10px;color:rgba(255,255,255,.5);font-weight:400}
.ar-launch-button{display:block;text-align:center;margin:16px auto 8px}
.ar-launch-button img{border-radius:8px}
/* Surface AR is only useful on mobile devices with ARKit/ARCore */
.mobile-only{display:none}
@media(pointer:coarse),(max-width:700px){.mobile-only{display:inline-flex}}
