:root{font-family:Arial,Helvetica,sans-serif;color:#243335;background:#d7ddd5;font-synthesis:none;--ink:#243335;--muted:#69726c;--line:#cbd0c6;--lime:#d0e78c;--paper:#f3f3eccc;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button,summary,input[type=range],input[type=checkbox],select{cursor:pointer}button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a05926;outline-offset:4px}button{border:0}button:disabled{opacity:.48;cursor:not-allowed}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;display:block}.masthead{position:fixed;z-index:3;left:0;top:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:25px 36px;pointer-events:none}.wordmark{display:flex;align-items:center;gap:10px;font-size:17px;letter-spacing:-.6px;font-weight:800}.wordmark-light{font-weight:400;letter-spacing:1.8px;font-size:13px;margin-left:2px}.logo-mark{font-size:26px;line-height:30px;background:var(--ink);color:#d0e78c;width:31px;height:31px;text-align:center}.masthead-right{display:flex;align-items:center;gap:9px;font:10px var(--mono);letter-spacing:1.2px}.edition{margin-left:24px;opacity:.55}.status-dot{display:inline-block;width:6px;height:6px;background:#687f32;border-radius:50%}dialog{position:fixed;inset:0;max-width:none;max-height:none;width:100%;height:100%;padding:100px 5.3% 75px;margin:0;background:linear-gradient(90deg,#e7eadee8 0%,#e7eadeb0 37%,#e7eade15 67%);border:0;color:var(--ink);overflow:auto}dialog::backdrop{background:transparent}.menu-layout{display:grid;grid-template-columns:minmax(340px,440px) minmax(270px,380px);justify-content:space-between;gap:60px;min-height:calc(100dvh - 195px);align-items:center}.menu-card{max-width:440px}.eyebrow{font:10px var(--mono);letter-spacing:1.8px;display:flex;align-items:center;gap:10px}.study-number{background:var(--ink);color:var(--lime);font-size:13px;font-weight:600;padding:6px 7px;letter-spacing:0}.small-rule{height:1px;width:25px;background:var(--muted);opacity:.5}h1{font-size:clamp(42px,4.4vw,64px);line-height:1.02;letter-spacing:-3.5px;font-weight:500;margin:23px 0 22px}.lead{font-size:17px;line-height:1.5;max-width:370px;margin:0 0 15px}.description{font-size:12px;line-height:1.8;color:#58645e;margin:0 0 26px}.launch-actions{display:grid;gap:8px}.primary,.secondary{display:flex;justify-content:space-between;align-items:center;width:100%;padding:17px 19px;text-align:left;font-size:12px;transition:background .15s,transform .15s}.primary{background:var(--ink);color:#f3f6e8}.primary:hover{background:#36463a}.primary span{font-size:20px;color:var(--lime);line-height:1}.secondary{border:1px solid #aeb9ab;background:#eff1e98c;padding:12px 18px;font-size:11px}.secondary:hover{background:#e1e7d9}.notice{font:9px/1.6 var(--mono);color:#566254;min-height:16px;margin:11px 0 18px}.notice.error{color:#973d27;background:#fff0e5;padding:10px;border-left:3px solid #973d27}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;padding:20px 0;border-block:1px solid var(--line);margin-bottom:7px}.control-grid>div{display:flex;gap:10px;align-items:center;font-size:10px;color:#59665b}kbd{font:9px var(--mono);color:var(--ink);background:#f6f7f0c9;padding:4px 5px;min-width:61px;text-align:center;border:1px solid #c6cdbf;box-shadow:0 1px #c1c8bb}details{border-bottom:1px solid var(--line);font-size:11px}summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:16px 0}summary::-webkit-details-marker{display:none}summary>span{font:10px var(--mono);color:#64715f}details[open] summary>span{color:#243335}.settings{display:grid;gap:11px;padding:2px 0 18px}.settings label:not(.checkbox){display:flex;justify-content:space-between;align-items:center;font-size:11px;gap:10px}output{font:10px var(--mono);color:#69755f}input[type=range]{accent-color:#3e5638;width:100%;height:13px;margin:0 0 7px}.checkbox{display:flex;align-items:center;gap:8px;font-size:11px}.checkbox input{accent-color:#3e5638}select,textarea{background:#f4f5ed;border:1px solid #b8c2b0;color:var(--ink);padding:7px;font-size:11px}textarea{resize:vertical;width:100%;line-height:1.6}.fineprint{font:9px/1.7 var(--mono);color:#64715f;margin:3px 0}.chamber-caption{align-self:end;margin:0 0 26px;padding:30px;background:#edf0e2de;backdrop-filter:blur(8px);border-top:2px solid #73806d}.chamber-caption h2{font-weight:400;font-size:42px;line-height:1.06;letter-spacing:-2px;margin:18px 0 22px}.study-questions{margin:25px 0}.study-questions p{display:flex;gap:12px;font-size:11px;padding:11px 0;border-bottom:1px solid #cdd5c3;margin:0}.study-questions span{font:9px var(--mono);color:#718063}.study-path{display:flex;gap:25px;font:9px var(--mono);letter-spacing:.5px}.study-path strong{border-top:2px solid var(--ink);padding-top:10px}.study-path>span{opacity:.5;padding-top:12px}.chamber-caption>.fineprint{margin-top:10px;font-size:8px}.next-label{margin-left:25px;opacity:.65}.menu-footer{display:flex;justify-content:space-between;gap:20px;padding-top:26px;font:8px var(--mono);letter-spacing:1.4px;color:#52634c}.playing .masthead{opacity:.85}.playing .wordmark{font-size:13px}.playing .edition{display:none}.playing .wordmark-light{font-size:10px}.playing .logo-mark{font-size:20px;width:25px;height:25px;line-height:25px}#hud{position:fixed;inset:0;pointer-events:none}.session-tag{position:absolute;top:92px;left:36px;display:flex;gap:9px;align-items:center;font:9px var(--mono);letter-spacing:1.2px}#timer{margin-left:10px;color:#34452e}#crosshair{position:absolute;left:50%;top:50%;width:3px;height:3px;margin:-1.5px;border-radius:50%;background:#fff;box-shadow:0 0 2px 1px #14282c70}#crosshair i,#crosshair b{position:absolute;left:50%;top:50%;width:19px;height:1px;transform:translate(-50%,-50%);background:linear-gradient(90deg,#fff 0 22%,transparent 22% 78%,#fff 78%);filter:drop-shadow(0 0 1px #000)}#crosshair b{transform:translate(-50%,-50%) rotate(90deg)}#crosshair.hit span{position:absolute;inset:-12px;border:2px solid #d9eea0;transform:rotate(45deg);animation:hit .14s ease-out}#target-readout{position:absolute;top:calc(50% + 27px);width:100%;text-align:center;font:8px var(--mono);letter-spacing:1.1px;color:#253e34;opacity:.7}.bottom-hud{position:absolute;bottom:74px;left:36px;right:36px;display:flex;justify-content:space-between;align-items:end;gap:25px}.speed-panel{width:175px;background:#edf2e9b8;padding:14px 16px}.hud-label{font:8px var(--mono);letter-spacing:1px;display:flex;gap:10px;justify-content:space-between;color:#586c56}.speed{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px}.speed>span:first-child{font-size:37px;font-weight:400;letter-spacing:-2px;font-variant-numeric:tabular-nums}#body-state{font:8px var(--mono);color:#566c50}.speed-track{height:3px;background:#cad5c1;margin-top:6px}#speed-fill{height:100%;background:#536b40;width:0}.hud-invitation{font:11px var(--mono);margin-bottom:12px;color:#334931;background:#eff3e7b8;padding:9px 12px}.shot-panel{display:grid;text-align:right;gap:5px;background:#edf2e9b8;padding:12px 16px}.shot-panel>span:first-child{font-size:35px;letter-spacing:-1px;font-variant-numeric:tabular-nums}.shot-panel b{font-weight:400}.hud-controls{position:absolute;bottom:25px;left:0;width:100%;text-align:center;font:9px var(--mono);color:#40513b;letter-spacing:.1px}.hud-controls span{margin:0 8px;color:#819377}#diagnostics{position:absolute;right:36px;top:90px;font:10px/1.7 var(--mono);background:#20302ced;color:#e2edcf;padding:16px;min-width:205px}#toast{position:fixed;left:50%;bottom:150px;z-index:10;transform:translateX(-50%) translateY(8px);background:#24352e;color:#eef4df;font:11px var(--mono);padding:12px 17px;opacity:0;transition:opacity .15s,transform .15s;pointer-events:none}#toast.visible{opacity:1;transform:translateX(-50%)}.noscript{position:fixed;inset:0;background:#e7e9df;display:grid;place-items:center;z-index:20;padding:30px}body.fatal #menu{background:#e7eade}.fatal .chamber-caption{display:none}@keyframes hit{from{opacity:1;scale:.7}to{opacity:0;scale:1.15}}
@media(min-width:1500px){dialog{padding-left:7%;padding-right:7%}.menu-layout{grid-template-columns:470px 370px}.menu-card{max-width:470px}}
@media(max-height:820px) and (min-width:901px){dialog{padding-top:88px;padding-bottom:24px}.menu-layout{min-height:calc(100dvh - 145px)}h1{font-size:48px;margin:18px 0}.lead{font-size:15px}.description{margin-bottom:16px}.control-grid{gap:8px 14px;padding:12px 0}.notice{margin:8px 0 12px}summary{padding:12px 0}.primary{padding:15px 18px}.menu-footer{padding-top:17px}}
@media(max-width:900px){.masthead{padding:20px}.edition{display:none}dialog{padding:86px 24px 30px;background:#e7eadee8}.menu-layout{display:block;min-height:auto}.menu-card{max-width:500px;margin:0 auto}.chamber-caption{display:none}.menu-footer{max-width:500px;margin:15px auto 0;font-size:7px;line-height:1.7}h1{font-size:51px}.bottom-hud{left:20px;right:20px;bottom:67px}.hud-invitation{display:none}.hud-controls{font-size:8px;line-height:1.8;padding:0 15px}.hud-controls span{margin:0 3px}.session-tag{left:20px;top:75px}.masthead-right{font-size:8px}.speed-panel{width:150px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Keep player controls readable against the chamber, including at narrow widths. */
.play-settings-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
#menu .primary,#menu .secondary{font-size:16px;min-height:48px}
#open-settings{width:auto;background:#e3ebd3;border-color:#6e805c;font-weight:600;padding:12px 18px}
#open-settings:hover{background:#d4e3bd}
#menu .notice{font-size:12px;line-height:1.6}
#adjustments{margin:0 0 18px;border:1px solid #a3b197;background:#f1f4e8;scroll-margin-top:90px}
#adjustments summary{padding:16px;font-size:18px;font-weight:600;gap:12px}
#adjustments summary::after{content:'+';font:22px var(--mono)}
#adjustments[open] summary::after{content:'−'}
#adjustments summary>span{margin-left:auto;font-size:12px;font-weight:400}
#adjustments .settings{padding:4px 16px 18px;gap:12px}
#menu .settings label,#menu .checkbox{font-size:16px;line-height:1.5}
#menu output{font-size:14px;color:#43513b}
#menu input[type=range]{height:28px;margin-bottom:8px}
#menu input[type=checkbox]{width:20px;height:20px;flex-shrink:0}
#menu select,#menu textarea{font-size:16px}
#menu .fineprint{font-size:12px;line-height:1.7;color:#4f5d49}
#menu .control-grid>div,#menu .control-grid span{font-size:15px;color:#344535;line-height:1.5}
#menu kbd{font-size:12px;min-width:64px;padding:5px}
#notebook summary{font-size:16px;min-height:48px;gap:12px}
#notebook summary>span{font-size:12px}
#menu .study-switch button{font-size:13px;min-height:44px}
#hud .hud-controls{font-size:13px;line-height:1.6;background:#eef2e6ed;padding:8px 12px;bottom:12px}
@media(max-width:450px){
  .play-settings-row{grid-template-columns:minmax(0,1fr) auto}
  #menu .primary{padding:12px;gap:8px}
  #open-settings{padding:12px}
  #adjustments summary{flex-wrap:wrap;gap:8px}
  #adjustments summary>span{font-size:11px}
  #menu .control-grid{grid-template-columns:1fr}
  #chain-controls{flex-direction:column;align-items:flex-start}
}

/* The menu scrolls; its masthead must not obscure settings or instructions. */
#menu .masthead{position:absolute}
