@layer components{.final-ui{--bg:#050407;--bg-1:#0b0a10;--bg-2:#121019;--bg-3:#1a1724;--line:#201d2a;--line-2:#322d40;--fg:#f4f2f8;--fg-2:#b3adc3;--fg-3:#7a748d;--v:#8f5cff;--v-hi:#c4afff;--v-deep:#3a17b4;--v-ink:#13093c;--ok:#3fdc86;--r:10px;--r-s:8px;--nav:64px;--gut:max(24px, env(safe-area-inset-left,0px));--gut-r:max(24px, env(safe-area-inset-right,0px));--f-display:var(--font-display), "Helvetica Neue", Arial, sans-serif;--f-text:var(--font-body), system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono:var(--font-jetbrains), ui-monospace, Consolas, monospace;min-height:var(--app-vh);background:var(--bg);color:var(--fg);font:400 17px/1.6 var(--f-text);-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.final-ui *,.final-ui :before,.final-ui :after{box-sizing:border-box;border-color:var(--line)}.final-ui a{color:inherit;text-decoration:none}.final-ui :focus-visible{outline:2px solid var(--v-hi);outline-offset:2px;border-radius:4px}.final-ui ::selection{background:var(--v);color:#fff}.final-ui h1,.final-ui h2,.final-ui h3,.final-ui h4{font-family:var(--f-display);text-wrap:balance;margin:0}.final-ui p{margin:0}.final-ui code,.final-ui pre,.final-ui kbd{font-family:var(--f-mono)}.final-ui [hidden]{display:none!important}.final-ui button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.final-ui input,.final-ui textarea,.final-ui select{font:inherit;color:inherit}.final-ui .wrap{max-width:1240px;padding-left:var(--gut);padding-right:var(--gut-r);margin:0 auto}.final-ui .sec{padding-block:104px}.final-ui .rule{border-top:1px solid var(--line)}.final-ui .d-hero{letter-spacing:-.052em;font-size:clamp(52px,7.4vw,108px);font-weight:800;line-height:.9}.final-ui .d-1{letter-spacing:-.045em;font-size:clamp(40px,5vw,76px);font-weight:800;line-height:.96}.final-ui .d-2{letter-spacing:-.036em;font-size:clamp(30px,3.4vw,48px);font-weight:800;line-height:1.02}.final-ui .d-3{letter-spacing:-.02em;font-size:22px;font-weight:700;line-height:1.2}.final-ui .lede{font-size:clamp(19px,1.6vw,22px);line-height:1.45}.final-ui .muted{color:var(--fg-2)}.final-ui .faint{color:var(--fg-3)}.final-ui .label{font:500 12px/1.3 var(--f-mono);letter-spacing:.06em;color:var(--fg-3)}.final-ui .num{font-variant-numeric:tabular-nums}.final-ui .btn{border-radius:var(--r-s);height:46px;font:600 16px/1 var(--f-text);white-space:nowrap;border:1px solid #0000;align-items:center;gap:8px;padding:0 20px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.final-ui .btn-sm{height:36px;padding:0 14px;font-size:15px}.final-ui .btn-xs{border-radius:6px;height:30px;padding:0 11px;font-size:14px}.final-ui .btn-primary{background:var(--v);color:#fff}.final-ui .btn-primary:hover{background:#9d70ff}.final-ui .btn-ghost{border-color:var(--line-2)}.final-ui .btn-ghost:hover{border-color:var(--fg-3)}.final-ui .btn-white{color:#0a0710;background:#fff}.final-ui .btn-white:hover{background:#e9e4f7}.final-ui .btn:disabled{opacity:.45;cursor:not-allowed}.final-ui .link{color:var(--v-hi);border-bottom:1px solid color-mix(in oklab, var(--v-hi) 40%, transparent)}.final-ui .link:hover{border-color:var(--v-hi)}.final-ui .nav{z-index:40;height:var(--nav);background:color-mix(in oklab, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.final-ui .nav .wrap{align-items:center;gap:32px;height:100%;display:flex}.final-ui .brand{font:800 19px/1 var(--f-display);letter-spacing:-.03em;align-items:center;gap:10px;display:inline-flex}.final-ui .brand img{width:26px;height:26px}.final-ui .brand-logo{width:auto;height:24px;display:block}.final-ui .nav-links{color:var(--fg-2);gap:26px;font-size:15px;display:flex}.final-ui .nav-links a:hover,.final-ui .nav-links a[aria-current=page]{color:var(--fg)}.final-ui .nav-end{align-items:center;gap:14px;margin-left:auto;font-size:15px;display:flex}.final-ui .nav-toggle{display:none}.final-ui .hero{padding-top:96px}.final-ui .hero-top{grid-template-columns:minmax(0,1fr) 380px;align-items:end;gap:48px;display:grid}.final-ui .hero-side{flex-direction:column;gap:28px;padding-bottom:10px;display:flex}.final-ui .hero-ctas{flex-wrap:wrap;gap:10px;display:flex}.final-ui .eyebrow{font:500 13px/1.3 var(--f-mono);color:var(--fg-2);flex-wrap:wrap;gap:6px 14px;margin-bottom:28px;display:flex}.final-ui .eyebrow span+span:before{content:"/";color:var(--fg-3);margin-right:14px}.final-ui .field{isolation:isolate;margin-top:72px;padding-block:64px 72px;position:relative}.final-ui .field:before{content:"";z-index:-1;background:linear-gradient(105deg, var(--v-ink) 0%, var(--v-deep) 38%, #6b34f2 70%, #a05cff 100%);position:absolute;inset:0}.final-ui .field:after{content:"";z-index:-1;background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 30% 70%,#0000);mask-image:linear-gradient(#0000,#000 30% 70%,#0000)}.final-ui .field-caption{color:#ffffffd1;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;margin-top:22px;font-size:15px;display:flex}.final-ui .win{border-radius:var(--r);background:var(--bg-1);border:1px solid #ffffff24;position:relative;overflow:hidden;box-shadow:0 40px 80px -30px #060214cc}.final-ui .win-bar{border-bottom:1px solid var(--line);height:44px;color:var(--fg-3);align-items:center;gap:16px;padding:0 16px;font-size:13px;display:flex}.final-ui .win-bar .crumbs b{color:var(--fg);font-weight:500}.final-ui .win-bar .prog{align-items:center;gap:10px;margin-left:auto;display:flex}.final-ui .bar{background:var(--line-2);border-radius:2px;width:120px;height:4px;overflow:hidden}.final-ui .bar span{background:var(--v);height:100%;transition:width .4s;display:block}.final-ui .win-body{grid-template-columns:230px minmax(0,1fr) minmax(0,1.05fr);height:470px;display:grid}.final-ui .win-part{min-width:0;transition:background .2s,box-shadow .2s;position:relative}.final-ui .win-part.is-hot{background:color-mix(in oklab, var(--v) 9%, var(--bg-1));box-shadow:inset 0 0 0 1px var(--v)}.final-ui .win-outline{border-right:1px solid var(--line);padding:14px 10px;font-size:14px;overflow:auto}.final-ui .win-lesson{padding:26px 28px;overflow:auto}.final-ui .win-lesson .prose{font-size:15.5px;line-height:1.65}.final-ui .win-lesson .prose h2{font-size:22px}.final-ui .win-term{border-left:1px solid var(--line);background:#08070c;flex-direction:column;display:flex}.final-ui .callout{z-index:3;color:#12082e;width:24px;height:24px;font:700 12px/24px var(--f-mono);text-align:center;background:#fff;border-radius:50%;transition:transform .15s;position:absolute;box-shadow:0 0 0 4px #8f5cff73}.final-ui .callout:hover,.final-ui .callout.is-hot{transform:scale(1.15)}.final-ui .legend{flex-wrap:wrap;gap:8px;display:flex}.final-ui .legend button{color:#fff;background:#ffffff14;border-radius:17px;align-items:center;gap:8px;height:34px;padding:0 12px 0 6px;font-size:14px;transition:background .15s;display:inline-flex}.final-ui .legend button i{color:#12082e;width:22px;height:22px;font-style:normal;font:700 11px/22px var(--f-mono);text-align:center;background:#fff;border-radius:50%}.final-ui .legend button:hover,.final-ui .legend button.is-hot{background:#ffffff2e}.final-ui .legend-note{max-width:52ch}.final-ui .otree{margin:0;padding:0;list-style:none}.final-ui .otree-unit>button,.final-ui .otree-unit>.otree-head{text-align:left;width:100%;color:var(--fg);border-radius:6px;align-items:center;gap:8px;padding:7px 8px;font-size:14px;font-weight:600;display:flex}:is(.final-ui .otree-unit>button,.final-ui .otree-unit>.otree-head):hover{background:var(--bg-2)}:is(.final-ui .otree-unit>button,.final-ui .otree-unit>.otree-head) .count{font:500 12px var(--f-mono);color:var(--fg-3);margin-left:auto;font-weight:500}:is(.final-ui .otree-unit>button,.final-ui .otree-unit>.otree-head) .chev{width:10px;color:var(--fg-3);transition:transform .15s}:is(.final-ui .otree-unit>button,.final-ui .otree-unit>.otree-head)[aria-expanded=true] .chev{transform:rotate(90deg)}.final-ui .otree-lessons{border-left:1px solid var(--line-2);margin:2px 0 8px 13px;padding:0 0 0 10px;list-style:none}.final-ui .otree-lesson{position:relative}.final-ui .otree-lesson>a,.final-ui .otree-lesson>button{width:100%;color:var(--fg-2);text-align:left;border-radius:6px;align-items:center;gap:9px;padding:5px 8px;font-size:14px;display:flex}:is(.final-ui .otree-lesson>a,.final-ui .otree-lesson>button):hover{color:var(--fg);background:var(--bg-2)}.final-ui .otree-lesson:before{content:"";border-top:1px solid var(--line-2);width:8px;position:absolute;top:50%;left:-10px}.final-ui .otree-lesson.is-current>a,.final-ui .otree-lesson.is-current>button{color:var(--fg);background:color-mix(in oklab, var(--v) 16%, transparent)}.final-ui .otree-lesson.is-locked>a,.final-ui .otree-lesson.is-locked>button{color:var(--fg-3)}.final-ui .led{border:1px solid var(--fg-3);border-radius:50%;flex:none;width:7px;height:7px}.final-ui .led.done{background:var(--v);border-color:var(--v);box-shadow:0 0 6px #8f5cffb3}.final-ui .led.current{border-color:var(--v-hi);border-width:2px}.final-ui .prose{color:#dcd7e6;font-size:17px;line-height:1.7}.final-ui .prose>div>*+*{margin-top:16px}.final-ui .prose h1,.final-ui .prose h2,.final-ui .prose h3{color:var(--fg);letter-spacing:-.025em;line-height:1.15}.final-ui .prose h1{font-size:30px}.final-ui .prose h2{margin-top:34px;font-size:24px}.final-ui .prose h3{margin-top:26px;font-size:19px}.final-ui .prose>div>h2:first-child,.final-ui .prose>div>h1:first-child{margin-top:0}.final-ui .prose strong{color:var(--fg)}.final-ui .prose a{color:var(--v-hi);text-underline-offset:3px;text-decoration:underline}.final-ui .prose :not(pre)>code{background:var(--bg-3);color:#fff;border-radius:5px;padding:1px 6px;font-size:.88em}.final-ui .prose ul,.final-ui .prose ol{padding-left:22px}.final-ui .prose li+li{margin-top:6px}.final-ui .prose blockquote{border-left:2px solid var(--v);background:var(--bg-2);border-radius:0 6px 6px 0;margin:0;padding:12px 16px}.final-ui .prose [data-lab-code]{border:1px solid var(--line-2);border-radius:var(--r-s);background:#08070c;overflow:hidden}.final-ui .prose pre{color:#e8e4f1;margin:0;padding:14px 16px;font-size:14.5px;line-height:1.6;overflow-x:auto}.final-ui .prose [data-lab-run]{margin:0 0 10px 12px;display:inline-block}.final-ui .prose table{border-collapse:collapse;width:100%;font-size:15px}.final-ui .prose th,.final-ui .prose td{text-align:left;border-bottom:1px solid var(--line);padding:8px 10px}.final-ui .run{border:1px solid var(--line-2);height:28px;font:500 13px var(--f-mono);color:var(--v-hi);border-radius:6px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.final-ui .run:hover{border-color:var(--v);background:color-mix(in oklab, var(--v) 12%, transparent)}.final-ui .tasks{border:1px solid var(--line-2);border-radius:var(--r-s);overflow:hidden}.final-ui .tasks-head{border-bottom:1px solid var(--line);background:var(--bg-2);justify-content:space-between;gap:12px;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.final-ui .tasks-head span:last-child{font:500 13px var(--f-mono);color:var(--fg-3)}.final-ui .task{grid-template-columns:22px minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px 14px;display:grid}.final-ui .task+.task{border-top:1px solid var(--line)}.final-ui .task .tick{border:1.5px solid var(--fg-3);border-radius:50%;place-items:center;width:20px;height:20px;margin-top:2px;transition:all .25s;display:grid}.final-ui .task.is-done .tick{border-color:var(--ok);background:var(--ok);color:#04140b}.final-ui .task .msg{color:var(--fg-3);margin-top:2px;font-size:13.5px}.final-ui .task.is-done .msg{color:var(--ok)}.final-ui .term{background:#08070c;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.final-ui .term iframe{background:#08070c;border:0;flex:1;width:100%}.final-ui .term-state{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;gap:14px;padding:28px;display:flex}.final-ui .term-state p{color:var(--fg-2);max-width:34ch;font-size:15px}.final-ui .term-state .prompt{font:500 14px var(--f-mono);color:var(--fg-3)}.final-ui .term-tools{gap:6px;margin-left:auto;display:flex}.final-ui .spinner{border:2px solid var(--line-2);border-top-color:var(--v-hi);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite lab-final-spin}.final-ui .stats{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.final-ui .stats>div{padding:28px 0 30px}.final-ui .stats>div+div{border-left:1px solid var(--line);padding-left:28px}.final-ui .stats b{font:800 clamp(40px, 4.6vw, 76px) / .92 var(--f-display);letter-spacing:-.055em;font-variant-numeric:tabular-nums;display:block}.final-ui .stats div>span{color:var(--fg-2);margin-top:8px;font-size:15px;display:block}.final-ui .ctree{--wire:var(--line-2)}.final-ui .ctree-root{border:1px solid var(--v);border-radius:var(--r-s);background:color-mix(in oklab, var(--v) 8%, var(--bg));flex-wrap:wrap;align-items:baseline;gap:6px 16px;padding:16px 20px;display:inline-flex}.final-ui .ctree-root h3{font-size:22px}.final-ui .ctree-units{grid-template-columns:repeat(var(--cols,4), minmax(0, 1fr));gap:20px;margin-top:48px;display:grid;position:relative}.final-ui .ctree-units:before{content:"";top:-24px;left:calc(100% / var(--cols,4) / 2);right:calc(100% / var(--cols,4) / 2);border-top:1px solid var(--wire);position:absolute}.final-ui .ctree-units:after{content:"";top:-48px;left:calc(100% / var(--cols,4) / 2);border-left:1px solid var(--wire);height:24px;position:absolute}.final-ui .ctree-unit{min-width:0;position:relative}.final-ui .ctree-unit:before{content:"";border-left:1px solid var(--wire);height:24px;position:absolute;top:-24px;left:50%}.final-ui .ctree-node{text-align:left;border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--bg-1);width:100%;padding:14px 16px;transition:border-color .15s;display:block}.final-ui .ctree-node:hover{border-color:var(--fg-3)}.final-ui .ctree-node .label{margin-bottom:6px}.final-ui .ctree-node b{font:700 17px/1.25 var(--f-display);letter-spacing:-.015em;display:block}.final-ui .ctree-node .meta{font:500 12.5px var(--f-mono);color:var(--fg-3);align-items:center;gap:8px;margin-top:10px;display:flex}.final-ui .ctree-leaves{border-left:1px solid var(--wire);margin:12px 0 0 18px;padding:0 0 0 14px;list-style:none}.final-ui .ctree-leaves li{position:relative}.final-ui .ctree-leaves li:before{content:"";border-top:1px solid var(--wire);width:10px;position:absolute;top:50%;left:-14px}.final-ui .ctree-leaves a{color:var(--fg-2);border-radius:5px;align-items:center;gap:9px;padding:4px 6px;font-size:14.5px;display:flex}.final-ui .ctree-leaves a:hover{color:var(--fg);background:var(--bg-2)}.final-ui .ctree.is-vertical .ctree-units{border-left:1px solid var(--wire);flex-direction:column;gap:18px;margin:24px 0 0 28px;padding-left:32px;display:flex}.final-ui .ctree.is-vertical .ctree-units:before,.final-ui .ctree.is-vertical .ctree-units:after{display:none}.final-ui .ctree.is-vertical .ctree-unit{grid-template-columns:minmax(0,320px) minmax(0,1fr);align-items:start;gap:12px 32px;display:grid}.final-ui .ctree.is-vertical .ctree-unit:before{border-left:0;border-top:1px solid var(--wire);width:32px;height:0;top:34px;left:-32px}.final-ui .ctree.is-vertical .ctree-leaves{margin:6px 0 0}.final-ui .ctree.is-vertical .ctree-more{grid-column:2;margin:0}.final-ui .ctree-more{color:var(--v-hi);margin:6px 0 0 32px;font-size:14px}.final-ui .boro{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);align-items:center;gap:56px;display:grid}.final-ui .net{width:100%;height:auto;display:block;overflow:visible}.final-ui .net .wire{stroke:#3a3352;stroke-width:1px;fill:none}.final-ui .net .peer{fill:var(--bg);stroke:#6d63889a}.final-ui .net .pkt{fill:var(--v-hi)}.final-ui .net text{fill:var(--fg-2);font:500 12px var(--f-mono)}.final-ui .net .big{fill:var(--fg);font:800 34px var(--f-display);letter-spacing:-.04em}.final-ui .pshell{border:1px solid var(--line-2);font-family:var(--f-mono);cursor:text;background:#08070c;border-radius:12px;overflow:hidden;box-shadow:0 40px 80px -40px #8f5cff80}.final-ui .pshell-bar{border-bottom:1px solid var(--line);height:40px;color:var(--fg-3);align-items:center;gap:12px;padding:0 14px;font-size:12.5px;display:flex}.final-ui .pshell-bar .dots{gap:6px;display:flex}.final-ui .pshell-bar .dots i{background:var(--line-2);border-radius:50%;width:10px;height:10px}.final-ui .pshell-body{scrollbar-width:thin;height:300px;padding:18px 20px 10px;font-size:14.5px;line-height:1.65;overflow-y:auto}.final-ui .pshell-body .ln{white-space:pre-wrap;word-break:break-word;color:#e8e4f1}.final-ui .pshell-body .ln+.ln{margin-top:2px}.final-ui .pshell-body .ln.cmd{margin-top:12px}.final-ui .pshell-body .ln:has(.pr){margin-top:12px}.final-ui .pshell-body .ln:first-child{margin-top:0}.final-ui .pshell-body .out{color:#e8e4f1}.final-ui .pshell-body .err{color:#ffb4c8}.final-ui .pshell-body .pr{color:var(--v-hi)}.final-ui .pshell-body .lk{color:var(--ok);text-underline-offset:3px;text-decoration:underline}.final-ui .pshell-body form{align-items:baseline;gap:0;display:flex}.final-ui .pshell-body input{color:#fff;min-width:0;caret-color:var(--v-hi);font:inherit;background:0 0;border:0;outline:none;flex:1;margin-left:8px}.final-ui .pshell-chips{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;padding:14px 16px 16px;display:flex}.final-ui .pshell-chips button{border:1px solid var(--line-2);height:30px;font:500 13px var(--f-mono);color:var(--v-hi);border-radius:6px;padding:0 11px;transition:border-color .15s,background .15s,color .15s}.final-ui .pshell-chips button:hover:not(:disabled){border-color:var(--v);background:color-mix(in oklab, var(--v) 14%, transparent)}.final-ui .pshell-chips button.is-ran{color:var(--fg-3)}.final-ui .pshell-chips button:disabled{opacity:.5;cursor:wait}.final-ui .demo{background:var(--bg);color:var(--fg);border:1px solid #ffffff29;border-radius:12px;overflow:hidden;box-shadow:0 50px 100px -40px #060214e6,0 0 0 1px #0006}.final-ui .demo-bar{border-bottom:1px solid var(--line);height:46px;font:500 12px var(--f-mono);letter-spacing:.05em;color:var(--fg-3);align-items:center;gap:16px;padding:0 18px;display:flex}.final-ui .demo-bar .crumbs{white-space:nowrap;text-overflow:ellipsis;gap:10px;min-width:0;display:flex;overflow:hidden}.final-ui .demo-bar .crumbs b{color:var(--fg-2);font-weight:500}.final-ui .demo-bar-end{white-space:nowrap;align-items:center;gap:18px;margin-left:auto;display:flex}.final-ui .demo-open{color:var(--v-hi)}.final-ui .demo-open:hover{color:#fff}.final-ui .demo-body{grid-template-columns:250px minmax(0,1.1fr) minmax(0,1fr);height:540px;display:grid}.final-ui .demo-outline{border-right:1px solid var(--line);scrollbar-width:thin;padding:10px 8px;overflow:auto}.final-ui .demo-unit>button{text-align:left;border-radius:6px;align-items:center;gap:8px;width:100%;padding:8px;display:flex}.final-ui .demo-unit>button:hover{background:var(--bg-2)}.final-ui .demo-unit>button .chev{width:10px;color:var(--fg-3);transition:transform .15s}.final-ui .demo-unit>button[aria-expanded=true] .chev{transform:rotate(90deg)}.final-ui .demo-unit>button .name{flex-direction:column;flex:1;min-width:0;font-size:13.5px;font-weight:600;line-height:1.25;display:flex}.final-ui .demo-unit>button .k{font:500 10.5px var(--f-mono);letter-spacing:.06em;color:var(--fg-3)}.final-ui .demo-unit>button .count{font:500 11.5px var(--f-mono);color:var(--fg-3)}.final-ui .demo-unit ul{border-left:1px solid var(--line-2);margin:2px 0 8px 13px;padding:0 0 0 10px;list-style:none}.final-ui .demo-unit li button{width:100%;color:var(--fg-2);text-align:left;border-radius:6px;align-items:center;gap:9px;padding:6px 8px;font-size:13.5px;transition:background .15s,color .15s;display:flex}.final-ui .demo-unit li button .t{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.final-ui .demo-unit li button:hover{color:var(--fg);background:var(--bg-2)}.final-ui .demo-unit li button.is-current{color:var(--fg);background:color-mix(in oklab, var(--v) 18%, transparent)}.final-ui .demo-unit li button.is-loading{animation:.9s ease-in-out infinite demo-pulse}.final-ui .demo-lesson{scrollbar-width:thin;padding:30px 32px 40px;animation:.45s cubic-bezier(.22,1,.36,1) demo-in;overflow:auto}.final-ui .demo-lesson>.k{font:500 11.5px var(--f-mono);letter-spacing:.06em;color:var(--fg-3)}.final-ui .demo-lesson>h3{letter-spacing:-.04em;margin:8px 0 22px;font-size:34px;font-weight:800;line-height:1}.final-ui .demo-lesson .prose{font-size:15.5px;line-height:1.65}.final-ui .demo-lesson .prose h2{font-size:21px}.final-ui .demo-lesson .prose h1{font-size:24px}.final-ui .demo-term{border-left:1px solid var(--line);background:#08070c;flex-direction:column;min-width:0;display:flex}.final-ui .demo-cap{color:#e3dafb;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:20px;font-size:15px;display:flex}.final-ui .demo-cap b{color:#fff}@media (max-width:1100px){.final-ui .demo-body{grid-template-columns:220px minmax(0,1fr)}.final-ui .demo-term{display:none}}@media (max-width:720px){.final-ui .demo-body{grid-template-columns:minmax(0,1fr);height:480px}.final-ui .demo-outline,.final-ui .demo-bar .num{display:none}}.final-ui .end{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.final-ui .end>div{padding:96px 0 104px}.final-ui .end>div+div{border-left:1px solid var(--line);padding-left:56px}.final-ui .zero{font:800 clamp(96px, 13vw, 180px) / .8 var(--f-display);letter-spacing:-.06em;color:var(--v-hi)}.final-ui .foot{border-top:1px solid var(--line);color:var(--fg-2);padding-block:56px 64px;font-size:15px}.final-ui .foot .wrap{grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));gap:32px;display:grid}.final-ui .foot ul{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.final-ui .foot a:hover{color:var(--fg)}.final-ui .foot .legal{border-top:1px solid var(--line);color:var(--fg-3);grid-column:1/-1;padding-top:28px;font-size:13.5px}.final-ui .page-head{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:end;gap:40px;padding-block:88px 56px;display:grid}.final-ui .course-block{border-top:1px solid var(--line);padding-block:64px 80px}.final-ui .course-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 40px;margin-bottom:40px;display:flex}.final-ui .course-head p{max-width:60ch;margin-top:12px}.final-ui .facts{font:500 13px var(--f-mono);color:var(--fg-3);flex-wrap:wrap;gap:6px 22px;display:flex}.final-ui .viewer{height:calc(100vh - var(--nav));grid-template-rows:minmax(0,1fr) 30px;gap:10px;padding:10px 10px 0;display:grid}.final-ui .viewer-main{grid-template-columns:var(--outline-w,280px) minmax(0, 1fr) 6px var(--term-w,44%);gap:10px 0;min-height:0;display:grid}.final-ui .viewer-main.no-outline{grid-template-columns:0 minmax(0, 1fr) 6px var(--term-w,44%)}.final-ui .viewer-main.no-term{grid-template-columns:var(--outline-w,280px) minmax(0, 1fr) 0 0}.final-ui .pane{border:1px solid var(--line-2);border-radius:8px;flex-direction:column;min-width:0;min-height:0;margin-top:8px;transition:border-color .15s;display:flex;position:relative}.final-ui .pane.is-focus{border-color:color-mix(in oklab, var(--v) 70%, var(--line-2))}.final-ui .pane>.pane-title{z-index:2;background:var(--bg);font:500 12px/18px var(--f-mono);color:var(--fg-3);align-items:center;gap:8px;padding:0 7px;display:flex;position:absolute;top:-9px;left:12px}.final-ui .pane.is-focus>.pane-title{color:var(--v-hi)}.final-ui .pane>.pane-tools{z-index:2;background:var(--bg);gap:4px;padding:0 4px;display:flex;position:absolute;top:-12px;right:10px}.final-ui .pane>.pane-body{flex:1;min-height:0;overflow:auto}.final-ui .pane-outline{margin-right:10px}.final-ui .pane-outline .pane-body{padding:16px 8px 12px}.final-ui .viewer-main.no-outline .pane-outline{display:none}.final-ui .pane-lesson .pane-body{padding:40px clamp(20px,4vw,56px) 48px}.final-ui .lesson-col{flex-direction:column;gap:28px;max-width:720px;margin:0 auto;display:flex}.final-ui .pane-term{overflow:hidden}.final-ui .pane-term .pane-body{border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.final-ui .splitter{cursor:col-resize;position:relative}.final-ui .splitter:after{content:"";background:var(--line-2);border-radius:1px;width:2px;position:absolute;top:40%;bottom:40%;left:2px}.final-ui .splitter:hover:after,.final-ui .splitter.is-drag:after{background:var(--v);top:8px;bottom:0}.final-ui .tool{border:1px solid var(--line-2);height:24px;font:500 12px var(--f-mono);color:var(--fg-2);background:var(--bg);border-radius:5px;padding:0 8px}.final-ui .tool:hover{color:var(--fg);border-color:var(--fg-3)}.final-ui .tool.danger:hover{color:#ffb4c8;border-color:#7a3550}.final-ui .status{font:500 12.5px var(--f-mono);color:var(--fg-3);border-top:1px solid var(--line);align-items:center;gap:18px;padding:0 6px;display:flex}.final-ui .status .seg-v{color:#fff;background:var(--v-deep);border-radius:4px;padding:2px 8px}.final-ui .status .right{gap:18px;margin-left:auto;display:flex}.final-ui .status kbd{color:var(--fg-2)}.final-ui .lesson-meta{font:500 13px var(--f-mono);color:var(--fg-3);flex-wrap:wrap;gap:6px 14px;display:flex}.final-ui .complete{border:1px solid var(--line-2);border-radius:var(--r-s);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.final-ui .complete.is-ready{border-color:color-mix(in oklab, var(--v) 60%, var(--line-2))}.final-ui .complete.is-done{border-color:color-mix(in oklab, var(--ok) 50%, var(--line-2))}.final-ui .complete p{color:var(--fg-2);font-size:15px}.final-ui .side-card{border:1px dashed var(--line-2);border-radius:var(--r-s);color:var(--fg-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;font-size:15px;display:flex}.final-ui .lesson-nav{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding-top:24px;display:flex}.final-ui .lesson-nav a{flex-direction:column;gap:2px;max-width:48%;font-size:15px;display:flex}.final-ui .lesson-nav a:last-child{text-align:right;margin-left:auto}.final-ui .lesson-nav a .label{color:var(--fg-3)}.final-ui .lesson-nav a:hover b{color:var(--v-hi)}.final-ui .mobile-tabs{display:none}.final-ui .ed{height:calc(100vh - var(--nav));grid-template-rows:minmax(0,1fr);grid-template-columns:300px minmax(0,1fr) minmax(0,.9fr);gap:0 10px;padding:10px;display:grid}.final-ui .ed .pane-body{padding:18px 14px}.final-ui .ed-row{align-items:center;gap:6px;display:flex}.final-ui .ed-row .grow{flex:1;min-width:0}.final-ui .ed-lesson{color:var(--fg-2);border-radius:6px;align-items:center;gap:8px;padding:5px 6px 5px 8px;font-size:14px;display:flex}.final-ui .ed-lesson:hover{background:var(--bg-2);color:var(--fg)}.final-ui .ed-lesson:hover .ed-hover{opacity:1}.final-ui .ed-lesson.is-current{background:color-mix(in oklab, var(--v) 16%, transparent);color:var(--fg)}.final-ui .ed-lesson>a{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.final-ui .ed-hover{opacity:0;gap:2px;transition:opacity .1s;display:flex}.final-ui .icon-btn{width:24px;height:24px;color:var(--fg-3);border-radius:5px;place-items:center;font-size:13px;display:grid}.final-ui .icon-btn:hover{background:var(--bg-3);color:var(--fg)}.final-ui .status-dot{background:var(--ok);border-radius:50%;flex:none;width:7px;height:7px}.final-ui .status-dot.draft{background:0 0;border:1.5px solid #e2b85c}.final-ui .inp{border:1px solid var(--line-2);background:var(--bg);border-radius:7px;width:100%;height:38px;padding:0 12px}.final-ui .inp:focus{border-color:var(--v);outline:0;box-shadow:0 0 0 3px #8f5cff38}.final-ui .title-inp{height:auto;font:800 30px/1.15 var(--f-display);letter-spacing:-.03em;background:0 0;border-color:#0000;margin-left:-6px;padding:4px 6px}.final-ui .title-inp:hover{border-color:var(--line-2)}.final-ui .txt{border:1px solid var(--line-2);background:var(--bg);width:100%;min-height:220px;font:400 14.5px/1.65 var(--f-mono);resize:vertical;border-radius:7px;padding:14px}.final-ui .txt:focus{border-color:var(--v);outline:0}.final-ui .blk{border:1px solid var(--line-2);border-radius:var(--r-s)}.final-ui .blk+.blk{margin-top:14px}.final-ui .blk-head{border-bottom:1px solid var(--line);font:500 12px var(--f-mono);color:var(--fg-3);align-items:center;gap:10px;padding:8px 10px 8px 14px;display:flex}.final-ui .blk-head b{color:var(--fg);font-weight:600}.final-ui .blk-head .right{gap:2px;margin-left:auto;display:flex}.final-ui .blk-body{flex-direction:column;gap:12px;padding:14px;display:flex}.final-ui .confirm{color:#ffb4c8;align-items:center;gap:8px;font-size:13.5px;display:flex}.final-ui .save{font:500 12.5px var(--f-mono);color:var(--fg-3)}.final-ui .save.err{color:#ffb4c8}.final-ui .seg{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:3px;display:inline-flex}.final-ui .seg button{height:28px;color:var(--fg-2);border-radius:6px;padding:0 12px;font-size:14px}.final-ui .seg button[aria-pressed=true]{background:var(--bg-3);color:var(--fg)}.final-ui .menu{position:relative}.final-ui .menu>div{z-index:10;border:1px solid var(--line-2);background:var(--bg-2);border-radius:9px;min-width:220px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 20px 40px -10px #000}.final-ui .menu>div button{border-radius:6px;gap:10px;width:100%;padding:8px 10px;font-size:14px;display:flex}.final-ui .menu>div button:hover{background:var(--bg-3)}.final-ui .menu>div button code{width:44px;color:var(--v-hi);font-size:11.5px}.final-ui .story{border-top:1px solid var(--line);grid-template-columns:180px minmax(0,1fr);gap:40px;padding-block:72px;display:grid}.final-ui .story .when{font:500 13px var(--f-mono);color:var(--fg-3);padding-top:10px}.final-ui .story p{max-width:60ch;color:var(--fg-2);margin-top:18px;font-size:18px}.final-ui .joke{font:800 clamp(80px, 14vw, 200px) / .85 var(--f-display);letter-spacing:-.06em;color:var(--v-hi)}.final-ui .mini-term{border:1px solid var(--line-2);border-radius:var(--r-s);max-width:560px;font:400 14.5px/1.8 var(--f-mono);background:#08070c;margin-top:28px}.final-ui .mini-term div:first-child{border-bottom:1px solid var(--line);color:var(--fg-3);padding:8px 14px;font-size:12.5px}.final-ui .mini-term pre{color:#e8e4f1;margin:0;padding:12px 14px}.final-ui .team{border-top:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));gap:0;display:grid}.final-ui .team>div{padding:26px 20px 28px 0}.final-ui .team>div+div{border-left:1px solid var(--line);padding-left:20px}.final-ui .team .mono{border:1px solid var(--line-2);width:52px;height:52px;font:700 16px var(--f-mono);color:var(--v-hi);border-radius:50%;place-items:center;margin-bottom:18px;display:grid}.final-ui .team b{font:700 18px/1.25 var(--f-display);letter-spacing:-.015em;display:block}.final-ui .team span{color:var(--fg-2);margin-top:6px;font-size:14.5px;display:block}.final-ui .logos{flex-wrap:wrap;align-items:center;gap:28px 56px;display:flex}.final-ui .logos img{opacity:.75;width:auto;max-width:100%;transition:opacity .2s}.final-ui .logos img:hover{opacity:1}.final-ui .spec{border-top:1px solid var(--line)}.final-ui .spec>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:24px;padding:18px 0;display:grid}.final-ui .spec b{font-weight:600}.final-ui .spec span{color:var(--fg-2)}.final-ui .faq{border-top:1px solid var(--line)}.final-ui .faq details{border-bottom:1px solid var(--line)}.final-ui .faq summary{cursor:pointer;font:600 18px/1.35 var(--f-text);justify-content:space-between;gap:20px;padding:20px 0;list-style:none;display:flex}.final-ui .faq summary::-webkit-details-marker{display:none}.final-ui .faq summary:after{content:"+";font:400 22px/1 var(--f-mono);color:var(--fg-3)}.final-ui .faq details[open] summary:after{content:"−"}.final-ui .faq details>div{max-width:68ch;color:var(--fg-2);padding:0 0 22px}.final-ui .two{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:56px;display:grid}.final-ui .app{height:calc(100vh - var(--nav));background:var(--bg-1);grid-template-rows:48px minmax(0,1fr) 32px;grid-template-columns:minmax(0,1fr);display:grid}.final-ui .app-bar{border-bottom:1px solid var(--line);color:var(--fg-3);align-items:center;gap:14px;padding:0 16px 0 10px;font-size:14px;display:flex}.final-ui .app-bar .crumbs{white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.final-ui .app-bar .crumbs a:hover{color:var(--fg)}.final-ui .app-bar .crumbs b{color:var(--fg);text-overflow:ellipsis;font-weight:600;overflow:hidden}.final-ui .app-bar-end{flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.final-ui .app-toggle{width:32px;height:32px;color:var(--fg-3);border-radius:7px;place-items:center;display:grid}.final-ui .app-toggle:hover,.final-ui .app-toggle[aria-pressed=true]{color:var(--fg);background:var(--bg-2)}.final-ui .app-body{grid-template-columns:290px minmax(0, 1fr) 1px var(--term-w,42%);min-height:0;display:grid}.final-ui .app-body.no-outline{grid-template-columns:0 minmax(0, 1fr) 1px var(--term-w,42%)}.final-ui .app-body.no-outline .app-outline{display:none}.final-ui .app-body.no-term{grid-template-columns:290px minmax(0,1fr) 0 0}.final-ui .app-body.no-term.no-outline{grid-template-columns:0 minmax(0,1fr) 0 0}.final-ui .app-body .splitter{background:var(--line)}.final-ui .app-body .splitter:after{left:-2px}.final-ui .app-outline{border-right:1px solid var(--line);padding:0 10px 20px;font-size:14.5px;overflow:auto}.final-ui .app-outline .otree-unit>button{letter-spacing:.02em;color:var(--fg-2);padding:10px 8px;font-size:13px;font-weight:600}.final-ui .app-outline .otree-unit>button .count.all{color:var(--ok)}.final-ui .app-outline .otree-lessons{border:0;margin:0 0 6px;padding:0}.final-ui .app-outline .otree-lesson:before{display:none}.final-ui .app-outline .otree-lesson>button{gap:11px;padding:8px 10px;font-size:14.5px}.final-ui .app-outline .otree-lesson.is-current>button{color:#fff;background:#5b2fd9}.final-ui .app-outline-head{z-index:1;background:var(--bg-1);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px;margin-bottom:4px;padding:18px 8px 16px;display:grid;position:sticky;top:0}.final-ui .app-outline-head b{grid-column:1/-1;font-weight:600}.final-ui .app-outline-head .bar{width:100%}.final-ui .app-outline-head .faint{font-size:13px}.final-ui .app-lesson{background:var(--bg);padding:56px clamp(24px,5vw,72px) 72px;overflow:auto}.final-ui .app-lesson .lesson-col{gap:32px;max-width:680px}.final-ui .app-lesson .prose{font-size:17.5px;line-height:1.75}.final-ui .prose>*{margin:0}.final-ui .prose>*+*{margin-top:18px}.final-ui .prose h1,.final-ui .prose h2,.final-ui .prose h3,.final-ui .prose h4{font-family:var(--f-text);letter-spacing:-.015em;color:var(--fg);font-weight:700;line-height:1.25}.final-ui .prose h1{font-size:24px}.final-ui .prose h2{font-size:22px}.final-ui .prose h3{font-size:18.5px}.final-ui .prose>*+:is(h1,h2,h3,h4){margin-top:44px}.final-ui .prose>:is(h1,h2,h3,h4)+*{margin-top:10px}.final-ui .prose p,.final-ui .prose li{color:#d9d4e4}.final-ui .prose strong{color:var(--fg);font-weight:650}.final-ui .prose :not(pre)>code{color:#ece6ff;background:#1b1726;border:1px solid #2a2438;border-radius:5px;padding:2px 6px;font-size:.86em}.final-ui .prose ul,.final-ui .prose ol{padding-left:1.3em}:is(.final-ui .prose ul,.final-ui .prose ol) li::marker{color:var(--fg-3)}.final-ui .prose [data-lab-code]{border:1px solid var(--line-2);background:#08070c;border-radius:10px;overflow:hidden}.final-ui .prose pre{color:#e8e4f1;margin:0;padding:16px 18px;font-size:14.5px;line-height:1.65;overflow-x:auto}.final-ui .prose [data-lab-runs]{border-top:1px solid var(--line);background:var(--bg-1);flex-wrap:wrap;gap:6px;padding:10px 12px;display:flex}.final-ui .prose [data-lab-run]{margin:0}.final-ui .prose blockquote{border:1px solid var(--line-2);border-left:3px solid var(--v);background:var(--bg-1);border-radius:8px;margin-inline:0;padding:14px 18px}.final-ui .prose blockquote p{color:var(--fg-2)}.final-ui .run{border:1px solid var(--line-2);background:var(--bg-2);height:28px;font:500 12.5px var(--f-mono);color:var(--v-hi);border-radius:6px;padding:0 10px}.final-ui .run:before{content:"Run";font-family:var(--f-text);color:var(--fg);margin-right:8px;font-weight:600}.final-ui .lesson-kicker{color:var(--fg-3);align-items:center;gap:10px;font-size:14px;display:flex}.final-ui .done-tag{background:color-mix(in oklab, var(--ok) 16%, transparent);color:var(--ok);border-radius:999px;padding:2px 8px;font-size:12.5px;font-weight:600}.final-ui .lesson-title{font:700 clamp(30px, 3vw, 40px) / 1.1 var(--f-display);letter-spacing:-.03em;margin-top:10px}.final-ui .app .lesson-nav a{gap:4px}.final-ui .app .lesson-nav a .faint{font-size:13.5px}.final-ui .app .lesson-nav a b{font-weight:600}.final-ui .app-term{background:#08070c;flex-direction:column;min-width:0;min-height:0;display:flex}.final-ui .app-term-bar{border-bottom:1px solid var(--line);align-items:center;gap:10px;height:44px;padding:0 10px 0 14px;font-size:14px;display:flex}.final-ui .app-term-bar .mono{font:400 13px var(--f-mono)}.final-ui .app-foot{background:var(--bg-1)}.final-ui .app-foot kbd{font-family:var(--f-mono);color:var(--fg-2)}.final-ui .app .mobile-tabs{display:none}@media (max-width:860px){.final-ui .app{height:auto;min-height:calc(100vh - var(--nav));grid-template-rows:48px auto minmax(0,1fr)}.final-ui .app .mobile-tabs{display:flex}.final-ui .app-bar .app-bar-end .faint{display:none}.final-ui .app-body,.final-ui .app-body.no-outline,.final-ui .app-body.no-term{display:block}.final-ui .app-body [data-tab]:not([data-active]),.final-ui .app-body .splitter,.final-ui .app-foot{display:none!important}.final-ui .app-body.no-outline .app-outline[data-active]{display:block}.final-ui .app-outline{border:0}.final-ui .app-lesson{padding:32px 18px 56px}.final-ui .app-term{height:calc(100vh - var(--nav) - 96px)}}.final-ui .ed{background:var(--bg-1);grid-template-columns:300px minmax(0,1fr) minmax(0,.85fr);gap:0;padding:0}.final-ui .ed .pane{border:0;border-right:1px solid var(--line);border-radius:0;margin:0;padding-top:48px}.final-ui .ed .pane:last-child{border-right:0}.final-ui .ed .pane>.pane-title{background:var(--bg-1);border-bottom:1px solid var(--line);height:48px;font:600 14px/48px var(--f-text);color:var(--fg);padding:0 16px;top:0;left:0;right:0}.final-ui .ed .pane>.pane-tools{background:0 0;top:10px;right:12px}.final-ui .ed .pane>.pane-tools .save{line-height:28px;background:0 0!important}.final-ui .ed .pane:nth-child(2) .pane-body{background:var(--bg)}@media (max-width:860px){.final-ui .nav .wrap{gap:12px}.final-ui .nav-end{gap:8px}.final-ui .nav-end>.muted{display:none}.final-ui .ctree.is-vertical .ctree-units{margin-left:12px;padding-left:18px}.final-ui .ctree.is-vertical .ctree-unit{grid-template-columns:minmax(0,1fr)}.final-ui .ctree.is-vertical .ctree-unit:before{width:18px;left:-18px}.final-ui .ctree.is-vertical .ctree-leaves{columns:1}.final-ui .ctree.is-vertical .ctree-more{grid-column:1}.final-ui .app-bar .pill,.final-ui .app-bar .app-toggle,.final-ui .app-bar .crumbs>:not(b){display:none}}.final-ui .ab-hero{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:end;gap:40px 64px;padding-block:104px 40px;display:grid}.final-ui .ab-story{flex-direction:column;padding-block:72px 128px;display:flex}.final-ui .ab-line{max-width:18ch;font:800 clamp(36px, 4.6vw, 68px) / 1 var(--f-display);letter-spacing:-.045em;margin-top:120px}.final-ui .ab-line:first-child{margin-top:0}.final-ui .ab-right{text-align:right;align-self:flex-end}.final-ui .ab-small{max-width:44ch;color:var(--fg-2);margin-top:20px;font-size:19px}.final-ui .ab-joke{font:800 clamp(96px, 17vw, 260px) / .85 var(--f-display);letter-spacing:-.06em;color:var(--v-hi);align-self:flex-end;margin-top:12px}.final-ui .ab-commit{font:400 clamp(17px, 1.6vw, 22px) / 1.7 var(--f-mono);margin-top:28px}.final-ui .ab-commit b{color:var(--v-hi);font-weight:600}.final-ui .credits{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.final-ui .credits li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;padding:18px 0;transition:padding .2s;display:flex}.final-ui .credits li:hover{padding-left:12px}.final-ui .credits li:hover .credits-name{color:var(--v-hi)}.final-ui .credits-name{font:800 clamp(30px, 3.6vw, 52px) / 1 var(--f-display);letter-spacing:-.04em;transition:color .2s}.final-ui .credits-focus{color:var(--fg-2);font-size:16px}.final-ui .ab-close{gap:0;padding-bottom:96px;display:grid}.final-ui .ab-close>div{border-top:1px solid var(--line);grid-template-columns:minmax(0,300px) minmax(0,1fr) auto;align-items:center;gap:12px 32px;padding:28px 0;display:grid}.final-ui .ab-close>div:last-child{border-bottom:1px solid var(--line)}@media (max-width:860px){.final-ui .ab-hero,.final-ui .ab-close>div{grid-template-columns:minmax(0,1fr)}.final-ui .ab-line{margin-top:80px}}.final-ui .s-hero{padding-top:96px}.final-ui .s-hero-side{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:16px 56px;max-width:1180px;margin-top:40px;display:grid}.final-ui .s-hero-side .cta-row{grid-column:2}.final-ui .cta-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.final-ui .s-field{isolation:isolate;color:#fff;position:relative;overflow:hidden}.final-ui .s-field .shape{z-index:-1;pointer-events:none;position:absolute}.final-ui .s-field-hero{margin-top:56px;padding-block:72px 88px}.final-ui .s-field-hero .s1{background:linear-gradient(118deg, var(--v-ink) 0%, var(--v-deep) 34%, #6a32f0 62%, #b64dff 100%);clip-path:polygon(0 14%,100% 0,100% 86%,0 100%);inset:0}.final-ui .s-field-hero .s2{clip-path:polygon(38% 0,100% 0,100% 100%);background:linear-gradient(200deg,#d27bff,#8a46ff);width:46%;height:70%;top:0;right:-4%}.final-ui .s-field-hero .s3{clip-path:polygon(0 30%,100% 100%,0 100%);background:#0d0628;width:34%;height:54%;bottom:0;left:0}.final-ui .s-field-boro{padding-block:104px 96px}.final-ui .s-field-boro .flag-river{margin:48px 0 0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.final-ui .s-field-boro .flag-river .fr-row{padding-block:7px}.final-ui .s-field-boro .flag-river .fr-row:hover .fr-track{animation-play-state:paused}.final-ui .s-field-boro .flag-river .fr-track{gap:16px;padding-right:16px}.final-ui .s-field-boro .flag-river button{cursor:pointer;width:60px;height:60px}.final-ui .s-field-boro .flag-river button:hover,.final-ui .s-field-boro .flag-river button:focus-visible{border-color:#ffffffb3}.final-ui .s-field-boro .flag-river button.is-picked{border-color:#fff}.final-ui .s-field-boro .flag-river .fr-name{box-sizing:border-box;max-width:1240px;padding-inline:var(--gut) var(--gut-r);margin:18px auto 0;font-size:15px}.final-ui .s-field-boro .s1{background:linear-gradient(100deg,#12073a 0%,#2c11a0 40%,#5a26e8 72%,#9a44ff 100%);inset:0}.final-ui .s-field-boro .s2{clip-path:polygon(30% 0,100% 0,100% 100%,0 100%);background:linear-gradient(160deg,#b45cff,#6d2cf5);width:38%;top:0;bottom:0;right:0}.final-ui .s-field-boro .s3{opacity:.22;clip-path:polygon(0 0,40% 0,100% 100%,60% 100%);background:#000;width:120px;height:100%;top:0;left:6%}.final-ui .s-field-end{padding-block:112px}.final-ui .s-field-end .s1{background:#000;inset:0}.final-ui .s-field-end .s2{background:linear-gradient(140deg, var(--v-deep), #7b3cff 55%, #c460ff);clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);width:64%;height:100%;top:0;right:-6%}.final-ui .s-field-end .s3{clip-path:polygon(0 100%,100% 0,100% 100%);background:#13093f;width:22%;height:46%;bottom:0;right:22%}.final-ui .shot-cap{color:#e3dafb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-top:20px;font-size:14.5px;display:flex}.final-ui .shot-cap b{color:#fff}.final-ui .sec-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 40px;margin-bottom:56px;display:flex}.final-ui .sec-head p{max-width:46ch}.final-ui .s-boro{flex-direction:column;display:flex}.final-ui .s-boro .tag{font:600 13px/1 var(--f-mono);color:#e6dcff;letter-spacing:.06em}.final-ui .s-boro .d-2{max-width:22ch;margin-top:18px}.final-ui .s-boro p.l{color:#e9e2ff;max-width:52ch;margin-top:18px;font-size:17px}.final-ui .nums{border-top:1px solid #ffffff59;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:64px;display:grid}.final-ui .nums div{padding:22px 24px 6px 0}.final-ui .nums div+div{border-left:1px solid #ffffff59;padding-left:24px}.final-ui .nums b{font:800 clamp(38px, 4.3vw, 70px) / .9 var(--f-display);letter-spacing:-.055em;font-variant-numeric:tabular-nums;display:block}.final-ui .nums div>span{font:500 14px/1.2 var(--f-mono);color:#e6dcff;margin-top:10px;display:block}.final-ui .free{grid-template-columns:minmax(0,6fr) minmax(0,6fr);align-items:start;gap:48px 80px;display:grid}.final-ui .free .d-1{max-width:11ch}.final-ui .free-copy{flex-direction:column;gap:24px;display:flex}.final-ui .free-copy p{max-width:50ch}.final-ui .receipt{border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-1);font-size:15.5px}.final-ui .receipt-hd{border-bottom:1px solid var(--line);font:500 12px/1.3 var(--f-mono);color:var(--fg-3);letter-spacing:.04em;justify-content:space-between;gap:12px;padding:16px 20px;display:flex}.final-ui .rrow{border-bottom:1px dashed var(--line-2);grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px 20px;display:grid}.final-ui .rrow b{font-weight:700}.final-ui .rrow p{color:var(--fg-3);margin-top:3px;font-size:14.5px}.final-ui .rrow .amt{font:600 15px/1.4 var(--f-mono);color:var(--fg-2)}.final-ui .rtotal{font:800 26px/1 var(--f-display);letter-spacing:-.02em;justify-content:space-between;align-items:baseline;padding:18px 20px;display:flex}.final-ui .rtotal span:last-child{font:700 22px var(--f-mono)}.final-ui .rfoot{border-top:1px solid var(--line);color:var(--fg-3);padding:14px 20px 18px;font-size:13.5px}.final-ui .s-end{grid-template-columns:minmax(0,6fr) minmax(0,6fr);align-items:center;gap:40px 64px;display:grid}.final-ui .s-end .d-1{max-width:12ch}.final-ui .end-card{border-radius:var(--r);background:#000;border:1px solid #ffffff2e;flex-direction:column;justify-self:end;gap:18px;width:min(100%,420px);padding:28px;display:flex}.final-ui .end-card .btn{justify-content:center}.final-ui .s-field-hero .win{border-color:#ffffff29;box-shadow:0 50px 100px -40px #040012e6}.final-ui .s-field-hero .win-body{height:560px}.final-ui .win-foot{border-top:1px solid var(--line);height:32px;font:500 12.5px var(--f-mono);color:var(--fg-3);align-items:center;gap:16px;padding:0 14px;display:flex}.final-ui .win-foot .right{margin-left:auto}.final-ui .pill{border:1px solid var(--line-2);height:26px;font:500 12.5px var(--f-mono);color:var(--fg-2);border-radius:6px;align-items:center;gap:7px;padding:0 10px;display:inline-flex}.final-ui .pill i{background:var(--ok);border-radius:50%;width:7px;height:7px}.final-ui .win-outline .otree-lesson.is-current>a{color:#fff;background:#5b2fd9}.final-ui .check{border:1.5px solid var(--fg-3);border-radius:50%;flex:none;place-items:center;width:16px;height:16px;display:grid}.final-ui .check.done{background:var(--ok);border-color:var(--ok);color:#04140b}.final-ui .check.current{border-color:#fff}@media (max-width:1020px){.final-ui .s-hero-side{grid-template-columns:minmax(0,1fr)}.final-ui .s-hero-side .cta-row{grid-column:1}.final-ui .free,.final-ui .s-end{grid-template-columns:minmax(0,1fr)}.final-ui .end-card{justify-self:start}.final-ui .nums{grid-template-columns:repeat(2,minmax(0,1fr))}.final-ui .nums div:nth-child(3){border-left:0;padding-left:0}}@media (max-width:860px){.final-ui .s-field-hero .win-body{height:auto}}@media (max-width:1100px){.final-ui .win-body{grid-template-columns:0 minmax(0,1fr) minmax(0,1fr)}.final-ui .win-outline{display:none}.final-ui .ctree-units{--cols:2!important}.final-ui .ed{grid-template-columns:260px minmax(0,1fr)}.final-ui .ed .ed-preview{display:none}.final-ui .team{grid-template-columns:repeat(3,minmax(0,1fr))}.final-ui .team>div:nth-child(4){border-left:0;padding-left:0}}@media (max-width:860px){.final-ui{--gut:max(16px, env(safe-area-inset-left,0px));--gut-r:max(16px, env(safe-area-inset-right,0px))}.final-ui .sec{padding-block:88px}.final-ui .nav-links{display:none}.final-ui .nav-links.is-open{top:var(--nav);padding:8px var(--gut-r) 16px var(--gut);background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;gap:0;display:flex;position:absolute;left:0;right:0}.final-ui .nav-links.is-open a{padding:12px 0;font-size:17px}.final-ui .nav-toggle{display:inline-flex}.final-ui .hero{padding-top:56px}.final-ui .hero-top,.final-ui .boro,.final-ui .two,.final-ui .page-head{grid-template-columns:minmax(0,1fr);gap:32px}.final-ui .win-body{grid-template-rows:auto 300px;grid-template-columns:minmax(0,1fr);height:auto}.final-ui .win-lesson{max-height:340px}.final-ui .win-term{border-left:0;border-top:1px solid var(--line)}.final-ui .callout{display:none}.final-ui .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.final-ui .stats>div:nth-child(3){border-left:0;border-top:1px solid var(--line);padding-left:0}.final-ui .stats>div:nth-child(4){border-top:1px solid var(--line)}.final-ui .ctree-units{gap:14px;--cols:1!important}.final-ui .ctree-units:before{display:none}.final-ui .ctree-units:after{height:48px}.final-ui .ctree-unit:before{height:14px;top:-14px;left:40px}.final-ui .end{grid-template-columns:minmax(0,1fr)}.final-ui .end>div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}.final-ui .end>div{padding:72px 0}.final-ui .foot .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.final-ui .foot .wrap>div:first-child{grid-column:1/-1}.final-ui .viewer{height:auto;min-height:calc(100vh - var(--nav));grid-template-rows:auto minmax(0,1fr);gap:0;padding:0}.final-ui .viewer-main,.final-ui .viewer-main.no-outline,.final-ui .viewer-main.no-term{display:block}.final-ui .viewer .pane{border:0;border-radius:0;margin:0}.final-ui .viewer .pane>.pane-title,.final-ui .viewer .pane>.pane-tools{display:none}.final-ui .viewer .pane[data-tab]:not([data-active]){display:none}.final-ui .pane-term{height:calc(100vh - var(--nav) - 52px)}.final-ui .splitter,.final-ui .status{display:none}.final-ui .mobile-tabs{top:var(--nav);z-index:5;background:var(--bg);border-bottom:1px solid var(--line);display:flex;position:sticky}.final-ui .mobile-tabs button{height:48px;color:var(--fg-2);flex:1;font-size:15px}.final-ui .mobile-tabs button[aria-pressed=true]{color:var(--fg);box-shadow:inset 0 -2px var(--v)}.final-ui .ed{height:auto;padding:0 0 40px;display:block}.final-ui .ed .pane{margin:18px 12px 0}.final-ui .story{grid-template-columns:minmax(0,1fr);gap:8px;padding-block:56px}.final-ui .team{grid-template-columns:minmax(0,1fr)}.final-ui .team>div,.final-ui .team>div+div{border-left:0;border-top:1px solid var(--line);grid-template-columns:64px minmax(0,1fr);align-items:center;padding:20px 0;display:grid}.final-ui .team .mono{grid-row:span 2;margin:0}.final-ui .spec>div{grid-template-columns:minmax(0,1fr);gap:4px}}@media (prefers-reduced-motion:reduce){.final-ui *,.final-ui :before,.final-ui :after{transition:none!important;animation:none!important}}@keyframes lab-final-pkt{0%{offset-distance:0%;opacity:0}15%{opacity:1}to{offset-distance:100%;opacity:1}}@keyframes lab-final-spin{to{transform:rotate(360deg)}}.final-ui.final-bare{background:0 0;min-height:0}.final-ui .foot .site-foot{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:40px 32px}.final-ui .foot .site-foot-legal{flex-wrap:wrap;justify-content:space-between;gap:8px 24px;display:flex}.final-ui .foot .site-foot-legal span:last-child{gap:20px;display:flex}@media (max-width:860px){.final-ui .foot .site-foot{grid-template-columns:repeat(2,minmax(0,1fr))}.final-ui .foot .site-foot>div:first-child{grid-column:1/-1}}.final-ui .flag-river{margin-inline:calc(var(--gut) * -1) calc(var(--gut-r) * -1)}.final-ui .flag-river .fr-row{padding-block:5px;overflow:hidden}.final-ui .flag-river .fr-row:active .fr-track{animation-play-state:paused}.final-ui .flag-river .fr-track{gap:10px;width:max-content;padding-right:10px;animation:70s linear infinite fr-drift;display:flex}.final-ui .flag-river .fr-track.fr-1{animation-duration:90s;animation-direction:reverse}.final-ui .flag-river .fr-track.fr-2{animation-duration:60s}.final-ui .flag-river button{background:#0a061859;border:1.5px solid #ffffff38;border-radius:999px;flex:none;width:44px;height:44px;padding:2px;transition:border-color .2s,transform .2s}.final-ui .flag-river button img{object-fit:cover;border-radius:999px;width:100%;height:100%}.final-ui .flag-river button.is-picked{border-color:#fff;transform:scale(1.12)}.final-ui .flag-river .fr-name{margin:14px var(--gut-r) 0 var(--gut);min-height:24px;font:500 14px var(--f-mono);color:#e3dafb}.final-ui .flag-river .fr-name b{color:#fff;font-weight:600}.final-ui .flag-river .fr-hint-hover{display:none}@media (hover:hover) and (pointer:fine){.final-ui .flag-river .fr-hint-tap{display:none}.final-ui .flag-river .fr-hint-hover{display:inline}}@media (prefers-reduced-motion:reduce){.final-ui .flag-river .fr-row{overflow-x:auto}.final-ui .flag-river .fr-track{animation:none}}.final-ui .phone-home{--pad:max(20px, env(safe-area-inset-left,0px));padding-bottom:24px}.final-ui .phone-home .ph-pad{padding-inline:var(--pad)}.final-ui .phone-home h2{font:800 34px/1 var(--f-display);letter-spacing:-.04em;text-wrap:balance}.final-ui .phone-home .btn{justify-content:center;width:100%;height:52px;font-size:16.5px}.final-ui .phone-home .ph-hero{min-height:calc(100svh - 56px);padding:40px var(--pad) 28px;background:radial-gradient(120% 60% at 100% 100%, color-mix(in oklab, var(--v) 38%, transparent), transparent 70%), radial-gradient(90% 50% at 0% 100%, color-mix(in oklab, var(--v-deep) 50%, transparent), transparent 70%);flex-direction:column;display:flex}.final-ui .phone-home .ph-title{font:800 clamp(44px, 13vw, 60px) / .9 var(--f-display);letter-spacing:-.05em}.final-ui .phone-home .ph-lede{color:var(--fg);margin-top:22px;font-size:20px;line-height:1.35}.final-ui .phone-home .ph-sub{color:var(--fg-2);margin-top:12px;font-size:16px;line-height:1.55}.final-ui .phone-home .ph-ctas{gap:10px;margin-top:auto;padding-top:32px;display:grid}.final-ui .phone-home .ph-counts{border-top:1px solid #ffffff24;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:28px;padding-top:18px;display:grid}.final-ui .phone-home .ph-counts div{flex-direction:column-reverse;gap:2px;display:flex}.final-ui .phone-home .ph-counts dd{font:800 26px/1 var(--f-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.final-ui .phone-home .ph-counts dt{font:500 12px var(--f-mono);color:var(--fg-2)}.final-ui .phone-home .ph-carousel{padding-block:56px 8px}.final-ui .phone-home .ph-carousel p{color:var(--fg-2);margin-top:12px;font-size:16px;line-height:1.5}.final-ui .phone-home .ph-track{padding-inline:var(--pad);scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);scrollbar-width:none;gap:12px;margin-top:24px;display:flex;overflow-x:auto}.final-ui .phone-home .ph-track::-webkit-scrollbar{display:none}.final-ui .phone-home .ph-slide{width:calc(100% - 2 * var(--pad) - 28px);scroll-snap-align:start;flex:none}.final-ui .phone-home .ph-slide:only-child{width:100%}.final-ui .phone-home .ph-dots{justify-content:center;gap:6px;margin-top:18px;display:flex}.final-ui .phone-home .ph-dots span{background:var(--line-2);border-radius:999px;width:6px;height:6px;transition:width .25s,background .25s}.final-ui .phone-home .ph-dots span.is-on{background:var(--v);width:20px}.final-ui .phone-home .ph-boro{color:#fff;background:linear-gradient(150deg, var(--v-ink) 0%, var(--v-deep) 42%, #6a32f0 78%, #b64dff 100%);--gut:0px;--gut-r:0px;border-radius:24px;margin:56px 12px 0;padding-block:32px 24px;overflow:hidden}.final-ui .phone-home .ph-boro .tag{font:500 13px var(--f-mono);color:#e3dafb}.final-ui .phone-home .ph-boro h2{margin:12px 0 24px;font-size:30px}.final-ui .phone-home .ph-boro .flag-river .fr-name{margin-inline:var(--pad)}.final-ui .phone-home .ph-boro-nums{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;margin:24px 0;display:grid}.final-ui .phone-home .ph-boro-nums div{flex-direction:column;gap:2px;display:flex}.final-ui .phone-home .ph-boro-nums dd{font:800 34px/1 var(--f-display);letter-spacing:-.04em}.final-ui .phone-home .ph-boro-nums dt{font:500 12.5px var(--f-mono);color:#e3dafb}.final-ui .phone-home .ph-free{padding-block:64px 8px}.final-ui .phone-home .ph-free h2{margin-top:14px}.final-ui .phone-home .ph-free p{color:var(--fg-2);margin:18px 0 20px;font-size:16.5px;line-height:1.55}.final-ui .phone-home .ph-zero{letter-spacing:-.06em;color:var(--v-hi);font-size:96px;line-height:.85;display:block}.final-ui .phone-home .ph-end{border-top:1px solid var(--line);gap:10px;margin-top:56px;padding-block:40px;display:grid}.final-ui .phone-home .ph-end h2{margin-bottom:14px}.final-ui .phone-home .ph-pin{inset-inline:0;z-index:40;padding:8px var(--pad);background:color-mix(in oklab, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);opacity:0;pointer-events:none;transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .2s;position:fixed;top:56px;transform:translateY(-110%)}.final-ui .phone-home .ph-pin .btn{height:44px;font-size:15.5px}.final-ui .phone-home .ph-pin.is-on{opacity:1;pointer-events:auto;transform:none}@media (max-width:767px){.final-ui .page-head{gap:16px;padding-block:40px 28px}.final-ui .d-1{font-size:clamp(38px,11vw,46px)}.final-ui .course-block{border-top:0;padding-block:8px 48px}.final-ui .course-block+.course-block{border-top:1px solid var(--line);padding-top:36px}.final-ui .course-block>.btn{justify-content:center;width:100%}}.final-ui .phone-about{--pad:max(20px, env(safe-area-inset-left,0px));padding-bottom:32px}.final-ui .phone-about .pa-marks{padding:14px var(--pad) 0;gap:4px;display:flex}.final-ui .phone-about .pa-marks span{background:var(--line-2);border-radius:999px;flex:1;height:3px;transition:background .3s}.final-ui .phone-about .pa-marks span.is-on{background:var(--v-hi)}.final-ui .phone-about .pa-track{scroll-snap-type:x mandatory;scrollbar-width:none;display:flex;overflow-x:auto}.final-ui .phone-about .pa-track::-webkit-scrollbar{display:none}.final-ui .phone-about .pa-card{scroll-snap-align:start;width:100%;min-height:min(66svh,560px);padding:28px var(--pad);flex-direction:column;flex:none;justify-content:center;gap:18px;display:flex}.final-ui .phone-about .pa-card h1,.final-ui .phone-about .pa-card h2{font:800 40px/.98 var(--f-display);letter-spacing:-.045em;text-wrap:balance}.final-ui .phone-about .pa-card p{color:var(--fg-2);font-size:17.5px;line-height:1.55}.final-ui .phone-about .pa-card code{font-family:var(--f-mono);color:var(--fg)}.final-ui .phone-about .pa-violet{color:#fff;background:linear-gradient(150deg, var(--v-ink) 0%, var(--v-deep) 45%, #6a32f0 80%, #b64dff 100%)}.final-ui .phone-about .pa-violet p{color:#e3dafb}.final-ui .phone-about .pa-joke{letter-spacing:-.06em;font:800 88px/.9 var(--f-display)!important;color:#fff!important}.final-ui .phone-about .pa-commit{font:500 14px/1.7 var(--f-mono)!important}.final-ui .phone-about .pa-commit span{color:var(--fg-3)}.final-ui .phone-about .pa-commit b{color:var(--v-hi)}.final-ui .phone-about .pa-boro{--gut:var(--pad);--gut-r:var(--pad);justify-content:flex-start;padding-top:40px}.final-ui .phone-about .pa-boro .tag{font:500 13px var(--f-mono);color:#e3dafb}.final-ui .phone-about .pa-boro .btn{justify-content:center;margin-top:auto}.final-ui .phone-about .pa-nav{padding:10px var(--pad) 0;font:500 13px var(--f-mono);color:var(--fg-3);justify-content:space-between;align-items:center;display:flex}.final-ui .phone-about .pa-nav button{height:44px;font:600 15px var(--f-text);color:var(--fg);padding:0 4px}.final-ui .phone-about .pa-nav button:disabled{opacity:.3}.final-ui .phone-about .pa-sec{padding-inline:var(--pad);margin-top:48px}.final-ui .phone-about .pa-sec .label{margin-bottom:16px}.final-ui .phone-about .pa-team{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;display:grid}.final-ui .phone-about .pa-team li{flex-direction:column;gap:2px;display:flex}.final-ui .phone-about .pa-team b{font-size:16.5px;font-weight:600}.final-ui .phone-about .pa-team span{color:var(--fg-3);font-size:14px}.final-ui .phone-about .pa-ways{gap:10px;display:grid}.final-ui .phone-about .pa-ways a{border:1px solid var(--line);background:var(--bg-2);border-radius:16px;flex-direction:column;gap:4px;padding:18px;display:flex}.final-ui .phone-about .pa-ways a b{letter-spacing:-.01em;font-size:17px;font-weight:700}.final-ui .phone-about .pa-ways a span{color:var(--v-hi);font-size:15px}}@keyframes demo-in{0%{opacity:0;transform:translateY(8px)}}@keyframes demo-pulse{50%{opacity:.5}}@keyframes fr-drift{to{transform:translate(-50%)}}
