@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--ink:#e8e6df;--muted:#898b87;--line:#303432;--panel:#151817;--bg:#0c0e0d;--lime:#d9f66f;--coral:#f07865;--sans:"Space Grotesk", sans-serif;--mono:"DM Mono", monospace;font-family:var(--sans);color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{min-width:320px;margin:0}button{font:inherit;cursor:pointer;transition:filter .18s,border-color .18s,background-color .18s,color .18s}button:hover:not(:disabled){filter:brightness(1.06)}button:focus-visible{outline:2px solid var(--lime);outline-offset:4px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#app{min-height:100svh}.fade-enter-active,.fade-leave-active{transition:opacity .18s}.fade-enter-from,.fade-leave-to{opacity:0}.app-shell{isolation:isolate;border-inline:1px solid var(--line);background:radial-gradient(circle at 15% 15%, #18201a 0, transparent 27%), var(--bg);width:min(1240px,100%);min-height:100svh;margin:auto;position:relative}.app-shell:before{z-index:20;pointer-events:none;content:"";opacity:.2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.55'/%3E%3C/svg%3E");position:fixed;inset:0}.topbar{border-bottom:1px solid var(--line);letter-spacing:.09em;justify-content:space-between;align-items:center;height:76px;padding:0 38px;font-size:12px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:var(--lime);flex:none}.brand b{color:var(--muted);font-weight:400}.session-count{color:var(--muted);align-items:baseline;gap:14px;display:flex}.session-count strong{color:var(--ink);font:500 19px var(--mono)}.welcome{min-height:calc(100svh - 77px);padding:15vh 12%}.eyebrow,.date-label,.timer-label,.section-label,.key-hint,.range-note{font:11px var(--mono);letter-spacing:.13em;color:var(--muted)}.welcome .ticker-title{letter-spacing:-.07em;margin:30px 0;font-size:clamp(52px,8vw,104px);font-weight:600;line-height:.95}.ticker-title{letter-spacing:0;flex-direction:column;gap:10px;line-height:.98;display:flex}.ticker-title>span{color:var(--muted);font:11px var(--mono);letter-spacing:.15em}.ticker-title strong,.ticker-title em{display:block}.ticker-title strong{font:inherit}.ticker-title em{color:var(--lime);font-style:normal}.ticker-date-enter-active,.ticker-date-leave-active,.ticker-weekday-enter-active,.ticker-weekday-leave-active{transition:opacity .26s,transform .26s}.ticker-weekday-enter-active{transition-delay:.14s}.ticker-date-enter-from,.ticker-weekday-enter-from{opacity:0;transform:translateY(10px)}.ticker-date-leave-to,.ticker-weekday-leave-to{opacity:0;transform:translateY(-10px)}h1 em{color:var(--lime);font-style:normal}.intro{max-width:490px;color:var(--muted);margin-bottom:10px;font-size:17px;line-height:1.5}.explainer-button{width:fit-content;color:var(--muted);font:11px var(--mono);letter-spacing:.08em;text-align:left;background:0 0;border:0;margin-top:38px;padding:0;display:block}.explainer-button span{color:var(--lime);margin-left:12px;font-size:16px}.explainer-button:hover{color:var(--ink)}.start-button,.next-button{border:1px solid var(--lime);background:var(--lime);color:#0d100d;font:500 13px var(--mono);letter-spacing:.08em;margin-top:24px;padding:16px 23px}.start-button span,.next-button span{margin-left:42px;font-size:18px}.range-note{margin-top:54px}.creator-credit{color:var(--muted);font:10px var(--mono);letter-spacing:.12em;white-space:nowrap;align-items:center;gap:6px;margin:0;display:flex}.creator-credit svg{color:var(--coral);flex:none}.creator-credit a{color:var(--ink);text-decoration:none}.creator-credit a:hover{color:var(--lime)}.topbar-change-mode{display:none}.trainer-layout{grid-template-columns:minmax(0,1.45fr) minmax(340px,.8fr);min-height:calc(100svh - 77px);display:grid}.training-panel{border-right:1px solid var(--line);flex-direction:column;align-items:center;padding:28px 7%;display:flex}.training-body{flex-direction:column;flex:1;justify-content:center;width:100%;display:flex}.stats{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);align-self:stretch;margin-bottom:auto;padding-bottom:24px;display:grid}.stats div{border-left:1px solid var(--line);flex-direction:column;gap:5px;padding-left:16px;display:flex}.stats div:first-child{border:0;padding-left:0}.stats strong{font:500 18px var(--mono)}.stats span{font:10px var(--mono);color:var(--muted);text-transform:uppercase}.challenge{text-align:center;width:100%;margin:0 0 46px}.countdown{color:var(--muted);font:11px var(--mono);letter-spacing:.14em;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;display:flex}.countdown-ring{aspect-ratio:1;width:clamp(112px,14vw,152px);position:relative}.countdown-ring svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.countdown-ring-track,.countdown-ring-progress{fill:none;stroke-width:2px}.countdown-ring-track{stroke:var(--line)}.countdown-ring-progress{stroke:var(--lime);stroke-dasharray:308;stroke-dashoffset:0;animation:1s linear forwards countdown-ring}.countdown-ring strong{color:var(--lime);font:400 clamp(54px, 7vw, 88px) var(--mono);place-items:center;line-height:1;display:grid;position:absolute;inset:0}@keyframes countdown-ring{0%{stroke-dashoffset:0}to{stroke-dashoffset:308px}}.ready-state{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.ready-state .start-button{margin-top:24px}.mode-picker{width:min(640px,100%);margin-top:32px}.mode-picker>.section-label{color:var(--ink);letter-spacing:.16em;text-align:center;margin-bottom:28px;font-size:14px;display:block}.mode-options{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.mode-options button:first-child{grid-column:1/-1}.mode-options button{border:1px solid var(--line);min-height:78px;color:var(--muted);text-align:left;background:0 0;flex-direction:column;align-items:flex-start;padding:12px;display:flex}.mode-options button svg{color:var(--lime);margin-bottom:13px}.mode-options button strong,.mode-options button small{display:block}.mode-options button strong{color:var(--ink);font:12px var(--mono);text-transform:uppercase}.mode-options button small{margin-top:3px;font-size:11px;line-height:1.45}.mode-options button.selected{border-color:var(--lime);background:#d9f66f1a}.numeric-answer{justify-content:center;gap:8px;display:flex}.numeric-answer input{border:1px solid var(--line);background:var(--panel);width:110px;color:var(--lime);font:22px var(--mono);text-align:center;appearance:textfield;padding:15px}.numeric-answer input::-webkit-inner-spin-button{appearance:none;margin:0}.numeric-answer input::-webkit-outer-spin-button{appearance:none;margin:0}.numeric-answer button{border:1px solid var(--lime);background:var(--lime);color:#0d100d;font:11px var(--mono);letter-spacing:.08em;padding:0 18px}.numeric-answer button span{margin-left:18px;font-size:16px}.timer-label{justify-content:center;align-items:baseline;gap:10px;margin-bottom:14px;font-size:14px;display:flex}.training-mode-label{color:var(--muted);font:10px var(--mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:22px}.timer-icon{color:var(--lime);flex:none;width:18px;height:18px}.timer-label strong{color:var(--lime);font-size:clamp(24px,2.8vw,38px);font-weight:400;line-height:1}.date-label{margin:34px 0 12px}.challenge h2{letter-spacing:-.06em;margin:0;font-size:clamp(36px,5vw,70px);font-weight:500}.prompt{color:var(--muted);margin:20px 0 0}.formula{color:var(--lime);font:11px var(--mono);letter-spacing:.04em;margin-top:9px;display:block}.result{font-family:var(--mono);flex-direction:column;gap:5px;margin-top:20px;font-size:12px;display:flex}.result strong{letter-spacing:.12em;font-size:17px}.is-correct strong{color:var(--lime)}.is-incorrect strong{color:var(--coral)}.result span{color:var(--muted)}.weekday-grid{grid-template-columns:repeat(7,1fr);gap:8px;width:100%;display:grid}.weekday-grid.compact{grid-template-columns:repeat(4,1fr);width:min(100%,400px);margin-inline:auto}.weekday-button{border:1px solid var(--line);min-height:72px;color:var(--muted);background:0 0;flex-direction:column;justify-content:center;gap:5px;font-size:13px;transition:border-color .2s,background .2s,color .2s;display:flex}.weekday-button:hover:not(:disabled){border-color:var(--lime);color:var(--ink);filter:none;background:#d9f66f1a;transform:none}.weekday-number{font:10px var(--mono);color:#555a54}.weekday-grid.compact .weekday-number{order:2}.weekday-button.selected{color:var(--ink);border-color:var(--coral);background:#3a211e}.weekday-button.correct{color:#0d100d;background:var(--lime);border-color:var(--lime)}.weekday-button.incorrect{color:var(--coral);border-color:var(--coral);background:#3a211e}.key-hint{text-align:center;margin:25px 0 0}.training-controls{justify-content:center;gap:8px;margin-top:34px;display:flex}.pause-training,.resume-training{border:1px solid var(--coral);color:var(--coral);font:10px var(--mono);letter-spacing:.12em;background:0 0;align-items:center;gap:8px;padding:10px 12px;display:inline-flex}.pause-training:hover{color:var(--ink);background:#f078651f}.resume-training{border-color:var(--lime);color:var(--lime)}.resume-training:hover{color:var(--ink);background:#d9f66f1a}.pause-training svg,.resume-training svg{flex:none}.paused-label{color:var(--coral);font:11px var(--mono);letter-spacing:.14em;margin:20px 0 0}.mobile-key-hint{display:none}.next-button{align-self:center;margin-top:28px}.learning-panel{background:var(--panel);flex-direction:column;gap:32px;padding:29px 34px;display:flex}.mobile-learning-toggle,.mobile-learning-close,.drawer-scrim{display:none}.section-label{justify-content:space-between;margin-bottom:15px;display:flex}.mono{font-family:var(--mono)}.graph-wrap{border:1px solid var(--line);background:#111412;position:relative}.graph-wrap svg{width:100%;height:auto;display:block}.axis{stroke:#454a45;stroke-width:1px}.graph-grid line{stroke:#252b27;stroke-width:1px;stroke-dasharray:2 5}svg text{fill:#686d67;font:10px var(--mono)}.axis-label{fill:var(--muted)}.graph-line{fill:none;stroke:var(--lime);stroke-width:2px}.graph-point{fill:var(--lime);stroke:#111412;stroke-width:2px}.graph-point-incorrect{fill:var(--coral)}.graph-hover-target{fill:#0000;stroke:#0000;cursor:crosshair}.graph-hover-line{stroke:var(--muted);stroke-dasharray:3 4;stroke-width:1px;pointer-events:none}.graph-tooltip-bg{fill:#202521;stroke:var(--line)}.graph-tooltip text{font:9px var(--mono)}.graph-tooltip-text{fill:var(--ink)}.graph-tooltip-status{fill:var(--lime)}.graph-tooltip-status.incorrect{fill:var(--coral)}.graph-empty{text-align:center;color:var(--muted);font:11px var(--mono);position:absolute;inset:45% 0 auto}.speed-history{margin-top:26px}.speed-history-list{border-top:1px solid var(--line);max-height:190px;padding-right:16px;overflow-y:auto}.speed-history-list::-webkit-scrollbar{width:2px}.speed-history-list::-webkit-scrollbar-track{background:var(--line)}.speed-history-list::-webkit-scrollbar-thumb{background:var(--lime);border-radius:999px}.speed-history-item{border-bottom:1px solid var(--line);color:var(--muted);font:10px var(--mono);grid-template-columns:1fr 1fr 1fr;align-items:center;gap:10px;padding:10px 0;transition:background-color .18s,padding-left .18s;display:grid}.speed-history-item:hover{background:#d9f66f0f;padding-left:8px}.speed-history-item strong{color:var(--lime);text-align:center;font-weight:400}.history-question{color:var(--muted)}.history-result{color:var(--lime);text-align:right;font-size:9px}.speed-history-item.incorrect strong,.speed-history-item.incorrect .history-result{color:var(--coral)}.scratch-panel{margin-top:28px}.scratch-visibility-toggle{color:var(--muted);font:10px var(--mono);letter-spacing:.13em;background:0 0;border:0;align-items:center;gap:7px;padding:3px 0;display:inline-flex}.scratch-visibility-toggle:hover{color:var(--lime)}.scratch-visibility-toggle:focus-visible{outline:1px solid var(--lime);outline-offset:4px}.scratch-switch-track{border:1px solid var(--muted);border-radius:999px;width:30px;height:16px;transition:border-color .18s,background-color .18s;display:block;position:relative}.scratch-switch-thumb{background:var(--muted);border-radius:50%;width:8px;height:8px;transition:transform .18s,background-color .18s;position:absolute;top:3px;left:3px}.scratch-visibility-toggle[aria-checked=true] .scratch-switch-track{border-color:var(--lime);background:#d9f66f29}.scratch-visibility-toggle[aria-checked=true] .scratch-switch-thumb{background:var(--lime);transform:translate(14px)}.scratch-canvas{border:1px solid var(--line);cursor:crosshair;touch-action:none;background-color:#111412;background-image:repeating-linear-gradient(#0000 0 27px,#d9f66f1a 28px);width:100%;height:220px;display:block}.scratch-toggle{color:var(--muted);font:10px var(--mono);letter-spacing:.08em;cursor:pointer;align-items:center;gap:8px;margin-top:12px;display:inline-flex}.scratch-toggle input{opacity:0;width:1px;height:1px;position:absolute}.scratch-toggle input:checked+.scratch-switch-track{border-color:var(--lime);background:#d9f66f29}.scratch-toggle input:checked+.scratch-switch-track .scratch-switch-thumb{background:var(--lime);transform:translate(14px)}.scratch-toggle input:focus-visible+.scratch-switch-track{outline:1px solid var(--lime);outline-offset:4px}.calculation-toggle{width:100%;color:var(--ink);border:0;border-block:1px solid var(--line);font:11px var(--mono);letter-spacing:.1em;text-align:left;background:0 0;justify-content:space-between;align-items:center;padding:15px 0;display:flex}.calculation-toggle span{color:var(--lime);font-size:18px}.calculation-content{padding:17px 0 0}.calculation-step{border-left:2px solid var(--line);margin-bottom:13px;padding:0 0 16px 15px}.calculation-step h3{color:var(--lime);font:11px var(--mono);text-transform:uppercase;margin:0 0 8px}.calculation-step p{font:12px/1.65 var(--mono);color:var(--muted);margin:0}.fact-check-link{color:var(--muted);font:10px var(--mono);letter-spacing:.1em;justify-content:space-between;margin-top:18px;text-decoration:none;display:flex}.fact-check-link span{color:var(--lime);font-size:16px;line-height:10px}.fact-check-link:hover{color:var(--ink)}.new-session{color:var(--coral);border:1px solid var(--coral);font:10px var(--mono);letter-spacing:.12em;background:0 0;align-self:flex-start;align-items:center;gap:8px;margin-top:auto;padding:12px;display:inline-flex}.change-mode{border:1px solid var(--lime);color:var(--lime);font:10px var(--mono);letter-spacing:.12em;background:0 0;align-self:flex-start;align-items:center;gap:8px;margin-top:14px;padding:10px 12px;display:inline-flex}.change-mode:hover{color:var(--ink);background:#d9f66f1a}.change-mode svg{flex:none}.desktop-clear-session{align-self:flex-end}.mobile-clear-session{display:none}.new-session:hover{color:var(--ink);border-color:var(--coral);background:#f078651f}@media (width<=760px){.topbar{padding:0 20px}.welcome{padding:7vh 24px}.welcome .ticker-title{margin:16px 0;font-size:clamp(42px,13vw,66px)}.welcome .intro{font-size:14px}.trainer-layout{min-height:calc(100svh - 76px);display:block}.training-panel{border-right:0;min-height:calc(100svh - 76px);padding:24px 20px 110px}.training-panel:after{z-index:7;content:"";-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0c0e0dd1;border-top:1px solid #303432e6;height:72px;position:fixed;inset:auto 0 0}.training-panel>.mobile-clear-session{z-index:8;align-items:center;gap:8px;margin:0;display:inline-flex;position:fixed;bottom:16px;left:16px}.mobile-clear-session svg{flex:none}.training-body{order:2;min-height:0}.stats{border-top:0;border-bottom:1px solid var(--line);order:1;width:100%;margin:0 0 40px;padding:0 0 24px}.challenge{margin-bottom:28px}.training-mode-label{margin-bottom:12px}.timer-label{margin-bottom:8px}.challenge h2{line-height:.95}.weekday-grid{flex-wrap:wrap;justify-content:center;gap:5px;display:flex}.weekday-button{flex:0 0 calc(25% - 3.75px);min-height:62px;font-size:12px}.next-button{align-self:center}.mode-options{grid-template-columns:repeat(2,1fr)}.mode-picker{margin-top:0}.mode-options button{min-height:auto}.desktop-key-hint{display:none}.mobile-key-hint{display:inline}.mobile-learning-toggle{z-index:8;border:1px solid var(--lime);background:var(--lime);color:#0d100d;font:10px var(--mono);letter-spacing:.1em;align-items:center;gap:8px;padding:11px 13px;display:inline-flex;position:fixed;bottom:16px;right:16px}.creator-credit.is-training{display:none}.topbar-change-mode{border:1px solid var(--lime);color:var(--lime);font:10px var(--mono);letter-spacing:.1em;background:0 0;align-items:center;gap:7px;padding:8px 10px;display:inline-flex}.drawer-scrim{z-index:9;opacity:0;pointer-events:none;background:#0c0e0dad;border:0;padding:0;transition:opacity .18s;display:block;position:fixed;inset:0}.drawer-scrim.visible{opacity:1;pointer-events:auto}.learning-panel{z-index:10;border-top:1px solid var(--line);width:100%;height:100svh;max-height:none;padding:28px 20px 35px;transition:transform .22s;position:fixed;inset:0;overflow-y:auto;transform:translateY(100%)}.learning-panel.is-open{transform:translateY(0)}.desktop-clear-session{display:none}.mobile-learning-close{color:var(--muted);background:0 0;border:0;align-self:flex-end;margin:-12px -8px 0 0;padding:5px;display:inline-flex}.mobile-learning-close:hover{color:var(--ink)}.new-session{margin-top:0}.training-panel>.change-mode{display:none}}@media (width<=430px){.brand{gap:7px;font-size:10px}.session-count span{display:none}.stats div{padding-left:8px}.stats strong{font-size:14px}.stats span{font-size:8px}.weekday-button{min-height:57px}}
