@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-opsz-normal-D9N6E8K1.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-opsz-normal-IcJDqblK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-opsz-normal-Cre6nC2_.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-ext-400-normal-B-EsvyE4.woff2)format("woff2"),url(/assets/courier-prime-latin-ext-400-normal-CKOCNFvK.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-400-normal-BbyBr73r.woff2)format("woff2"),url(/assets/courier-prime-latin-400-normal-BAlbUm6l.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/courier-prime-latin-ext-700-normal-ByMJlNdM.woff2)format("woff2"),url(/assets/courier-prime-latin-ext-700-normal-BIFoAzHx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/courier-prime-latin-700-normal-D1YCjmaD.woff2)format("woff2"),url(/assets/courier-prime-latin-700-normal-CVvp4Sof.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#deddd4;--ink:#4a3d8f;--ink-ghost:#4a3d8f4d;--ink-2:#a9a2cc;--ink-mid:#7c71b0;--pencil:#2e2c2a;--red:#c43b2e;--display:"Bricolage Grotesque Variable", ui-sans-serif, system-ui, sans-serif;--typed:"Courier Prime", ui-monospace, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#1b2320;--ink:#e9e7db;--ink-ghost:#e9e7db1a;--ink-2:#5c6b63;--ink-mid:#8e9a93;--pencil:#f0d264;--red:#e8705e}}:root[data-theme=dark]{--paper:#1b2320;--ink:#e9e7db;--ink-ghost:#e9e7db1a;--ink-2:#5c6b63;--ink-mid:#8e9a93;--pencil:#f0d264;--red:#e8705e}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background-color:var(--paper);color:var(--ink);font-family:var(--typed);-webkit-text-size-adjust:100%;background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence baseFrequency='.85' numOctaves='3'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='.055'/></svg>");overflow:hidden}.sheet{height:100dvh;padding:clamp(.9rem,3vw,1.8rem);padding-bottom:max(clamp(.9rem, 3vw, 1.8rem), env(safe-area-inset-bottom));grid-template-rows:auto 1fr auto;gap:1rem;max-width:62rem;margin-inline:auto;display:grid}.masthead{letter-spacing:.04em;justify-content:space-between;align-items:baseline;gap:1rem;font-size:clamp(.75rem,2.4vw,.9rem);display:flex}.masthead[data-hidden]{visibility:hidden}.wordmark b{letter-spacing:.18em}.wordmark span{color:var(--ink-2)}.wordmark em{color:var(--red);letter-spacing:.12em;font-style:normal}.clock{font-variant-numeric:tabular-nums;font-size:clamp(.95rem,3.4vw,1.25rem);font-weight:700}.streak{color:var(--ink-2);letter-spacing:.12em;font-size:clamp(.7rem,2.4vw,.82rem)}.boxes{gap:4px;margin-top:.7rem;display:flex}.boxes[data-hidden]{visibility:hidden}.boxes i{border:1.5px solid var(--ink-2);flex:1;height:clamp(13px,2.2vw,17px);transition:background-color .13s ease-out}.boxes i[data-done]{background:var(--ink);border-color:var(--ink)}.boxes i[data-done][data-missed]{background:var(--red);border-color:var(--red)}.stage{overscroll-behavior:contain;scrollbar-width:none;flex-direction:column;justify-content:safe center;align-items:center;width:100%;min-height:0;display:flex;overflow-y:auto}.stage::-webkit-scrollbar{display:none}.panel{text-align:center;width:100%}.title{font-family:var(--display);letter-spacing:-.035em;text-shadow:.017em .019em 0 var(--ink-ghost);font-size:clamp(3.4rem,17vw,9rem);font-weight:800;line-height:.82}.title[data-small]{font-size:clamp(2rem,9vw,4rem)}.issue-line{color:var(--ink-2);letter-spacing:.22em;margin-top:.9rem;font-size:clamp(.75rem,2.6vw,.88rem)}.standfirst{max-width:30rem;margin:1.1rem auto 0;font-size:clamp(.9rem,3vw,1.05rem);line-height:1.65}.hint{color:var(--ink-2);margin-top:1rem;font-size:.8rem}.support{text-align:right;text-wrap:balance;color:var(--ink-2);font-size:.78rem;line-height:1.5}.support a{color:var(--ink-mid);text-underline-offset:2px;text-decoration:underline}.support a:hover{color:var(--ink)}.btn{font-family:var(--typed);letter-spacing:.1em;color:var(--paper);background:var(--ink);cursor:pointer;border:none;padding:.85rem 2.4rem;font-size:clamp(1rem,3.6vw,1.15rem);font-weight:700}.btn:hover{background:var(--pencil)}.btn[data-honors]{background:var(--red)}.btn-row{flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:1.4rem;display:flex}.linkish{font-family:var(--typed);color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-bottom:1px solid;padding:0 0 1px;font-size:.82rem}.linkish:hover{color:var(--ink)}.practice-row{color:var(--ink-2);margin-top:1.1rem;font-size:.8rem}.btn-row[data-tight]{margin-top:.8rem}.btn[data-quiet]{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);background:0 0}.btn[data-quiet]:hover{color:var(--paper);background:var(--ink)}.nav{flex-wrap:wrap;justify-content:center;gap:1.4rem;margin-top:1.2rem;display:flex}.problem{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;grid-template-columns:max-content max-content;place-content:center;column-gap:clamp(.45rem,2.2vw,1rem);font-size:clamp(3rem,14vw,8rem);font-weight:800;line-height:.98;display:grid}.problem[data-form=inline]{font-size:clamp(1.7rem,7.5vw,4.2rem)}.problem>*{text-align:right;grid-column:2}.operator{text-align:left;grid-area:2/1}.operand{color:var(--ink);text-shadow:.017em .019em 0 var(--ink-ghost)}.expression{color:var(--ink);white-space:nowrap;text-shadow:.017em .019em 0 var(--ink-ghost);grid-column:1/-1}.bar{background:var(--ink);grid-column:1/-1;height:.085em;margin:.16em 0 .1em}.entry{color:var(--pencil);min-height:.98em}.entry[data-wrong]{color:var(--red)}.caret{vertical-align:-.02em;background:currentColor;width:.1em;height:.72em;margin-left:.04em;animation:1.06s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@keyframes stamp{0%{transform:scale(1.055)}to{transform:scale(1)}}.problem[data-stamp]{animation:.17s cubic-bezier(.2,0,.1,1) stamp}.verdict-row{justify-content:center;align-items:center;gap:clamp(.8rem,4vw,2.4rem);display:flex}.verdict{font-family:var(--display);letter-spacing:-.035em;font-variant-numeric:tabular-nums;text-shadow:.017em .019em 0 var(--ink-ghost);font-size:clamp(2.6rem,12vw,5.6rem);font-weight:800;line-height:.9}.mark{font-family:var(--display);color:var(--red);font-weight:800;line-height:.85;transform:rotate(-9deg)}.mark b{letter-spacing:-.04em;font-size:clamp(2.6rem,12vw,5.5rem);display:block}.mark span{font-family:var(--typed);letter-spacing:.1em;font-size:clamp(.7rem,2.6vw,.85rem);font-weight:400;display:block}.standing{margin-top:.7rem;font-size:clamp(.9rem,3vw,1.05rem);font-weight:700}.standing small{color:var(--ink-2);margin-top:.3rem;font-size:.78rem;font-weight:400;display:block}.pace{color:var(--ink);margin-top:.35rem;font-size:clamp(.85rem,2.8vw,.95rem)}.pace small{color:var(--ink-2);margin-top:.25rem;font-size:.75rem;display:block}.plot{width:min(30rem,100%);margin:1rem auto 0}.chart{border-bottom:1.5px solid var(--ink-2);align-items:flex-end;gap:2px;height:clamp(44px,10vh,76px);display:flex}.chart i{background:var(--ink-2);flex:1}.chart i[data-you]{background:var(--red)}.axis{color:var(--ink-2);justify-content:space-between;margin-top:.4rem;font-size:.68rem;display:flex}.marked{margin-top:1rem}.tip{color:var(--ink-2);font-variant-numeric:tabular-nums;min-height:1.4em;font-size:.78rem}.grid{grid-template-columns:repeat(5,1fr);gap:3px;width:min(9.5rem,46vw);margin:.45rem auto 0;display:grid}.grid button{aspect-ratio:1;cursor:pointer;background:var(--ink-mid);border:none;padding:0}.grid button[data-square=quick]{background:var(--ink)}.grid button[data-square=missed]{background:var(--red)}.grid button span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.bonus{border:1.5px dashed var(--red);max-width:26rem;color:var(--red);margin:1.1rem auto 0;padding:.9rem 1rem;font-size:.95rem;line-height:1.5}.report{text-align:left;width:min(34rem,100%);margin-inline:auto}.report-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:flex-end;gap:1rem;padding-bottom:.7rem;display:flex}.report-head h2{font-family:var(--typed);letter-spacing:.2em;font-size:.8rem;font-weight:700}.term{text-align:right}.term b{font-family:var(--display);letter-spacing:-.03em;font-size:clamp(2.2rem,10vw,3.4rem);line-height:.85;display:block}.term span{color:var(--ink-2);letter-spacing:.08em;font-size:.72rem}.classes{border-collapse:collapse;width:100%;margin-top:.3rem;font-size:.85rem}.classes th,.classes td{border-bottom:1px solid var(--ink-2);text-align:right;padding:.65rem .2rem}.classes th{color:var(--ink-2);letter-spacing:.1em;font-size:.68rem;font-weight:400}.classes th:first-child,.classes td:first-child{text-align:left}.classes td b{font-family:var(--display);font-size:1.15rem}.classes td[data-none]{color:var(--ink-2)}.tally{justify-content:space-between;gap:1rem;margin-top:1rem;font-size:.8rem;display:flex}.tally div b{font-family:var(--display);font-size:1.6rem;line-height:1;display:block}.tally div span{color:var(--ink-2);letter-spacing:.08em;font-size:.68rem}.chips{flex-wrap:wrap;gap:4px;margin-top:1rem;display:flex}.chips i{font-family:var(--display);text-align:center;border:1.5px solid var(--ink-2);min-width:2.1em;color:var(--ink);padding:.3em .2em;font-size:.78rem;font-style:normal;font-weight:800}.chips i[data-mode=honors]{border-color:var(--red);color:var(--red)}.form{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:.5rem;margin-top:1.6rem;display:flex}.field{font-family:var(--typed);min-width:min(20rem,80vw);color:var(--pencil);border:none;border-bottom:2px solid var(--ink);background:0 0;padding:.8rem 1rem;font-size:1rem}.field::placeholder{color:var(--ink-2)}.field:focus-visible{border-bottom-color:var(--red);box-shadow:0 2px 0 var(--red);outline:none}.fine{max-width:26rem;color:var(--ink-mid);margin:.9rem auto 0;font-size:.75rem;line-height:1.6}.fine a{color:inherit;text-underline-offset:2px}.fine[data-error]{color:var(--red)}.account .standfirst{text-wrap:balance}.account .standfirst a{color:var(--red);word-break:break-all}.account .linkish{color:var(--ink-mid)}.account .linkish:hover{color:var(--ink)}.account .linkish[data-danger]{color:var(--red)}.account .nav{margin-top:1.6rem}.toggle{cursor:pointer;justify-content:center;align-items:center;gap:.6rem;margin-top:2.6rem;font-size:.85rem;display:flex}.toggle input{width:1.1rem;height:1.1rem;accent-color:var(--red)}.erase{margin-top:2.4rem}.footer{text-align:center;color:var(--ink-2);letter-spacing:.03em;font-size:.75rem}.keypad{grid-template-columns:repeat(3,1fr);gap:5px;max-width:20rem;margin:0 auto;display:none}.keypad button{font-family:var(--display);color:var(--ink);border:1.5px solid var(--ink-2);cursor:pointer;background:0 0;padding:.5rem;font-size:1.6rem;font-weight:700}.keypad button:active{background:var(--ink);color:var(--paper)}@media (pointer:coarse){.keypad[data-playing]{display:grid}.keypad[data-playing]+.footnote{display:none}}:focus-visible{outline:2.5px solid var(--red);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:1ms!important;animation-iteration-count:1!important}.caret{opacity:1}}
