@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f5f3ee;--bg-2: #ebe7de;--surface: #ffffff;--border: #e0dbcf;--text: #14161d;--muted: #5b5f6e;--accent: #c2410c;--accent-bright: #ff7a3d;--accent-ink: #ffffff;--shadow: 0 1px 2px rgba(20, 22, 29, .05), 0 8px 24px -12px rgba(20, 22, 29, .18);--font-display: "Bricolage Grotesque Variable", "Inter Variable", system-ui, sans-serif;--font-body: "Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ink: #0b0e16;--ink-2: #111624;--ink-3: #182033;--ink-line: #232b40;--ink-text: #e9ecf4;--ink-muted: #8b94ab;--panel-edge: #232b40;--ok: #1f9d5a;--glow: color-mix(in srgb, var(--accent-bright) 22%, transparent);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #10131b;--bg-2: #181c27;--surface: #171b26;--border: #272d3c;--text: #eef0f6;--muted: #a3a9bb;--accent: #ff8a50;--accent-ink: #10131b;--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 16px 36px -18px rgba(0, 0, 0, .7);--panel-edge: #333c56;--ok: #3ee08f;--glow: color-mix(in srgb, #b794ff 18%, transparent);color-scheme:dark}}:root[data-theme=dark]{--bg: #10131b;--bg-2: #181c27;--surface: #171b26;--border: #272d3c;--text: #eef0f6;--muted: #a3a9bb;--accent: #ff8a50;--accent-ink: #10131b;--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 16px 36px -18px rgba(0, 0, 0, .7);--panel-edge: #333c56;--ok: #3ee08f;--glow: color-mix(in srgb, #b794ff 18%, transparent);color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 var(--font-body);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}main{overflow-x:clip}.wrap{max-width:1200px;margin-inline:auto;padding-inline:20px}a{color:var(--accent);text-underline-offset:3px}h1,h2,h3{font-family:var(--font-display);line-height:1.08;letter-spacing:-.025em;font-weight:700}code{font-family:var(--mono);font-size:.86em;background:var(--bg-2);padding:.12em .4em;border-radius:6px}kbd{font-family:var(--mono);font-size:.8em;border:1px solid var(--ink-line);border-bottom-width:2px;border-radius:5px;padding:0 .4em;background:var(--ink-3);color:var(--ink-text)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:600;color:var(--accent);margin:0 0 1rem}.lede{font-size:1.15rem;color:var(--muted);max-width:44rem}:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.button{font:600 .95rem/1 var(--font-body);display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.25rem;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s}.button:hover{transform:translateY(-1px);border-color:var(--text)}.button.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.button.primary:hover{box-shadow:0 8px 24px -10px var(--accent-bright)}.tag{font:700 .66rem/1 var(--mono);padding:.32rem .55rem;border-radius:6px;text-transform:uppercase;letter-spacing:.08em}.tag-free{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.tag-pro{background:color-mix(in srgb,var(--accent-bright) 16%,transparent);color:var(--accent)}.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px) saturate(1.4);border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.header-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:12px}.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font:700 1.05rem var(--font-display);letter-spacing:-.02em;white-space:nowrap}.brand em{font-style:normal;color:var(--muted);font-weight:500;margin-left:.25em}.site-header nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin-left:auto}.theme-toggle{flex:none;display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.theme-toggle:hover{border-color:var(--muted)}.theme-toggle svg{display:none}.theme-toggle[data-mode=system] .i-system,.theme-toggle:not([data-mode]) .i-system,.theme-toggle[data-mode=light] .i-light,.theme-toggle[data-mode=dark] .i-dark{display:block}.site-header nav a{color:var(--muted);text-decoration:none;font-size:.88rem;font-weight:500;padding:.4rem .7rem;border-radius:8px;white-space:nowrap}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--text);background:var(--bg-2)}@media(max-width:720px){.brand em{display:none}.header-inner{flex-wrap:wrap;gap:6px;padding-block:10px 6px}.site-header nav{order:3;width:100%;margin-inline:-8px}}.site-footer{margin-top:96px;border-top:1px solid var(--border);color:var(--muted);font-size:.85rem;padding-block:28px 48px}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:48px;align-items:center;padding-block:72px 56px}@media(max-width:980px){.hero{grid-template-columns:minmax(0,1fr);padding-block:40px 32px;gap:32px}}.hero h1{font-size:clamp(2.8rem,6.4vw,5rem);margin:0 0 1.25rem}.hero h1 span{background:linear-gradient(95deg,var(--accent-bright),#ff7ac6 55%,#b794ff);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:2rem}.hero-demo{position:relative}.hero-demo:before{content:"";position:absolute;inset:-12% -8%;z-index:-1;background:radial-gradient(closest-side,var(--glow),transparent 70%);filter:blur(20px)}.hero-demo-label{font:500 .75rem var(--mono);color:var(--muted);margin:10px 4px 0;display:flex;align-items:center;gap:8px}.hero-demo-label:before{content:"";width:7px;height:7px;border-radius:50%;background:#3ee08f;box-shadow:0 0 0 3px color-mix(in srgb,#3ee08f 25%,transparent);animation:blink 2s infinite}@keyframes blink{50%{opacity:.35}}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:18px;overflow:hidden;margin-block:24px 88px}.features>div{background:var(--surface);padding:22px 22px 18px}.features h3{font-size:1.05rem;margin:0 0 .4rem;letter-spacing:-.01em}.features p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.55}.tracks h2{font-size:clamp(1.8rem,3.6vw,2.6rem);max-width:22ch;margin:0 0 28px}.track-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:14px}.track-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:24px;border-radius:18px;background:var(--surface);border:1px solid var(--border);color:var(--text);text-decoration:none;overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,border-color .2s}.track-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--track)}.track-card:after{content:"";position:absolute;width:180px;height:180px;right:-60px;top:-60px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--track) 22%,transparent),transparent)}.track-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--track) 60%,var(--border))}.track-card .tag{align-self:flex-start}.track-num{position:absolute;top:20px;right:22px;font:600 .8rem var(--mono);color:var(--muted);z-index:1}.track-card h3{font-size:1.45rem;margin:6px 0 0}.track-card p{margin:0;color:var(--muted);font-size:.94rem;line-height:1.55;flex:1}.track-meta{font:500 .75rem var(--mono);color:var(--muted);padding-top:12px;border-top:1px dashed var(--border)}.track-hero{padding-block:64px 24px}.track-hero h1{font-size:clamp(2.4rem,5.5vw,4rem);margin:0 0 1rem}.track-hero .eyebrow{color:color-mix(in srgb,var(--track) 70%,var(--text))}.track-hero h1:after{content:"";display:block;width:64px;height:4px;border-radius:2px;background:var(--track);margin-top:18px}.meta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font:500 .8rem var(--mono);color:var(--muted)}.module{margin-top:44px}.module h2{font-size:1.4rem;margin:0 0 14px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.module h2 span{font:600 .72rem var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.lessons{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:8px}.lesson-card{display:flex;align-items:center;gap:14px;height:100%;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:14px;color:var(--text);text-decoration:none;transition:border-color .15s,transform .15s}.lesson-card:not(.live){background:transparent}.lesson-card:not(.live) .lesson-body strong{color:var(--muted)}.lesson-card.live{box-shadow:var(--shadow)}.lesson-card.live:hover{border-color:var(--track, var(--accent));transform:translate(2px)}.lesson-n{font:600 .78rem var(--mono);color:var(--muted)}.lesson-body{display:flex;flex-direction:column;flex:1;line-height:1.4;min-width:0}.lesson-body strong{font-weight:600;font-size:.95rem}.lesson-body span{color:var(--muted);font-size:.84rem}.lesson-status{font:600 .72rem var(--mono);color:var(--muted);white-space:nowrap}.live .lesson-status{color:var(--accent)}.lesson-status.done{color:var(--ok)}.lesson{padding-block:40px 24px}.crumbs{display:flex;gap:8px;flex-wrap:wrap;font:500 .78rem var(--mono);color:var(--muted);margin-bottom:18px}.crumbs a{color:color-mix(in srgb,var(--track) 65%,var(--text));text-decoration:none}.lesson h1{font-size:clamp(2.1rem,4.6vw,3.4rem);margin:0 0 .9rem;max-width:22ch}.lesson .meta{margin-top:.5rem}.prose{margin-top:36px}.prose>:is(p,ul,ol,h2,h3,pre,blockquote){max-width:46rem}.prose h2{font-size:1.75rem;margin:3rem 0 1rem}.prose h3{font-size:1.25rem;margin:2.2rem 0 .8rem}.prose li{margin-bottom:.45rem}.prose li::marker{color:var(--muted)}.prose table{display:block;max-width:52rem;overflow-x:auto;border-collapse:collapse;font-size:.9rem;margin:1.2rem 0}.prose th,.prose td{text-align:left;padding:.6rem .9rem;border-bottom:1px solid var(--border);vertical-align:top}.prose th{font:600 .72rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.prose pre{padding:18px 20px;border-radius:14px;overflow-x:auto;font-size:.84rem;line-height:1.6;border:1px solid var(--ink-line)}.prose pre code{background:none;padding:0}.lesson-nav{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:64px;padding-top:24px;border-top:1px solid var(--border)}.lesson-nav a{text-decoration:none;font-weight:600}.player,.lab{margin:32px 0;background:linear-gradient(180deg,#111625,var(--ink) 40%);color:var(--ink-text);border:1px solid var(--panel-edge);border-radius:22px;padding:14px;box-shadow:0 30px 60px -30px #05081499,inset 0 1px #ffffff0d;outline:none}.player:focus-visible,.lab:focus-visible{box-shadow:0 0 0 2px var(--accent-bright)}.player-compact{margin:0;padding:10px}.player-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:2px 4px 12px}.scenario{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.scenario-label{font:600 .7rem var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-muted)}.player select,.lab select{font:500 .88rem var(--font-body);color:var(--ink-text);background:var(--ink-3);border:1px solid var(--ink-line);border-radius:10px;padding:.45rem .7rem;max-width:100%;cursor:pointer}.phases{display:flex;gap:6px;list-style:none;margin:0;padding:0;flex-wrap:wrap}.phase{display:inline-flex;align-items:center;gap:6px;font:600 .68rem var(--mono);text-transform:uppercase;letter-spacing:.08em;padding:.35rem .65rem;border-radius:999px;border:1px solid var(--ink-line);color:var(--ink-muted);transition:all .25s}.phase i{width:6px;height:6px;border-radius:50%;background:var(--pc);opacity:.6}.phase[data-done]{color:var(--ink-text)}.phase[data-active]{color:var(--ink);background:var(--pc);border-color:var(--pc);box-shadow:0 0 18px -2px var(--pc)}.phase[data-active] i{background:var(--ink);opacity:1}.player-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px}.player-compact .player-grid{grid-template-columns:minmax(0,1fr)}@media(max-width:960px){.player-grid{grid-template-columns:minmax(0,1fr)}}.stage{background:var(--ink);border:1px solid var(--ink-line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.stage>svg{width:100%;height:auto;display:block}.wire{fill:none;stroke:#2a3350;stroke-width:1.5;stroke-dasharray:2 7;stroke-linecap:round;animation:flow 1.6s linear infinite}@keyframes flow{to{stroke-dashoffset:-18}}.node-bg{fill:#121828;stroke:#283049;stroke-width:1.2;transition:stroke .3s,filter .3s}.node[data-active] .node-bg{stroke:var(--kc);stroke-width:1.8;filter:drop-shadow(0 0 12px color-mix(in srgb,var(--kc) 55%,transparent))}.node-icon-bg{fill:color-mix(in srgb,var(--kc) 14%,transparent);stroke:color-mix(in srgb,var(--kc) 30%,transparent)}.node-label{fill:#eef1f8;font:650 14.5px var(--font-display);letter-spacing:-.01em}.node-sub{fill:var(--ink-muted);font:500 10.5px var(--mono)}.packet-text{fill:#0a0d14;font:650 11.5px var(--mono)}.caption{display:flex;gap:12px;align-items:flex-start;padding:14px 16px 10px;min-height:5.2rem;border-top:1px solid var(--ink-line)}.caption p{margin:0;font-size:.97rem;line-height:1.55}.caption-idle{color:var(--ink-muted)}.badge{flex:none;font:700 .64rem var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink);background:var(--pc);border-radius:6px;padding:.3rem .5rem;margin-top:.2rem;box-shadow:0 0 14px -3px var(--pc)}.controls{display:flex;align-items:center;gap:6px;padding:8px 10px 12px;flex-wrap:wrap}.controls button{font:600 .85rem var(--font-body);color:var(--ink-text);display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:38px;height:38px;padding:0 .7rem;background:var(--ink-3);border:1px solid var(--ink-line);border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s}.controls button:hover:not(:disabled){border-color:#3a4566;background:#1d2640}.controls button:disabled{opacity:.35;cursor:default}.controls .play{background:var(--accent-bright);border-color:var(--accent-bright);color:#1a0d05;min-width:104px}.controls .play:hover:not(:disabled){background:#ff8c55;border-color:#ff8c55}.track{display:flex;gap:3px;flex:1;min-width:120px;align-items:center;padding-inline:6px}.controls .tick{flex:1;height:6px;min-width:4px;padding:0;border-radius:3px;border:none;background:var(--ink-line);cursor:pointer;transition:height .2s,background .2s}.controls .tick:hover:not(:disabled){background:#3a4566}.controls .tick[data-done]{background:color-mix(in srgb,var(--pc) 55%,var(--ink-line))}.controls .tick[data-current]{background:var(--pc);height:12px;box-shadow:0 0 10px -1px var(--pc)}.counter{font:600 .78rem var(--mono);color:var(--ink-muted);letter-spacing:.04em}.side{display:flex;flex-direction:column;gap:12px;min-width:0}.code{border:1px solid var(--ink-line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;background:#0d1018}.code-tabs{display:flex;gap:2px;padding:6px 6px 0;background:var(--ink-2);border-bottom:1px solid var(--ink-line);overflow-x:auto;scrollbar-width:thin}.code-tabs button{font:500 .74rem var(--mono);color:var(--ink-muted);background:none;border:1px solid transparent;border-bottom:none;border-radius:8px 8px 0 0;padding:7px 11px;cursor:pointer;white-space:nowrap}.code-tabs button[aria-selected=true]{color:var(--ink-text);background:#0d1018;border-color:var(--ink-line);margin-bottom:-1px}.code-body{position:relative;max-height:340px;overflow:auto;font-size:12px;line-height:1.6}.code-body pre{margin:0;padding:10px 0;background:transparent!important;font-family:var(--mono)}.code-body code{background:none;padding:0;font-size:inherit}.code-body .line{display:inline-block;width:100%;padding:0 14px;transition:opacity .3s,background .3s;border-left:2px solid transparent}.code-body.dim .line{opacity:.3}.code-body .line.hl{opacity:1;background:#ff7a3d1a;border-left-color:var(--accent-bright)}@media(max-width:960px){.code-body{max-height:220px}}.log{border:1px solid var(--ink-line);border-radius:16px;padding:12px 14px;background:var(--ink-2);flex:1}.log h4{margin:0 0 8px;font:600 .68rem var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-muted)}.log ol{margin:0;padding:0;list-style:none;font:500 .76rem/1.5 var(--mono);counter-reset:log}.log li{counter-increment:log;display:flex;gap:8px;padding:5px 0;border-top:1px dashed var(--ink-line);color:#c3c9d8}.log li:first-child{border-top:none}.log li:before{content:counter(log,decimal-leading-zero);color:#4a5470;flex:none}.log li[data-new]{color:#fff;animation:pop .45s}.log li[data-verdict=pass]{color:#3ee08f}.log li[data-verdict=fail]{color:#ff6464}.log-empty{margin:0;color:var(--ink-muted);font-size:.85rem}@keyframes pop{0%{opacity:0;transform:translate(-6px)}}.lab-stage{background:radial-gradient(120% 90% at 50% 0%,#151b2b,var(--ink) 70%);border:1px solid var(--ink-line);border-radius:16px;padding:18px;display:grid;gap:14px}.lab-row-label{font:600 .66rem var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-muted)}.lab-prompt{font:600 clamp(1.3rem,3vw,1.9rem) var(--font-display);margin:0;letter-spacing:-.01em}.lab-tokens{display:flex;flex-wrap:wrap;gap:8px;min-height:64px}.lab-tok{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 10px 7px;border-radius:10px;min-width:56px;background:color-mix(in srgb,#5cc8ff calc(6% + var(--att, 0) * 22%),#131a2a);border:1px solid color-mix(in srgb,#5cc8ff calc(15% + var(--att, 0) * 60%),var(--ink-line));transition:background .4s,border-color .4s}.lab-tok[data-new]{border-color:color-mix(in srgb,#3ee08f 50%,var(--ink-line))}.lab-tok-text{font:600 1rem var(--mono);white-space:pre;color:#fff}.lab-tok-id{font:500 .68rem var(--mono);color:#ffb547}.lab-vec{position:relative;display:flex;gap:2px;height:22px;width:44px}.lab-vec:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#2a3350}.lab-vec i{position:absolute;width:4px;border-radius:1px;background:#5cc8ff}.lab-vec i:nth-child(1){left:0}.lab-vec i:nth-child(2){left:5.5px}.lab-vec i:nth-child(3){left:11px}.lab-vec i:nth-child(4){left:16.5px}.lab-vec i:nth-child(5){left:22px}.lab-vec i:nth-child(6){left:27.5px}.lab-vec i:nth-child(7){left:33px}.lab-vec i:nth-child(8){left:38.5px}.lab-vec i[data-neg]{background:#ff7ac6}.lab-layers{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.lab-layers span{font:500 .6rem var(--mono);text-align:center;padding:6px 0;border-radius:6px;background:var(--ink-3);color:#4a5470;border:1px solid var(--ink-line)}.lab-layers[data-on] span{animation:layer 1.1s ease-in-out infinite}@keyframes layer{0%,to{background:var(--ink-3);color:#4a5470}40%{background:color-mix(in srgb,#5cc8ff 35%,var(--ink-3));color:#fff;border-color:#5cc8ff}}.lab-probs{display:grid;gap:6px;min-height:120px}.lab-prob{display:grid;grid-template-columns:6.5rem minmax(0,1fr) 3.4rem;gap:10px;align-items:center;padding:3px 6px;border-radius:8px}.lab-prob[data-picked]{background:color-mix(in srgb,#3ee08f 14%,transparent);outline:1px solid color-mix(in srgb,#3ee08f 60%,transparent)}.lab-prob-tok{font:600 .9rem var(--mono);white-space:pre}.lab-bar{height:12px;border-radius:6px;background:var(--ink-3);overflow:hidden}.lab-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#5cc8ff,#b794ff)}.lab-prob[data-picked] .lab-bar i{background:#3ee08f}.lab-prob-p{font:600 .8rem var(--mono);text-align:right;color:var(--ink-muted)}.lab-wait{margin:0;color:#4a5470;font:500 .85rem var(--mono);align-self:center}.lab-output{border-top:1px dashed var(--ink-line);padding-top:12px}.lab-output p{margin:4px 0 0;font:500 1.15rem var(--font-display)}.lab-output strong{color:#3ee08f;font-weight:650;white-space:pre-wrap}.cursor{display:inline-block;width:9px;height:1.1em;margin-left:3px;vertical-align:-.15em;background:var(--accent-bright);animation:blink 1s steps(1) infinite}.lab .caption{border-top:none;padding-inline:4px}.lab-controls{padding-inline:2px}.temp{display:flex;align-items:center;gap:12px;margin-left:auto;font:500 .8rem var(--mono);color:var(--ink-muted);flex-wrap:wrap}.temp b{color:var(--ink-text)}.temp input{width:150px;accent-color:var(--accent-bright)}.lab-note{margin:4px 6px 2px;font-size:.75rem;color:var(--ink-muted)}@media(max-width:640px){.player,.lab{padding:8px;border-radius:18px;margin-inline:-8px}.lab-prob{grid-template-columns:5rem minmax(0,1fr) 3rem}.temp{margin-left:0;width:100%}.temp input{flex:1}}.quiz{margin-top:56px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:20px;max-width:46rem;box-shadow:var(--shadow)}.quiz h2{margin-top:0;font-size:1.5rem}.quiz-q{border:none;padding:0;margin:0 0 22px}.quiz-q legend{font-weight:600;margin-bottom:10px}.quiz-opt{display:flex;gap:10px;align-items:center;padding:10px 14px;border:1px solid var(--border);border-radius:12px;margin-bottom:6px;cursor:pointer;transition:border-color .15s}.quiz-opt:hover{border-color:var(--muted)}.quiz-opt input{accent-color:var(--accent)}.quiz-opt[data-state=right]{border-color:#1f9d5a;background:color-mix(in srgb,#1f9d5a 10%,transparent)}.quiz-opt[data-state=wrong]{border-color:#dc2626;background:color-mix(in srgb,#dc2626 10%,transparent)}.quiz-why{font-size:.9rem;color:var(--muted);margin:8px 0 0}.quiz-result{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.quiz button{font:600 .92rem var(--font-body);padding:.7rem 1.1rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.quiz button.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.quiz button:disabled{opacity:.4;cursor:default}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.sources{margin-top:56px;padding:20px 22px;max-width:46rem;border:1px dashed var(--border);border-radius:16px}.sources h2{font-size:1rem;margin:0 0 4px;font-family:var(--font-body);letter-spacing:0}.sources p{margin:0 0 10px;color:var(--muted);font-size:.88rem}.sources ul{margin:0;padding-left:1.1rem;font:500 .8rem/1.7 var(--mono)}.sources a{color:var(--muted);word-break:break-all}.sources a:hover{color:var(--accent)}.callout{max-width:46rem;margin:1.6rem 0;padding:14px 18px;border-radius:14px;border:1px solid var(--border);background:var(--surface);border-left:4px solid var(--c, var(--accent-bright))}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout-title{font:700 .7rem var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--c, var(--accent));margin-bottom:4px}.compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;margin:1.6rem 0;max-width:60rem}.compare>div{padding:16px 18px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.compare h4{margin:0 0 6px;font:700 1.02rem var(--font-display)}.compare p,.compare ul{margin:0;font-size:.92rem;color:var(--muted)}.compare ul{padding-left:1.1rem}[data-show]{display:none}html:not([data-auth]) [data-show~=unknown],html[data-auth=out] [data-show~=out],html[data-auth=in] [data-show~=in],html[data-auth=pro] [data-show~=pro]{display:revert}.auth{position:relative;flex:none}.auth-signin{font:600 .85rem var(--font-body);height:36px;padding:0 .9rem;border-radius:10px;cursor:pointer;background:var(--text);color:var(--bg);border:1px solid var(--text)}.auth-signin:hover{box-shadow:0 6px 18px -8px var(--accent-bright)}.auth-avatar{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--bg-2);cursor:pointer;color:var(--text)}.auth-avatar img{width:30px;height:30px;border-radius:50%;grid-area:1 / 1}.auth-initial{grid-area:1 / 1;font:700 .9rem var(--font-display)}.auth-avatar img:not([hidden])+.auth-initial{visibility:hidden}.auth-pro{position:absolute;bottom:-6px;right:-10px;font:700 .56rem var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:2px 5px;border-radius:5px;background:var(--accent-bright);color:#1a0d05}.auth-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:30;min-width:230px;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.auth-menu p{margin:0;padding:6px 10px}.auth-who{display:flex;flex-direction:column;line-height:1.35}.auth-who span,.auth-plan{color:var(--muted);font-size:.84rem}.auth-plan{border-bottom:1px solid var(--border);padding-bottom:10px!important;margin-bottom:4px!important}.auth-menu a,.auth-menu button{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:8px;border:none;background:none;color:var(--text);font:500 .9rem var(--font-body);text-decoration:none;cursor:pointer}.auth-menu a:hover,.auth-menu button:hover{background:var(--bg-2)}.locked{margin-top:36px;max-width:60rem;border-radius:22px;overflow:hidden;border:1px solid var(--panel-edge);background:var(--ink);color:var(--ink-text);box-shadow:0 30px 60px -30px #05081499}.locked-art{position:relative;height:210px}.locked-art svg{width:100%;height:100%;display:block;filter:blur(1.5px);opacity:.85}.locked-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,var(--ink))}.locked-badge{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:color-mix(in srgb,var(--track, var(--accent-bright)) 22%,#121828);color:#fff;border:1px solid color-mix(in srgb,var(--track, var(--accent-bright)) 60%,transparent);box-shadow:0 0 40px -6px var(--track, var(--accent-bright))}.locked-body{padding:4px 28px 28px}.locked-body p{margin:0 0 12px;color:#c3c9d8;max-width:44rem}.locked-body a{color:#ffb08a}.locked-title{font:700 1.35rem var(--font-display)!important;color:#fff!important;letter-spacing:-.01em}.locked-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.locked .button{border-color:var(--ink-line);background:var(--ink-3);color:var(--ink-text)}.locked .button.primary{background:var(--accent-bright);border-color:var(--accent-bright);color:#1a0d05}.locked-module{margin-top:48px}.locked-module h2{font-size:1.3rem;margin-bottom:14px}.lesson-card.current{border-color:var(--track, var(--accent))}.account{padding-block:56px}.account h1{font-size:clamp(2rem,4vw,2.8rem);margin:0 0 24px}.account-card{max-width:34rem;padding:24px;border-radius:18px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.account-card dl{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;margin:0 0 20px}.account-card dt{color:var(--muted);font-size:.88rem}.account-card dd{margin:0;font-weight:600;word-break:break-word}.account-note{color:var(--muted);font-size:.9rem}.notfound{padding-block:96px}.notfound h1{font-size:clamp(2.2rem,5vw,3.6rem);margin:0 0 12px}.pricing{padding-block:56px 24px}.pricing h1{font-size:clamp(2.2rem,5vw,3.6rem);margin:0 0 1rem;max-width:18ch}.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;margin-top:36px;max-width:64rem;align-items:start}.plan{position:relative;padding:26px;border-radius:20px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.plan h2{margin:0;font-size:1.3rem}.plan-price{font:700 2.6rem/1.1 var(--font-display);margin:10px 0 16px;letter-spacing:-.02em}.plan-price span{font:500 .9rem var(--font-body);color:var(--muted);letter-spacing:0}.plan ul{padding-left:1.15rem;margin:0 0 22px}.plan li{margin-bottom:6px}.plan-pro{background:linear-gradient(180deg,#121828,var(--ink));color:var(--ink-text);border-color:var(--panel-edge)}.plan-pro .plan-price span,.plan-pro .checkout-note{color:var(--ink-muted)}.plan-pro .button.primary{background:var(--accent-bright);border-color:var(--accent-bright);color:#1a0d05;width:100%;justify-content:center;font-size:1rem}.plan-pro .button.primary:disabled{opacity:.6;cursor:progress}.plan-flag{position:absolute;top:22px;right:22px;font:700 .66rem var(--mono);text-transform:uppercase;letter-spacing:.1em;padding:4px 8px;border-radius:6px;background:var(--accent-bright);color:#1a0d05}.checkout-note{font-size:.82rem;margin:10px 0 0}.checkout-status{margin:12px 0 0;font-size:.92rem;color:var(--ink-text)}.checkout-status[data-kind=ok]{color:#3ee08f}.checkout-status[data-kind=error]{color:#ff8a8a}.checkout-done{margin:0;color:#3ee08f;font-weight:600}.checkout-done a{color:#ffb08a}.pricing-fine{margin-top:28px;color:var(--muted);font-size:.86rem;max-width:46rem}.policy{padding-block:48px 24px}.policy h1{font-size:clamp(2rem,4vw,2.8rem);margin:0 0 6px}.policy-updated{color:var(--muted);font:500 .8rem var(--mono);margin:0}.policy .prose{margin-top:24px}.policy-nav,.footer-links{display:flex;gap:18px;flex-wrap:wrap}.policy-nav{margin-top:40px;padding-top:20px;border-top:1px solid var(--border)}.footer-links{margin-bottom:12px}.footer-links a,.policy-nav a{color:var(--muted);text-decoration:none;font-size:.88rem}.footer-links a:hover,.policy-nav a:hover{color:var(--accent)}html[data-auth=in] .auth-menu [data-show~=in]{display:block}.auth-getpro{color:var(--accent)!important;font-weight:600!important}
