@font-face{font-family:Geist Fallback;src:local(Arial);size-adjust:104%;ascent-override:92%;descent-override:22%;line-gap-override:0%}@font-face{font-family:Geist Mono Fallback;src:local(Arial);size-adjust:100%;ascent-override:90%;descent-override:22%;line-gap-override:0%}@font-face{font-family:Geist;src:url(/fonts/geist-latin-wght-normal.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/geist-mono-latin-wght-normal.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--ink:#0b0b0c;--graphite:#17171a;--paper:#faf9f7;--white:#fff;--stone:#d8d6d0;--mute:#9a9a94;--valencia:#e4531b;--valencia-bright:#ff6a2b;--valencia-deep:#b83e0e;--valencia-tint:#fbe6dc;--surface:var(--ink);--surface-raised:var(--graphite);--text:var(--white);--hairline:var(--stone);--accent-text:var(--valencia-bright);--focus:var(--valencia-bright);--stage:var(--ink);--display:56px;--heading:28px;--body:15px;--label:13px;--data:13px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark]{--mute:#9a9a94;--surface:var(--ink);--surface-raised:var(--graphite);--text:var(--white);--accent-text:var(--valencia-bright);--focus:var(--valencia-bright);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--surface);color:var(--text);font-family:Geist,Geist Fallback,sans-serif;font-size:var(--body);margin:0;font-weight:400;line-height:22px}button,input,select{font:inherit;color:inherit}a{color:var(--accent-text);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}h1,h2,p{margin:0}h1{font-size:var(--display);letter-spacing:-.03em;font-weight:600;line-height:60px}h2{font-size:var(--heading);letter-spacing:-.02em;font-weight:500;line-height:34px}.muted{color:var(--mute)}.data,.score-readout{font-family:Geist Mono,Geist Mono Fallback,ui-monospace,monospace;font-size:var(--data);font-variant-numeric:tabular-nums;font-weight:400;line-height:16px}.label{font-size:var(--label);letter-spacing:.04em;text-transform:uppercase;font-weight:500;line-height:16px}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--hairline);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;height:56px;padding:0 24px;display:flex}.brand{color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.wordmark{letter-spacing:-.04em;font-size:22px;font-weight:500;line-height:1}.nav{align-items:center;gap:8px;display:flex}.nav a{color:var(--text);border-radius:4px;align-items:center;min-height:44px;padding:0 12px;text-decoration:none;display:inline-flex}.nav a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--text)}.icon-btn{min-width:44px;min-height:44px;color:var(--text);background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.page{width:min(1120px,100% - 48px);margin:0 auto;padding:40px 0 80px}.notice{border:1px solid var(--hairline);border-left:3px solid var(--valencia);background:var(--surface-raised);margin-bottom:24px;padding:12px 16px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.btn{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;min-height:44px;padding:0 16px;text-decoration:none;display:inline-flex}.btn.primary{background:var(--valencia);color:var(--ink);font-weight:500}.btn.secondary{border-color:var(--hairline);background:var(--surface-raised);color:var(--text)}.btn.tertiary{color:var(--accent-text);padding:0 8px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.active{background:var(--valencia);color:var(--ink)}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.card{background:var(--surface-raised);border:1px solid var(--hairline);min-height:180px;color:inherit;border-radius:4px;flex-direction:column;gap:12px;padding:16px;text-decoration:none;display:flex}.card h3{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:500}.progress{background:var(--hairline);height:2px;margin-top:auto}.progress>span{background:var(--valencia);height:100%;display:block}.practice{grid-template-columns:220px 1fr 300px;min-height:calc(100vh - 64px);display:grid}.rail,.side{border-right:1px solid var(--hairline);background:var(--surface);flex-direction:column;gap:12px;padding:16px;display:flex}.side{border-right:0;border-left:1px solid var(--hairline)}.stage{background:var(--stage);flex-direction:column;min-width:0;display:flex}.viewports{flex:1;grid-template-rows:1fr 180px;grid-template-columns:1fr 220px;min-height:560px;display:grid}.viewport{background:var(--ink);border:0;position:relative}.viewport canvas{cursor:crosshair;width:100%;height:100%;display:block}.viewport .tag{color:var(--stone);pointer-events:none;position:absolute;top:8px;left:8px}.tool-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field input,.field select{background:var(--surface-raised);border:1px solid var(--hairline);border-radius:4px;min-height:44px;padding:0 8px}.metrics{grid-template-columns:1fr 1fr;gap:8px;display:grid}.metric{border:1px solid var(--hairline);background:var(--surface-raised);padding:12px}.metric strong{font-family:Geist Mono,monospace;font-size:28px;font-weight:400;line-height:32px;display:block}.band{gap:3px;margin-top:8px;display:flex}.band i{background:var(--hairline);flex:1;height:4px;display:block}.phone-block{padding:32px 20px;display:none}@media (width<=900px){.practice{grid-template-columns:1fr}.practice .rail,.practice .viewports{display:none}.practice .phone-block{display:block}.side{border-left:0}h1{font-size:40px;line-height:44px}.page{width:min(1120px,100% - 32px)}}.mark circle.ring{transform-box:fill-box;transform-origin:50%}@media (prefers-reduced-motion:no-preference){.btn:active{transition:transform 80ms ease-out;transform:scale(.98)}.panel{transition:opacity .16s ease-out}.mark.animate circle.ring{animation:.6s ease-out both settle}}@media (prefers-reduced-motion:reduce){.btn:active,.panel,.mark.animate circle.ring{transition:none;animation:none}}@keyframes settle{0%{transform:translate(var(--dx), var(--dy));opacity:.2}to{opacity:1;transform:none}}.skip{background:var(--graphite);color:var(--white);z-index:5;padding:8px 12px;position:absolute;top:-40px;left:8px}.skip:focus{top:8px}.workspace{background:var(--ink);height:100vh;color:var(--white);grid-template-rows:48px minmax(0,1fr) 16px;grid-template-columns:240px minmax(0,1fr) 64px;display:grid}.workspace.brief-collapsed{grid-template-columns:0 minmax(0,1fr) 64px}.workspace.brief-collapsed .brief{visibility:hidden}.drillbar,.brief,.toolrail{background:var(--graphite);color:var(--white)}.drillbar{border-bottom:1px solid #2a2a2e;grid-column:1/-1;align-items:center;gap:12px;padding:0 12px;display:flex}.drillbar .elapsed{margin-left:auto}.dots{gap:4px;display:flex}.dots i{border:1px solid var(--stone);width:8px;height:8px;display:block}.dots i.on{background:var(--stone)}.brief{border-right:1px solid #2a2a2e;flex-direction:column;gap:12px;padding:12px;display:flex;overflow:auto}.stage{background:var(--ink);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.stage-host,.viewports{flex:1;min-height:0}.viewports{grid-template-rows:minmax(0,1fr) 140px;grid-template-columns:minmax(0,1fr) 180px;height:100%;display:grid}.viewports[data-layout=axial]{grid-template-rows:1fr;grid-template-columns:1fr}.viewports[data-layout=axial] .viewport.sagittal,.viewports[data-layout=axial] .viewport.coronal{display:none}.viewport{background:var(--ink);min-height:0;position:relative;overflow:hidden}.viewport.axial{grid-row:1/span 2}.viewport canvas{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}.viewport .tag,.hu,.orient{color:var(--stone);pointer-events:none;position:absolute}.viewport .tag{top:8px;left:8px}.hu{z-index:2;bottom:8px;right:12px}.orient.a{top:8px;left:50%}.orient.p{bottom:8px;left:50%}.orient.r{top:50%;left:8px}.orient.l{top:50%;right:8px}.strip{background:var(--ink)}.slice-strip{height:16px;display:flex}.slice-cell{background:#17171a;border:0;flex:1;height:16px;padding:0}.slice-cell.on{background:var(--stone)}.slice-cell.poor{background:#3a3a3e}.slice-cell.mid{background:#9a9a94}.slice-cell.good{background:#faf9f7}.slice-cell.active{outline:1px solid var(--valencia-bright)}.toolrail{border-left:1px solid #2a2a2e;flex-direction:column;display:flex}.tool-btn{min-height:44px;color:var(--white);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.tool-btn.active{box-shadow:inset 2px 0 0 var(--white)}.briefing{color:var(--stone);max-width:360px;padding:24px}.hero{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.lede{max-width:16ch;font-size:28px;font-weight:500;line-height:34px}.fold{margin-top:56px}.steps{grid-template-columns:repeat(3,1fr);gap:16px;margin:16px 0 0;padding:0;list-style:none;display:grid}.site-footer{flex-wrap:wrap;align-items:baseline;gap:16px;margin-top:48px;display:flex}.site-footer p{color:var(--mute);margin:0;font-size:12px;line-height:16px}.site-footer a{color:var(--mute);font-size:12px;text-decoration:none}.axis-list{flex-direction:column;gap:16px;display:flex}.hbar{background:var(--hairline);height:8px}.hbar>span{background:var(--text);height:100%;display:block}.spark{color:var(--text);margin-top:8px;display:block}.score-readout{font-size:72px;font-weight:400;line-height:1}.score-row{align-items:baseline;gap:16px;margin:8px 0 12px;display:flex}.result-stage{background:var(--ink);min-height:320px;margin:16px 0}.result-stage .viewports{min-height:320px}.dialog-back{z-index:6;background:#0b0b0cb8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);color:var(--text);border:1px solid var(--hairline);border-radius:4px;width:min(480px,100% - 32px);padding:16px}.toast{background:var(--graphite);color:var(--white);border:1px solid var(--stone);z-index:4;align-items:center;gap:12px;padding:12px;display:flex;position:fixed;bottom:16px;right:16px}.kbd{border:1px solid var(--stone);border-radius:4px;padding:0 4px;font-family:Geist Mono,monospace}.toggle{align-items:center;gap:8px;min-height:44px;display:inline-flex}.file{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.palette-input,.palette-list a{width:100%;min-height:44px;display:block}.palette-list{margin:12px 0 0;padding:0;list-style:none}.card.selected{outline:1px solid var(--text)}.callouts{padding-left:18px}.gate{min-height:100svh;color:var(--white);cursor:pointer;background:#0b0b0c;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.topo-wrap{pointer-events:none;transform-origin:49.4% 44.9%;position:absolute;inset:-48px}.topo-wrap svg{fill:none;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;display:block}.topo-ink{stroke:#9a9a94;stroke-opacity:.35;stroke-width:.8px}.topo-blue{stroke:#e4531b;stroke-opacity:.5;stroke-width:.8px}.topo-index{stroke:#ff6a2b;stroke-opacity:.8;stroke-width:1.6px}.gate-center{z-index:1;text-align:center;flex-direction:column;align-items:center;padding:24px;display:flex;position:relative}.gate h1.gate-line{letter-spacing:0;color:#d8d6d0;max-width:28ch;margin:28px 0 0;font-size:15px;font-weight:400;line-height:22px}.gate-enter{color:#9a9a94;font:inherit;cursor:pointer;background:0 0;border:0;min-height:44px;margin-top:4px;padding:0 12px;font-size:13px;line-height:16px}@media (prefers-reduced-motion:no-preference){.topo-wrap{animation:42s ease-in-out infinite alternate topo-drift}.gate .mark.animate circle.core{animation:.7s ease-out both gate-core}.gate .mark.animate circle.ring{animation-duration:.9s;animation-timing-function:cubic-bezier(.22,.61,.36,1)}}@keyframes topo-drift{0%{transform:translate(0,0)scale(1.02)}to{transform:translate(-18px,-12px)scale(1.05)}}@keyframes gate-core{0%{opacity:0}to{opacity:1}}@media (width<=1023px){.workspace{grid-template-rows:48px minmax(0,1fr) 16px auto;grid-template-columns:1fr}.brief{display:none}.toolrail{border-top:1px solid #2a2a2e;border-left:0;flex-direction:row;min-height:64px}.viewports{grid-template-rows:1fr;grid-template-columns:1fr}.viewport.sagittal,.viewport.coronal{display:none}.steps{grid-template-columns:1fr}}@media (width<=767px){.workspace.draw-drill .stage-host,.workspace.draw-drill .strip,.workspace.draw-drill .toolrail{display:none}.workspace.draw-drill .phone-block{display:block}}
