:root{--bg:#f6f4ee;--bg-2:#efece3;--surface:#fff;--ink:#14161a;--muted:#5b6070;--line:#e3e0d7;--accent:#3b5bff;--accent-ink:#fff;--accent-soft:#e6eaff;--signal:#ff6a3d;--mint:#12996f;--feature-bg:#14161a;--feature-ink:#f6f4ee;--amber:#c98a00;--code-bg:#0f1222;--code-ink:#d7dcf0;--code-dim:#6b7290;--code-line:#1d2238;--code-hl:#7c93ff29;--tok-kw:#c792ea;--tok-num:#ffb86b;--tok-str:#8ce0a8;--tok-fn:#82aaff;--radius:18px;--radius-sm:10px;--shadow:0 1px 2px #14161a0f, 0 12px 32px -12px #14161a2e;--gutter:16px;--maxw:1180px;--font-display:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--font-body:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b0d12;--bg-2:#10131a;--surface:#141821;--ink:#eceef3;--muted:#9aa1b2;--line:#242a37;--accent:#7c93ff;--accent-ink:#0b0d12;--accent-soft:#1b2242;--signal:#ff8a63;--mint:#3dd6a6;--feature-bg:#161c33;--feature-ink:#eceef3;--amber:#ffc94d;--shadow:0 1px 2px #0006, 0 16px 40px -16px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0b0d12;--bg-2:#10131a;--surface:#141821;--ink:#eceef3;--muted:#9aa1b2;--line:#242a37;--accent:#7c93ff;--accent-ink:#0b0d12;--accent-soft:#1b2242;--signal:#ff8a63;--mint:#3dd6a6;--feature-bg:#161c33;--feature-ink:#eceef3;--amber:#ffc94d;--shadow:0 1px 2px #0006, 0 16px 40px -16px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (width>=720px){:root{--gutter:32px}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:80px}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6;overflow-x:hidden}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0;line-height:1.05}p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:6px}.container{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline:auto}.mono,code,pre{font-family:var(--font-mono);font-variant-ligatures:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{white-space:nowrap;border:1.5px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 22px;font-size:15px;font-weight:600;transition:transform .15s,background .2s,border-color .2s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--ink);color:var(--bg)}.btn-primary:hover{background:var(--accent);color:var(--accent-ink)}.btn-ghost{border-color:var(--line);background:var(--surface)}.btn-ghost:hover{border-color:var(--ink)}.header{z-index:50;background:var(--bg);border-bottom:1px solid #0000;transition:border-color .2s;position:sticky;top:0}.header.scrolled{border-bottom-color:var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:16px;height:64px;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:10px;font-size:19px;font-weight:800;display:flex}.brand-mark{flex:none;width:32px;height:32px}.wordmark{display:block}.wordmark .fun{color:var(--accent);letter-spacing:-.01em}.brand small{font-family:var(--font-body);color:var(--muted);letter-spacing:0;margin-top:2px;font-size:12px;font-weight:500;line-height:1;display:block}.nav-links{gap:4px;display:none}.nav-links a{color:var(--muted);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:500;transition:color .15s,background .15s}.nav-links a:hover,.nav-links a.active{color:var(--ink);background:var(--bg-2)}.nav-links a.active{font-weight:600}.header-actions{align-items:center;gap:8px;display:flex}.header-actions .btn{min-height:40px;padding:0 16px;font-size:14px}.icon-btn{border:1px solid var(--line);background:var(--surface);border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.mobile-menu{padding:8px var(--gutter) 20px;border-bottom:1px solid var(--line);background:var(--bg);gap:4px;display:grid}.mobile-menu a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:52px;padding:0 4px;font-size:17px;font-weight:500;display:flex}.mobile-menu .btn{border-bottom:0;justify-content:center;margin-top:12px}@media (width>=1080px){.nav-links{display:flex}.menu-toggle,.mobile-menu{display:none!important}.nav-links a,.brand small{white-space:nowrap}}@media (width>=1080px) and (width<=1440px){.nav-links{gap:0}.nav-links a{padding:8px 9px}}.hero{padding:28px 0 64px;position:relative;overflow:hidden}.hero:before{content:"";background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.7;pointer-events:none;background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 70% 30%,#000 20%,#0000 75%);mask-image:radial-gradient(80% 60% at 70% 30%,#000 20%,#0000 75%)}.hero-grid>*{min-width:0}.hero-grid{align-items:center;gap:40px;display:grid;position:relative}.pill{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 6px;font-size:13px;font-weight:500;display:inline-flex}.pill-tag{background:var(--mint);color:#fff;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.hero h1{letter-spacing:-.035em;margin-top:20px;font-size:clamp(42px,11vw,84px);font-weight:800}.hero h1 .run{color:var(--accent);display:inline-block;position:relative}.hero h1 .run:after{content:"";background:var(--signal);transform-origin:0;border-radius:99px;height:.12em;animation:.9s cubic-bezier(.2,.8,.2,1) .4s both underline;position:absolute;bottom:.04em;left:2%;right:2%}@keyframes underline{0%{transform:scaleX(0)}}.hero-lede{max-width:540px;color:var(--muted);margin-top:20px;font-size:clamp(17px,2.2vw,19px)}.hero-ctas{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.hero-facts{color:var(--muted);flex-wrap:wrap;gap:10px 22px;margin-top:28px;padding:0;font-size:14px;list-style:none;display:flex}.hero-facts li{align-items:center;gap:7px;display:flex}.hero-facts svg{color:var(--mint)}@media (width<=479px){.hero-ctas .btn{flex:100%}}@media (width>=1000px){.hero{padding:56px 0 96px}.hero-grid{grid-template-columns:1.05fr 1fr;gap:56px}}.stepper{background:var(--code-bg);color:var(--code-ink);box-shadow:var(--shadow), 0 0 0 1px #ffffff0f inset;border-radius:22px;min-width:0;position:relative;overflow:hidden}.stepper-bar{border-bottom:1px solid var(--code-line);color:var(--code-dim);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:12px;display:flex}.dots{gap:6px;display:flex}.dots i{background:#2a3050;border-radius:50%;width:10px;height:10px}.dots i:first-child{background:#ff5f57}.dots i:nth-child(2){background:#febc2e}.dots i:nth-child(3){background:#28c840}.stepper-body{display:grid}.code{font-family:var(--font-mono);counter-reset:ln;margin:0;padding:12px 0;font-size:13px;line-height:1.75;overflow-x:auto}.code-line{white-space:pre;border-left:3px solid #0000;padding-right:16px;transition:background .25s,border-color .25s;display:block}.code-line:before{counter-increment:ln;content:counter(ln);text-align:right;width:36px;color:var(--code-dim);opacity:.6;padding-right:14px;display:inline-block}.code-line.active{background:var(--code-hl);border-left-color:#7c93ff}.code-line.active:before{color:#7c93ff;opacity:1}.tk-kw{color:var(--tok-kw)}.tk-num{color:var(--tok-num)}.tk-str{color:var(--tok-str)}.tk-fn{color:var(--tok-fn)}.tk-dim{color:var(--code-dim)}.state{border-top:1px solid var(--code-line);background:#ffffff05;gap:14px;padding:16px;display:grid}.state-label{letter-spacing:.08em;text-transform:uppercase;color:var(--code-dim);margin-bottom:8px;font-size:11px;font-weight:600}.vars{gap:10px;min-height:74px;display:flex}.var{background:#151a30;border:1px solid #2a3150;border-radius:12px;min-width:92px;padding:8px 12px 10px;animation:.3s cubic-bezier(.2,.8,.2,1) pop-in;position:relative}.var.changed{border-color:#ffb86b;box-shadow:0 0 0 3px #ffb86b26}.var-head{font-family:var(--font-mono);color:var(--code-dim);justify-content:space-between;gap:8px;font-size:11px;display:flex}.var-name{color:var(--code-ink);font-weight:600}.var-val{font-family:var(--font-mono);color:#fff;font-size:26px;font-weight:600;line-height:1.2}.var.changed .var-val{color:#ffb86b;animation:.35s bump}.var-addr{font-family:var(--font-mono);color:var(--code-dim);font-size:10px}.vars-empty{color:var(--code-dim);align-self:center;font-size:13px;font-style:italic}@keyframes pop-in{0%{opacity:0;transform:translateY(6px)scale(.96)}}@keyframes bump{40%{transform:scale(1.18)}}.console{font-family:var(--font-mono);min-height:40px;color:var(--tok-str);background:#090b16;border-radius:10px;padding:10px 12px;font-size:13px}.console .caret{vertical-align:-2px;background:var(--code-dim);width:7px;height:14px;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.explain{border-top:1px solid var(--code-line);min-height:48px;color:var(--code-ink);align-items:flex-start;gap:10px;padding:12px 16px;font-size:14px;line-height:1.5;display:flex}.explain-badge{color:#a9b8ff;font-family:var(--font-mono);background:#7c93ff2e;border-radius:6px;flex:none;margin-top:1px;padding:2px 8px;font-size:11px;font-weight:600}.explain code{font-family:var(--font-mono);color:#ffb86b;font-size:13px}.controls{align-items:center;gap:8px;padding:12px 16px 16px;display:flex}.ctl{width:44px;height:44px;color:var(--code-ink);background:#151a30;border:1px solid #2a3150;border-radius:12px;flex:none;place-items:center;transition:background .15s,border-color .15s;display:grid}.ctl:hover:not(:disabled){border-color:#7c93ff}.ctl:disabled{opacity:.35;cursor:not-allowed}.ctl.primary{color:#0b0d12;background:#7c93ff;border-color:#7c93ff}.progress{flex:1;gap:3px;min-width:0;display:flex}.progress button{background:0 0;border:0;flex:1;min-width:0;height:24px;padding:0;position:relative}.progress button:after{content:"";background:#2a3150;border-radius:99px;height:4px;margin-top:-2px;transition:background .2s;position:absolute;top:50%;left:0;right:0}.progress button.done:after{background:#7c93ff}.progress button.current:after{background:#ffb86b;height:6px;margin-top:-3px}.step-count{font-family:var(--font-mono);color:var(--code-dim);text-align:right;min-width:42px;font-size:12px}@media (width>=560px){.stepper-body{grid-template-columns:1fr}.code{font-size:14px}}.section{padding:72px 0}@media (width>=900px){.section{padding:112px 0}}.section-alt{background:var(--bg-2);border-block:1px solid var(--line)}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.eyebrow:before{content:"";background:currentColor;width:18px;height:2px}.section-head{max-width:720px;margin-bottom:40px}.section-head h2{margin-top:14px;font-size:clamp(32px,6.5vw,54px);font-weight:800}.section-head p{color:var(--muted);margin-top:16px;font-size:17px}.disciplines{gap:14px;display:grid}.disc{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);padding:22px;position:relative}.disc-icon{background:var(--bg-2);width:44px;height:44px;color:var(--muted);border-radius:12px;place-items:center;display:grid}.disc h2,.disc h3{margin-top:16px;font-size:21px;font-weight:700}.disc p{color:var(--muted);margin-top:6px;font-size:14.5px}.disc .status{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600;position:absolute;top:22px;right:22px}.disc-cs{background:var(--feature-bg);color:var(--feature-ink);border:0;padding:24px;overflow:hidden}.disc-cs .disc-icon{background:var(--accent);color:var(--accent-ink)}.disc-cs p{color:color-mix(in srgb, var(--feature-ink) 70%, transparent)}.disc-cs .status{background:var(--mint);color:#fff;border:0}.disc-cs h2,.disc-cs h3{font-size:clamp(26px,5vw,34px)}.tracks{gap:8px;margin:22px 0 0;padding:0;list-style:none;display:grid}.track{background:color-mix(in srgb, var(--feature-ink) 6%, transparent);border:1px solid color-mix(in srgb, var(--feature-ink) 12%, transparent);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:10px 14px;font-size:15px;font-weight:500;display:flex}.track.live{background:var(--accent);color:var(--accent-ink);border-color:#0000}.track-meta{font-family:var(--font-mono);opacity:.7;white-space:nowrap;font-size:11px}.track.live .track-meta{opacity:1;font-weight:600}@media (width>=640px){.disciplines{grid-template-columns:repeat(2,1fr)}.disc-cs{grid-column:1/-1}.tracks{grid-template-columns:repeat(2,1fr)}}@media (width>=1000px){.disciplines{grid-template-columns:repeat(4,1fr)}.disc-cs{grid-column:span 4;padding:36px}.tracks{grid-template-columns:repeat(4,1fr)}}.modules{gap:12px;margin:0;padding:0;list-style:none;display:grid}.module{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);grid-template-columns:auto 1fr;gap:4px 16px;padding:20px;transition:transform .2s,border-color .2s,box-shadow .2s;display:grid}.module:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));box-shadow:var(--shadow);transform:translateY(-2px)}.module-num{font-family:var(--font-mono);color:var(--accent);grid-row:span 3;padding-top:3px;font-size:13px;font-weight:600}.module h2,.module h3{letter-spacing:-.01em;font-size:19px;font-weight:700}.module p{color:var(--muted);font-size:14.5px}.lab-tag{background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);border-radius:8px;justify-self:start;align-items:center;gap:6px;margin-top:10px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}@media (width>=640px){.modules{grid-template-columns:repeat(2,1fr)}}@media (width>=1000px){.modules{grid-template-columns:repeat(3,1fr);gap:16px}.module{padding:24px}}.play>*{min-width:0}.play{align-items:center;gap:32px;display:grid}.play-copy h2{margin-top:14px;font-size:clamp(32px,6.5vw,54px);font-weight:800}.play-copy p{color:var(--muted);margin-top:16px;font-size:17px}.play-copy .hint{align-items:center;gap:8px;margin-top:20px;font-size:14px;display:flex}.bits-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;min-width:0;padding:20px}.bits{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;display:grid}.bit{justify-items:center;gap:6px;display:grid}.bit-weight{font-family:var(--font-mono);color:var(--muted);font-size:10px}.bit button{aspect-ratio:3/4;border:1.5px solid var(--line);background:var(--bg);width:100%;max-width:56px;min-height:48px;font-family:var(--font-mono);color:var(--muted);border-radius:10px;font-size:clamp(18px,5vw,26px);font-weight:600;transition:background .15s,color .15s,border-color .15s,transform .1s}.bit button:active{transform:scale(.94)}.bit button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.bit.sign button[aria-pressed=true]{background:var(--signal);border-color:var(--signal);color:#fff}.bit-weight.sign{color:var(--signal);font-weight:600}.readouts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px;display:grid}.readout{background:var(--bg);border:1px solid var(--line);border-radius:12px;min-width:0;padding:12px 14px}.readout-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.readout-val{font-family:var(--font-mono);text-overflow:ellipsis;font-size:clamp(20px,5vw,26px);font-weight:600;line-height:1.3;overflow:hidden}.readout-val.neg{color:var(--signal)}.bits-note{color:var(--muted);min-height:44px;margin-top:14px;font-size:14px}.bits-note strong{color:var(--ink)}.presets{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.chip{border:1px solid var(--line);background:var(--bg);min-height:40px;font-family:var(--font-mono);border-radius:999px;padding:0 14px;font-size:13px}.chip:hover{border-color:var(--ink)}@media (width>=1000px){.play{grid-template-columns:.9fr 1.1fr;gap:64px}.readouts{grid-template-columns:repeat(4,minmax(0,1fr))}.bits-card{padding:28px}}.method{counter-reset:step;gap:12px;display:grid}.method-step{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);padding:24px;position:relative}.method-step .verb{font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:12px;font-size:30px;font-weight:800;display:flex}.method-step .verb span{color:#fff;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.method-step p{color:var(--muted);margin-top:10px;font-size:15px}@media (width>=640px){.method{grid-template-columns:repeat(2,1fr)}}@media (width>=1000px){.method{grid-template-columns:repeat(4,1fr)}}.audience{gap:14px;display:grid}.aud{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);padding:26px}.aud h3{align-items:center;gap:10px;font-size:22px;font-weight:700;display:flex}.aud ul{gap:10px;margin:16px 0 0;padding:0;list-style:none;display:grid}.aud li{color:var(--muted);gap:10px;font-size:15px;display:flex}.aud li svg{color:var(--accent);flex:none;margin-top:4px}@media (width>=900px){.audience{grid-template-columns:repeat(3,1fr)}}.cta{color:#fff;text-align:center;background:#3b5bff;border-radius:28px;padding:44px 24px;position:relative;overflow:hidden}.cta:before{content:"";background-image:linear-gradient(#ffffff1f 1px,#0000 1px),linear-gradient(90deg,#ffffff1f 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000,#0000 70%);mask-image:radial-gradient(#000,#0000 70%)}.cta>*{position:relative}.cta h2{max-width:760px;margin-inline:auto;font-size:clamp(32px,7vw,60px);font-weight:800}.cta p{opacity:.88;max-width:520px;margin:16px auto 0;font-size:17px}.cta .btn{color:#14161a;background:#fff;margin-top:28px}.cta .btn:hover{color:#fff;background:#14161a}@media (width>=900px){.cta{padding:80px 48px}}.footer{padding:40px 0 calc(40px + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--muted);font-size:14px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;display:flex}.footer nav{flex-wrap:wrap;gap:4px 20px;display:flex}.footer nav a{padding:8px 0}.footer nav a:hover{color:var(--ink)}.reveal{opacity:0;transition:opacity .6s,transform .6s cubic-bezier(.2,.8,.2,1);transform:translateY(16px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}@media (width<=559px){.controls{flex-wrap:wrap}.progress{flex-basis:100%;order:10}.step-count{margin-left:auto}}.btn-block{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--muted);font-size:14.5px}.auth-page{min-height:100dvh;padding:20px var(--gutter) calc(24px + env(safe-area-inset-bottom));background:radial-gradient(ellipse 90% 50% at 50% 0%, var(--accent-soft), transparent 70%), var(--bg);flex-direction:column;align-items:center;display:flex}.auth-brand{align-self:flex-start;margin-bottom:clamp(24px,8vh,72px)}@media (width>=560px){.auth-brand{align-self:center}}.auth-card{background:var(--surface);border:1px solid var(--line);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:22px;padding:28px 22px 18px}@media (width>=560px){.auth-card{padding:36px 32px 22px}}.auth-card h1{font-size:30px;font-weight:800}.auth-sub{color:var(--muted);margin-top:8px;font-size:15px}.auth-card form,.btn-google{margin-top:22px}.btn-google{background:var(--surface);border-color:var(--line);width:100%;color:var(--ink)}.btn-google:hover:not(:disabled){border-color:var(--ink)}.auth-hint{color:var(--muted);margin-top:10px;font-size:13px}.auth-divider{color:var(--muted);align-items:center;gap:12px;margin:20px 0 -6px;font-size:13px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.field{gap:6px;margin-bottom:14px;font-size:14px;font-weight:600;display:grid}.field input{border:1.5px solid var(--line);background:var(--bg);width:100%;min-height:50px;color:var(--ink);font:inherit;border-radius:12px;padding:0 14px;font-size:16px;font-weight:400}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.code-input{letter-spacing:.4em;text-align:center;font-family:var(--font-mono)!important;font-size:28px!important}.auth-back{min-height:36px;color:var(--muted);background:0 0;border:0;align-items:center;gap:6px;margin:-8px 0 10px -4px;padding:0 4px;font-size:14px;display:inline-flex}.auth-resend{color:var(--muted);text-align:center;margin-top:16px;font-size:14px}.link{color:var(--accent);background:0 0;border:0;padding:4px 2px;font-weight:600}.link:disabled{color:var(--muted);cursor:default;font-weight:500}.auth-error{min-height:22px;color:var(--signal);text-align:center;margin-top:10px;font-size:14px}.auth-foot{max-width:420px;color:var(--muted);text-align:center;margin-top:20px;font-size:12px}.app-loading{min-height:100dvh;padding:var(--gutter);color:var(--muted);text-align:center;place-items:center;display:grid}.app-bar{z-index:10;height:64px;padding:0 var(--gutter);background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.app-main{max-width:720px;padding:28px var(--gutter) calc(48px + env(safe-area-inset-bottom));margin:0 auto}.app-hello{font-size:clamp(30px,8vw,40px);font-weight:800}.panel{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);margin-top:20px;padding:20px}.panel h2{font-size:22px;font-weight:700}.panel-title{color:var(--muted);align-items:center;gap:8px;margin-bottom:14px;display:flex;font-size:15px!important;font-family:var(--font-body)!important;letter-spacing:0!important;font-weight:600!important}.solo{align-items:flex-start;gap:12px;display:flex}.solo>svg{color:var(--accent);flex:none;margin-top:3px}.college-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.college-list li{background:var(--bg);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:8px 14px;font-weight:600;display:flex}.role-chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;flex:none;padding:3px 10px;font-size:12px;font-weight:600}.track-panel h2{margin-top:14px}.track-panel .muted{margin-top:4px}.track-progress{background:var(--bg-2);border-radius:99px;height:8px;margin:18px 0;overflow:hidden}.track-progress span{background:var(--accent);height:100%;display:block}.track-panel .btn{white-space:normal;text-align:center;padding-block:10px;line-height:1.3}.name-prompt h2{font-size:26px}.auth-closed{background:var(--accent-soft);border-radius:12px;margin-top:20px;padding:14px 16px;font-size:14.5px}.theme-btn,.auth-cta-long{display:none}.account-slot{width:72px;height:40px;display:block}.account-btn{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:4px;font-size:14px;font-weight:600;display:inline-flex}.account-btn:hover,.account-btn.active{border-color:var(--ink)}.account-label{padding-right:10px;display:none}.avatar{background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);object-fit:cover;border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid}.mobile-theme{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;justify-content:space-between;align-items:center;min-height:52px;padding:0 4px;font-size:17px;font-weight:500;display:flex}.mobile-menu a[aria-current=page]{color:var(--accent)}@media (width>=1080px){.theme-btn{display:grid}.auth-cta-long{display:inline}.auth-cta-short{display:none}.account-label{display:inline}.account-slot{width:140px}}.page-hero{padding:40px 0 8px;position:relative;overflow:hidden}.page-hero:before{content:"";background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.6;pointer-events:none;background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 90% at 80% 0,#000 10%,#0000 70%);mask-image:radial-gradient(70% 90% at 80% 0,#000 10%,#0000 70%)}.page-hero .container{max-width:var(--maxw);position:relative}.page-hero h1{letter-spacing:-.03em;max-width:820px;margin-top:14px;font-size:clamp(36px,8vw,64px);font-weight:800}.page-hero p{max-width:640px;color:var(--muted);margin-top:16px;font-size:17px}@media (width>=900px){.page-hero{padding:72px 0 16px}}.section-tight{padding-top:32px}.section-tight-top{padding-top:40px;padding-bottom:40px}@media (width>=900px){.section-tight{padding-top:48px}.section-tight-top{padding:64px 0}}.page-cta{text-align:center;margin-top:32px}.explore{gap:12px;display:grid}.explore-card{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);align-items:center;gap:16px;min-height:88px;padding:18px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.explore-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));box-shadow:var(--shadow);transform:translateY(-2px)}.explore-card .disc-icon{background:var(--accent-soft);color:var(--accent);flex:none}.explore-text{gap:2px;min-width:0;display:grid}.explore-text strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:19px}.explore-text span{color:var(--muted);font-size:14px;line-height:1.45}.explore-arrow{color:var(--muted);flex:none;margin-left:auto}@media (width>=640px){.explore{grid-template-columns:repeat(2,1fr)}}@media (width>=1100px){.explore{grid-template-columns:repeat(4,1fr)}.explore-card{flex-direction:column;align-items:flex-start;padding:22px}.explore-arrow{margin-top:auto;margin-left:0}}.profile-head{align-items:center;gap:16px;display:flex}.profile-head h1{font-size:clamp(26px,7vw,34px);font-weight:800}.profile-head .muted{word-break:break-all;margin-top:4px}.signout{margin-top:24px}.name-prompt h1{font-size:28px;font-weight:800}.name-prompt .muted{margin:6px 0 18px}.programs{gap:12px;margin:0;padding:0;list-style:none;display:grid}.program-card{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);align-items:flex-start;gap:16px;padding:20px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.program-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));box-shadow:var(--shadow);transform:translateY(-2px)}.program-icon{background:var(--accent);width:44px;height:44px;color:var(--accent-ink);border-radius:12px;flex:none;place-items:center;display:grid}.program-text{gap:4px;min-width:0;display:grid}.program-text strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:21px}.program-text>span:not(.program-topics){color:var(--muted);font-size:15px}.program-topics{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.program-topics .lab-tag{margin:0}.program-open{background:var(--ink);color:var(--bg);border-radius:999px;flex:none;align-self:center;align-items:center;gap:6px;margin-left:auto;padding:8px 16px;font-size:14px;font-weight:600;display:none}@media (width>=640px){.program-open{display:inline-flex}}.programs-more{color:var(--muted);text-align:center;margin-top:20px;font-size:14px}.chat-page{background:var(--bg);flex-direction:column;height:calc(100dvh - 64px);display:flex}.chat-page:fullscreen{height:100vh}.chat-top{width:100%;max-width:900px;padding:10px var(--gutter);border-bottom:1px solid var(--line);align-items:center;gap:12px;margin:0 auto;display:flex}.chat-back{width:40px;height:40px;color:var(--muted);border-radius:12px;flex:none;place-items:center;display:grid}.chat-back:hover{background:var(--bg-2);color:var(--ink)}.chat-top-title{min-width:0;margin-right:auto;line-height:1.3;display:grid}.chat-top-title strong{font-family:var(--font-display);font-size:18px}.chat-top-title span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.chat-scroll{overscroll-behavior:contain;flex:1;position:relative;overflow-y:auto}.chat-thread{max-width:900px;padding:24px var(--gutter) 32px;gap:20px;margin:0 auto;display:grid}.msg{gap:12px;min-width:0;animation:.35s cubic-bezier(.2,.8,.2,1) both msg-in;display:flex}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)}}.msg.user{justify-content:flex-end}.msg.user .bubble{background:var(--accent-soft);max-width:80%;color:var(--ink);font-family:var(--font-mono);word-break:break-word;border-radius:20px 20px 6px;padding:10px 16px;font-size:16px;font-weight:600}.msg-avatar .brand-mark{width:28px;height:28px}.msg-avatar{flex:none;margin-top:2px}.msg-body{flex:1;min-width:0;font-size:16px}.msg-body>p{padding-top:3px}.stream-caret{vertical-align:-2px;background:var(--ink);border-radius:2px;width:8px;height:1em;margin-left:2px;animation:.8s step-end infinite blink;display:inline-block}.msg-prompt{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;font-size:15px;font-weight:600;padding:8px 14px!important;display:inline-flex!important}.msg-prompt svg{color:var(--accent)}.chat-code{background:var(--code-bg);color:var(--code-ink);border-radius:14px;overflow:hidden}.chat-code-bar{border-bottom:1px solid var(--code-line);font-family:var(--font-mono);color:var(--code-dim);justify-content:space-between;padding:8px 14px;font-size:12px;display:flex}.chat-code pre{margin:0;padding:12px 14px;font-size:13px;line-height:1.6;overflow-x:auto}.chat-code pre>div{white-space:pre}.tk-pre{color:#f78c6c}.composer-wrap{width:100%;max-width:900px;padding:8px var(--gutter) calc(10px + env(safe-area-inset-bottom));margin:0 auto}.suggestions{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.suggestions .chip{background:var(--surface)}.composer{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:28px;align-items:center;gap:8px;padding:6px 6px 6px 18px;display:flex}.composer:focus-within{border-color:color-mix(in srgb, var(--accent) 60%, var(--line))}.composer input{min-width:0;min-height:44px;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:16px}.composer input:disabled{color:var(--muted)}.send{background:var(--ink);width:42px;height:42px;color:var(--bg);border:0;border-radius:50%;flex:none;place-items:center;transition:opacity .15s,transform .1s;display:grid}.send:disabled{opacity:.25;cursor:default}.send:active:not(:disabled){transform:scale(.94)}.composer-note{color:var(--muted);text-align:center;margin-top:8px;font-size:12px}@media (width<=559px){.composer-note{display:none}}.run{background:var(--code-bg);color:var(--code-ink);box-shadow:var(--shadow), 0 0 0 1px #ffffff0f inset;border-radius:18px;position:relative;overflow:hidden}.run-head{border:0;border-bottom:1px solid var(--code-line);width:100%;color:inherit;text-align:left;background:0 0;align-items:center;gap:12px;padding:12px 16px;display:flex}.run-collapsed .run-head{border-bottom:0}.run-dot{background:#ffb86b;border-radius:50%;flex:none;width:10px;height:10px;animation:1.4s ease-out infinite pulse;box-shadow:0 0 #ffb86b99}.run-dot.done{background:#3dd6a6;animation:none}@keyframes pulse{70%{box-shadow:0 0 0 8px #ffb86b00}to{box-shadow:0 0 #ffb86b00}}.run-title{flex:1;min-width:0;font-size:15px;font-weight:600;display:grid}.run-sub{font-family:var(--font-mono);color:var(--code-dim);font-size:11.5px;font-weight:400}.run-chevron{color:var(--code-dim);flex:none;transition:transform .2s}.run-collapsed .run-chevron{transform:rotate(-90deg)}.run-body{display:grid}@media (width>=760px){.run-body{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.run-side{border-left:1px solid var(--code-line)}}.run-code{margin:0;padding:12px 0;font-size:12.5px;line-height:22px;position:relative;overflow-x:auto}@media (width>=560px){.run-code{font-size:13.5px}}.run-hl{pointer-events:none;background:#7c93ff2e;border-left:3px solid #7c93ff;min-width:100%;height:22px;transition:transform .3s cubic-bezier(.3,.7,.2,1);position:absolute;top:12px;left:0;right:0}.run-line{white-space:pre;height:22px;padding-right:16px;position:relative}.run-ln{text-align:right;width:38px;color:var(--code-dim);opacity:.55;-webkit-user-select:none;user-select:none;padding-right:14px;display:inline-block}.run-line.active .run-ln{color:#a9b8ff;opacity:1}.run-side{border-top:1px solid var(--code-line);align-content:start;gap:14px;padding:14px 16px 16px;display:grid}@media (width>=760px){.run-side{border-top:0}}.run-event{align-content:start;gap:10px;min-height:92px;display:grid}.ev-pill{background:#151a30;border:1px solid #2a3150;border-radius:12px;flex-wrap:wrap;justify-self:start;align-items:center;gap:8px;padding:8px 12px;font-size:15px;animation:.3s cubic-bezier(.2,.8,.2,1) both pop-in;display:inline-flex}.ev-pill.ok{border-color:#3dd6a680}.ev-pill.no{border-color:#ff6a3d99}.ev-pill.calc,.ev-pill.flow{border-color:#ffb86b73}.ev-pill.print{border-color:#8ce0a880}.ev-arrow{color:var(--code-dim)}.ev-big{color:#ffb86b;font-size:19px;font-weight:700}.print .ev-big{color:var(--tok-str)}.ev-result{border-radius:8px;align-items:center;gap:4px;padding:2px 8px;font-size:13px;font-weight:700;display:inline-flex}.ok .ev-result{color:#3dd6a6;background:#3dd6a629}.no .ev-result{color:#ff8a63;background:#ff6a3d29}.ev-stage{animation:.35s cubic-bezier(.2,.8,.2,1) both stage-in}.ev-stage.s1{animation-delay:calc(var(--step-ms) * .18)}.ev-stage.s2{animation-delay:calc(var(--step-ms) * .42)}@keyframes stage-in{0%{opacity:0;filter:blur(3px);transform:translate(-6px)}}.run-note{color:var(--code-ink);font-size:14.5px;line-height:1.5;animation:.4s both fade-in}@keyframes fade-in{0%{opacity:0}}.mem{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;display:grid}.mem-box{background:#151a30;border:1px solid #2a3150;border-radius:12px;padding:8px 10px 10px;transition:opacity .3s,border-color .3s,box-shadow .3s}.mem-box.changed{border-color:#ffb86b;box-shadow:0 0 0 3px #ffb86b24}.mem-box.gone{opacity:.3;border-style:dashed}.mem-head{font-family:var(--font-mono);color:var(--code-dim);justify-content:space-between;gap:6px;font-size:11px;display:flex}.mem-name{color:var(--code-ink);font-weight:600}.mem-val{font-family:var(--font-mono);color:#fff;font-size:24px;font-weight:600;line-height:1.25;display:block}.mem-val.garbage{color:var(--code-dim);font-style:italic}.mem-val.bump{color:#ffb86b;animation:.4s bump}.mem-val.incoming{color:#ffb86b;animation:.25s cubic-bezier(.2,.8,.2,1) both land;animation-delay:calc(var(--fly-ms) - 40ms)}@keyframes land{0%{opacity:0;transform:scale(.6)}}.flow-ghost{z-index:5;color:#0b0d12;font-family:var(--font-mono);pointer-events:none;background:#ffb86b;border-radius:8px;padding:0 6px;font-size:22px;font-weight:700;line-height:1.3;position:absolute;box-shadow:0 8px 24px #ffb86b59}.run-term{min-height:84px;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;color:var(--tok-str);background:#090b16;border-radius:12px;margin:0 16px;padding:12px 14px;font-size:14px;line-height:1.6}.term-dim{color:var(--code-dim)}.term-in{color:#fff;font-weight:600}.term-new{color:#fff;animation:.4s steps(6,end) both type-in;display:inline-block}@keyframes type-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.run-controls{flex-wrap:wrap;align-items:center;gap:8px;padding:14px 16px 16px;display:flex}.run-scrub{accent-color:#7c93ff;flex:120px;min-width:100px;height:44px}.ctl.speed{width:auto;min-width:92px;font-family:var(--font-body);white-space:nowrap;padding:0 12px;font-size:13.5px;font-weight:600}@media (width<=759px){.run-code{scrollbar-width:none;max-height:134px;overflow-y:auto}.run-event{min-height:0}.run-side{gap:10px;padding:12px}.mem{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mem-box{padding:6px 8px 8px}.mem-val{font-size:20px}.run-note{font-size:14px}.run-term{min-height:64px;margin:0 12px;padding:10px 12px;font-size:13px}.run-controls{flex-wrap:nowrap;padding:12px}.run-scrub{display:none}.ctl.speed{margin-left:auto}}.lang-switch{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;flex:none;padding:3px;display:flex}.lang-switch button{min-height:36px;color:var(--muted);background:0 0;border:0;border-radius:9px;padding:0 12px;font-size:14px;font-weight:600;transition:background .15s,color .15s}.lang-switch button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #14161a1f}@media (width<=559px){.chat-top{flex-wrap:wrap}.chat-top-title span{display:none}.lang-switch{order:10;width:100%}.lang-switch button{flex:1}}.tk-type{color:#ffcb6b}.program-langs{font-family:var(--font-mono);color:var(--muted);font-size:12px}.run-flow{min-width:0;padding:8px 0 8px 8px}.flow-box{scrollbar-width:thin;scrollbar-color:#2a3150 transparent;max-height:460px;overflow:auto}.flow-box.fit{max-height:none;overflow:visible}.chat-flow{padding:8px 12px 12px}.flow{margin:0 auto;display:block}.flow-box.fit .flow{width:100%;height:auto}.flow-node rect,.flow-node polygon{fill:#151a30;stroke:#3a4266;stroke-width:1.5px;transition:fill .25s,stroke .25s}.flow-node.terminal rect{fill:#1b2242}.flow-node text{fill:var(--code-ink);font-family:var(--font-mono);font-size:13px;font-weight:600;transition:fill .25s}.flow-node.active rect,.flow-node.active polygon{fill:#7c93ff;stroke:#a9b8ff;filter:drop-shadow(0 0 10px #7c93ff8c)}.flow-node.active text{fill:#0b0d12}.flow-edge path{fill:none;stroke:#3a4266;stroke-width:1.6px;transition:stroke .25s}.flow-edge.live path{stroke:#ffb86b;stroke-width:2.2px}.flow-arrowhead{fill:#3a4266}.flow-arrowhead.live{fill:#ffb86b}.flow-label{fill:var(--code-dim);font-family:var(--font-body);font-size:12px;font-weight:600}.flow-dot{fill:#ffb86b;filter:drop-shadow(0 0 6px #ffb86be6)}@media (width<=759px){.run-flow{padding:4px 0 4px 4px}.run-flow .flow-box{max-height:200px}}.mem-wide{grid-column:1/-1}.cells{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.cell{background:#0f1324;border:1px solid #2a3150;border-radius:8px;justify-items:center;min-width:36px;padding:4px 6px 2px;transition:border-color .2s,background .2s,transform .2s;display:grid}.cell-v{font-family:var(--font-mono);color:#fff;font-size:16px;font-weight:600}.cell-i{font-family:var(--font-mono);color:var(--code-dim);font-size:10px}.cell.read{background:#7c93ff2e;border-color:#7c93ff;transform:translateY(-2px)}.cell.written{background:#ffb86b33;border-color:#ffb86b;animation:.4s bump;transform:translateY(-2px)}.cell.nul .cell-v{color:var(--code-dim)}.cells-empty,.mem-none{color:var(--code-dim);font-size:13px;font-style:italic}.stack{border:1px dashed #2a3150;border-radius:12px;gap:4px;padding:10px;display:grid}.stack-title{letter-spacing:.06em;text-transform:uppercase;color:var(--code-dim);align-items:center;gap:6px;font-size:11px;font-weight:600;display:inline-flex}.stack-frame{font-family:var(--font-mono);color:var(--code-dim);background:#151a30;border-radius:8px;padding:4px 10px;font-size:12.5px;animation:.25s both pop-in}.stack-frame.active{color:#fff;background:#7c93ff33;font-weight:600}.unit{margin-top:36px}.unit:first-child{margin-top:0}.unit-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.unit-head h2{font-size:24px;font-weight:800}.unit-head span{font-family:var(--font-mono);color:var(--muted);font-size:12px}.unit-filter{scrollbar-width:none;gap:8px;margin-bottom:24px;padding-bottom:4px;display:flex;overflow-x:auto}.unit-filter .chip{font-family:var(--font-body);flex:none;font-weight:600}.unit-filter .chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}@media (width>=760px){.programs{grid-template-columns:repeat(2,1fr)}}@media (width>=1100px){.programs{grid-template-columns:repeat(3,1fr)}.program-open{display:none}}.program-card{height:100%}.program-num{font-family:var(--font-mono);color:var(--accent);font-size:12px;font-weight:600}.level-switch{margin-bottom:12px;display:inline-flex}.level-switch button{min-height:44px;padding:0 20px;font-size:15px}.level-switch button span{background:var(--bg-2);color:var(--muted);border-radius:999px;margin-left:8px;padding:1px 7px;font-size:12px}.level-blurb{color:var(--muted);margin-bottom:20px}.ds-page{padding-top:20px;padding-bottom:56px}.ds-head{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.ds-head h1{margin-top:4px;font-size:clamp(30px,7vw,46px);font-weight:800}.ds-head p{color:var(--muted);margin-top:6px}.ds-level{letter-spacing:.06em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.ds-level.advanced{background:color-mix(in srgb, var(--signal) 18%, transparent);color:var(--signal)}.dsx-modes{margin-bottom:12px;display:inline-flex}.dsx-main{gap:14px;display:grid}@media (width>=1000px){.dsx-main{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.ds-stage,.ds-ops{grid-column:1}.ds-side{grid-area:1/2/span 2;position:sticky;top:80px}}.ds-stage{background:var(--code-bg);min-width:0;color:var(--code-ink);box-shadow:var(--shadow);border-radius:20px;overflow:hidden}.ds-note{border-bottom:1px solid var(--code-line);min-height:72px;padding:14px 16px;animation:.35s both fade-in}.ds-note p{font-size:15px;line-height:1.5}.ds-step{font-family:var(--font-mono);color:#a9b8ff;margin-bottom:4px;font-size:11.5px;display:inline-block}.ds-status{color:var(--code-dim)}.ds-canvas{scrollbar-width:thin;scrollbar-color:#2a3150 transparent;padding:10px 6px;overflow-x:auto}.ds-canvas svg{height:auto;margin:0 auto;display:block}.ds-node rect,.ds-node circle:not(.ds-dot){fill:#151a30;stroke:#3a4266;stroke-width:1.6px;transition:fill .25s,stroke .25s}.ds-node text{fill:#fff;font-family:var(--font-mono);font-size:15px;font-weight:600}.ds-node.dashed rect{stroke-dasharray:5 4;fill:#0000}.ds-node .ds-div{stroke:#3a4266;stroke-width:1.4px}.ds-node .ds-dot{fill:#a9b8ff}.ds-node .ds-null{fill:var(--code-dim);font-size:15px}.ds-node .ds-sub,.ds-sub{fill:var(--code-dim);font-size:11.5px;font-weight:500}.ds-free{fill:var(--code-dim)!important;font-family:var(--font-body)!important;font-size:13px!important;font-weight:500!important}.ds-node.t-muted rect{fill:#0000}.ds-node.t-active rect,.ds-node.t-active circle:not(.ds-dot){fill:#7c93ff;stroke:#a9b8ff}.ds-node.t-active text{fill:#0b0d12}.ds-node.t-compare rect,.ds-node.t-compare circle:not(.ds-dot){fill:#ffb86b33;stroke:#ffb86b}.ds-node.t-found rect,.ds-node.t-found circle:not(.ds-dot),.ds-node.t-new rect,.ds-node.t-new circle:not(.ds-dot){fill:#3dd6a638;stroke:#3dd6a6}.ds-node.t-remove rect,.ds-node.t-remove circle:not(.ds-dot){fill:#ff6a3d38;stroke:#ff8a63}.ds-node.t-visited rect,.ds-node.t-visited circle:not(.ds-dot){fill:#7c93ff29;stroke:#5b6fd0}.ds-node.t-path rect,.ds-node.t-path circle:not(.ds-dot){stroke:#ffb86b;stroke-dasharray:4 3}.ds-key.t-new,.ds-key.t-found{fill:#3dd6a659!important;stroke:none!important}.ds-key.t-compare{fill:#ffb86b59!important;stroke:none!important}.ds-edge path{fill:none;stroke:#4a5380;stroke-width:1.8px}.ds-edge.dashed path{stroke-dasharray:5 4}.ds-edge.t-path path,.ds-edge.t-active path{stroke:#ffb86b;stroke-width:3px}.ds-edge.t-compare path{stroke:#ffb86b;stroke-dasharray:6 4}.ds-edge.t-muted path{stroke:#3a4266}.ds-arrowhead{fill:#4a5380}.ds-arrowhead.t-path,.ds-arrowhead.t-active,.ds-arrowhead.t-compare{fill:#ffb86b}.ds-elabel rect{fill:var(--code-bg);stroke:#3a4266}.ds-elabel text{fill:var(--code-ink);font-family:var(--font-mono);font-size:12px}.ds-ptr line{stroke:#a9b8ff;stroke-width:2px}.ds-ptr text{fill:#a9b8ff;font-family:var(--font-mono);font-size:12.5px;font-weight:700}.ds-ptr.t-compare line{stroke:#ffb86b}.ds-ptr.t-compare text{fill:#ffb86b}.ds-ptr.t-path line,.ds-ptr.t-visited line{stroke:#3dd6a6}.ds-ptr.t-path text,.ds-ptr.t-visited text,.ds-arrowhead.t-visited,.ds-arrowhead.t-new,.ds-arrowhead.t-found{fill:#3dd6a6}.ds-arrowhead.t-active{fill:#a9b8ff}.ds-aux{gap:8px;padding:0 16px 12px;display:grid}.ds-aux-row{align-items:baseline;gap:10px;min-width:0;display:flex}.ds-aux-label{letter-spacing:.06em;text-transform:uppercase;min-width:64px;color:var(--code-dim);flex:none;font-size:11px;font-weight:700}.ds-aux-items{flex-wrap:wrap;gap:5px;min-width:0;display:flex}.ds-chip{font-family:var(--font-mono);background:#151a30;border:1px solid #2a3150;border-radius:7px;padding:2px 9px;font-size:13px;animation:.25s both pop-in}.ds-chip.t-found{color:#3dd6a6;border-color:#3dd6a6}.ds-aux-empty{color:var(--code-dim);font-size:12.5px;font-style:italic}.ds-controls{border-top:1px solid var(--code-line)}.ds-progress{background:#2a3150;border-radius:99px;flex:80px;height:6px;overflow:hidden}.ds-progress span{background:#7c93ff;height:100%;transition:width .3s;display:block}@media (width<=559px){.ds-controls{flex-wrap:nowrap}.ds-progress{display:none}.ds-controls .ctl.speed{margin-left:auto}}.ds-ops{border:1px solid var(--line);background:var(--surface);border-radius:20px;gap:12px;padding:16px;display:grid}.ds-value{align-items:center;gap:12px;font-size:14px;font-weight:600;display:flex}.ds-value input{border:1.5px solid var(--line);background:var(--bg);width:120px;min-height:48px;color:var(--ink);font-family:var(--font-mono);border-radius:12px;padding:0 14px;font-size:18px}.ds-value input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.ds-choice{gap:6px;font-size:14px;font-weight:600;display:grid}.ds-choice div{flex-wrap:wrap;gap:6px;display:flex}.ds-choice .chip{font-family:var(--font-body);font-weight:600}.ds-choice .chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.ds-buttons{flex-wrap:wrap;gap:8px;display:flex}.ds-buttons .btn{flex:auto;min-height:46px;padding:0 18px}.ds-buttons.secondary .btn{flex:0 auto;min-height:40px;font-size:14px}.ds-error{min-height:0;color:var(--signal);font-size:14px}.ds-error:empty{display:none}.ds-side{gap:14px;min-width:0;display:grid}.ds-code{background:var(--code-bg);color:var(--code-ink);border-radius:18px;overflow:hidden}.ds-code summary{cursor:pointer;color:var(--code-dim);border-bottom:1px solid var(--code-line);padding:12px 16px;font-size:13px;font-weight:600}.ds-code pre{margin:0;padding:10px 0;font-size:12.5px;line-height:1.75;overflow-x:auto}.ds-code pre div{white-space:pre;border-left:3px solid #0000;padding:0 16px;transition:background .25s}.ds-code pre div.on{color:#fff;background:#7c93ff2e;border-left-color:#7c93ff}.ds-hint{color:var(--code-dim);padding:14px 16px;font-size:13.5px}.ds-history{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:14px 16px}.ds-history>span{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.ds-history ul{gap:6px;margin:8px 0 0;padding:0;font-size:14px;list-style:none;display:grid}.ds-history strong{margin-right:6px;font-weight:600}.ds-learn{margin-top:40px}.ds-learn>h2{margin-bottom:4px;font-size:clamp(26px,6vw,36px);font-weight:800}.ds-learn-grid{gap:0;display:grid}@media (width>=760px){.ds-learn-grid{grid-template-columns:repeat(2,1fr);gap:0 16px}.ds-card.analogy{grid-column:1/-1}}.ds-card h3{align-items:center;gap:8px;margin-bottom:10px;font-size:18px;font-weight:700;display:flex}.ds-card h3 svg{color:var(--accent)}.ds-card.analogy{background:var(--accent-soft);border-color:#0000}.ds-card.analogy p{font-size:17px}.ds-card.warn h3 svg{color:var(--signal)}.ds-card ul{color:var(--muted);gap:8px;margin:0;padding-left:18px;font-size:15px;display:grid}.ds-table{border-collapse:collapse;width:100%;font-size:14.5px}.ds-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:7px 6px}.ds-table td.mono{white-space:nowrap;font-weight:600}.ds-table td.muted{font-size:13px}.track-link{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.am{gap:14px;display:grid}.am-pick{scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.am-pick .chip{font-family:var(--font-body);flex:none;font-weight:600}.am-pick .chip.on,.ds-choice .chip.mono.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.am-stage .ds-note{min-height:84px}.am-diagram{scrollbar-width:thin;scrollbar-color:#2a3150 transparent;padding:8px 6px 0;overflow-x:auto}.am-diagram svg{height:auto;margin:0 auto;display:block}.am-state circle{fill:#151a30;stroke:#4a5380;stroke-width:2px;transition:fill .3s,stroke .3s}.am-state .am-inner{fill:none}.am-state text{fill:#fff;font-family:var(--font-mono);pointer-events:none;font-size:14px;font-weight:700}.am-state.on circle{fill:#7c93ff;stroke:#c3cdff}.am-state.on .am-inner{fill:none;stroke:#0b0d12}.am-state.on text{fill:#0b0d12}.am-state.on.accept circle{fill:#3dd6a6;stroke:#9cf0d3}.am-state.on.reject circle{fill:#ff8a63;stroke:#ffc3ae}.am-state.hl circle{stroke:#ffb86b;stroke-width:3px}.am-state.clickable{cursor:pointer}.am-state.clickable:hover circle{stroke:#a9b8ff}.am-edge path{fill:none;stroke:#5b6590;stroke-width:1.8px;transition:stroke .25s}.am-edge.eps path{stroke-dasharray:6 4}.am-edge.hot path{stroke:#ffb86b;stroke-width:2.8px}.am-edge text{fill:#d7dcf0;font-family:var(--font-mono);paint-order:stroke;stroke:var(--code-bg);stroke-width:4px;font-size:13px;font-weight:600}.am-edge.hot text{fill:#ffb86b}.am-head{fill:#5b6590}.am-head.hot{fill:#ffb86b}.am-start{stroke:#a9b8ff;stroke-width:2px}.am-dot{fill:#ffb86b;filter:drop-shadow(0 0 6px #ffb86be6)}.am-row{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;padding:6px 16px 12px;display:flex}.am-tape{scrollbar-width:none;gap:3px;min-width:0;max-width:100%;padding:4px 2px 18px;display:flex;overflow-x:auto}.am-cell{color:#fff;width:32px;height:38px;font-family:var(--font-mono);background:#151a30;border:1px solid #2a3150;border-radius:8px;flex:none;place-items:center;font-size:17px;font-weight:700;transition:background .25s,border-color .25s,opacity .25s;display:grid;position:relative}.am-cell.read{opacity:.4}.am-cell.head{background:#ffb86b2e;border-color:#ffb86b}.am-cell.head:after{content:"▲";color:#ffb86b;font-size:11px;position:absolute;bottom:-17px}.am-cell.end{color:var(--code-dim);border-style:dashed;font-size:14px}.am-cell.blank{color:#4a5380}.am-empty{color:var(--code-dim);align-self:center;margin-right:6px;font-size:13px;font-style:italic}.am-tmtape{width:100%;min-width:0}.am-tape.tm{padding-bottom:26px}.am-headtag{color:#0b0d12;white-space:nowrap;background:#ffb86b;border-radius:6px;padding:1px 6px;font-size:11px;position:absolute;bottom:-24px}.am-tape.tm .am-cell.head:after{content:none}.am-verdict{letter-spacing:.04em;border-radius:10px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:800;animation:.3s both pop-in;display:inline-flex}.am-verdict.accept{color:#3dd6a6;background:#3dd6a62e}.am-verdict.reject{color:#ff8a63;background:#ff6a3d2e}.am-verdict-block{margin:0 16px 12px}.am-pda{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding-right:12px;display:grid}.am-stack{justify-items:center;gap:6px;padding:8px 0;display:grid}.am-stack-label{text-transform:uppercase;letter-spacing:.06em;color:var(--code-dim);font-size:11px;font-weight:700}.am-stack-cells{border:2px solid #3a4266;border-top:0;border-radius:0 0 10px 10px;flex-direction:column;gap:3px;min-width:48px;max-height:260px;padding:4px;display:flex;overflow-y:auto}.am-scell{color:#fff;height:30px;font-family:var(--font-mono);background:#151a30;border:1px solid #2a3150;border-radius:6px;place-items:center;font-weight:700;animation:.3s cubic-bezier(.2,.8,.2,1) both am-push;display:grid}.am-scell.top{background:#ffb86b2e;border-color:#ffb86b}.am-scell.bottom{color:var(--code-dim)}@keyframes am-push{0%{opacity:0;transform:translateY(-14px)}}.am-code{white-space:pre;max-height:260px;color:var(--code-dim);background:#090b16;border-radius:12px;margin:12px 0 12px 12px;padding:12px;font-size:13px;line-height:1.6;overflow:auto}.am-code span.done{color:#3dd6a6}.am-code span.cur{color:#0b0d12;background:#ffb86b;border-radius:3px}.am-code span.bad{color:#fff;background:#ff6a3d;border-radius:3px}@media (width<=600px){.am-pda{grid-template-columns:1fr;padding-right:0}.am-stack{grid-template-columns:auto 1fr;justify-items:start;padding:0 16px 8px}.am-stack-cells{border:2px solid #3a4266;border-left:0;border-radius:0 10px 10px 0;flex-direction:row-reverse;justify-content:flex-end;max-height:none;overflow-x:auto}.am-scell{min-width:34px;padding:0 6px}.am-code{margin:12px}}.am-input{flex-wrap:wrap}.am-input input{flex:140px;width:auto}.am-input .btn{min-height:48px}.am-textarea{border:1.5px solid var(--line);background:var(--bg);width:100%;color:var(--ink);font-family:var(--font-mono);resize:vertical;border-radius:12px;padding:12px;font-size:15px}.am-textarea:focus{border-color:var(--accent);outline:none}.ds-hint-light{color:var(--muted);font-size:13.5px}.am-regex-in{padding:14px 16px 6px}.am-regex-in input{color:#fff;width:100%;min-height:52px;font-family:var(--font-mono);background:#090b16;border:1.5px solid #3a4266;border-radius:12px;padding:0 14px;font-size:20px}.am-regex-in input:focus{border-color:#7c93ff;outline:none}.am-regex-body{gap:10px;padding:10px 16px 16px;display:grid}.am-regex-err{color:#ff8a63;padding:10px 16px 16px}.am-pretty{color:#ffb86b;font-size:15px}.am-results{gap:6px;margin:0;padding:0;list-style:none;display:grid}.am-results li{border:1px solid var(--line);border-radius:10px;justify-content:space-between;gap:12px;padding:8px 12px;font-size:14px;display:flex}.am-results li.yes{background:color-mix(in srgb, var(--mint) 12%, transparent);border-color:color-mix(in srgb, var(--mint) 40%, transparent)}.am-results li.no{background:color-mix(in srgb, var(--signal) 8%, transparent)}.am-kleene{padding-top:12px}.am-kleene .ds-aux-row{animation:.4s both fade-in}.am-score{flex-wrap:wrap;gap:16px;font-size:15px;font-weight:700;display:flex}.am-score span{align-items:center;gap:6px;display:inline-flex}.am-score svg{color:var(--signal)}.am-yes,.am-no{color:#fff;flex:140px;min-height:56px;font-size:17px}.am-yes{background:var(--mint)}.am-no{background:var(--signal)}.am-tm-grid{gap:12px;padding:0 16px 12px;display:grid}@media (width>=760px){.am-tm-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.am-rules{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:12.5px}.am-rules th{text-align:left;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.05em;color:var(--code-dim);padding:4px 6px;font-size:11px}.am-rules td{border-top:1px solid var(--code-line);padding:3px 6px}.am-rules tr.on td{color:#fff;background:#ffb86b33}.am-ids ol{max-height:220px;font-family:var(--font-mono);margin:8px 0 0;padding:0;font-size:13px;list-style:none;overflow-y:auto}.am-ids li{color:var(--code-dim);white-space:nowrap;padding:3px 0}.am-ids li.cur{color:#fff;font-weight:700}.am-turnstile{color:#ffb86b}.am-rule-hint{color:var(--code-ink);padding:4px 16px 16px;font-size:14px}.am-rule-hint b{color:#ffb86b}.am-options{gap:8px;display:grid}.am-option{border:1.5px solid var(--line);background:var(--bg);text-align:left;word-break:break-all;border-radius:12px;min-height:52px;padding:10px 14px;font-size:15px}.am-option:hover{border-color:var(--ink)}.am-option.right{border-color:var(--mint);background:color-mix(in srgb, var(--mint) 14%, transparent)}.am-option.wrong{border-color:var(--signal);background:color-mix(in srgb, var(--signal) 12%, transparent)}.am-tip{align-items:flex-start;gap:10px;display:flex}.am-tip svg{color:var(--amber);flex:none;margin-top:3px}.am-next{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;display:flex}.program-card.soon{opacity:.62;cursor:default}.program-card.soon:hover{box-shadow:none;border-color:var(--line);transform:none}.program-icon.soon{background:var(--bg-2);color:var(--muted)}.soon-tag{border:1px solid var(--line);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-radius:999px;flex:none;align-self:center;margin-left:auto;padding:3px 10px;font-size:11px;font-weight:700}.soon-inline{border:1px solid var(--line);font-family:var(--font-body);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-radius:999px;margin-left:8px;padding:1px 8px;font-size:10.5px;font-weight:700}.am-two{gap:8px;min-width:0;padding:4px 8px 8px;display:grid}.am-two>div{min-width:0}@media (width>=900px){.am-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.am-caption{letter-spacing:.06em;text-transform:uppercase;color:var(--code-dim);padding:8px 10px 0;font-size:11px;font-weight:700;display:block}.ds-ops .am-caption{color:var(--muted);padding-left:0}.am-table-wrap{max-width:100%;overflow-x:auto}.am-table{border-collapse:collapse;min-width:100%;font-size:14px}.am-table th,.am-table td{border-bottom:1px solid var(--line);text-align:center;white-space:nowrap;padding:6px 8px}.am-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px}.am-table select{border:1.5px solid var(--line);background:var(--bg);min-height:38px;color:var(--ink);font-family:var(--font-mono);border-radius:8px;padding:0 6px;font-size:14px}.am-table input[type=radio],.am-table input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.am-table td.editing{background:var(--accent-soft)}.am-icon{border:1px solid var(--line);background:var(--surface);border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.am-add{min-height:40px;margin-top:10px}.am-tri-wrap{padding:0 10px 10px;overflow-x:auto}.am-tri{border-collapse:collapse;font-family:var(--font-mono);margin:8px 0 0;font-size:13px}.am-tri th{color:var(--code-dim);padding:4px 8px}.am-tri td{text-align:center;color:#ff8a63;border:1px solid #2a3150;width:44px;height:36px;font-weight:700;transition:background .3s}.am-tri td.x{background:#ff6a3d24}.am-tri td.new{color:#fff;background:#ffb86b66}.am-golf{grid-template-columns:1fr 1fr;gap:10px;padding:6px 16px 16px;display:grid}.am-golf>div{flex-wrap:wrap;align-content:flex-start;gap:6px;display:flex}.am-golf .am-caption{width:100%;padding:0}.am-gword{font-family:var(--font-mono);background:#151a30;border:1px solid #2a3150;border-radius:8px;padding:4px 10px;font-size:14px}.am-gword.ok{color:#3dd6a6;border-color:#3dd6a6}.am-gword.bad{color:#ff8a63;border-color:#ff8a63}.am-xyz{font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:4px;padding:6px 16px 14px;font-size:18px;font-weight:700;display:flex}.am-xyz span{border-radius:8px;padding:6px 10px;animation:.3s both pop-in}.am-xyz .x{color:#a9b8ff;background:#7c93ff33}.am-xyz .y{color:#ffb86b;background:#ffb86b40}.am-xyz .z{color:#3dd6a6;background:#3dd6a62e}.am-xyz small{width:100%;font-family:var(--font-body);color:var(--code-dim);font-size:12px;font-weight:500}.am-form{flex-wrap:wrap;gap:4px;padding:10px 16px;display:flex}.am-sym{min-width:34px;height:40px;font-family:var(--font-mono);border-radius:8px;place-items:center;padding:0 6px;font-size:18px;font-weight:700;animation:.25s both pop-in;display:grid}.am-sym.t{color:#fff;background:#151a30;border:1px solid #2a3150}.am-sym.nt{color:#a9b8ff;background:#7c93ff2e;border:1px dashed #7c93ff}.am-sym.nt.on{color:#0b0d12;background:#7c93ff;border-style:solid}.am-derivation{font-family:var(--font-mono);color:var(--code-dim);max-height:160px;margin:0;padding:0 16px 14px;font-size:13px;list-style:none;overflow-y:auto}.am-derivation li:last-child{color:#fff}.am-grammar{background:var(--code-bg);color:var(--code-ink);font-family:var(--font-mono);border-radius:12px;gap:4px;margin:0;padding:10px 12px;font-size:14px;list-style:none;display:grid}.am-grammar li.hl{color:#ffb86b}.am-gstep{padding:8px 16px 12px}.am-tline{stroke:#5b6590;stroke-width:1.8px}.am-tnode circle{fill:#151a30;stroke:#7c93ff;stroke-width:1.8px}.am-tnode.open circle{stroke-dasharray:4 3;fill:#7c93ff26}.am-tnode rect{fill:#3dd6a62e;stroke:#3dd6a6}.am-tnode text{fill:#fff;font-family:var(--font-mono);font-size:14px;font-weight:700}.am-tnode.t text{fill:#3dd6a6}.am-fixed{padding:0 8px 12px}.am-fixed .am-grammar{margin:0 8px}.am-match{grid-template-columns:1fr 1fr;gap:10px;padding:8px 12px 14px;display:grid}.am-match>div{align-content:start;gap:8px;display:grid}.am-mcard{min-height:52px;color:var(--code-ink);text-align:left;background:#151a30;border:1.5px solid #2a3150;border-radius:12px;padding:8px 10px;font-size:14px}.am-mcard.on{background:#7c93ff33;border-color:#7c93ff}.am-mcard.paired{border-style:dashed;border-color:#a9b8ff}.am-mcard.right{background:#3dd6a624;border:1.5px solid #3dd6a6}.am-mcard.wrong{background:#ff6a3d24;border:1.5px solid #ff8a63}.am-cyk{border-collapse:collapse;font-family:var(--font-mono);margin:8px 16px;font-size:13px}.am-cyk th{color:var(--code-dim);padding:4px 8px}.am-cyk td{text-align:center;color:#fff;border:1px solid #2a3150;min-width:56px;height:40px;padding:2px 6px;transition:background .3s}.am-cyk td.on{background:#ffb86b4d}.am-cyk td.win{background:#3dd6a64d}.am-pcp-rows{gap:6px;padding:8px 16px 14px;display:grid;overflow-x:auto}.am-pcp-row{min-height:36px;font-family:var(--font-mono);gap:2px;font-size:18px;font-weight:700;display:flex}.am-pcp-row span{color:#fff;background:#151a30;border-radius:6px;place-items:center;width:26px;display:grid}.am-pcp-row span.bad{background:#ff6a3d59}.am-pcp-row span.extra{color:#a9b8ff;background:#7c93ff33}.am-dominoes{flex-wrap:wrap;gap:10px;display:flex}.am-domino{border:2px solid var(--ink);background:var(--surface);min-width:72px;font-family:var(--font-mono);border-radius:12px;font-size:17px;font-weight:700;display:grid;position:relative;overflow:hidden}.am-domino span{padding:8px 12px}.am-domino span:first-child{border-bottom:2px solid var(--ink)}.am-domino small{color:var(--muted);font-size:10px;position:absolute;top:2px;right:6px}.am-domino:active{transform:scale(.96)}.am-nums{flex-wrap:wrap;gap:8px;padding:10px 16px;display:flex}.am-num{color:#fff;min-width:52px;min-height:48px;font-family:var(--font-mono);background:#151a30;border:1.5px solid #2a3150;border-radius:12px;font-size:18px;font-weight:700}.am-num.on{color:#0b0d12;background:#7c93ff;border-color:#7c93ff}.am-num.scan{box-shadow:0 0 0 3px #ffb86b99}.am-h3{align-items:center;gap:8px;margin-bottom:10px;font-size:18px;font-weight:700;display:flex}.am-lexline{margin:12px 16px 4px;font-size:16px}.am-tokens{flex-wrap:wrap;gap:6px;padding:6px 16px 14px;display:flex}.am-token{font-family:var(--font-mono);background:#151a30;border:1px solid #2a3150;border-radius:8px;padding:4px 8px;font-size:13px;animation:.25s both pop-in}.am-token b{color:#a9b8ff;margin-right:4px;font-size:10px}.am-token.t-keyword b{color:#c792ea}.am-token.t-integer b,.am-token.t-float b{color:#ffb86b}.am-token.t-operator b,.am-token.t-punctuation b{color:#3dd6a6}.am-answer{background:var(--bg-2);border-radius:10px;padding:10px 12px}.run-ds{gap:10px;min-width:0;display:grid}.run-ds-pane{background:#0b0e1c;border:1px solid #2a3150;border-radius:12px;min-width:0;padding:8px 8px 4px}.run-ds-title{letter-spacing:.06em;text-transform:uppercase;color:var(--code-dim);padding:0 4px 2px;font-size:11px;font-weight:600;display:block}.mem-scope{letter-spacing:.06em;text-transform:uppercase;color:var(--code-dim);grid-column:1/-1;font-size:11px;font-weight:600}.mem-globals{border:1px dashed #2a3150;border-radius:12px;padding:10px}.mem-val.ptr{color:#a9b8ff;font-size:18px}.ptr-data{color:#fff;vertical-align:middle;background:#7c93ff2e;border-radius:6px;margin-left:6px;padding:1px 6px;font-size:12px}.matrix{align-items:center;gap:3px;max-width:340px;margin-top:6px;display:grid}.matrix .cell-i{text-align:center}.mcell{font-family:var(--font-mono);text-align:center;color:#fff;background:#0f1324;border:1px solid #2a3150;border-radius:6px;padding:3px 0;font-size:13px;font-weight:600;transition:border-color .2s,background .2s}.mcell.zero{color:var(--code-dim)}.mcell.read{background:#7c93ff38;border-color:#7c93ff}.mcell.written{background:#ffb86b3d;border-color:#ffb86b;animation:.4s bump}.ds-anchor{scroll-margin-top:72px}.ds-examples{margin-top:40px}.ds-examples>h2{margin-bottom:4px;font-size:clamp(26px,6vw,36px);font-weight:800}.ds-examples>.muted{max-width:64ch;margin:0 0 14px}.ds-ex-sub{margin:28px 0 4px;font-size:20px;font-weight:700}.ds-ex-grid{gap:10px;display:grid}@media (width>=760px){.ds-ex-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.ds-ex-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.ds-ex{text-align:left;min-width:0;font:inherit;color:inherit;cursor:pointer;align-items:flex-start;gap:12px;padding:14px 16px;text-decoration:none;transition:transform .15s,border-color .15s;display:flex}.ds-ex:hover{border-color:var(--accent);transform:translateY(-2px)}.ds-ex-icon{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.ds-ex-icon.play{background:color-mix(in srgb, var(--mint) 16%, transparent);color:var(--mint)}.ds-ex-text{flex:1;gap:2px;min-width:0;display:grid}.ds-ex-text strong{font-size:15.5px}.ds-ex-text span{color:var(--muted);font-size:13.5px;line-height:1.45}.ds-ex-go{color:var(--muted);flex:none;margin-top:8px}.cstack{gap:6px;display:grid}.cstack-open{min-height:0;padding:0 14px}.cstack-well{background:linear-gradient(#0000,#7c93ff0d);border:3px solid #3a4266;border-top:0;border-radius:0 0 14px 14px;flex-direction:column;gap:5px;padding:8px;display:flex}.cframe{color:var(--code-dim);background:#151a30;border:1px solid #2a3150;border-radius:8px;gap:2px;padding:7px 10px;font-size:12.5px;display:grid}.cframe .mono{font-size:12.5px}.cframe.top{color:#fff;background:#7c93ff33;border-color:#7c93ff;font-weight:600}.cframe.pushed{animation:cframe-push var(--fly-ms,.5s) cubic-bezier(.2, .8, .2, 1) both}.cframe-tag{color:#a9b8ff;font-size:11px;font-weight:500}.cframe-wait{font-family:var(--font-mono);color:#ffb86b;font-size:11.5px}.cframe.popping{color:var(--code-ink);animation:cframe-pop calc(var(--fly-ms,.5s) * 1.6) ease both;background:#3dd6a61a;border-style:dashed;border-color:#3dd6a6}.cframe-ret{color:#3dd6a6;font-size:11.5px;font-weight:600}@keyframes cframe-push{0%{opacity:0;transform:translateY(-28px)}}@keyframes cframe-pop{0%{opacity:1;transform:translateY(26px)}to{opacity:.75;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.cframe.pushed,.cframe.popping{animation:none}}.chat-thread,.chat-top{max-width:1320px}.msg-body>p,.msg-prompt,.chat-code{max-width:820px}.run.fit{height:var(--fit-h,auto);flex-direction:column;display:flex}.run.fit .run-head{flex:none;padding:8px 14px}.run.fit .run-body{flex:1;grid-template-rows:minmax(0,1fr);min-height:0}.run.fit .run-code,.run.fit .run-flow{scrollbar-width:thin;scrollbar-color:#2a3150 transparent;min-height:0;overflow:auto}.run.fit .run-flow .flow-box{height:100%;max-height:100%}.run.fit .run-controls{border-top:1px solid var(--code-line);flex:none;padding:8px 14px 10px}.run-right{scrollbar-width:thin;scrollbar-color:#2a3150 transparent;border-top:1px solid var(--code-line);flex-direction:column;gap:10px;min-width:0;min-height:0;padding:12px 14px;display:flex;overflow-y:auto}.run-side{display:contents}.run-side .run-event{order:1;min-height:0}.run-pic{order:2;min-width:0}.run-side .cstack{order:3}.run-side .mem{order:4}.run-side .run-term{order:5}.run-pic .run-ds-pane svg{max-height:300px}.run-side .run-term{flex:none;min-height:56px;max-height:128px;margin:0;padding:8px 12px;font-size:13px;line-height:1.5;overflow-y:auto}.run.fit .mem{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px}.run.fit .mem-box{padding:5px 8px 6px}.run.fit .mem-val{font-size:19px}.run.fit .mem-globals{padding:8px}.run.fit .cells{gap:3px;margin-top:4px}.run.fit .cell{min-width:30px;padding:2px 5px 1px}.run.fit .cell-v{font-size:14px}.run.fit .run-note{font-size:15px;line-height:1.45}.cstack-well{gap:4px;padding:6px}.cframe{flex-wrap:wrap;align-items:baseline;gap:0 10px;padding:5px 9px;display:flex}.cframe.more{border-style:dashed;justify-content:center;font-size:11.5px}@media (width>=760px){.run-right{border-top:0;border-left:1px solid var(--code-line)}.run-side{border-left:0}}@media (width>=1024px){.run-body.has-pic{grid-template-columns:minmax(0,1fr) minmax(0,1.75fr)}.run-body.has-pic .run-right{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:14px;display:grid;overflow:hidden}.run-body.has-pic .run-pic{scrollbar-width:thin;flex-direction:column;min-height:0;display:flex;overflow-y:auto}.run-body.has-pic .run-pic .run-ds{flex:1;grid-auto-rows:minmax(0,auto);min-height:0}.run-body.has-pic .run-pic .run-ds-pane svg{max-height:calc(var(--fit-h,700px) - 210px)}.run-body.has-pic .run-pic .run-ds.two .run-ds-pane svg{max-height:calc((var(--fit-h,700px) - 250px) / 2)}.run-body.has-pic .run-side{scrollbar-width:thin;scrollbar-color:#2a3150 transparent;flex-direction:column;gap:10px;min-height:0;display:flex;overflow-y:auto}.run-body.has-pic .run-side .run-term{margin-top:auto}}.run-ds-pane .ds-canvas{justify-content:center;padding:6px 2px;display:flex;overflow:hidden}.run-ds-pane .ds-canvas svg{max-width:100%;height:auto;width:auto!important}@media (width<=759px){.run.fit .run-body{grid-template-rows:auto minmax(0,1fr)}.run-pic .run-ds-pane svg{max-height:220px}}.run-right>*,.run-side>*{flex-shrink:0}.composer-wrap.is-hidden{display:none}.run.fit .run-head{padding:6px 14px}.run.fit .run-sub{font-size:11px}.run.fit .run-controls{padding:6px 14px 8px}.run.fit .mem-val.ptr{white-space:nowrap;font-size:16px}.run.fit .ptr-data{margin-left:4px}@media (width>=1024px){.run-body.has-pic .run-pic .run-ds-pane svg{max-height:calc(var(--fit-h,700px) - 170px)}.run-body.has-pic .run-pic .run-ds.two .run-ds-pane svg{max-height:calc(var(--fit-h,700px) - 340px)}.run-body.has-pic .run-pic .run-ds.two .run-ds-pane.short svg{max-height:110px}.run-body.has-pic .run-pic .run-ds{align-content:start}.run-body.has-pic .run-pic.with-stack .run-ds-pane svg{max-height:calc(var(--fit-h,700px) - 380px)}.run-pic.with-stack .cstack{margin-top:10px}}.run.fit .run-title,.run.fit .run-title>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.disc .status.live{background:var(--mint);color:#fff;border:0}.mx-loading{text-align:center;color:var(--muted);padding:120px 20px}.mx-modules{gap:14px;display:grid}@media (width>=760px){.mx-modules{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1180px){.mx-modules{grid-template-columns:repeat(3,minmax(0,1fr))}}.mx-module{padding:18px}.mx-mod-n{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:700}.mx-module h2{margin:4px 0 2px;font-size:22px;font-weight:800}.mx-module>p{margin:0 0 10px;font-size:13.5px}.mx-module ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.mx-act{color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.mx-act>span{flex:1;min-width:0;display:grid}.mx-act strong{font-size:14.5px;font-weight:600}.mx-act small{font-size:12.5px;line-height:1.35}.mx-act em{border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:11px;font-style:normal}.mx-act.live{color:var(--ink);background:var(--accent-soft)}.mx-act.live small{color:var(--muted)}.mx-act.live:hover{outline:2px solid var(--accent)}.mx-problems{margin-top:36px}.mx-problems>h2{margin-bottom:4px;font-size:clamp(26px,6vw,34px);font-weight:800}.mx-problems>.muted{margin:0 0 14px}.mx-page{width:100%;max-width:1440px;padding:0 var(--gutter) 24px;background:var(--bg);margin:0 auto}.mx-page.full{max-width:none;height:100vh;padding-bottom:8px;overflow:auto}.mx-top{align-items:center;gap:10px;padding:8px 0;display:flex}.mx-top-title{min-width:0;margin-right:auto;line-height:1.3;display:grid}.mx-top-title strong{font-family:var(--font-display);font-size:19px}.mx-top-title span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.mx-next{flex:none}.mx-tip{color:var(--muted);align-items:flex-start;gap:8px;margin:12px 0 0;font-size:14px;display:flex}.mx-tip svg{color:var(--amber);flex:none;margin-top:2px}.mx-stage{--mx-bg:#0f1222;--mx-accent:#7c93ff;--mx-o:#ffb86b;--mx-g:#3dd6a6;--mx-b:#7c93ff;--mx-dim:#6b7290;background:var(--mx-bg);height:calc(100dvh - 154px);min-height:560px;color:var(--code-ink);box-shadow:var(--shadow);border-radius:18px;grid-template-rows:minmax(0,1fr) auto auto;display:grid;overflow:hidden}.mx-page.full .mx-stage{height:calc(100vh - 86px)}.mx-main{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);min-height:0;display:grid}.mx-pic{flex-direction:column;gap:8px;min-width:0;min-height:0;padding:14px 18px;display:flex}.mx-pic>.mx-plane,.mx-pic>svg{flex:1;min-height:0}.mx-side{border-left:1px solid var(--code-line);scrollbar-width:thin;scrollbar-color:#2a3150 transparent;flex-direction:column;gap:12px;min-width:0;min-height:0;padding:16px 20px;display:flex;overflow-y:auto}.mx-side>*{flex-shrink:0}.mx-stage.board .mx-main{grid-template-columns:minmax(0,1fr)}.mx-stage.board .mx-pic{display:none}.mx-stage.board .mx-side{border-left:0;padding:24px 48px;font-size:19px}.mx-stage.board .mx-step-m{font-size:1.25em}.mx-why{border-top:1px solid var(--code-line);background:#3dd6a60f;align-items:flex-start;gap:12px;padding:10px 18px;display:flex}.mx-why p{color:#fff;margin:0;font-size:14px;line-height:1.5}.mx-why strong{color:var(--mx-g)}.mx-why-icon{width:32px;height:32px;color:var(--mx-g);background:#3dd6a629;border-radius:10px;flex:none;place-items:center;display:grid}.mx-bar{border-top:1px solid var(--code-line);align-items:center;gap:8px;padding:8px 14px 10px;display:flex}.mx-bar .ctl.speed{align-items:center;gap:6px;width:auto;display:inline-flex}.mx-progress{flex:1;gap:5px;min-width:0;padding:0 8px;display:flex}.mx-progress button{background:#2a3150;border:0;border-radius:5px;flex:1;min-width:6px;height:10px;padding:0}.mx-progress button.on{background:var(--mx-accent)}.mx-label{letter-spacing:.06em;text-transform:uppercase;color:var(--mx-dim);font-size:11.5px;font-weight:600;display:block}.mx-note{color:#fff;margin:0;font-size:16px;line-height:1.5}.mx-small{color:#a9b0c8;margin:0;font-size:13.5px;line-height:1.45}.mx-hint{color:var(--mx-dim);letter-spacing:0;font-size:12px;font-weight:400}.mx-cap{color:#c9cfe4;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:13.5px;display:flex}.mx-kv{font-family:var(--font-mono);color:#c9cfe4;font-size:13.5px}.mx-o{color:var(--mx-o)}.mx-g{color:var(--mx-g)}.mx-b{color:var(--mx-b)}.mx-dim{color:var(--mx-dim)}.mx-math{color:#fff;background:#151a30;border:1px solid #2a3150;border-radius:12px;gap:2px;padding:10px 14px;font-size:15px;display:grid;overflow-x:auto}.mx-math .tex-block .katex-display{text-align:left;margin:.25em 0}.mx-math .katex-display>.katex{text-align:left}.mx-bases{font-size:13px}.tex .katex{font-size:1.08em}.mx-slider{color:#c9cfe4;grid-template-columns:minmax(28px,auto) minmax(0,1fr) 52px;align-items:center;gap:10px;font-size:14px;display:grid}.mx-slider input{width:100%;accent-color:var(--mx-accent);height:28px}.mx-slider-l{font-family:STIX Two Text,Times New Roman,serif;font-size:17px;font-style:italic}.mx-slider-v{font-family:var(--font-mono);text-align:right}.mx-pic .mx-slider{max-width:520px}.mx-chips{flex-wrap:wrap;gap:6px;display:flex}.mx-chips button,.mx-chip-btn{color:#d7dcf0;min-height:38px;font:inherit;background:#151a30;border:1px solid #2a3150;border-radius:999px;align-items:center;gap:6px;padding:0 13px;font-size:13.5px;display:inline-flex}.mx-chips button.on{background:var(--mx-accent);border-color:var(--mx-accent);color:#0b0d12;font-weight:600}.mx-row{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.mx-predict{border:1px dashed #4a5480;border-radius:12px;padding:12px 14px}.mx-predict p{color:#fff;margin:6px 0 10px;font-size:15px}.mx-predict-row,.mx-predict-grid{flex-wrap:wrap;gap:8px;display:flex}.mx-predict-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-top:8px;display:grid}.mx-opt{color:#fff;min-height:42px;font:inherit;background:#151a30;border:1px solid #2a3150;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:14px;display:inline-flex}.mx-opt.picked{border-color:var(--mx-accent)}.mx-opt.right{border-color:var(--mx-g);background:#3dd6a629}.mx-opt.wrong{background:#ff6a3d24;border-color:#ff8a63}.mx-opt.reveal{background:var(--mx-accent);border-color:var(--mx-accent);color:#0b0d12;margin-left:auto;font-weight:600}.mx-opt:disabled{cursor:default}.mx-predict-ans{color:var(--mx-g);margin-top:10px;font-size:14.5px}.mx-stats{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;display:grid}.mx-stats.col{grid-template-columns:1fr}.mx-stats>div{background:#151a30;border:1px solid #2a3150;border-radius:10px;padding:8px 10px}.mx-stats>div.on{border-color:var(--mx-o)}.mx-stats span{color:var(--mx-dim);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600;display:block}.mx-stats b{font-family:var(--font-mono);color:#fff;font-size:18px}.mx-table{border-collapse:collapse;width:100%;font-size:14px}.mx-table th{text-align:left;color:var(--mx-dim);padding:4px 6px;font-size:11.5px;font-weight:600}.mx-table td{font-family:var(--font-mono);border-top:1px solid #1d2238;padding:6px;font-size:13.5px}.mx-two{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:0;display:grid}.mx-two>div{flex-direction:column;gap:4px;min-height:0;display:flex}.mx-two>div>svg{flex:1;min-height:0}.mx-two-sm{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;display:grid}.mx-center{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.mx-center.col{flex-direction:column;gap:10px}.mx-plane{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.mx-bg{fill:#0b0e1c;stroke:#1d2238}.mx-grid line{stroke:#182040;stroke-width:1px}.mx-axis line,.mx-axis path{stroke:#4a5480;stroke-width:1.5px;fill:none}.mx-ticks text{fill:var(--mx-dim);font-family:var(--font-mono);font-size:11.5px}.mx-axname,.mx-axname text{fill:#a9b0c8;font-family:STIX Two Text,Times New Roman,serif;font-size:17px;font-style:italic}.mx-3d-base{fill:#7c93ff0d;stroke:#2a3150}.mx-curve{fill:none;stroke:var(--mx-b);stroke-width:3px;stroke-linejoin:round}.mx-curve.o{stroke:var(--mx-o)}.mx-curve.g{stroke:var(--mx-g)}.mx-curve.dashed{stroke-dasharray:7 6;stroke-width:2.2px}.mx-curve-o,.mx-curve-g{fill:none;stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}.mx-curve-o{stroke:var(--mx-o)}.mx-curve-g{stroke:var(--mx-g)}.mx-slice-plane{fill:#ffb86b1a;stroke:var(--mx-o);stroke-dasharray:6 5;stroke-width:1.2px}.mx-slice-plane.g{fill:#3dd6a61a;stroke:var(--mx-g)}.mx-tangent{stroke:#fff;stroke-width:3px;stroke-linecap:round;fill:none}.mx-tangent.g{stroke:#c8fff0}.mx-tangent-2d{stroke:var(--mx-o);stroke-width:3px;fill:none;stroke-linecap:round}.mx-tplane{fill:#ffb86b2e;stroke:var(--mx-o);stroke-width:1.2px}.mx-drop{stroke:#a9b0c8;stroke-width:1.2px;stroke-dasharray:3 4;fill:none}.mx-gap{stroke:#ff8a63;stroke-width:2.5px}.mx-dot{fill:var(--mx-accent);stroke:#fff;stroke-width:2px}.mx-dot.g{fill:var(--mx-g)}.mx-dot.o{fill:var(--mx-o)}.mx-fill-o{fill:#ffb86b4d;stroke:var(--mx-o);stroke-width:2px}.mx-warp{stroke:#3a4a8c;stroke-width:1.2px;fill:none}.mx-cp{fill:#c9cfe4;stroke:var(--mx-bg);stroke-width:2.5px}.mx-cp.saddle{fill:var(--mx-o)}.mx-cp.minimum{fill:var(--mx-g)}.mx-cp.maximum{fill:var(--mx-b)}.mx-cp-label{fill:#fff;font-family:var(--font-body);paint-order:stroke;stroke:var(--mx-bg);stroke-width:4px;font-size:13px;font-weight:600}.mx-cp-label.o{fill:var(--mx-o)}.mx-cp-label.g{fill:var(--mx-g)}.mx-cp-label.bad{fill:#ff8a63}.mx-cross{stroke:#ff6a3d;stroke-width:3px;stroke-linecap:round}.mx-double-arc{fill:none;stroke:var(--mx-o);stroke-width:2.5px;stroke-dasharray:6 4}.mx-mirror{stroke:var(--mx-g);stroke-dasharray:4 4}.mx-saddle-line{fill:none;stroke:#fff;stroke-width:2.4px;stroke-dasharray:5 4}.mx-span-plane{fill:#3dd6a633;stroke:var(--mx-g);stroke-width:1.5px}.mx-span-line{stroke:var(--mx-g);stroke-width:4px;stroke-linecap:round;fill:none;opacity:.8}.mx-span-line.dashed{stroke:#a9b0c8;stroke-width:2.5px;stroke-dasharray:7 6}.mx-span-fill{fill:#3dd6a61f}.mx-sol-line{stroke:var(--mx-o);stroke-width:4px;stroke-linecap:round;fill:none}.mx-chain{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.mx-chain>.mx-plane{flex:none;height:auto;max-height:32%}.mx-tree{flex:1;min-height:200px;position:relative}.mx-tree svg{width:100%;height:100%;position:absolute;inset:0}.mx-edge{stroke:#2a3150;stroke-width:1.2px;vector-effect:non-scaling-stroke}.mx-edge.on{stroke-width:4px}.mx-edge.on.o{stroke:var(--mx-o)}.mx-edge.on.g{stroke:var(--mx-g)}.mx-node{border:2px solid var(--mx-accent);color:#fff;background:#151a30;border-radius:50%;place-items:center;width:52px;height:52px;font-family:STIX Two Text,Times New Roman,serif;font-size:24px;font-style:italic;display:grid;position:absolute;transform:translate(-50%,-50%)}.mx-elabel{color:var(--mx-dim);white-space:nowrap;opacity:.45;background:#0f1222;border-radius:8px;padding:4px 8px;font-size:13px;position:absolute;transform:translate(-50%,-50%)}.mx-elabel.on{opacity:1;border:1px solid}.mx-elabel.on.o{color:var(--mx-o)}.mx-elabel.on.g{color:var(--mx-g)}.mx-matrix{border-left:3px solid #a9b8ff;border-right:3px solid #a9b8ff;border-radius:8px;padding:6px 14px;display:inline-flex}.mx-matrix-grid{text-align:center;color:#fff;align-items:center;gap:6px;font-family:STIX Two Text,Times New Roman,serif;display:grid}.mx-matrix.lg .mx-matrix-grid{font-size:30px}.mx-matrix.md .mx-matrix-grid{font-size:22px}.mx-matrix.sm .mx-matrix-grid{row-gap:2px;font-size:16px}.mx-matrix.sm{padding:3px 8px}.mx-cell{border-radius:8px;min-width:1.8em;padding:.12em .3em;transition:background .3s,color .3s}.mx-matrix.lg .mx-cell{place-items:center;min-height:1.9em;display:grid}.mx-cell.on{color:var(--mx-o);background:#ffb86b29}.mx-cell.pivot{box-shadow:inset 0 0 0 2.5px var(--mx-g);border-radius:50%}.mx-cell .katex{font-size:.85em}.mx-rlabel{color:var(--mx-dim);padding-right:10px;font-size:.6em;font-style:italic}.mx-rlabel.on{color:var(--mx-o);font-weight:600}.mx-augbar{border-left:2px dashed #4a5480;align-self:stretch}.mx-rowcalc{background:#151a30;border:1px solid #2a3150;border-radius:12px;padding:10px 14px}.mx-rowcalc-grid{color:#c9cfe4;justify-content:start;align-items:center;gap:4px 14px;margin-top:6px;font-size:16px;display:grid}.mx-rowcalc-grid .on{color:var(--mx-o);font-weight:600}.mx-op{border:1px solid var(--mx-o);color:var(--mx-o);background:#ffb86b1f;border-radius:10px;align-self:flex-start;padding:8px 14px;font-size:19px}.mx-phases{color:var(--mx-dim);gap:4px;font-size:13px;display:grid}.mx-phases .on{color:#fff;font-weight:600}.mx-result{color:#fff;border:1px solid;border-radius:12px;padding:10px 14px;font-size:17px}.mx-result.unique{border-color:var(--mx-g);background:#3dd6a614}.mx-result.many{border-color:var(--mx-b);background:#7c93ff14}.mx-result.none{background:#ff6a3d14;border-color:#ff8a63}.mx-editor{gap:8px;display:grid}.mx-editor textarea{color:#fff;width:100%;font-family:var(--font-mono);background:#0b0e1c;border:1px solid #2a3150;border-radius:10px;padding:10px;font-size:15px}.mx-err{color:#ff8a63;margin:0;font-size:13.5px}.mx-box{fill:#7c93ff0a;stroke:#2a3150}.mx-box-t{fill:#c9cfe4;font-size:15px;font-weight:600}.mx-slab{stroke-width:1.5px}.mx-slab.o{fill:#ffb86b40;stroke:var(--mx-o)}.mx-slab.g{fill:#3dd6a638;stroke:var(--mx-g)}.mx-slab.b{fill:#7c93ff40;stroke:var(--mx-b)}.mx-slab-t{fill:#fff;font-size:13px;font-weight:600}.mx-slab-d{fill:#c9cfe4;font-size:12px;font-family:var(--font-mono)}.mx-zero{fill:#fff}.mx-map{fill:none;stroke-width:2.5px;stroke-dasharray:7 5}.mx-map.o{stroke:var(--mx-o)}.mx-map.g{stroke:var(--mx-g)}.mx-map-t{fill:var(--mx-o);font-size:14px;font-weight:600}.mx-map-t.g{fill:var(--mx-g)}.mx-statement{color:#fff;background:#151a30;border:1px solid #2a3150;border-radius:12px;padding:12px 14px;font-size:15px;line-height:1.6}.mx-statement .katex{white-space:normal}.mx-steps{counter-reset:st;gap:6px;margin:0;padding:0;list-style:none;display:grid}.mx-steps li{counter-increment:st;color:#a9b0c8;border-radius:10px;padding:8px 12px}.mx-steps li.on{border:1px solid var(--mx-accent);color:#fff;background:#7c93ff24}.mx-steps li.todo{color:#4a5480}.mx-step-t{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:14.5px;font-weight:600;display:block}.mx-step-t:before{content:counter(st) ". "}.mx-step-m{margin-top:4px;font-size:15px;overflow-x:auto}@media (width<=899px){.mx-stage{height:auto;min-height:0}.mx-main{grid-template-columns:minmax(0,1fr)}.mx-pic>.mx-plane,.mx-pic>svg,.mx-two>div>svg{flex:none;height:auto;max-height:52vh}.mx-side{border-left:0;border-top:1px solid var(--code-line);overflow:visible}.mx-two{grid-template-columns:minmax(0,1fr)}.mx-tree{min-height:240px}.mx-chain>.mx-plane{max-height:none}.mx-matrix.lg .mx-matrix-grid{font-size:22px}.mx-why p{font-size:13.5px}.mx-bar{flex-wrap:wrap}.mx-top-title span{white-space:normal}}.mx-pic>.mx-plane.mx-short{flex:0 30%}.mx-step-m.small{opacity:.8;font-size:12.5px}.mx-ghostgrid{stroke:#1b2240;stroke-width:1px;fill:none}.mx-warp.strong{stroke:#4a5ca8;stroke-width:1.3px}.mx-unit{fill:none;stroke:#6b7290;stroke-width:1.5px;stroke-dasharray:4 4}.mx-fill-w{fill:#ffffff1f;stroke:#fff;stroke-width:2px;stroke-dasharray:6 4}.mx-fill-g{fill:#3dd6a647;stroke:var(--mx-g);stroke-width:2px}.mx-span-plane.o{fill:#ffb86b33;stroke:var(--mx-o)}.mx-span-line.o{stroke:var(--mx-o)}.mx-rightangle{fill:none;stroke:#fff;stroke-width:1.5px}.mx-unitcircle{fill:none;stroke:#4a5480;stroke-width:1.5px}.mx-ellipse{fill:#ffb86b0f;stroke:#ffb86b73;stroke-width:1.5px;stroke-dasharray:5 4}.mx-iter{fill:none;stroke:#a9b8ff;stroke-width:1.5px;stroke-dasharray:3 4}.mx-errsq{fill:#ffb86b38;stroke:var(--mx-o);stroke-width:1.2px}.mx-resid{stroke:#ff8a63;stroke-width:1.5px;stroke-dasharray:3 3}.mx-resid.strong{stroke-dasharray:none;stroke-width:2.5px}.mx-chip-btn.on{background:var(--mx-accent);border-color:var(--mx-accent);color:#0b0d12}.mx-chip-btn:disabled{opacity:.4}.mx-log{color:#c9cfe4;margin:0;padding-left:18px;font-size:13.5px}.mx-guess{color:#fff;align-items:center;gap:12px;font-size:24px;display:flex}.mx-guess-grid{border-left:3px solid #a9b8ff;border-right:3px solid #a9b8ff;border-radius:8px;grid-template-columns:repeat(2,76px);gap:8px;padding:6px 10px;display:grid}.mx-guess-grid input{color:#fff;text-align:center;background:#0b0e1c;border:1px solid #2a3150;border-radius:8px;width:100%;min-height:44px;font-family:STIX Two Text,serif;font-size:22px}.mx-guess-grid input.o{border-color:var(--mx-o)}.mx-guess-grid input.g{border-color:var(--mx-g)}.mx-imgs{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:16px;min-height:0;display:grid}.mx-imgs figure{color:#c9cfe4;justify-items:center;gap:6px;margin:0;font-size:13px;display:grid}.mx-img{aspect-ratio:1;width:100%;max-width:300px;image-rendering:pixelated;border:1px solid #2a3150;border-radius:8px}.mx-bars{background:#151a30;border-radius:10px;align-items:flex-end;gap:3px;height:90px;padding:6px;display:flex}.mx-bars span{background:#2a3150;border-radius:2px 2px 0 0;flex:1;min-height:2px}.mx-bars span.on{background:var(--mx-o)}.mx-wb{gap:14px;display:grid}@media (width>=900px){.mx-wb{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:start}}.mx-wb-in{gap:12px;padding:16px;display:grid}.mx-label.dark{color:var(--muted)}.mx-wb-in textarea{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);font-family:var(--font-mono);border-radius:10px;padding:10px;font-size:16px}.mx-wb-in .mx-matrix{border-color:var(--accent)}.mx-wb-in .mx-matrix-grid{color:var(--ink)}.mx-wb-in .mx-err{color:#c2410c}.mx-stage-lite{color:var(--code-ink);--mx-accent:#7c93ff;--mx-o:#ffb86b;--mx-g:#3dd6a6;--mx-dim:#6b7290;background:#0f1222;border-radius:18px;align-content:start;gap:12px;min-height:360px;padding:16px 18px;display:grid}.mx-wb-res{color:#fff;gap:8px;display:grid;overflow-x:auto}.mx-oplist{color:#c9cfe4;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 16px;margin:0;padding-left:22px;display:grid}.mx-tut-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.mx-chips.light button{background:var(--surface);color:var(--ink);border-color:var(--line)}.mx-chips.light button.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}.mx-score{margin-left:auto;font-weight:700}.mx-tut-list{gap:12px;margin:0;padding-left:22px;display:grid}.mx-tut-list>li{padding:16px 18px}.mx-tut-tag{letter-spacing:.05em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:700}.mx-tut-q{margin:6px 0 12px;font-size:16.5px;line-height:1.6}.mx-tut-ans{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mx-tut-ans label{align-items:center;gap:6px;font-family:STIX Two Text,serif;font-size:18px;font-style:italic;display:inline-flex}.mx-tut-ans input{border:1px solid var(--line);background:var(--surface);width:120px;min-height:42px;color:var(--ink);font-family:var(--font-mono);border-radius:10px;padding:0 10px;font-size:15px}.mx-ok,.mx-bad{align-items:center;gap:6px;font-weight:700;display:inline-flex}.mx-ok{color:var(--mint)}.mx-bad{color:#c2410c}.mx-tut-sol{background:var(--bg-2);border-radius:12px;margin-top:10px;padding:10px 14px;overflow-x:auto}.print-only{display:none}@media print{.site-header,.site-footer,.mx-top,.no-print,.mx-tut-sol{display:none!important}.print-only{display:block}.mx-tut-list>li{break-inside:avoid;box-shadow:none;border:1px solid #ccc}.mx-tut-ans input{border:0;border-bottom:1px solid #999;border-radius:0}.mx-key{break-before:page}}.mx-stats span{text-transform:none;letter-spacing:.02em}.al-topics{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.al-topic{color:inherit;flex-direction:column;gap:6px;padding:18px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.al-topic:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));transform:translateY(-2px)}.al-topic strong{font-size:18px}.al-topic em{color:var(--accent);align-items:center;gap:4px;margin-top:auto;padding-top:8px;font-size:14px;font-style:normal;font-weight:600;display:inline-flex}.al-below{padding-top:24px;padding-bottom:48px}.al-ideas{margin-bottom:8px;padding:18px 22px}.al-ideas h2{margin:0 0 8px;font-size:20px}.al-ideas ul{gap:6px;margin:0;padding-left:20px;line-height:1.5;display:grid}.al-bar{fill:#3a4470;transition:fill .2s,y .25s,height .25s}.al-bar.cmp{fill:var(--mx-o)}.al-bar.swap{fill:#ff6b8b}.al-bar.done{fill:var(--mx-g)}.al-bar.dim{fill:#252b45}.al-val,.al-idx{fill:#c9cfe8;font-size:13px;font-weight:600}.al-idx{fill:var(--mx-dim);font-size:12px}.al-node{fill:#1b2142;stroke:#3a4470;stroke-width:1.5px}.al-node.active{stroke:var(--mx-o);stroke-width:2.5px}.al-node.merged{fill:#12352d;stroke:var(--mx-g)}.al-node-t{fill:#eef1ff;font-size:15px;font-weight:700;font-family:var(--mono,ui-monospace, monospace)}.al-treeline,.al-grid{stroke:#2a3150;stroke-width:1.5px}.al-grid{stroke-dasharray:2 4}.al-lastline{stroke:var(--mx-g);stroke-width:2px;stroke-dasharray:6 4}.al-act{fill:#2a3260;stroke:#4a5590}.al-act.take{fill:#155a46;stroke:var(--mx-g)}.al-act.skip{fill:#1a1e33;stroke:#2a3150;opacity:.6}.al-act.cur{stroke:var(--mx-o);stroke-width:2.5px}.al-bag{fill:none;stroke:#c9cfe8;stroke-width:2px;stroke-dasharray:8 5}.al-fill.f0,.al-item.f0{fill:#2f4fbf}.al-fill.f1,.al-item.f1{fill:#157a5e}.al-fill.f2,.al-item.f2{fill:#9a5a1c}.al-item.cur{stroke:var(--mx-o);stroke-width:3px}.al-coins{grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:10px;padding:12px;display:grid}.al-coin{color:#c9cfe8;background:#151a30;border:1.5px solid #2a3150;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:14px 6px;display:flex}.al-coin b{font-size:18px}.al-coin span{min-height:20px;color:var(--mx-g);font-weight:700}.al-coin.used{border-color:var(--mx-g);background:#12352d}.al-coin.cur{border-color:var(--mx-o);box-shadow:0 0 0 3px color-mix(in srgb, var(--mx-o) 30%, transparent)}.al-dp-wrap{max-height:100%;padding:6px;overflow:auto}.al-dp{border-collapse:separate;border-spacing:3px;font-family:var(--mono,ui-monospace, monospace);color:#eef1ff;margin:0 auto}.al-dp th{color:var(--mx-dim);padding:2px 6px;font-size:12px;font-weight:600}.al-dp td{text-align:center;background:#1b2142;border:1.5px solid #2a3150;border-radius:6px;min-width:34px;height:32px;font-size:14px;font-weight:700}.al-dp td.empty{color:#0000;background:#12162a}.al-dp td.dep{border-color:var(--mx-g);background:#12352d}.al-dp td.cur{border-color:var(--mx-o);background:#3d2a12}.al-sq{fill:#2a3150}.al-sq.dark{fill:#1b2142}.al-sq.bad{fill:#6b2233}.al-sq.back{fill:#3d2a12}.al-attack{stroke:#ff6b8b;stroke-width:3px;stroke-dasharray:6 5}.al-queen{fill:#ffd27a}.al-edge{stroke:#3a4470;stroke-width:3px;transition:stroke .2s}.al-edge.cur{stroke:var(--mx-o);stroke-width:5px}.al-edge.tree{stroke:var(--mx-g);stroke-width:5px}.al-edge.rej{stroke:#ff6b8b;stroke-dasharray:6 6;opacity:.6}.al-wbox{fill:var(--mx-bg);stroke:#2a3150}.al-w{fill:#c9cfe8;font-size:13px;font-weight:700}.al-v{fill:#1b2142;stroke:#7c93ff;stroke-width:2px}.al-v.done{fill:#12352d;stroke:var(--mx-g)}.al-vt{fill:#eef1ff;font-size:16px;font-weight:700}.al-dist{fill:var(--mx-o);font-size:14px;font-weight:700}.al-ch{fill:#1b2142;stroke:#2a3150;stroke-width:1.5px}.al-ch.found{fill:#12352d}.al-ch.pat{fill:#232a52;stroke:#4a5590}.al-ch.ok{stroke:var(--mx-g)}.al-ch.cmp{stroke:var(--mx-o);stroke-width:3px}.al-ch.bad{stroke:#ff6b8b;stroke-width:3px;fill:#3a1622}.al-growth{gap:8px;padding:8px 4px;display:grid}.al-growth-row{color:#c9cfe8;grid-template-columns:82px 1fr 92px;align-items:center;gap:10px;display:grid}.al-growth-l{font-family:var(--mono,ui-monospace, monospace);font-size:14px;font-weight:700}.al-growth-track{background:#151a30;border-radius:6px;height:22px;overflow:hidden}.al-growth-bar{border-radius:6px;height:100%;transition:width .25s;display:block}.al-growth-bar.c0{background:#3dd6a6}.al-growth-bar.c1{background:#5fd17f}.al-growth-bar.c2{background:#a6d65a}.al-growth-bar.c3{background:#e6c84d}.al-growth-bar.c4{background:#ffb86b}.al-growth-bar.c5{background:#ff8a6b}.al-growth-bar.c6{background:#ff6b8b}.al-growth-v{text-align:right;font-variant-numeric:tabular-nums;font-size:13px}@media (width<=640px){.al-growth-row{grid-template-columns:64px 1fr 70px;gap:6px}}.obj-heap{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;padding:6px 2px;display:grid}.obj-heap.many{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}.obj-card{font-family:var(--mono,ui-monospace, monospace);color:var(--code-ink);background:#141a33;border:1.5px solid #2a3150;border-radius:10px;padding:6px 8px 7px;font-size:12.5px;transition:border-color .2s,box-shadow .2s,opacity .2s;position:relative}.obj-card.r{border-color:var(--tok-fn)}.obj-card.w{border-color:var(--tok-num);box-shadow:0 0 0 3px #ffb86b38}.obj-card.lost{opacity:.55}.obj-names{color:var(--tok-str);white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:11px;font-weight:700;overflow:hidden}.obj-card.lost .obj-names{color:var(--code-dim);font-weight:500}.obj-head{border-bottom:1px solid #2a3150;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:4px;padding-bottom:4px;display:flex}.obj-head b{color:var(--tok-kw);font-size:13px}.obj-head span{color:var(--code-dim);font-size:11px}.obj-f{justify-content:space-between;gap:8px;line-height:1.55;display:flex}.obj-f span{color:var(--code-dim)}.obj-f b{text-align:right;overflow-wrap:anywhere;font-weight:600}.obj-f b.ref{color:var(--tok-fn)}.obj-f b.junk{color:#ff6b8b}.obj-f.empty{color:var(--code-dim);font-style:italic}.obj-none{color:var(--code-dim);margin:0;padding:14px 8px;font-size:13px}.uml{font-family:var(--mono,ui-monospace, monospace)}.uml-box>rect:first-child{fill:#151a30;stroke:#4a5590;stroke-width:1.5px}.uml-box.interface>rect:first-child,.uml-box.abstract>rect:first-child{stroke-dasharray:6 4}.uml-box.exception>rect:first-child{stroke:#ff8a6b}.uml-head{fill:#232a52}.uml-name{fill:#eef1ff;font-size:13.5px;font-weight:700}.uml-name.it,.uml-row.it{font-style:italic}.uml-stereo{fill:var(--mx-o,#ffb86b);font-size:11px}.uml-sep{stroke:#4a5590}.uml-row{fill:#c9cfe8;font-size:12px}.uml-row.under{text-decoration:underline}.uml-edge{stroke:#9aa3c7;stroke-width:1.6px}.uml-real{stroke-dasharray:6 5}.uml-tri{fill:#0f1222;stroke:#9aa3c7;stroke-width:1.4px}.uml-dia{fill:#9aa3c7}.uml-open{fill:none;stroke:#9aa3c7;stroke-width:1.4px}.oop-pick{gap:6px;display:grid}.oop-pick button{text-align:left;color:#c9cfe8;font:inherit;cursor:pointer;background:#151a30;border:1px solid #2a3150;border-radius:10px;padding:8px 12px;font-size:14px}.oop-pick button.on{border-color:var(--mx-accent);background:color-mix(in srgb, var(--mx-accent) 22%, #151a30);color:#fff;font-weight:600}.oop-run{align-self:flex-start;align-items:center;gap:6px;display:inline-flex}.oop-legend b,.oop-legend u,.oop-legend i{color:#eef1ff}.am-tabs button{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.amd-pic{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;width:100%;min-height:0;display:flex}.amd-cap{letter-spacing:.04em;text-transform:uppercase;color:var(--mx-dim);font-size:13px;font-weight:600}.amd-diagram{justify-content:center;width:100%;min-height:0;display:flex}.amd-diagram .am-diagram,.amd-diagram>div{width:100%}.amd-diagram svg{max-height:46vh;width:min(100%,680px)!important}.amd-pic .am-cell{width:42px;height:46px;font-size:22px}.amd-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;display:flex}.amd-board{text-align:center;font-family:var(--mono,ui-monospace, monospace);color:#eef1ff;gap:10px;line-height:1.35;display:grid}.amd-board.md{font-size:18px}.amd-board.lg{font-size:24px}.amd-board.xl{font-size:34px;font-weight:700}.amd-h{font-family:var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--mx-dim);margin-top:6px;font-size:13px;font-weight:600}.amd-hi{color:var(--mx-o);font-weight:700}.amd-ok{color:var(--mx-g);font-weight:700}.amd-bad{color:#ff6b8b;font-weight:700;text-decoration:line-through;text-decoration-thickness:2px}.amd-dim{color:var(--mx-dim)}.amd-table{border-collapse:separate;border-spacing:4px;font-family:var(--mono,ui-monospace, monospace);color:#eef1ff;font-size:18px}.amd-table th{color:var(--mx-dim);padding:4px 12px;font-size:14px;font-weight:600}.amd-table td{text-align:center;background:#151a30;border:1px solid #2a3150;border-radius:8px;padding:8px 14px}.amd-pair{flex:1;grid-template-columns:1fr 1fr;align-items:center;gap:16px;width:100%;min-height:0;display:grid}.amd-pair>div{justify-content:center;min-width:0;display:flex}.amd-title{color:#fff;margin:0;font-size:22px;line-height:1.25}.amd-say{color:#dfe3f5;margin:0;font-size:17.5px;line-height:1.55}.amd-term{color:#d9fff2;background:#12352d;border:1px solid #1f6b55;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:15px;line-height:1.45;display:flex}.amd-term svg{color:var(--mx-g);flex:none;margin-top:2px}.amd-term b{color:#fff}.amd-done{align-self:flex-start;align-items:center;gap:6px;display:inline-flex}.mx-page>.am-tip,.mx-page>.am-next{margin-top:16px}@media (width<=760px){.amd-pair{grid-template-columns:1fr}.amd-board.lg{font-size:19px}.amd-board.xl{font-size:26px}.amd-table{font-size:15px}.am-tabs button{font-size:13px}.mx-top:has(.am-tabs){flex-wrap:wrap}.mx-top:has(.am-tabs) .mx-top-title{flex:1}.am-tabs{order:10;width:100%;display:flex}.am-tabs button{flex:1;justify-content:center}}.amd-pic .am-xyz{font-size:26px}
