@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/plex-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/plex-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/mono-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/mono-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:600 800;font-display:swap;src:url(/fonts/schibsted-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:600 800;font-display:swap;src:url(/fonts/schibsted-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg:#edeef0;--glow:#fff;--shell:#16181c09;--ring:#16181c13;--ring-2:#16181c21;--core:#fbfbfc;--core-2:#f3f4f6;--ink:#17181b;--ink-2:#474b53;--ink-3:#61666f;--accent:#e76f00;--accent-ink:#ac4c09;--on-accent:#0e1b2c;--accent-wash:#e76f0014;--accent-soft:#fceedf;--cta-icon:#0e1b2c1f;--cta-glow:#e76f008c;--ok:#1d7646;--ok-wash:#1d764614;--err:#b3261e;--err-wash:#b3261e12;--warn:#6f5a00;--warn-wash:#82680017;--info:#3d5570;--info-wash:#3d557014;--dark:#17181b;--dark-fg:#f5f5f6;--hi:#fffffff2;--drop:#16181c47;--shadow:0 1px 1px #16181c08,0 10px 28px -14px #16181c1f,0 40px 80px -40px #16181c29;--shadow-lift:0 2px 2px #16181c05,0 30px 60px -28px #16181c33,0 80px 140px -60px #16181c38;--tk-kw:#8b3b83;--tk-num:#1e5fa3;--tk-str:#2d7449;--tk-ty:#94560f;--tk-fn:#3a4ba3;--paper:var(--bg);--card:var(--core);--wash:var(--core-2);--line:var(--ring-2);--orange:var(--accent-ink);--orange-fill:var(--accent);--orange-wash:var(--accent-soft);--blue:var(--ink-2);--blue-wash:var(--core-2);--bad:var(--err);--bad-wash:var(--err-wash);--btn-bg:var(--accent);--btn-fg:var(--on-accent);--run-fg:var(--on-accent);--code-bg:#16181c;--code-bar:#1e2025;--code-line:#2a2d33;--code-fg:#dce0e6;--tok-kw:#ff9e57;--tok-str:#a8da92;--tok-num:#8fc2f2;--tok-com:#8c9199;--tok-fn:#ffd47e;--tok-ty:#8dd0f7;--f-display:"Schibsted Grotesk","Avenir Next","Segoe UI",system-ui,sans-serif;--f-body:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;--ease:cubic-bezier(.32,.72,0,1);--spring:cubic-bezier(.34,1.36,.64,1);--fs-1:12px;--fs-2:13px;--fs-3:14.5px;--fs-4:16.5px;--fs-5:clamp(18px,.3vw + 16.5px,20px);--fs-6:clamp(22px,1vw + 15px,30px);--fs-7:clamp(28px,1.6vw + 16px,44px);--fs-8:clamp(36px,2.4vw + 19px,58px);--fs-hero:clamp(36px,3.6vw + 20px,80px);--r-field:14px;--r-card:26px;--r-pill:999px;--sh-1:0 0 0 1px var(--ring),inset 0 1px 0 var(--hi),0 4px 12px -8px var(--drop);--sh-2:0 0 0 1px var(--ring),inset 0 1px 0 var(--hi),var(--shadow);--bezel:0 0 0 var(--pad) var(--shell);--glow-cta:0 12px 28px -14px var(--cta-glow);--sh-3:0 0 0 1px var(--ring),inset 0 1px 0 var(--hi),var(--shadow-lift);--sp-0_5:2px;--sp-1:4px;--sp-1_5:6px;--sp-2:8px;--sp-2_5:10px;--sp-3:12px;--sp-3_5:14px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:28px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-14:56px;--sp-16:64px;--sp-20:80px;--sp-24:96px;--sp-32:128px;--sp-section:clamp(64px,8vw,128px);--r:var(--r-card);--pad:6px;--gap:var(--sp-8);--top:88px;--wrap:1240px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b0c0e;--glow:#1b1d22;--shell:#ffffff08;--ring:#ffffff13;--ring-2:#ffffff24;--core:#141518;--core-2:#0f1012;--ink:#ecedef;--ink-2:#a9adb5;--ink-3:#8c9199;--accent:#ff8a1f;--accent-ink:#ffa457;--on-accent:#0e1b2c;--accent-wash:#ff8a1f1c;--accent-soft:#2e1e10;--cta-icon:#0e1b2c24;--cta-glow:#ff8a1f59;--ok:#62cf92;--ok-wash:#62cf921a;--err:#ff8c82;--err-wash:#ff8c8214;--warn:#e2c45c;--warn-wash:#e2c45c1a;--info:#a9bdd6;--info-wash:#a9bdd617;--dark:#ecedef;--dark-fg:#111214;--hi:#ffffff0f;--drop:#0009;--shadow:0 1px 1px #0006,0 24px 48px -24px #000000b3;--shadow-lift:0 2px 2px #0006,0 40px 80px -36px #000c;--tk-kw:#d8a5e4;--tk-num:#9cc6f4;--tk-str:#a2d5af;--tk-ty:#e8c48e;--tk-fn:#b3c0f6;--code-bg:#0f1012;--code-bar:#141518;--code-line:#25272c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0b0c0e;--glow:#1b1d22;--shell:#ffffff08;--ring:#ffffff13;--ring-2:#ffffff24;--core:#141518;--core-2:#0f1012;--ink:#ecedef;--ink-2:#a9adb5;--ink-3:#8c9199;--accent:#ff8a1f;--accent-ink:#ffa457;--on-accent:#0e1b2c;--accent-wash:#ff8a1f1c;--accent-soft:#2e1e10;--cta-icon:#0e1b2c24;--cta-glow:#ff8a1f59;--ok:#62cf92;--ok-wash:#62cf921a;--err:#ff8c82;--err-wash:#ff8c8214;--warn:#e2c45c;--warn-wash:#e2c45c1a;--info:#a9bdd6;--info-wash:#a9bdd617;--dark:#ecedef;--dark-fg:#111214;--hi:#ffffff0f;--drop:#0009;--shadow:0 1px 1px #0006,0 24px 48px -24px #000000b3;--shadow-lift:0 2px 2px #0006,0 40px 80px -36px #000c;--tk-kw:#d8a5e4;--tk-num:#9cc6f4;--tk-str:#a2d5af;--tk-ty:#e8c48e;--tk-fn:#b3c0f6;--code-bg:#0f1012;--code-bar:#141518;--code-line:#25272c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box;font-variant-ligatures:none!important}html{-webkit-text-size-adjust:100%;scroll-padding-top:112px}body{background:var(--bg);color:var(--ink);font:400 var(--fs-4)/1.6 var(--f-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;min-height:100vh;margin:0;display:flex;overflow-x:clip}body:not(.he):not(.player-body):before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(52% 70% at 50% -6%,var(--glow) 0%,transparent 72%),radial-gradient(26% 46% at 88% 2%,var(--accent-wash) 0%,transparent 70%);height:760px;position:absolute;top:0;left:0;right:0}main{flex:1}::selection{background:var(--accent-soft);color:var(--ink)}a{color:var(--ink);-webkit-text-decoration-color:var(--ring-2);text-decoration-color:var(--ring-2);text-underline-offset:4px;transition:text-decoration-color .5s var(--ease),color .5s var(--ease)}a:hover{text-decoration-color:currentColor}img,svg{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--f-display);letter-spacing:-.025em;overflow-wrap:break-word;margin:0 0 .4em;font-weight:640;line-height:1.12}h1{font-size:var(--fs-8);letter-spacing:-.042em;text-wrap:balance;line-height:1.02}h2{font-size:var(--fs-6);letter-spacing:-.034em;text-wrap:balance}h3{font-size:var(--fs-5);letter-spacing:-.022em}h4{font-size:var(--fs-4);letter-spacing:-.015em}p{margin:0 0 1em}code,kbd,pre{font-family:var(--f-mono);font-variant-ligatures:none}code{background:var(--shell);border-radius:var(--r-field);padding:.14em .4em;font-size:.88em}body:not(.he) code{box-shadow:inset 0 0 0 1px var(--ring)}.ic{stroke-width:1.7px;flex:none;width:1.1em;height:1.1em}.wrap{width:100%;max-width:var(--wrap);padding:0 var(--sp-8);margin:0 auto}.wrap.narrow{max-width:920px}.muted,.soft{color:var(--ink-3)}.small{font-size:var(--fs-3)}.mono{font-family:var(--f-mono);font-variant-ligatures:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}main:focus{outline:none}.skip{z-index:60;padding:var(--sp-3) var(--sp-5);border-radius:var(--r-pill);background:var(--accent);color:var(--on-accent);pointer-events:auto;transition:transform .5s var(--ease);font-weight:500;text-decoration:none;position:fixed;top:16px;left:16px;transform:translateY(-180%)}.skip:focus{transform:none}@keyframes rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes rise-soft{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.rise{animation:rise 1.1s var(--ease) both;animation-delay:calc(var(--d,0) * 90ms + 40ms)}.eyebrow{align-items:center;gap:var(--sp-2_5);margin:0 0 var(--sp-6);padding:var(--sp-2) var(--sp-3_5) var(--sp-2) var(--sp-3);border-radius:var(--r-pill);background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);font:500 var(--fs-1)/1.15 var(--f-mono);font-variant-ligatures:none;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);overflow-wrap:anywhere;max-width:100%;display:inline-flex}.eyebrow:before{content:"";border-radius:var(--r-pill);background:var(--accent);flex:none;width:6px;height:6px}.topbar{z-index:40;padding:0 var(--sp-4);pointer-events:none;justify-content:center;display:flex;position:fixed;top:18px;left:0;right:0}.island{z-index:1;pointer-events:auto;align-items:center;gap:var(--sp-1);max-width:100%;padding:var(--sp-1_5);border-radius:var(--r-pill);background:color-mix(in srgb,var(--core) 74%,transparent);-webkit-backdrop-filter:blur(20px)saturate(1.6);backdrop-filter:blur(20px)saturate(1.6);box-shadow:var(--sh-3);display:flex;position:relative}.brand{align-items:center;gap:var(--sp-2_5);padding:var(--sp-0_5) var(--sp-3_5) var(--sp-0_5) var(--sp-0_5);border-radius:var(--r-pill);color:var(--ink);white-space:nowrap;flex:none;text-decoration:none;display:inline-flex}.brand-mark{border-radius:var(--r-pill);background:var(--accent);width:34px;height:34px;color:var(--on-accent);flex:none;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff4d}.brand-mark svg{stroke-width:1.8px;width:17px;height:17px}.brand-name{font:650 var(--fs-4)/1 var(--f-display);letter-spacing:-.015em}.island-links{align-items:center;gap:var(--sp-0_5);padding:0 var(--sp-1_5);box-shadow:inset 1px 0 0 var(--ring),inset -1px 0 0 var(--ring);display:flex}.island-links a{padding:var(--sp-2_5) var(--sp-3_5);border-radius:var(--r-pill);color:var(--ink-2);font:500 var(--fs-3)/1 var(--f-body);white-space:nowrap;transition:color .5s var(--ease),background-color .5s var(--ease),box-shadow .5s var(--ease);text-decoration:none}.island-links a:hover{color:var(--ink);background:var(--shell)}.island-links a[aria-current=page]{color:var(--ink);background:var(--core);box-shadow:var(--sh-1)}.island-tools{align-items:center;gap:var(--sp-2);padding-left:var(--sp-1_5);display:flex}.lang{padding:var(--sp-1);border-radius:var(--r-pill);background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);flex:none;display:inline-flex}.lang a{padding:var(--sp-2_5) var(--sp-2_5);border-radius:var(--r-pill);font:500 var(--fs-1)/1 var(--f-mono);font-variant-ligatures:none;letter-spacing:.06em;color:var(--ink-3);transition:color .5s var(--ease),background-color .5s var(--ease);text-decoration:none}.lang a:hover{color:var(--ink)}.lang a[aria-current=true]{background:var(--core);color:var(--ink);box-shadow:var(--sh-1)}.user-menu{align-items:center;gap:var(--sp-1);display:flex}.user-menu form{margin:0}.avatar{border-radius:var(--r-pill);background:var(--core-2);width:36px;height:36px;color:var(--ink-2);font:500 var(--fs-2)/1 var(--f-mono);letter-spacing:.04em;box-shadow:inset 0 0 0 1px var(--ring),inset 0 1px 0 var(--hi);flex:none;place-items:center;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.round{border-radius:var(--r-pill);width:40px;height:40px;color:var(--ink-2);cursor:pointer;transition:background-color .5s var(--ease),color .5s var(--ease),transform .4s var(--ease);background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.round:hover{background:var(--shell);color:var(--ink)}.round:active{transform:scale(.94)}.round .ic{width:18px;height:18px}.island-avatar{display:none}.burger{border-radius:var(--r-pill);background:var(--shell);width:44px;height:44px;box-shadow:inset 0 0 0 1px var(--ring);color:var(--ink);cursor:pointer;border:0;flex:none;display:none;position:relative}.burger span{border-radius:var(--r-field);height:1.5px;transition:transform .7s var(--ease);background:currentColor;margin-top:-.75px;position:absolute;top:50%;left:14px;right:14px}.burger span:first-child{transform:translateY(-4px)}.burger span:last-child{transform:translateY(4px)}.burger[aria-expanded=true] span:first-child{transform:rotate(45deg)}.burger[aria-expanded=true] span:last-child{transform:rotate(-45deg)}html.nav-lock{overflow:hidden}.menu{z-index:0;pointer-events:auto;visibility:hidden;opacity:0;background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(40px)saturate(1.4);backdrop-filter:blur(40px)saturate(1.4);transition:opacity .6s var(--ease),visibility 0s var(--ease) .6s;position:fixed;inset:0;overflow-y:auto}.menu.is-open{visibility:visible;opacity:1;transition:opacity .6s var(--ease)}.menu-inner{min-height:100%;padding:var(--sp-32) var(--sp-6) var(--sp-16);flex-direction:column;display:flex}.menu-label{font:500 var(--fs-1)/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 var(--sp-5)}.menu-list{margin:0;padding:0;list-style:none}.menu-list li{padding:var(--sp-0_5) 0;overflow:hidden}.menu-list a,.menu-foot{opacity:0;transition:transform .9s var(--ease),opacity .9s var(--ease);transition-delay:calc(var(--i) * 60ms + 80ms);transform:translateY(48px)}.menu-list a{padding:var(--sp-2) 0;font:640 var(--fs-8)/1.08 var(--f-display);letter-spacing:-.035em;color:var(--ink);text-decoration:none;display:block}.menu-list a[aria-current=page]{color:var(--ink-3)}.menu-list a[aria-current=page]:after{content:"";width:10px;height:10px;margin-left:var(--sp-3_5);border-radius:var(--r-pill);background:var(--accent);vertical-align:middle;display:inline-block}.menu-foot{align-items:center;gap:var(--sp-3_5);margin-top:var(--sp-10);flex-wrap:wrap;display:flex}.menu-foot form{margin:0}.menu-user{align-items:center;gap:var(--sp-2_5);color:var(--ink-2);font-size:var(--fs-3);min-width:0;display:inline-flex}.menu.is-open .menu-list a,.menu.is-open .menu-foot{opacity:1;transform:none}.roles{padding:var(--sp-1);border-radius:var(--r-pill);background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);flex:none;display:inline-flex}.roles a{min-height:36px;padding:0 var(--sp-3);border-radius:var(--r-pill);font:500 var(--fs-2)/1 var(--f-body);color:var(--ink-3);white-space:nowrap;transition:color .5s var(--ease),background-color .5s var(--ease);align-items:center;text-decoration:none;display:inline-flex}.roles a:hover{color:var(--ink)}.roles a[aria-current=true]{background:var(--core);color:var(--ink);box-shadow:var(--sh-1)}.acct-trigger{border-radius:var(--r-pill);cursor:pointer;anchor-name:--acct;background:0 0;border:0;flex:none;place-items:center;width:44px;height:44px;padding:0;display:grid}.acct-trigger .avatar{transition:box-shadow .5s var(--ease)}.acct-trigger:hover .avatar,.acct-trigger:focus-visible .avatar{box-shadow:inset 0 0 0 1px var(--ring),0 0 0 2px var(--accent)}.acct{inset:84px auto auto;right:var(--sp-4);width:min(340px,calc(100vw - 2 * var(--sp-3)));max-height:calc(100dvh - 100px);padding:var(--sp-2);border-radius:var(--r-card);background:var(--core);color:var(--ink);box-shadow:var(--sh-3);pointer-events:auto;border:0;margin:0;position:fixed;overflow-y:auto}@supports (position-anchor:--acct){.acct{position-anchor:--acct;top:calc(anchor(bottom) + var(--sp-3));right:anchor(right)}}.acct::backdrop{background:0 0}.acct-head{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3) var(--sp-4);box-shadow:inset 0 -1px 0 var(--ring);margin-bottom:var(--sp-2);display:flex}.acct-who{gap:var(--sp-1);flex-direction:column;min-width:0;display:flex}.acct-name{font:600 var(--fs-3)/1.2 var(--f-body);overflow-wrap:anywhere}.acct-mail{font-size:var(--fs-2);color:var(--ink-3);overflow-wrap:anywhere}.acct-row{justify-content:space-between;align-items:center;gap:var(--sp-2) var(--sp-3);padding:var(--sp-2) var(--sp-3);flex-wrap:wrap;display:flex}.acct-label{font-size:var(--fs-3);color:var(--ink-2)}.acct-row .theme{flex-basis:100%}.acct-row .theme label{padding:0 var(--sp-2);flex:1}.acct-roles{display:none}.acct form{margin:0}.acct-link{align-items:center;gap:var(--sp-3);width:100%;min-height:44px;padding:0 var(--sp-3);border-radius:var(--r-field);color:var(--ink);font:500 var(--fs-3)/1 var(--f-body);text-align:left;cursor:pointer;transition:background-color .5s var(--ease);background:0 0;border:0;text-decoration:none;display:flex}.acct-link:hover{background:var(--shell)}.acct-link .ic{width:18px;height:18px;color:var(--ink-2)}.tabbar,.acct-more{display:none}.acct-group{padding:var(--sp-2) var(--sp-3) var(--sp-1);font-size:var(--fs-2);color:var(--ink-3);display:block}.acct-link[aria-current=page] .ic{color:var(--accent)}.avatar-sm{width:24px;height:24px;font-size:var(--fs-1)}.foot{padding:var(--sp-6) 0 var(--sp-12);color:var(--ink-3);font-size:var(--fs-3)}.foot-top{justify-content:space-between;align-items:center;gap:var(--sp-5) var(--sp-10);padding:var(--sp-8) 0;box-shadow:inset 0 1px 0 var(--ring),inset 0 -1px 0 var(--ring);flex-wrap:wrap;display:flex}.foot-nav{gap:var(--sp-2_5) var(--sp-6);flex-wrap:wrap;display:flex}.foot-nav a{padding-block:var(--sp-1_5);margin-block:calc(-1 * var(--sp-1_5));color:var(--ink-2);text-decoration:none;display:inline-block}.foot-nav a:hover{color:var(--ink)}.foot-bottom{justify-content:space-between;gap:var(--sp-2) var(--sp-7);padding-top:var(--sp-6);flex-wrap:wrap;display:flex}.foot-legal{gap:var(--sp-1_5) var(--sp-5);flex-wrap:wrap;display:flex}.foot-legal a{padding-block:var(--sp-1_5);margin-block:calc(-1 * var(--sp-1_5));color:var(--ink-3);text-decoration:none;display:inline-block}.foot-legal a:hover{color:var(--ink)}.legal{gap:var(--sp-8);display:grid}.legal h2{margin:0 0 var(--sp-2_5);font-size:var(--fs-5)}.legal p{color:var(--ink-2);text-wrap:pretty;max-width:68ch;margin:0;line-height:1.7}.legal a{color:var(--accent-ink)}.legal-updated{font:500 var(--fs-1)/1.4 var(--f-mono);letter-spacing:.06em;color:var(--ink-3)!important}.legal-other{padding-top:var(--sp-6);box-shadow:inset 0 1px 0 var(--ring)}.btn{--h:46px;--ic:34px;justify-content:center;align-items:center;gap:var(--sp-2_5);min-height:var(--h);padding:0 var(--sp-5);border-radius:var(--r-pill);background:var(--core);color:var(--ink);font:500 var(--fs-3)/1.2 var(--f-body);text-align:left;cursor:pointer;box-shadow:var(--sh-1);transition:transform .5s var(--ease),box-shadow .6s var(--ease),background-color .6s var(--ease),color .5s var(--ease);border:0;text-decoration:none;display:inline-flex;position:relative}.btn:hover{box-shadow:0 0 0 1px var(--ring-2),var(--sh-1)}.btn:active{transform:scale(.98)}.btn .ic{width:17px;height:17px}.btn:has(>.btn-ic){justify-content:space-between;gap:var(--sp-3_5);padding:var(--sp-1_5) var(--sp-1_5) var(--sp-1_5) var(--sp-5)}.btn-ic{width:var(--ic);height:var(--ic);border-radius:var(--r-pill);background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);transition:transform .7s var(--spring);flex:none;place-items:center;display:grid}.btn-ic .ic{width:16px;height:16px}.btn:hover .btn-ic{transform:translate(3px,-2px)scale(1.06)}.btn:hover .btn-ic.is-flat{transform:translate(3px)scale(1.06)}.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:inset 0 1px 0 #ffffff47,0 0 0 1px #0e1b2c0f,var(--glow-cta)}.btn-primary:hover{box-shadow:inset 0 1px 0 #ffffff47,0 0 0 1px #0e1b2c0f,var(--glow-cta)}.btn-primary .btn-ic{background:var(--cta-icon);box-shadow:none}.btn-ghost{color:var(--ink-2);box-shadow:none;background:0 0}.btn-ghost:hover{background:var(--shell);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ring)}.btn-sm{--h:38px;--ic:28px;padding:0 var(--sp-4);font-size:var(--fs-3);gap:var(--sp-2)}.btn-sm:has(>.btn-ic){padding:var(--sp-1_5) var(--sp-1_5) var(--sp-1_5) var(--sp-4);gap:var(--sp-2_5)}.btn-sm .ic{width:16px;height:16px}.btn-lg{--h:56px;--ic:44px;padding:0 var(--sp-7);font-size:var(--fs-4)}.btn-lg:has(>.btn-ic){padding:var(--sp-1_5) var(--sp-1_5) var(--sp-1_5) var(--sp-7)}.btn-block{width:100%}.btn[disabled],.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.btn.danger,.btn-ghost.danger{color:var(--err)}.btn-google{justify-content:flex-start;gap:var(--sp-3_5);width:100%}.btn-google svg{flex:none;width:20px;height:20px}.btn-google .btn-ic{margin-left:auto}.page{padding:clamp(var(--sp-32),11vw,var(--sp-32)) 0 clamp(var(--sp-20),8vw,var(--sp-32))}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-6) var(--sp-8);margin:0 0 clamp(var(--sp-10),4.4vw,var(--sp-16));flex-wrap:wrap;display:flex}.page-head>div:first-child{min-width:0;max-width:840px}.page-head h1{margin:0 0 var(--sp-5)}.page-head h1:last-child{margin-bottom:0}.page-head p:not(.eyebrow){color:var(--ink-2);font-size:var(--fs-4);text-wrap:pretty;max-width:60ch;margin:0;line-height:1.6}.page-head .row{gap:var(--sp-2_5)}.lede{color:var(--ink-2);font-size:var(--fs-4);text-wrap:pretty;max-width:60ch;line-height:1.6}.crumbs{align-items:center;gap:var(--sp-1) var(--sp-2);margin:0 0 var(--sp-6);font-size:var(--fs-3);color:var(--ink-3);overflow-wrap:anywhere;flex-wrap:wrap;display:flex}.crumbs a,.back-link{align-items:center;gap:var(--sp-1_5);max-width:100%;padding-block:var(--sp-2_5);margin-block:calc(-1 * var(--sp-2_5));color:var(--ink-2);transition:color .5s var(--ease);font-weight:500;text-decoration:none;display:inline-flex}.crumbs a:first-child:before,.back-link:before{content:"";background:currentColor;flex:none;width:16px;height:16px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E") 50%/contain no-repeat}.crumbs a:hover,.back-link:hover{color:var(--ink)}.back-link{width:fit-content;margin:calc(-1 * var(--sp-2_5)) 0 var(--sp-3);font-size:var(--fs-3);display:flex}.section-title{align-items:center;gap:var(--sp-3);margin:0 0 var(--sp-6);flex-wrap:wrap;display:flex}.section-title h2{margin:0}.card{background:var(--core);border-radius:var(--r-card);min-width:0;padding:clamp(var(--sp-6),2.6vw,var(--sp-8));box-shadow:var(--sh-2),var(--bezel);outline:1px solid var(--ring);outline-offset:var(--pad);position:relative}.card-lift{box-shadow:var(--sh-3),var(--bezel)}.grid{gap:var(--gap);display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.stack{gap:var(--sp-3);flex-direction:column;display:flex}.stack-cards{gap:var(--gap);flex-direction:column;display:flex}.row{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.spacer{flex:1}.chip{align-items:center;gap:var(--sp-1_5);padding:var(--sp-1_5) var(--sp-2_5);border-radius:var(--r-pill);background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);font:500 var(--fs-1)/1.1 var(--f-mono);font-variant-ligatures:none;letter-spacing:.02em;color:var(--ink-2);white-space:nowrap;display:inline-flex}.chip .ic{width:13px;height:13px}.chip-ok{background:var(--ok-wash);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ok) 22%,transparent);color:var(--ok)}.chip-warn{background:var(--warn-wash);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warn) 26%,transparent);color:var(--warn)}.chip-info{background:var(--info-wash);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--info) 24%,transparent);color:var(--info)}.chip-blue{background:var(--core);box-shadow:var(--sh-1);color:var(--ink)}.chip-bad{background:var(--err-wash);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--err) 24%,transparent);color:var(--err)}.file{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-pill);background:var(--core);box-shadow:inset 0 0 0 1px var(--ring);font:500 var(--fs-1)/1 var(--f-mono);font-variant-ligatures:none;color:var(--ink-2);white-space:nowrap;align-items:center;display:inline-flex}.tag-k{font:500 var(--fs-1)/1.2 var(--f-mono);font-variant-ligatures:none;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.flash{border-radius:var(--r-field);padding:var(--sp-3_5) var(--sp-5);margin:0 0 var(--sp-6);background:var(--core);color:var(--ink-2);box-shadow:var(--sh-1);display:block}.flash b{color:var(--ink)}.flash p:last-child{margin-bottom:0}.flash-bad{background:color-mix(in srgb,var(--err) 7%,var(--core));color:var(--err);box-shadow:0 0 0 1px color-mix(in srgb,var(--err) 24%,transparent)}.flash-ok{background:color-mix(in srgb,var(--ok) 7%,var(--core));color:var(--ok);box-shadow:0 0 0 1px color-mix(in srgb,var(--ok) 22%,transparent)}.flash-warn{background:color-mix(in srgb,var(--warn) 8%,var(--core));color:var(--warn);box-shadow:0 0 0 1px color-mix(in srgb,var(--warn) 26%,transparent)}.flash-bad b,.flash-ok b,.flash-warn b{color:inherit}.meter{border-radius:var(--r-pill);background:var(--shell);height:6px;box-shadow:inset 0 0 0 1px var(--ring);overflow:hidden}.meter span{border-radius:inherit;background:var(--accent);min-width:0;height:100%;display:block}.meter.ok span{background:var(--ok)}.meter-row{gap:var(--sp-2) var(--sp-2_5);font-size:var(--fs-3);color:var(--ink-3);grid-template-columns:1fr auto;align-items:center;display:grid}.meter-row .meter{grid-column:1/-1}.meter-row .mono{color:var(--ink);font-weight:500}.lesson-grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));display:grid}.lesson-card{gap:var(--sp-3);background:var(--core);border-radius:var(--r-card);min-width:0;padding:var(--sp-7);box-shadow:var(--sh-2),var(--bezel);outline:1px solid var(--ring);outline-offset:var(--pad);flex-direction:column;display:flex;position:relative}.lesson-card h3{font-size:var(--fs-6);letter-spacing:-.03em;padding-right:var(--sp-20);margin:0}.lesson-card p{color:var(--ink-2);font-size:var(--fs-3);margin:0}.lesson-card .links{gap:var(--sp-2);padding-top:var(--sp-2);flex-wrap:wrap;margin-top:auto;display:flex}.lesson-card .state{position:absolute;top:22px;right:22px}.table-wrap{background:var(--core);border-radius:var(--r-card);box-shadow:var(--sh-2),var(--bezel);outline:1px solid var(--ring);outline-offset:var(--pad);scrollbar-width:thin;position:relative;overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:var(--fs-3)}table.data th{font:500 var(--fs-2)/1.3 var(--f-body);color:var(--ink-3);text-align:left;padding:var(--sp-4) var(--sp-4) var(--sp-3_5);background:var(--core-2);box-shadow:inset 0 -1px 0 var(--ring);white-space:nowrap}table.data td{padding:var(--sp-3_5) var(--sp-4);box-shadow:inset 0 -1px 0 var(--ring);vertical-align:middle}table.data tr:last-child td{box-shadow:none}table.data tbody tr{transition:background-color .4s var(--ease)}table.data tbody tr:hover{background:color-mix(in srgb,var(--core-2) 60%,transparent)}table.data td.num{font:400 var(--fs-3)/1.4 var(--f-mono);font-variant-ligatures:none;white-space:nowrap}table.data th:first-child,table.data td:first-child{padding-left:var(--sp-6)}table.data th:last-child,table.data td:last-child{padding-right:var(--sp-6)}.person{align-items:center;gap:var(--sp-3);min-width:200px;display:flex}.person b{font-weight:600;display:block}.person small{color:var(--ink-3);font-size:var(--fs-2);display:block}.form{gap:var(--sp-5);flex-direction:column;display:flex}.field{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.field>label,.field>legend{font-weight:600;font-size:var(--fs-3);color:var(--ink)}.field .hint,.hint{font-size:var(--fs-2);color:var(--ink-3)}.field-error{font-size:var(--fs-2);color:var(--err);margin:0;font-weight:500}.field [aria-invalid=true]:not(:focus),fieldset[aria-invalid=true] textarea:not(:focus){box-shadow:0 0 0 1.5px var(--err),0 0 0 5px var(--err-wash)}.error-summary:focus{outline:2px solid var(--err);outline-offset:3px}.error-summary a{padding-block:var(--sp-1);margin-block:calc(-1 * var(--sp-1));color:inherit;text-decoration-color:currentColor;display:inline-block}.file-picker{align-items:center;gap:var(--sp-2_5) var(--sp-3_5);flex-wrap:wrap;display:flex}.file-picker .file-name{font-size:var(--fs-3);color:var(--ink-2);overflow-wrap:anywhere;min-width:0}.file-picker input:focus-visible+label{outline:2px solid var(--accent);outline-offset:3px}.file-picker input[aria-invalid=true]+label{box-shadow:0 0 0 1.5px var(--err)}fieldset.field{border:0;min-width:0;margin:0;padding:0}fieldset.field>legend{margin-bottom:var(--sp-2);padding:0}input[type=text],input[type=number],input[type=email],input[type=datetime-local],input[type=date],input[type=time],select,textarea{font:inherit;font-size:var(--fs-4);color:var(--ink);background:var(--core);border-radius:var(--r-field);padding:var(--sp-3) var(--sp-4);width:100%;min-height:46px;box-shadow:0 0 0 1px var(--ring-2),inset 0 1px 2px #16181c0a;transition:box-shadow .45s var(--ease);border:0}input[type=text]:hover,input[type=number]:hover,input[type=email]:hover,input[type=datetime-local]:hover,input[type=date]:hover,input[type=time]:hover,select:hover,textarea:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 26%,transparent),inset 0 1px 2px #16181c0a}textarea{resize:vertical;min-height:120px;line-height:1.55}select{appearance:none;padding-right:var(--sp-10);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2380858E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:16px}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 2px var(--accent),0 0 0 6px var(--accent-wash);outline:none}input[type=checkbox],input[type=radio]{accent-color:var(--accent);flex:none;width:18px;height:18px;margin:0}input[type=file]{font:inherit;font-size:var(--fs-3);color:var(--ink-2);max-width:100%}input[type=file]::file-selector-button{margin-right:var(--sp-3_5);padding:var(--sp-2_5) var(--sp-4);border-radius:var(--r-pill);background:var(--core);color:var(--ink);font:500 var(--fs-3)/1 var(--f-body);cursor:pointer;box-shadow:0 0 0 1px var(--ring-2),inset 0 1px 0 var(--hi);border:0}.code-input{font-variant-ligatures:none;letter-spacing:.32em;text-transform:uppercase;text-align:center;font:500 var(--fs-6)/1 var(--f-mono)!important;min-height:64px!important;padding-left:calc(15px + .32em)!important}.code-input::placeholder{color:color-mix(in srgb,var(--ink-3) 55%,transparent)}.inline-form{gap:var(--sp-2);align-items:center;margin:0;display:flex}.inline-form select{min-height:38px;padding:var(--sp-1_5) var(--sp-10) var(--sp-1_5) var(--sp-3_5);font-size:var(--fs-3);border-radius:var(--r-pill);background-position:right 12px center;width:auto}.check{gap:var(--sp-2_5);font-size:var(--fs-3);cursor:pointer;padding:var(--sp-1_5) 0;align-items:center;display:flex}.divider{align-items:center;gap:var(--sp-3_5);color:var(--ink-3);font:500 var(--fs-1)/1.2 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;margin:var(--sp-2) 0;display:flex}.divider:before,.divider:after{content:"";background:var(--ring-2);flex:1;height:1px}.auth{gap:clamp(var(--sp-10),6vw,var(--sp-24));grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;min-height:calc(100vh - 360px);display:grid}.auth h1{font-size:var(--fs-8);margin:0 0 var(--sp-6)}.auth .lede{margin:0}.auth-points{margin:var(--sp-8) 0 0;gap:var(--sp-3);color:var(--ink-2);font-size:var(--fs-4);padding:0;list-style:none;display:grid}.auth-points li{align-items:center;gap:var(--sp-3);display:flex}.auth-points .orb{width:34px;height:34px}.auth-card{gap:var(--sp-4);padding:clamp(var(--sp-7),3vw,var(--sp-10));flex-direction:column;display:flex}.auth-card h2{font-size:var(--fs-5);margin:0}.auth-card .flash{margin:0}.auth-error{justify-content:space-between;align-items:center;gap:var(--sp-3) var(--sp-4);flex-wrap:wrap;display:flex}.auth-error p{flex:220px;margin:0}.auth-error .btn{flex:none}.auth-card form{margin:0}.dev-list{gap:var(--sp-2_5);display:grid}.dev-list .btn{justify-content:space-between;width:100%}.orb{border-radius:var(--r-pill);width:48px;height:48px;color:var(--ink);background:var(--core-2);box-shadow:inset 0 0 0 1px var(--ring),inset 0 1px 0 var(--hi);flex:none;place-items:center;display:grid}.orb .ic{width:18px;height:18px}.slots{gap:var(--sp-1_5);justify-content:center;display:flex}.slots i{border-radius:var(--r-field);background:var(--core-2);width:26px;height:34px;box-shadow:inset 0 0 0 1px var(--ring);position:relative}.slots i:first-child{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent),0 0 0 4px var(--accent-wash)}.slots i:first-child:after{content:"";background:var(--accent);width:1.5px;margin-left:-.75px;animation:1.1s step-end infinite blink;position:absolute;top:9px;bottom:9px;left:50%}@keyframes blink{50%{opacity:0}}.tabs{gap:var(--sp-1);width:max-content;max-width:100%;margin:0 0 clamp(var(--sp-8),4vw,var(--sp-12));padding:var(--sp-1);border-radius:var(--r-card);background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:var(--sp-2_5) var(--sp-4);border-radius:var(--r-field);color:var(--ink-2);font:500 var(--fs-3)/1.1 var(--f-body);white-space:nowrap;transition:background-color .5s var(--ease),color .5s var(--ease),box-shadow .5s var(--ease);text-decoration:none}.tabs a:hover{color:var(--ink)}.tabs a[aria-current=page]{background:var(--core);color:var(--ink);box-shadow:var(--sh-1)}.code-tag{padding:var(--sp-2_5) var(--sp-3_5);border-radius:var(--r-field);background:var(--core-2);box-shadow:inset 0 0 0 1px var(--ring);font:500 var(--fs-5)/1 var(--f-mono);font-variant-ligatures:none;letter-spacing:.2em;color:var(--ink);align-items:center;display:inline-flex}.empty{text-align:center;align-items:center;gap:var(--sp-3_5);padding:clamp(var(--sp-10),5vw,var(--sp-16)) var(--sp-6);color:var(--ink-2);flex-direction:column;display:flex}.empty>.ic,.empty .orb{margin:0 auto}.empty>.ic{width:48px;height:48px;padding:var(--sp-3_5);border-radius:var(--r-pill);background:var(--core-2);box-shadow:inset 0 0 0 1px var(--ring);color:var(--ink-3)}.empty p{max-width:44ch;margin:0}.cohort{gap:var(--sp-5);flex-direction:column;display:flex}.cohort-code{align-items:center;gap:var(--sp-2_5) var(--sp-3_5);padding:var(--sp-3_5) var(--sp-4);border-radius:var(--r-field);background:var(--core-2);flex-wrap:wrap;display:flex}.cohort-code .code-tag{background:var(--core);box-shadow:var(--sh-1)}.cohort-code form{margin-left:auto}.cohort-courses summary{align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--fs-3);color:var(--ink-2);padding:var(--sp-1) 0;font-weight:500;list-style:none;display:inline-flex}.cohort-courses summary::-webkit-details-marker{display:none}.cohort-courses summary:before{content:"+";border-radius:var(--r-pill);background:var(--shell);width:22px;height:22px;box-shadow:inset 0 0 0 1px var(--ring);font:400 var(--fs-3)/1 var(--f-mono);place-items:center;display:grid}.cohort-courses[open] summary:before{content:"−"}.cohort-courses form{margin-top:var(--sp-3);align-items:flex-start}.lessons-card{gap:var(--sp-5);flex-direction:column;display:flex}.lessons-title{font-size:var(--fs-6);letter-spacing:-.032em;margin:0}.lesson-tools{justify-content:space-between;align-items:center;gap:var(--sp-3_5) var(--sp-6);padding:var(--sp-3_5) var(--sp-4);border-radius:var(--r-field);background:var(--core-2);flex-wrap:wrap;display:flex}.lesson-bulk{align-items:center;gap:var(--sp-2_5) var(--sp-3);flex-wrap:wrap;margin:0;display:flex}.lesson-bulk label{font-weight:600;font-size:var(--fs-3);color:var(--ink)}.lesson-bulk select{width:auto;min-height:38px;padding:var(--sp-1_5) var(--sp-10) var(--sp-1_5) var(--sp-3_5);font-size:var(--fs-3);border-radius:var(--r-pill);background-position:right 12px center}.lesson-rows{gap:var(--sp-2_5);margin:0;padding:0;list-style:none;display:grid}.lesson-row{align-items:center;gap:var(--sp-2_5) var(--sp-4);padding:var(--sp-3_5) var(--sp-4);border-radius:var(--r-field);background:var(--core);box-shadow:var(--sh-1);grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.lesson-num{min-width:34px;height:34px;padding:0 var(--sp-2);border-radius:var(--r-pill);background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);font:500 var(--fs-2)/1 var(--f-mono);color:var(--ink-2);place-items:center;display:grid}.lesson-main{gap:var(--sp-0_5);flex-direction:column;min-width:0;display:flex}.lesson-main h3{font-size:var(--fs-4);letter-spacing:-.01em;overflow-wrap:anywhere;margin:0}.lesson-state{align-items:center;gap:var(--sp-1_5) var(--sp-2_5);flex-wrap:wrap;display:flex}.lesson-state .chip{white-space:normal}.lesson-when{color:var(--ink-2);font-family:var(--f-mono);font-variant-ligatures:none}.lesson-actions{justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap;display:flex}.lesson-schedule{align-items:flex-end;gap:var(--sp-3) var(--sp-3_5);padding-top:var(--sp-3);border-top:1px solid var(--ring);flex-wrap:wrap;grid-column:1/-1;display:flex}.lesson-schedule .field{flex:0 180px}.lesson-schedule-actions{gap:var(--sp-2);display:flex}.lesson-schedule .lesson-past{padding:var(--sp-2_5) var(--sp-3_5);border-radius:var(--r-field);flex:100%;margin:0}.filters{align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap;min-width:0;max-width:100%;margin:0;display:flex}.filters .field{gap:var(--sp-1_5);max-width:100%}.filters label{font:500 var(--fs-2)/1.2 var(--f-body);color:var(--ink-3)}.filters select{text-overflow:ellipsis;border-radius:var(--r-pill);width:auto;min-width:min(180px,100%);max-width:100%;min-height:42px;padding:var(--sp-2) var(--sp-10) var(--sp-2) var(--sp-4);font-size:var(--fs-3)}.error-card{max-width:880px;margin:clamp(var(--sp-2),3vw,var(--sp-10)) auto 0;text-align:center;padding:clamp(var(--sp-10),6vw,var(--sp-24)) clamp(var(--sp-6),5vw,var(--sp-20));background:radial-gradient(60% 90% at 50% 0%,var(--accent-wash),transparent 70%),var(--core);flex-direction:column;align-items:center;display:flex;overflow:hidden}.error-code{margin:0 0 var(--sp-8);font:640 calc(var(--fs-hero) * 2.8)/.8 var(--f-display);letter-spacing:-.06em;color:#0000;background:linear-gradient(180deg,color-mix(in srgb,var(--ink) 30%,transparent) 0%,color-mix(in srgb,var(--ink) 3%,transparent) 100%);-webkit-user-select:none;user-select:none;-webkit-background-clip:text;background-clip:text;padding-bottom:.06em}.error-card h1{margin:0 0 var(--sp-5)}.error-card .lede{margin:0 0 var(--sp-8)}.error-actions{justify-content:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}@media (max-width:960px){.topbar{padding:0 var(--sp-3);top:12px}.island{justify-content:space-between;width:100%}.island-links,.island-tools{display:none}.island-avatar{margin-left:auto;margin-right:var(--sp-1_5);display:grid}.burger{display:block}.topbar:has(.is-user){justify-content:flex-start}.island.is-user{width:auto}.island.is-user .burger,html:not(.js) .island.is-user .island-tools{display:none}.acct{inset:auto var(--sp-3) calc(var(--sp-20) + env(safe-area-inset-bottom)) var(--sp-3);width:auto}.acct-roles{display:flex}.acct-more{margin-bottom:var(--sp-2);padding-bottom:var(--sp-2);box-shadow:inset 0 -1px 0 var(--ring);display:block}.tabbar{z-index:2;padding:var(--sp-1) var(--sp-2) calc(var(--sp-1) + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--core) 88%,transparent);-webkit-backdrop-filter:blur(20px)saturate(1.6);backdrop-filter:blur(20px)saturate(1.6);box-shadow:inset 0 1px 0 var(--ring);pointer-events:auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a,.tabbar button{justify-content:center;align-items:center;gap:var(--sp-1);min-width:0;min-height:56px;padding:var(--sp-1);border-radius:var(--r-field);color:var(--ink-3);font:500 var(--fs-1)/1.1 var(--f-body);text-align:center;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1 1 0;text-decoration:none;display:flex}.tabbar span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tabbar .ic{width:22px;height:22px}.tabbar a[aria-current=page]{color:var(--ink)}.tabbar a[aria-current=page] .ic{color:var(--accent)}body:has(.tabbar){padding-bottom:calc(var(--sp-20) + env(safe-area-inset-bottom))}html:not(.js) .burger{display:none}html:not(.js) .island-tools{margin-left:auto;display:flex}html:not(.js) .island-tools .theme,html:not(.js) .island-avatar{display:none}.grid-2{grid-template-columns:1fr}.lesson-row{grid-template-columns:auto minmax(0,1fr)}.lesson-state,.lesson-actions{grid-column:2}.lesson-actions{justify-content:flex-start}.auth{gap:var(--sp-12);grid-template-columns:1fr;min-height:0}}@media (max-width:767px){:root{--r-card:21px;--pad:5px;--gap:var(--sp-7);--top:80px;--fs-4:16px;--sp-section:clamp(40px,10vw,64px)}body{font-size:var(--fs-4)}.wrap{padding:0 var(--sp-5)}.page{padding:var(--sp-24) 0 var(--sp-20)}.page-head{margin-bottom:var(--sp-10)}.lesson-card{padding:var(--sp-6)}.lesson-card .state{top:18px;right:18px}table.data th:first-child,table.data td:first-child{padding-left:var(--sp-5)}.foot-bottom{flex-direction:column}.tabs a{padding:var(--sp-2_5) var(--sp-3);font-size:var(--fs-2)}}@media (max-width:420px){.brand-name{font-size:var(--fs-3)}html:not(.js) .brand-name{display:none}.slots i{width:22px;height:30px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.topbar,.foot-nav{display:none}.page{padding-top:var(--sp-6)}.card,.table-wrap,.lesson-card{box-shadow:none;outline-offset:0;outline:1px solid #ccc}}.meter.meter-thin{width:100%;height:3px;box-shadow:none;margin-top:1px;display:block}.theme{padding:var(--sp-1);border-radius:var(--r-pill);background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);flex:none;max-width:100%;display:inline-flex}.theme label{justify-content:center;align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-3_5);border-radius:var(--r-pill);font:500 var(--fs-3)/1 var(--f-body);color:var(--ink-3);cursor:pointer;transition:color .5s var(--ease),background-color .5s var(--ease);display:inline-flex;position:relative}.theme label:hover{color:var(--ink)}.theme label.is-on{background:var(--core);color:var(--ink);box-shadow:var(--sh-1)}.theme input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.theme label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.theme .ic{flex:none;width:16px;height:16px}.theme-card{justify-content:space-between;align-items:center;gap:var(--sp-4) var(--sp-6);margin-top:var(--gap);flex-wrap:wrap;display:flex}.theme-card h2{font-size:var(--fs-5);margin:0}.theme-card p{margin:var(--sp-1) 0 0;color:var(--ink-3);font-size:var(--fs-3)}.menu-foot .theme{flex-basis:100%;justify-content:space-between}.menu-foot .theme label{padding:0 var(--sp-2);flex:1}@media (max-width:420px){.theme label{gap:var(--sp-1_5);padding:0 var(--sp-2);font-size:var(--fs-2)}}.theme-compact label{min-height:0;padding:var(--sp-2) var(--sp-2_5)}.theme-compact label span{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.devices{align-items:flex-start;gap:var(--gap);flex-direction:column;display:flex}.device-list{gap:calc(var(--gap) * .6);flex-direction:column;width:100%;margin:0;padding:0;list-style:none;display:flex}.device-row{align-items:center;gap:var(--sp-4) var(--sp-5);flex-wrap:wrap;display:flex}.device-main{gap:var(--sp-1_5);flex-direction:column;flex:220px;min-width:0;display:flex}.device-name{align-items:center;gap:var(--sp-1_5) var(--sp-2_5);color:var(--ink);overflow-wrap:anywhere;flex-wrap:wrap;margin:0;font-weight:600;display:flex}.device-meta{gap:var(--sp-0_5) var(--sp-5);flex-wrap:wrap;margin:0;display:flex}.device-meta div{gap:var(--sp-1_5);display:flex}.device-meta dt,.device-meta dd{margin:0}.device-meta dd{color:var(--ink-2);font-variant-numeric:tabular-nums}.device-row .btn{margin-left:auto}html.drawer-lock{overflow:hidden}dialog.drawer{width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}dialog.drawer[open]{justify-content:flex-end;display:flex}dialog.drawer::backdrop{background:color-mix(in srgb,var(--dark) 42%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.drawer-panel{background:var(--core);width:min(460px,100%);height:100%;box-shadow:var(--sh-3);animation:drawer-in .45s var(--ease);flex-direction:column;display:flex}.drawer-head{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-6) var(--sp-6) var(--sp-4);box-shadow:inset 0 -1px 0 var(--ring);display:flex}.drawer-head h2{font-size:var(--fs-5);letter-spacing:-.03em;margin:0}.drawer-close{border-radius:var(--r-pill);background:var(--shell);width:44px;height:44px;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--ring);cursor:pointer;border:0;flex:none;place-items:center;display:grid}.drawer-close:hover{color:var(--ink);box-shadow:inset 0 0 0 1px var(--ring-2)}.drawer-body{overscroll-behavior:contain;min-height:0;padding:var(--sp-5) var(--sp-6) var(--sp-7);gap:var(--sp-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.checkout-lede{color:var(--ink-2);margin:0}.checkout-form{gap:var(--sp-4);flex-direction:column;display:flex}.checkout-form .btn{width:100%}.checkout-code{font:500 var(--fs-4)/1 var(--f-mono);font-variant-ligatures:none;letter-spacing:.08em}.checkout-ask{align-items:center;gap:var(--sp-2) var(--sp-3);padding-top:var(--sp-5);box-shadow:inset 0 1px 0 var(--ring);color:var(--ink-2);flex-wrap:wrap;display:flex}.checkout-ask p[role=status]{align-items:flex-start;gap:var(--sp-2);color:var(--ink);flex-basis:100%;margin:0;display:flex}.checkout-ask p[role=status] svg{margin-top:var(--sp-0_5);color:var(--ok);flex:none}.checkout-ask .flash{flex-basis:100%;margin:0}.checkout-ask .btn.btn-sm{width:auto}@media (min-width:768px){dialog.drawer.drawer-sheet[open]{justify-content:center;align-items:center}.drawer-sheet .drawer-panel{width:min(440px,calc(100% - 2 * var(--sp-6)));border-radius:var(--r-card);height:auto;max-height:88dvh;animation-name:sheet-in}}@keyframes drawer-in{0%{opacity:0;transform:translate(32px)}}@keyframes sheet-in{0%{opacity:0;transform:translateY(32px)}}@media (max-width:767px){.drawer-panel{border-radius:var(--r-card) var(--r-card) 0 0;align-self:flex-end;width:100%;height:auto;max-height:88dvh;animation-name:sheet-in}dialog.drawer[open]{align-items:flex-end}.drawer-body{padding:var(--sp-5) var(--sp-5) var(--sp-7)}}@media (prefers-reduced-motion:reduce){.drawer-panel{animation:none}}.seg-nav{gap:var(--sp-1);padding:var(--sp-1);border-radius:var(--r-pill);background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);flex-wrap:wrap;max-width:100%;display:inline-flex}.seg-nav a{min-height:40px;padding:0 var(--sp-4);border-radius:var(--r-pill);color:var(--ink-3);font:500 var(--fs-3)/1.1 var(--f-body);white-space:nowrap;transition:color .4s var(--ease),background-color .4s var(--ease),box-shadow .4s var(--ease);align-items:center;text-decoration:none;display:inline-flex}.seg-nav a:hover{color:var(--ink)}.seg-nav a[aria-current=page]{background:var(--core);color:var(--ink);box-shadow:var(--sh-1),inset 0 -2px 0 var(--accent)}.hw-num{font:500 var(--fs-2)/1 var(--f-mono);font-variant-ligatures:none;letter-spacing:.04em;color:var(--accent-ink)}h1 .hw-num{vertical-align:middle;font-size:.5em}.hw-label{font:500 var(--fs-1)/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0}.hw-meta{font:500 var(--fs-1)/1.4 var(--f-mono);font-variant-ligatures:none;color:var(--ink-3)}.hw-muted{color:var(--ink-2);font-size:var(--fs-2);margin:0}.hw-filter{gap:var(--sp-2);margin:0 0 var(--sp-5);padding:var(--sp-0_5) var(--sp-0_5) var(--sp-2);scrollbar-width:thin;display:flex;overflow-x:auto}.hw-filter a{align-items:center;gap:var(--sp-2);min-height:40px;padding:0 var(--sp-2) 0 var(--sp-4);border-radius:var(--r-pill);background:var(--core);color:var(--ink-2);font:500 var(--fs-2)/1.1 var(--f-body);box-shadow:var(--sh-1);transition:background-color .4s var(--ease),color .4s var(--ease);flex:none;text-decoration:none;display:inline-flex}.hw-filter a:only-child{padding-right:var(--sp-4)}.hw-filter a:not(:has(.n)){padding-right:var(--sp-4)}.hw-filter a:hover{color:var(--ink)}.hw-filter .n{min-width:26px;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-pill);text-align:center;background:var(--shell);color:var(--ink-2);font:500 var(--fs-1)/1.3 var(--f-mono)}.hw-filter a[aria-current=page]{background:var(--dark);color:var(--dark-fg);box-shadow:none}.hw-filter a[aria-current=page] .n{background:color-mix(in srgb,var(--dark-fg) 16%,transparent);color:var(--dark-fg)}.hw-lessons,.hw-roster{padding:var(--sp-1_5);flex-direction:column;margin:0;list-style:none;display:flex}.hw-lessons li+li,.hw-roster li+li{box-shadow:0 -1px 0 var(--ring)}.hw-lesson,.hw-row{align-items:center;gap:var(--sp-3) var(--sp-4);padding:var(--sp-3_5) var(--sp-4);border-radius:var(--r-field);color:var(--ink);transition:background-color .4s var(--ease);text-decoration:none;display:flex}a.hw-lesson:hover,a.hw-row:hover{background:var(--core-2)}.hw-lesson .hw-num{flex:none;width:2.4em}.hw-lesson-main{gap:var(--sp-1_5);flex-direction:column;flex:1;min-width:0;display:flex}.hw-lesson-title{overflow-wrap:anywhere;font-weight:500}.hw-lesson-sub{font-size:var(--fs-2);color:var(--ink-2)}.hw-meter{border-radius:var(--r-pill);background:var(--shell);width:min(240px,100%);height:4px;display:block;overflow:hidden}.hw-meter>span{border-radius:inherit;background:var(--accent);height:100%;display:block}.hw-counts{justify-content:flex-end;gap:var(--sp-1_5);flex-wrap:wrap;display:flex}.hw-go{color:var(--ink-3);flex:none;place-items:center;display:grid}.hw-go .ic{width:16px;height:16px}.hw-who{gap:var(--sp-1);flex-direction:column;flex:1;min-width:0;display:flex}.hw-name{overflow-wrap:anywhere;font-weight:500}.hw-row.is-none{color:var(--ink-2)}.hw-row.is-none .avatar{opacity:.6}.hw-detail{gap:var(--sp-5);grid-template-columns:minmax(0,1fr) minmax(0,360px);align-items:start;display:grid}.hw-paper,.hw-answer,.hw-history{gap:var(--sp-3_5);padding:var(--sp-5);flex-direction:column;display:flex}.hw-paper-head,.hw-answer-head{justify-content:space-between;align-items:center;gap:var(--sp-2) var(--sp-3);flex-wrap:wrap;display:flex}.hw-side{gap:var(--sp-5);flex-direction:column;min-width:0;display:flex}.hw-code{max-height:70vh;padding:var(--sp-4);border-radius:var(--r-field);background:var(--core-2);box-shadow:inset 0 0 0 1px var(--ring);font:400 var(--fs-2)/1.6 var(--f-mono);font-variant-ligatures:none;color:var(--ink);white-space:pre;tab-size:4;margin:0;overflow:auto}.hw-code:focus-visible{outline:2px solid var(--accent);outline-offset:2px}body:not(.he) .hw-code code,.hw-code code{box-shadow:none;font:inherit;color:inherit;background:0 0;border-radius:0;padding:0;display:block}.hw-link{align-items:center;gap:var(--sp-2);flex-wrap:wrap;min-width:0;margin:0;display:flex}.hw-link a{align-items:center;gap:var(--sp-1_5);min-width:0;max-width:100%;min-height:44px;color:var(--accent-ink);font-weight:500;display:inline-flex}.hw-link-text{overflow-wrap:anywhere;min-width:0}.hw-link .ic{flex:none;width:14px;height:14px}.hw-student-note{gap:var(--sp-1_5);padding:var(--sp-3) var(--sp-3_5);border-radius:var(--r-field);background:var(--core-2);flex-direction:column;display:flex}.hw-student-note p:last-child,.hw-comment-text{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);margin:0}.hw-review{gap:var(--sp-3_5);flex-direction:column;display:flex}.hw-review .field{flex-direction:column;display:flex}.hw-review textarea{resize:vertical;width:100%}.hw-review .flash{margin:0}.hw-review-actions{gap:var(--sp-2_5);flex-wrap:wrap;display:flex}.hw-history ol{gap:var(--sp-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.hw-hist-row{justify-content:space-between;align-items:center;gap:var(--sp-3);min-height:44px;padding:0 var(--sp-3);border-radius:var(--r-field);color:var(--ink-2);font:500 var(--fs-2)/1.3 var(--f-mono);font-variant-ligatures:none;text-decoration:none;display:flex}a.hw-hist-row:hover{background:var(--core-2);color:var(--ink)}.hw-hist-row[aria-current=page]{background:var(--core-2);color:var(--ink);box-shadow:inset 2px 0 0 var(--accent)}@media (max-width:767px){.page-head>.seg-nav{width:100%}.page-head>.seg-nav a{flex:auto;justify-content:center}.hw-detail{grid-template-columns:minmax(0,1fr)}.hw-lesson{flex-wrap:wrap;align-items:flex-start}.hw-lesson-main{flex:calc(100% - 5em)}.hw-counts{width:100%;padding-left:calc(2.4em + var(--sp-4));order:3;justify-content:flex-start}.hw-lesson .hw-go{order:2;align-self:center}.hw-row{column-gap:var(--sp-3);row-gap:var(--sp-1_5);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.hw-row>.avatar{grid-row:1/span 2}.hw-row>.hw-who{grid-area:1/2}.hw-row>.chip{grid-area:2/2;justify-self:start}.hw-row>.hw-go{grid-area:1/3/span 2}.hw-paper,.hw-answer,.hw-history{padding:var(--sp-4)}.hw-review-actions .btn{flex:100%;justify-content:center}}.cp-shares{gap:var(--sp-6);display:grid}.cp-share-title{margin:0 0 var(--sp-2);font-size:var(--fs-2);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.cp-share-list{margin:0;padding:0;list-style:none}.cp-share{column-gap:var(--sp-3);row-gap:var(--sp-2);padding:var(--sp-3) 0;box-shadow:inset 0 -1px 0 var(--ring);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;display:grid}.cp-share:last-child{box-shadow:none;padding-bottom:0}.cp-share-n{min-width:var(--sp-7);height:var(--sp-7);border-radius:var(--r-pill);background:var(--accent-wash);color:var(--accent-ink);font:600 var(--fs-2)/1 var(--f-mono);font-variant-ligatures:none;place-items:center;display:inline-grid}.cp-share-q{overflow-wrap:anywhere;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:1.45;display:-webkit-box;overflow:hidden}.cp-share-main{gap:var(--sp-1_5);min-width:0;display:grid}.cp-share-code{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm,var(--sp-2));background:var(--wash);color:var(--ink-2);font:400 var(--fs-1)/1.5 var(--f-mono);font-variant-ligatures:none;white-space:pre-wrap;overflow-wrap:anywhere;max-height:calc(var(--sp-16) + var(--sp-6));margin:0;overflow:hidden}.cp-share-figs{text-align:right;white-space:nowrap;justify-items:end;display:grid}.cp-share-figs b{font:600 var(--fs-4)/1.2 var(--f-mono);font-variant-ligatures:none}.cp-share-figs small{color:var(--ink-3);font-size:var(--fs-1)}.cp-share-bar{height:var(--sp-1_5);border-radius:var(--r-pill);background:var(--ring-2);grid-column:2/-1;position:relative;overflow:hidden}.cp-share-bar i{width:var(--r);border-radius:var(--r-pill);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 55%,var(--core)),var(--accent));position:absolute;inset:0 auto 0 0}.cp-share.is-low .cp-share-bar i{background:var(--warn)}.cp-share.is-low .cp-share-figs b{color:var(--warn)}.cp-share-link{align-items:center;gap:var(--sp-1_5);font-size:var(--fs-2);color:var(--accent-ink);font-weight:600;text-decoration:none;display:inline-flex}.cp-share-link:hover{text-decoration:underline}@media (max-width:520px){.cp-share{grid-template-columns:auto minmax(0,1fr)}.cp-share-figs{text-align:left;justify-items:start;gap:var(--sp-2);grid-column:2;align-items:baseline;display:flex}.cp-share-bar{grid-column:2}}.cp-shares-meta{margin:0 0 var(--sp-4)}.cp-shares-rule{margin:var(--sp-5) 0 0}@media (max-width:767px){.brand{position:relative}.brand:after{content:"";position:absolute;inset:-3px 0}.lang a{justify-content:center;align-items:center;min-width:44px;display:inline-flex;position:relative}.lang a:after{content:"";position:absolute;inset:-6px 0}.theme-compact label{min-width:44px}.theme-compact label:after{content:"";position:absolute;inset:-6px 0}.foot-nav a,.foot-legal a{padding-block:var(--sp-3);margin-block:calc(-1 * var(--sp-3))}}
