@import"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,600;12..96,700;12..96,800&family=Inter+Tight:wght@400;450;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{color-scheme:dark;--well:#0E1F1D;--ink:#0A1917;--ink2:#132724;--ink3:#1C332F;--line:#284A43;--line2:#38635A;--fg:#E9F3F0;--prose:#C4D8D2;--dim:#A5BCB6;--faint:#829E98;--brass:#E3AC60;--cyan:#54ACD4;--rose:#E3768E;--jade:#66C797;--violet:#A497E4;--ink-btn:#21180A;--code-fg:color-mix(in oklab, var(--cyan) 18%, var(--fg));--comment:#7B9590;--lift:inset 0 1px 0 rgb(255 255 255 / .05);--e1:0 1px 2px rgb(0 0 0 / .34);--e2:0 6px 20px -6px rgb(0 0 0 / .48);--e3:0 28px 74px -14px rgb(0 0 0 / .66);--glass:color-mix(in oklab, var(--ink) 72%, transparent);--scrim:color-mix(in oklab, #04100E 82%, transparent);--hover:rgb(255 255 255 / .035);--frame:#FFFFFF}:root[data-theme=light]{color-scheme:light;--well:#E8EFEB;--ink:#F0F4F2;--ink2:#FFFFFF;--ink3:#E2EBE6;--line:#CBD9D3;--line2:#A7BDB5;--fg:#0B1A18;--prose:#23342F;--dim:#3D524C;--faint:#546B64;--brass:#855510;--cyan:#196080;--rose:#A62A48;--jade:#146245;--violet:#5544B0;--ink-btn:#FFF7EA;--code-fg:color-mix(in oklab, var(--cyan) 14%, var(--fg));--comment:#5E7A72;--lift:none;--e1:0 1px 2px rgb(16 40 34 / .07);--e2:0 6px 20px -6px rgb(16 40 34 / .14);--e3:0 28px 70px -16px rgb(16 40 34 / .24);--glass:color-mix(in oklab, var(--ink) 74%, transparent);--scrim:color-mix(in oklab, var(--fg) 46%, transparent);--hover:rgb(11 26 24 / .04);--frame:#FFFFFF}:root,:root[data-theme=light]{--wash-brass:color-mix(in oklab, var(--brass) 12%, transparent);--wash-cyan:color-mix(in oklab, var(--cyan) 10%, transparent);--wash-rose:color-mix(in oklab, var(--rose) 11%, transparent);--wash-jade:color-mix(in oklab, var(--jade) 11%, transparent);--wash-violet:color-mix(in oklab, var(--violet) 12%, transparent);--edge-brass:color-mix(in oklab, var(--brass) 45%, transparent);--edge-cyan:color-mix(in oklab, var(--cyan) 40%, transparent);--edge-rose:color-mix(in oklab, var(--rose) 42%, transparent);--edge-jade:color-mix(in oklab, var(--jade) 40%, transparent);--edge-violet:color-mix(in oklab, var(--violet) 42%, transparent);--on-brass:color-mix(in oklab, var(--brass) 55%, var(--fg));--on-cyan:color-mix(in oklab, var(--cyan) 45%, var(--fg));--on-rose:color-mix(in oklab, var(--rose) 45%, var(--fg));--on-jade:color-mix(in oklab, var(--jade) 45%, var(--fg));--on-violet:color-mix(in oklab, var(--violet) 45%, var(--fg));--accent:var(--line2);--wash:transparent;--edge:var(--line);--on-accent:var(--prose);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:26px;--s7:34px;--s8:44px;--s9:60px;--s10:84px;--r1:5px;--r2:8px;--r3:11px;--r4:15px;--r5:20px;--rp:999px;--t1:.11s;--t2:.19s;--t3:.34s;--ease:cubic-bezier(.2,.7,.3,1);--ease-out:cubic-bezier(.16,1,.3,1);--disp:"Bricolage Grotesque",system-ui,sans-serif;--body:"Inter Tight",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;--measure:68ch}.accent-brass{--accent:var(--brass);--wash:var(--wash-brass);--edge:var(--edge-brass);--on-accent:var(--on-brass) }.accent-cyan{--accent:var(--cyan);--wash:var(--wash-cyan);--edge:var(--edge-cyan);--on-accent:var(--on-cyan) }.accent-rose{--accent:var(--rose);--wash:var(--wash-rose);--edge:var(--edge-rose);--on-accent:var(--on-rose) }.accent-jade{--accent:var(--jade);--wash:var(--wash-jade);--edge:var(--edge-jade);--on-accent:var(--on-jade) }.accent-violet{--accent:var(--violet);--wash:var(--wash-violet);--edge:var(--edge-violet);--on-accent:var(--on-violet) }*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.62;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv05" 1,"ss01" 1;transition:background var(--t2) var(--ease),color var(--t2) var(--ease)}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent}a{color:var(--cyan);text-underline-offset:2px;text-decoration-thickness:1px}h1,h2,h3{font-family:var(--disp);letter-spacing:-.025em;margin:0;font-weight:700;text-wrap:balance}code,pre,input,textarea{font-family:var(--mono)}::selection{background:color-mix(in oklab,var(--brass) 30%,transparent)}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:var(--r1)}.btn:focus-visible,.opt:focus-visible,.tokbtn:focus-visible,.field input:focus-visible{outline-offset:3px}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--rp);border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--line2);background-clip:content-box}.app{display:flex;min-height:100vh;min-height:100dvh}.sidebar{width:280px;flex:none;border-right:1px solid var(--line);padding:var(--s5) var(--s4) var(--s4);height:100vh;height:100dvh;position:sticky;top:0;display:flex;flex-direction:column;gap:var(--s4);background:var(--ink);z-index:20}.main{flex:1;min-width:0;max-width:1020px;padding:var(--s7) var(--s8) var(--s10)}.brandbtn{display:block;width:100%;text-align:left;padding:var(--s1) var(--s2);border-radius:var(--r2);transition:background var(--t1) var(--ease)}.brandbtn:hover{background:var(--ink2)}.brand{font-family:var(--disp);font-weight:800;font-size:22px;letter-spacing:-.045em;line-height:.96;color:var(--fg)}.brand span{color:var(--brass)}.brand-sub{font-size:11px;color:var(--faint);letter-spacing:.16em;text-transform:uppercase;margin-top:var(--s2);font-family:var(--mono)}.cta{display:block;width:100%;text-align:left;padding:var(--s3) var(--s4);border-radius:var(--r3);position:relative;overflow:hidden;--accent:var(--brass);--wash:var(--wash-brass);--edge:var(--edge-brass);background:linear-gradient(var(--wash),transparent 70%),var(--ink2);border:1px solid var(--edge);box-shadow:var(--lift),var(--e1);transition:transform var(--t2) var(--ease),box-shadow var(--t2) var(--ease),border-color var(--t2) var(--ease)}.cta:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--accent) 0%,transparent);transition:box-shadow var(--t2) var(--ease)}button.cta:hover{transform:translateY(-1px);box-shadow:var(--lift),var(--e2)}button.cta:hover:after{box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--accent) 55%,transparent)}button.cta:active{transform:translateY(0)}.cta-kicker{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-family:var(--mono);font-weight:500}.cta-title{font-family:var(--disp);font-weight:700;font-size:15px;line-height:1.22;margin:var(--s2) 0 var(--s1);letter-spacing:-.02em;color:var(--fg)}.cta-sub{font-size:11px;color:var(--dim);font-family:var(--mono)}.cta-paused{--accent:var(--rose);--wash:var(--wash-rose);--edge:var(--edge-rose)}.cta-done{--accent:var(--jade);--wash:var(--wash-jade);--edge:var(--edge-jade);cursor:default}.sidenav{display:flex;flex-direction:column;gap:1px}.sideitem{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);width:100%;text-align:left;padding:var(--s2) var(--s3);border-radius:var(--r2);color:var(--dim);font-size:14px;transition:background var(--t1) var(--ease),color var(--t1) var(--ease)}.sideitem:hover{background:var(--ink2);color:var(--fg)}.sideitem.on{background:var(--ink3);color:var(--fg);font-weight:500}.sideitem.alert{color:var(--rose)}.sideitem-meta{font-size:11px;color:var(--faint);font-family:var(--mono)}.sideitem.alert .sideitem-meta{color:var(--rose)}.sideprogress{flex:1;min-height:0;display:flex;flex-direction:column}.sidehead{display:flex;justify-content:space-between;align-items:baseline;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-bottom:var(--s2);font-family:var(--mono)}.sidehead-num{letter-spacing:0;font-variant-numeric:tabular-nums}.tracklist{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:1px;margin:0 calc(var(--s2) * -1);padding:0 var(--s2);-webkit-mask-image:linear-gradient(transparent,#000 10px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(transparent,#000 10px,#000 calc(100% - 14px),transparent)}.trackrow{display:grid;grid-template-columns:1fr auto;gap:3px var(--s2);width:100%;text-align:left;padding:var(--s2) var(--s2);border-radius:var(--r1);transition:background var(--t1) var(--ease)}.trackrow:hover{background:var(--ink2)}.trackrow.on{background:var(--ink3)}.trackrow.empty .trackrow-name{color:var(--faint)}.trackrow-name{font-size:13px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trackrow.on .trackrow-name{color:var(--fg);font-weight:500}.trackrow-num{font-family:var(--mono);font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums}.trackbar{grid-column:1 / -1;height:3px;background:var(--line);border-radius:var(--rp);overflow:hidden;display:block}.trackbar i{display:block;height:100%;border-radius:var(--rp);background:var(--accent);transform-origin:left center;transform:scaleX(var(--fill,0));transition:transform var(--t3) var(--ease)}.meter{height:5px;background:var(--ink3);border-radius:var(--rp);overflow:hidden;margin-bottom:var(--s6)}.meter i{display:block;height:100%;background:var(--brass);border-radius:var(--rp);transform-origin:left center;transform:scaleX(var(--fill,0));transition:transform var(--t3) var(--ease)}.railbar{display:flex;flex-direction:column;gap:var(--s3)}.railfoot{display:flex;gap:var(--s2);align-items:center}.palettehint{display:flex;align-items:center;gap:var(--s2);flex:1;min-width:0;padding:var(--s2) var(--s3);border-radius:var(--r2);border:1px solid var(--line);color:var(--faint);font-size:13px;transition:border-color var(--t1) var(--ease),color var(--t1) var(--ease)}.palettehint:hover{border-color:var(--line2);color:var(--dim)}.palettehint span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}kbd{font-family:var(--mono);font-size:10px;border:1px solid var(--line);border-radius:var(--r1);padding:1px 5px;background:var(--ink2);color:var(--dim);line-height:1.5}.themeswitch{display:flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:var(--r2);background:var(--ink2);flex:none}.themeswitch button{display:grid;place-items:center;width:26px;height:24px;border-radius:var(--r1);color:var(--faint);transition:background var(--t1) var(--ease),color var(--t1) var(--ease)}.themeswitch button:hover{color:var(--dim);background:var(--hover)}.themeswitch button.on{background:var(--ink3);color:var(--brass)}.themeswitch svg{width:14px;height:14px;display:block}.acct{border:1px solid var(--line);border-radius:var(--r3);padding:var(--s3);background:var(--ink2);box-shadow:var(--lift)}.acct-row{display:grid;grid-template-columns:7px minmax(0,1fr) auto;align-items:center;gap:var(--s3)}.acct-dot{width:7px;height:7px;border-radius:var(--rp);background:var(--faint);align-self:start;margin-top:5px}.acct-dot.live{background:var(--jade);box-shadow:0 0 0 3px var(--wash-jade)}.acct-who{min-width:0;font-size:13px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-where{font-size:11px;color:var(--faint);font-family:var(--mono);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-act{font-size:12px;color:var(--cyan);padding:2px 0;white-space:nowrap;align-self:center}.acct-act:hover{text-decoration:underline}.trackgrid{display:flex;flex-direction:column;gap:var(--s2);margin-top:var(--s6)}.trackcard{border:1px solid var(--line);border-radius:var(--r4);overflow:hidden;background:linear-gradient(var(--wash),transparent 120px),var(--ink2);box-shadow:var(--lift),var(--e1);transition:border-color var(--t2) var(--ease),box-shadow var(--t2) var(--ease)}.trackcard:hover{border-color:var(--edge)}.trackcard.open{border-color:var(--edge);box-shadow:var(--lift),var(--e2)}.trackcard-head{display:block;width:100%;text-align:left;padding:var(--s4) var(--s5);transition:background var(--t1) var(--ease)}.trackcard-head:hover{background:var(--hover)}.trackcard-title{font-family:var(--disp);font-weight:700;font-size:16px;letter-spacing:-.02em;display:flex;align-items:center;gap:var(--s2);color:var(--fg)}.chev{color:var(--accent);width:11px;height:11px;flex:none;display:block;transition:transform var(--t2) var(--ease)}.chev svg{width:11px;height:11px;display:block}.trackcard.open .chev{transform:rotate(90deg)}.trackcard-one{color:var(--dim);font-size:14px;margin:var(--s1) 0 var(--s3);padding-left:var(--s5);max-width:74ch}.trackcard-rec{font-family:var(--mono);font-size:11px;color:var(--faint);padding-left:var(--s5);margin:calc(-1 * var(--s2)) 0 var(--s3);max-width:74ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trackcard-stats{display:flex;align-items:center;gap:var(--s3);padding-left:var(--s5)}.trackcard-stats .trackbar{flex:1;max-width:230px;height:4px}.trackcard-num{font-family:var(--mono);font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}.pill{font-family:var(--mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;border:1px solid var(--line);border-radius:var(--rp);padding:2px var(--s2);color:var(--faint);line-height:1.6;white-space:nowrap}.pill-brass{border-color:var(--edge-brass);color:var(--brass);background:var(--wash-brass)}.lessonlist{list-style:none;margin:0;padding:0 var(--s5) var(--s3)}.lessonrow{display:block;border-top:1px solid color-mix(in oklab,var(--line) 55%,transparent)}.lessonrow>button,.lessonrow.inert{display:grid;grid-template-columns:16px 24px 1fr auto;gap:var(--s3);align-items:baseline;width:100%;text-align:left;padding:var(--s2) var(--s1);font-size:14px;border-radius:var(--r1);transition:background var(--t1) var(--ease)}.lessonrow>button:hover{background:var(--hover)}.lessonrow.inert{cursor:default}.lessonrow-mark{font-size:11px;color:var(--faint);text-align:center;font-family:var(--mono)}.lessonrow-mark.mastered{color:var(--brass)}.lessonrow-mark.understood{color:var(--jade)}.lessonrow-mark.current{color:var(--brass);font-size:13px}.lessonrow-n{font-family:var(--mono);font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}.lessonrow-title{color:var(--dim)}.lessonrow-min{font-family:var(--mono);font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums}.lessonrow.current .lessonrow-title{color:var(--brass);font-weight:600}.lessonrow.understood .lessonrow-title,.lessonrow.mastered .lessonrow-title{color:var(--fg)}.lessonrow.locked .lessonrow-title{color:var(--faint)}.lessonrow.unwritten .lessonrow-title{color:var(--faint);font-style:italic}.palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);backdrop-filter:blur(3px) saturate(.8);-webkit-backdrop-filter:blur(3px) saturate(.8);display:flex;justify-content:center;align-items:flex-start;padding:14vh var(--s4) var(--s4);z-index:60;animation:fade var(--t2) var(--ease)}.palette{width:min(640px,100%);background:var(--ink2);border:1px solid var(--line2);border-radius:var(--r5);box-shadow:var(--e3),var(--lift);overflow:hidden;animation:rise var(--t3) var(--ease-out)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(10px) scale(.99)}}.palette-input{display:block;width:100%;padding:var(--s5);font-size:15px;background:transparent;border:none;border-bottom:1px solid var(--line);color:var(--fg);outline:none;font-family:var(--body)}.palette-input::placeholder{color:var(--faint)}.palette-list{max-height:46vh;overflow-y:auto;padding:var(--s2)}.palette-empty{padding:var(--s6);color:var(--faint);font-size:14px;text-align:center}.hit{display:grid;grid-template-columns:116px 1fr;grid-template-rows:auto auto;gap:0 var(--s3);width:100%;text-align:left;padding:var(--s2) var(--s3);border-radius:var(--r2);transition:background var(--t1) var(--ease)}.hit.on{background:var(--ink3)}.hit.blocked{cursor:default}.hit.blocked .hit-title{color:var(--faint)}.hit-kind{grid-row:1 / -1;align-self:center;font-family:var(--mono);font-size:10px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hit.on .hit-kind{color:var(--brass)}.hit-title{font-size:14px;color:var(--fg)}.hit-sub{font-size:12px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hit.blocked .hit-sub{color:var(--rose)}.palette-foot{display:flex;gap:var(--s5);padding:var(--s3) var(--s4);border-top:1px solid var(--line);font-size:11px;color:var(--faint);background:var(--ink)}.palette-foot kbd{margin-right:3px}.eyebrow{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);font-family:var(--mono);font-weight:500}.h1{font-size:clamp(30px,4.2vw,42px);line-height:1.04;margin:var(--s3) 0 var(--s4);letter-spacing:-.035em;font-weight:700}.h2{font-size:22px;margin:var(--s7) 0 var(--s3);letter-spacing:-.028em}.lede{color:var(--dim);max-width:66ch;font-size:16px;line-height:1.6}.p{color:var(--prose);margin:0 0 var(--s4);max-width:var(--measure)}.p code,.ul code,code.ic{color:var(--cyan);font-size:13px;background:color-mix(in oklab,var(--cyan) 9%,transparent);padding:1px 5px;border-radius:var(--r1)}.callout code.ic,.opt code.ic,.test code.ic,.diag code.ic{background:none;color:inherit;padding:0}.mcode{font-size:11.5px;color:var(--faint);font-weight:400;margin-top:3px;white-space:pre}code.fence{display:block;white-space:pre-wrap;overflow-x:auto;font-size:12.5px;color:var(--prose);background:var(--well);padding:var(--s3) var(--s4);margin:var(--s3) 0;border-radius:var(--r1)}.hint{font-size:14px;color:var(--faint);margin:0 0 var(--s3);max-width:var(--measure)}.row{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;margin-top:var(--s3)}.ul{margin:0 0 var(--s5);padding-left:var(--s5);color:var(--prose);max-width:var(--measure)}.ul li{margin-bottom:var(--s2)}.ul li::marker{color:var(--faint)}.cap{font-size:11px;color:var(--faint);font-family:var(--mono);margin:0 0 var(--s5)}.card{border:1px solid var(--line);border-radius:var(--r4);padding:var(--s5);margin-bottom:var(--s5);box-shadow:var(--lift),var(--e1);background:linear-gradient(var(--wash),transparent 140px),var(--ink2)}.card .eyebrow{color:var(--accent)}.card>.card{box-shadow:none}pre.code{position:relative;background:linear-gradient(90deg,var(--wash),transparent 72px),var(--well);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s4) var(--s5);overflow-x:auto;font-size:13px;line-height:1.68;margin:0 0 var(--s2);color:var(--code-fg);-moz-tab-size:2;tab-size:2;--accent:var(--cyan);--wash:var(--wash-cyan)}pre.code:before{content:"";position:absolute;left:0;top:var(--s3);bottom:var(--s3);width:2px;border-radius:0 var(--rp) var(--rp) 0;background:var(--accent);opacity:.5}pre.code.brass{--accent:var(--brass);--wash:var(--wash-brass)}pre.code.rose{--accent:var(--rose);--wash:var(--wash-rose)}pre.code.violet{--accent:var(--violet);--wash:var(--wash-violet)}pre.code.jade{--accent:var(--jade);--wash:var(--wash-jade)}pre.code.cyan{--accent:var(--cyan);--wash:var(--wash-cyan)}.callout{border-radius:var(--r2);padding:var(--s3) var(--s4);margin:0 0 var(--s5);font-size:14px;max-width:var(--measure);border:1px solid var(--edge);background:var(--wash);color:var(--on-accent)}.callout.warn{--accent:var(--rose);--wash:var(--wash-rose);--edge:var(--edge-rose);--on-accent:var(--on-rose)}.callout.win{--accent:var(--jade);--wash:var(--wash-jade);--edge:var(--edge-jade);--on-accent:var(--on-jade)}.callout.note{--accent:var(--cyan);--wash:var(--wash-cyan);--edge:var(--edge-cyan);--on-accent:var(--on-cyan)}.callout.deep{--accent:var(--violet);--wash:var(--wash-violet);--edge:var(--edge-violet);--on-accent:var(--on-violet)}.callout b{font-family:var(--disp);color:var(--accent);letter-spacing:-.01em}.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin-bottom:var(--s5)}.splitcol{border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;background:var(--well)}.splitcol h4{margin:0;padding:var(--s2) var(--s3);font-family:var(--disp);font-size:12px;background:var(--ink3);letter-spacing:.02em;border-bottom:1px solid var(--line)}.splitcol.bad h4{color:var(--rose)}.splitcol.good h4{color:var(--jade)}.splitcol pre.code{border:none;border-radius:0;margin:0;background:var(--well)}.splitcol pre.code:before{display:none}.opt{display:block;width:100%;text-align:left;padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--r3);margin-bottom:var(--s2);font-size:14px;background:var(--ink2);color:var(--prose);transition:border-color var(--t1) var(--ease),background var(--t1) var(--ease),transform var(--t1) var(--ease)}.opt:hover:not(:disabled):not(.static){border-color:var(--line2);background:var(--ink3);transform:translate(2px)}.opt:active:not(:disabled):not(.static){transform:translate(0)}.opt.static{cursor:default}.opt.correct{border-color:var(--edge-jade);background:var(--wash-jade);color:var(--on-jade)}.opt.wrong{border-color:var(--edge-rose);background:var(--wash-rose);color:var(--on-rose)}.opt:disabled{cursor:default}.tag{font-size:11px;margin-left:var(--s2);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase}.tag.jade{color:var(--jade)}.tag.rose{color:var(--rose)}.q{margin-bottom:var(--s6);max-width:var(--measure)}.q-text{font-weight:500;margin-bottom:var(--s3);color:var(--fg);max-width:var(--measure)}.explain{color:var(--dim);font-size:13px;margin-top:var(--s2);max-width:var(--measure)}.btn{background:var(--ink3);border:1px solid var(--line);padding:9px var(--s4);border-radius:var(--r2);font-size:14px;font-weight:500;color:var(--fg);transition:border-color var(--t1) var(--ease),background var(--t1) var(--ease),transform var(--t1) var(--ease),box-shadow var(--t1) var(--ease)}.btn:hover:not(:disabled){border-color:var(--line2);transform:translateY(-1px);box-shadow:var(--e1)}.btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.btn:disabled{color:var(--faint);background:transparent;border-color:var(--line);cursor:default;box-shadow:none}.btn-primary:disabled{background:color-mix(in oklab,var(--brass) 22%,transparent);border-color:transparent;color:var(--dim)}.btn-primary{background:var(--brass);color:var(--ink-btn);border-color:var(--brass);font-weight:600}.btn-primary:hover:not(:disabled){border-color:var(--brass);background:color-mix(in oklab,var(--brass) 88%,var(--fg))}.btn-ghost{border-color:transparent;background:transparent;color:var(--dim)}.btn-ghost:hover:not(:disabled){color:var(--fg);background:var(--hover);border-color:transparent;box-shadow:none}.tokbtn{font-family:var(--mono);font-size:13px;padding:7px var(--s3);border:1px solid var(--line);border-radius:var(--r2);background:var(--ink2);margin:0 var(--s2) var(--s2) 0;color:var(--dim);transition:border-color var(--t1) var(--ease),background var(--t1) var(--ease),color var(--t1) var(--ease)}.tokbtn:hover{border-color:var(--line2);color:var(--fg)}.tokbtn.on{border-color:var(--edge-brass);background:var(--wash-brass);color:var(--brass)}.rail{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap;margin-bottom:var(--s6)}.step{width:28px;height:28px;border-radius:var(--rp);border:1px solid var(--line);font-family:var(--mono);font-size:11px;display:flex;align-items:center;justify-content:center;color:var(--faint);flex:none;position:relative;transition:border-color var(--t2) var(--ease),color var(--t2) var(--ease),background var(--t2) var(--ease),transform var(--t2) var(--ease)}.step:hover:not(:disabled){border-color:var(--line2);color:var(--fg);transform:translateY(-1px)}.step.done{border-color:var(--edge-jade);color:var(--jade);background:var(--wash-jade)}.step.on{border-color:var(--brass);color:var(--brass);background:var(--wash-brass);box-shadow:0 0 0 3px var(--wash-brass)}.step.locked{color:var(--faint);border-color:color-mix(in oklab,var(--line) 60%,transparent);cursor:default}.step-pct{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}.lesson-back{padding:var(--s1) 0;margin-bottom:var(--s3);font-size:14px}.lesson-rule{border:none;border-top:1px solid var(--line);margin:var(--s7) 0 var(--s6)}.sourcecard{margin-top:var(--s7)}.srclink{display:block;color:var(--cyan);text-decoration:none;font-size:13px;padding:var(--s2) 0;border-bottom:1px solid color-mix(in oklab,var(--line) 60%,transparent);font-family:var(--mono);transition:color var(--t1) var(--ease),transform var(--t1) var(--ease)}.srclink:last-of-type{border-bottom:none}.srclink:before{content:"↗";color:var(--faint);margin-right:var(--s2);display:inline-block;transition:transform var(--t1) var(--ease)}.srclink:hover{color:var(--fg);transform:translate(3px)}.srclink:hover:before{transform:translate(1px,-1px);color:var(--cyan)}.sourcenote{font-size:12px;color:var(--faint);margin-top:var(--s3)}.slot{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin-bottom:var(--s4)}.varbox{border:1px solid var(--line);border-radius:var(--r2);padding:var(--s3);margin-bottom:var(--s2);background:var(--ink2);transition:border-color var(--t3) var(--ease),background var(--t3) var(--ease),transform var(--t3) var(--ease)}.varbox.hot{border-color:var(--edge-brass);background:var(--wash-brass);transform:translate(3px)}.objcard{border:1px solid var(--line);border-radius:var(--r2);padding:var(--s3);margin-bottom:var(--s2);background:var(--well);transition:border-color var(--t3) var(--ease),box-shadow var(--t3) var(--ease)}.objcard.hot{border-color:var(--edge-brass);box-shadow:0 0 0 3px var(--wash-brass)}.kv{font-family:var(--mono);font-size:13px;padding:2px 0;color:var(--prose)}.kv .k{color:var(--cyan)}.varname{font-family:var(--mono);font-size:13px}.varnote{font-size:12px;color:var(--faint);margin-top:3px}.heapid{font-family:var(--mono);font-size:11px;color:var(--brass);margin-bottom:var(--s2);letter-spacing:.04em}.emptyslot{color:var(--faint);font-size:13px;font-style:italic}.notebox{font-size:14px;color:var(--prose);max-width:var(--measure);white-space:pre-wrap}.codebox{background:var(--well);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s3) 0;margin-bottom:var(--s4);overflow-x:auto}.codeline{font-family:var(--mono);font-size:13px;line-height:1.8;padding:0 var(--s4);white-space:pre;border-left:2px solid transparent;color:var(--faint);transition:background var(--t2) var(--ease),color var(--t2) var(--ease)}.codeline.past{color:var(--dim)}.codeline.now{background:var(--wash-brass);border-left-color:var(--brass);color:var(--on-brass)}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);padding:var(--s2) var(--s3);border-bottom:1px solid var(--line);font-weight:500}.tbl td{padding:var(--s2) var(--s3);border-bottom:1px solid color-mix(in oklab,var(--line) 55%,transparent);font-family:var(--mono);font-size:13px;color:var(--prose)}.tbl tr:last-child td{border-bottom:none}.tbl .k{color:var(--faint)}.tbl .v{color:var(--jade)}.tbl .v-bad{color:var(--rose)}.inp{background:var(--well);border:1px solid var(--line);border-radius:var(--r2);color:var(--code-fg);padding:var(--s3);font-size:13px;width:100%;transition:border-color var(--t1) var(--ease),box-shadow var(--t1) var(--ease)}.inp:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--wash-brass)}.editorwrap{border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;margin:var(--s4) 0 var(--s1);background:var(--well);transition:border-color var(--t1) var(--ease),box-shadow var(--t1) var(--ease)}.editorwrap .cm-editor{max-height:520px}.editorwrap .cm-editor.cm-focused{outline:none}.editorwrap:focus-within{border-color:var(--brass);box-shadow:0 0 0 3px var(--wash-brass)}.editor{background:var(--well);border:1px solid var(--line);border-radius:var(--r3);width:100%;color:var(--code-fg);padding:var(--s4);font-size:13px;line-height:1.6;min-height:170px;resize:vertical;white-space:pre;overflow-x:auto;transition:border-color var(--t1) var(--ease),box-shadow var(--t1) var(--ease)}.editor:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--wash-brass)}.test{display:grid;grid-template-columns:auto 1fr;gap:var(--s3);align-items:baseline;padding:var(--s2) var(--s3);border-radius:var(--r2);font-size:13px;margin-bottom:var(--s2);border:1px solid var(--line);background:var(--ink2)}.test.pass{border-color:var(--edge-jade);background:var(--wash-jade)}.test.fail{border-color:var(--edge-rose);background:var(--wash-rose)}.test-mark{font-family:var(--mono);font-size:10px;letter-spacing:.1em;font-weight:600}.test.pass .test-mark{color:var(--jade)}.test.fail .test-mark{color:var(--rose)}.diff{font-family:var(--mono);font-size:12px;color:var(--dim);margin-top:var(--s1);white-space:pre-wrap;display:grid;grid-template-columns:auto 1fr;gap:2px var(--s2)}.diff dt{color:var(--faint)}.diff dd{margin:0;color:var(--prose)}.diff dd.got{color:var(--rose)}.diff dd.want{color:var(--jade)}.domsplit{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin-bottom:var(--s1)}.domsplit pre{margin-bottom:0}.domframe{width:100%;min-height:150px;border:1px solid var(--line2);border-radius:var(--r2);background:var(--frame);display:block;color-scheme:light}.diag{display:grid;grid-template-columns:auto auto 1fr;gap:0 var(--s3);align-items:baseline;font-family:var(--mono);font-size:13px;padding:var(--s2) var(--s3);border-radius:var(--r2);margin-bottom:var(--s2);border:1px solid var(--edge-rose);background:var(--wash-rose);color:var(--on-rose)}.diag-code{color:var(--rose);font-weight:600}.diag-line{color:var(--faint)}.fam{display:inline-block;font-family:var(--mono);font-size:11px;padding:2px var(--s2);border-radius:var(--rp)}.fam.prim{background:var(--wash-jade);color:var(--jade)}.fam.obj{background:var(--wash-violet);color:var(--violet)}.authpage{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--ink)}.authbar{display:flex;align-items:center;gap:var(--s4);padding:var(--s5) var(--s7);border-bottom:1px solid color-mix(in oklab,var(--line) 55%,transparent)}.authbar .brand{font-size:19px}.authbar-spacer{flex:1}.authgrid{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(380px,420px);grid-template-rows:auto 1fr;grid-template-areas:"head rule form" "body rule form";max-width:1140px;width:100%;margin:0 auto;align-items:start}.authhead{grid-area:head;padding:var(--s7) var(--s8) 0 var(--s7)}.authbody{grid-area:body;padding:var(--s5) var(--s8) var(--s8) var(--s7)}.authmargin{grid-area:form}.authgrid>.authrule{grid-area:rule}.authgrid>.authrule{background:linear-gradient(transparent,var(--line2) 10%,var(--line2) 90%,transparent);width:1px;align-self:stretch}.authhead .h1{margin:0 0 var(--s4);max-width:19ch}.authhead .lede{margin:0}.termlist{list-style:none;margin:0;padding:0;max-width:var(--measure)}.term{display:grid;grid-template-columns:auto 1fr;gap:var(--s4);padding:var(--s3) 0;border-top:1px solid color-mix(in oklab,var(--line) 55%,transparent)}.term-mark{color:var(--faint);padding-top:4px;display:block;width:12px;height:12px}.term-mark svg{width:12px;height:12px;display:block}.term.yes{--accent:var(--jade)}.term.no{--accent:var(--rose)}.term.yes .term-mark{color:var(--jade)}.term.no .term-mark{color:var(--rose)}.term-title{font-family:var(--disp);font-weight:600;font-size:15px;color:var(--fg);letter-spacing:-.015em;margin-bottom:3px}.term-body{color:var(--prose);font-size:14px;line-height:1.6}.term-body b{color:var(--fg);font-weight:600}.termfoot{display:flex;gap:var(--s8);flex-wrap:wrap;margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line)}.termstat{display:flex;flex-direction:column;gap:2px}.termstat-n{font-family:var(--disp);font-size:26px;font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--fg);font-variant-numeric:tabular-nums}.termstat-u{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}.authmargin{position:sticky;top:0;padding:var(--s8) var(--s7) var(--s8) var(--s6)}.authform{display:flex;flex-direction:column;gap:var(--s4)}.authform-head{margin-bottom:var(--s1)}.authform-title{font-family:var(--disp);font-size:22px;font-weight:700;letter-spacing:-.03em;color:var(--fg);margin:var(--s2) 0 var(--s1)}.authform-sub{font-size:14px;color:var(--faint);line-height:1.5}.field{display:flex;flex-direction:column;gap:var(--s2)}.field label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:500}.field input{background:transparent;border:none;border-bottom:1px solid var(--faint);border-radius:0;color:var(--fg);font-family:var(--body);font-size:15px;padding:var(--s2) 0 var(--s3);width:100%;transition:border-color var(--t2) var(--ease)}.field input::placeholder{color:var(--faint)}.field input:focus{border-bottom-color:var(--brass);border-bottom-width:2px;padding-bottom:calc(var(--s3) - 1px)}.field input:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:var(--r1)}.field:focus-within label{color:var(--brass)}.field input:autofill,.field input:-webkit-autofill{-webkit-text-fill-color:var(--fg);-webkit-box-shadow:0 0 0 60px var(--ink) inset;caret-color:var(--fg)}.field.bad input{border-bottom-color:var(--rose)}.field.bad label{color:var(--rose)}.field-err{font-size:12px;color:var(--rose);font-family:var(--mono)}.field-hint{font-size:12px;color:var(--faint)}.pwmeter{display:flex;gap:3px;margin-top:var(--s1)}.pwmeter i{height:2px;flex:1;border-radius:var(--rp);background:var(--line);transition:background var(--t2) var(--ease)}.pwmeter i.on{background:var(--accent)}.pwmeter.weak{--accent:var(--rose)}.pwmeter.ok{--accent:var(--brass)}.pwmeter.good{--accent:var(--jade)}.pwmeter-label{font-family:var(--mono);font-size:11px;color:var(--faint);margin-top:var(--s1)}.authsubmit{width:100%;justify-content:center;display:flex;align-items:center;gap:var(--s2);padding:12px var(--s4);margin-top:var(--s1)}.authalt{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);flex-wrap:wrap;font-size:13px;color:var(--faint);padding-top:var(--s4);border-top:1px solid color-mix(in oklab,var(--line) 55%,transparent)}.linkbtn{color:var(--cyan);font-size:13px;padding:0;text-align:left}.linkbtn:hover{text-decoration:underline}.linkbtn.quiet{color:var(--faint)}.linkbtn.quiet:hover{color:var(--dim)}.authalt-pair{display:inline-flex;align-items:baseline;gap:.4em;flex-wrap:wrap}.notice-text{display:flex;flex-direction:column;gap:var(--s2)}.notice-text p{margin:0}.notice-acts{display:flex;flex-wrap:wrap;gap:var(--s4);margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid color-mix(in oklab,currentColor 18%,transparent)}.notice-acts .linkbtn{color:currentColor;font-family:var(--mono);font-size:12px;letter-spacing:.02em;text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,currentColor 40%,transparent)}.notice-acts .linkbtn:hover{text-decoration-color:currentColor}.spin{width:13px;height:13px;border-radius:var(--rp);flex:none;border:2px solid color-mix(in oklab,currentColor 25%,transparent);border-top-color:currentColor;animation:spin .62s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:80;display:flex;align-items:center;justify-content:center;padding:var(--s5);animation:fade var(--t2) var(--ease)}.modal{width:min(540px,100%);background:var(--ink2);border:1px solid var(--line2);border-radius:var(--r5);box-shadow:var(--e3),var(--lift);padding:var(--s7);animation:rise var(--t3) var(--ease-out);max-height:88vh;overflow-y:auto}.modal .h2{margin:var(--s2) 0 var(--s3);font-size:22px}.recs{list-style:none;display:grid;gap:var(--s2);margin:var(--s5) 0 0}.rec{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s4);align-items:center;border:1px solid var(--edge);background:linear-gradient(var(--wash),transparent 90px),var(--ink);border-radius:var(--r3);padding:var(--s3) var(--s4)}.rec-main{min-width:0}.rec-name{font-family:var(--disp);font-weight:700;font-size:14px;color:var(--fg);letter-spacing:-.01em}.rec-one{font-size:12px;color:var(--faint);margin:2px 0 var(--s2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rec .trackbar{height:4px}.rec-side{text-align:right;flex:none}.rec-num{font-family:var(--mono);font-size:14px;color:var(--fg);font-variant-numeric:tabular-nums}.rec-unit{font-family:var(--mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-bottom:2px}.rec-side .linkbtn{font-size:12px}.boot{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s3);color:var(--dim)}.boot-note{font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}.banner{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r3);border:1px solid var(--edge);background:var(--wash);color:var(--on-accent);font-size:14px;margin-bottom:var(--s5)}.banner.note{--accent:var(--cyan);--wash:var(--wash-cyan);--edge:var(--edge-cyan);--on-accent:var(--on-cyan)}.banner.warn{--accent:var(--rose);--wash:var(--wash-rose);--edge:var(--edge-rose);--on-accent:var(--on-rose)}.banner.win{--accent:var(--jade);--wash:var(--wash-jade);--edge:var(--edge-jade);--on-accent:var(--on-jade)}.banner-body{flex:1;min-width:0}.banner-close{color:var(--faint);font-size:16px;line-height:1;padding:var(--s1);border-radius:var(--r1)}.banner-close:hover{color:var(--fg);background:var(--hover)}@media (max-width:1000px){.app{flex-direction:column}.sidebar{width:auto;height:auto;position:sticky;top:0;border-right:none;border-bottom:1px solid var(--line);padding:var(--s3) var(--s4);gap:var(--s3);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.sidebar .brandbtn{width:auto}.brand{font-size:17px}.brand-sub{display:none}.railtop{display:flex;align-items:center;gap:var(--s4);width:100%}.railtop .cta{flex:1;padding:var(--s2) var(--s3)}.railtop .cta-title{font-size:14px;margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.railtop .cta-sub,.sideprogress{display:none}.sidenav{flex-direction:row;gap:var(--s1);flex-wrap:wrap}.sidenav .sideitem{width:auto;gap:var(--s2);padding:var(--s2) var(--s3)}.acct{border:none;background:none;padding:0;box-shadow:none;flex:1 1 auto;min-width:0}.acct-where{display:none}.acct-row{gap:var(--s2)}.railfoot,.palettehint{flex:0 0 auto}.railbar{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--s3);width:100%}.main{padding:var(--s6) var(--s5) var(--s9);max-width:none}.authgrid{grid-template-columns:1fr;grid-template-rows:none;grid-template-areas:"head" "form" "body"}.authgrid>.authrule{display:none}.authhead{padding:var(--s7) var(--s5) 0}.authbody{padding:var(--s5) var(--s5) var(--s7);border-top:1px solid color-mix(in oklab,var(--line) 55%,transparent);margin-top:var(--s5)}.authmargin{position:static;padding:var(--s5);max-width:460px;width:100%}.authbar{padding:var(--s4) var(--s5)}}@media (max-width:700px){.main{padding:var(--s5) var(--s4) var(--s9)}.h1{font-size:26px}.h2{font-size:19px}.lede{font-size:15px}.slot,.split,.domsplit{grid-template-columns:1fr}.card{padding:var(--s4);border-radius:var(--r3)}.trackcard-one,.trackcard-rec,.trackcard-stats{padding-left:0}.lessonlist{padding:0 var(--s4) var(--s3)}.lessonrow>button,.lessonrow.inert{grid-template-columns:14px 20px 1fr auto;gap:var(--s2)}.modal{padding:var(--s5)}.palette-backdrop{padding:8vh var(--s3) var(--s3)}.hit{grid-template-columns:1fr;gap:2px}.hit-kind{grid-row:auto}.authhead,.authbody,.authmargin{padding-left:var(--s4);padding-right:var(--s4)}.term{grid-template-columns:auto 1fr;gap:var(--s3)}.railtop .cta-title{font-size:13px}pre.code{padding:var(--s3) var(--s4);font-size:12px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}@media (prefers-contrast:more){:root,:root[data-theme=light]{--line:var(--line2)}.callout,.card,.opt,.test{border-width:1.5px}}@media print{:root,:root[data-theme=light],:root[data-theme=dark]{--well:#F2F5F3;--ink:#FFFFFF;--ink2:#FFFFFF;--ink3:#F0F4F2;--line:#C3D2CC;--line2:#8FA69E;--fg:#000000;--prose:#1A2622;--dim:#333F3B;--faint:#4A5C57;--brass:#6E4508;--cyan:#134C66;--rose:#8C1F3A;--jade:#0E4E37;--violet:#43348F;--lift:none;--e1:none;--e2:none;--e3:none;--hover:transparent;--wash-brass:transparent;--wash-cyan:transparent;--wash-rose:transparent;--wash-jade:transparent;--wash-violet:transparent}.sidebar,.palette-backdrop,.modal-backdrop,.themeswitch,.skip,.banner{display:none!important}.main{max-width:none;padding:0}.card,pre.code,.callout{break-inside:avoid;box-shadow:none}a[href^=http]:after{content:" (" attr(href) ")";font-size:10px;color:var(--faint)}}.skip{position:fixed;top:var(--s3);left:var(--s3);z-index:100;transform:translateY(-200%);background:var(--brass);color:var(--ink-btn);padding:10px var(--s4);border-radius:var(--r2);font-weight:600;font-size:14px;text-decoration:none;box-shadow:var(--e2);transition:transform var(--t2) var(--ease)}.skip:focus-visible{transform:translateY(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
