@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;--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);--r:26px;--pad:6px;--gap:30px;--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;--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;--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 16.5px/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;margin:0 0 .4em;font-weight:640;line-height:1.12}h1{letter-spacing:-.042em;text-wrap:balance;font-size:clamp(36px,2.4vw + 19px,58px);line-height:1.02}h2{letter-spacing:-.034em;text-wrap:balance;font-size:clamp(25px,1.2vw + 16px,32px)}h3{letter-spacing:-.022em;font-size:20px}h4{letter-spacing:-.015em;font-size:17px}p{margin:0 0 1em}code,kbd,pre{font-family:var(--f-mono);font-variant-ligatures:none}code{background:var(--shell);border-radius:6px;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);margin:0 auto;padding:0 32px}.wrap.narrow{max-width:920px}.muted,.soft{color:var(--ink-3)}.small{font-size:14px}.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;background:var(--accent);color:var(--on-accent);pointer-events:auto;transition:transform .5s var(--ease);border-radius:999px;padding:12px 18px;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{background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);font:500 11px/1.15 var(--f-mono);font-variant-ligatures:none;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);overflow-wrap:anywhere;border-radius:999px;align-items:center;gap:9px;max-width:100%;margin:0 0 22px;padding:8px 13px 8px 11px;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);border-radius:50%;flex:none;width:6px;height:6px}.topbar{z-index:40;pointer-events:none;justify-content:center;padding:0 16px;display:flex;position:fixed;top:18px;left:0;right:0}.island{z-index:1;pointer-events:auto;background:color-mix(in srgb,var(--core) 74%,transparent);-webkit-backdrop-filter:blur(20px)saturate(1.6);backdrop-filter:blur(20px)saturate(1.6);max-width:100%;box-shadow:0 0 0 1px var(--ring),inset 0 1px 0 var(--hi),0 16px 40px -20px var(--drop);border-radius:999px;align-items:center;gap:4px;padding:6px;display:flex;position:relative}.brand{color:var(--ink);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:10px;padding:2px 14px 2px 2px;text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent);width:34px;height:34px;color:var(--on-accent);border-radius:50%;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 15.5px/1 var(--f-display);letter-spacing:-.015em}.island-links{box-shadow:inset 1px 0 0 var(--ring),inset -1px 0 0 var(--ring);align-items:center;gap:2px;padding:0 6px;display:flex}.island-links a{color:var(--ink-2);font:500 14.5px/1 var(--f-body);white-space:nowrap;transition:color .5s var(--ease),background-color .5s var(--ease),box-shadow .5s var(--ease);border-radius:999px;padding:10px 14px;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:0 0 0 1px var(--ring),inset 0 1px 0 var(--hi),0 4px 10px -6px var(--drop)}.island-tools{align-items:center;gap:8px;padding-left:6px;display:flex}.lang{background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);border-radius:999px;flex:none;padding:3px;display:inline-flex}.lang a{font:500 12px/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);border-radius:999px;padding:7px 10px;text-decoration:none}.lang a:hover{color:var(--ink)}.lang a[aria-current=true]{background:var(--core);color:var(--ink);box-shadow:0 0 0 1px var(--ring),0 2px 6px -2px var(--drop)}.user-menu{align-items:center;gap:4px;display:flex}.user-menu form{margin:0}.avatar{background:var(--core-2);width:36px;height:36px;color:var(--ink-2);font:500 12.5px/1 var(--f-mono);letter-spacing:.04em;box-shadow:inset 0 0 0 1px var(--ring),inset 0 1px 0 var(--hi);border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.round{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;border-radius:50%;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{background:var(--shell);width:44px;height:44px;box-shadow:inset 0 0 0 1px var(--ring);color:var(--ink);cursor:pointer;border:0;border-radius:50%;flex:none;display:none;position:relative}.burger span{height:1.5px;transition:transform .7s var(--ease);background:currentColor;border-radius:2px;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{flex-direction:column;min-height:100%;padding:116px 24px 64px;display:flex}.menu-label{font:500 11px/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 18px}.menu-list{margin:0;padding:0;list-style:none}.menu-list li{padding:2px 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{font:640 clamp(32px,8.6vw,52px)/1.08 var(--f-display);letter-spacing:-.035em;color:var(--ink);padding:8px 0;text-decoration:none;display:block}.menu-list a[aria-current=page]{color:var(--ink-3)}.menu-list a[aria-current=page]:after{content:"";background:var(--accent);vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-left:14px;display:inline-block}.menu-foot{flex-wrap:wrap;align-items:center;gap:14px;margin-top:40px;display:flex}.menu-foot form{margin:0}.menu-user{color:var(--ink-2);align-items:center;gap:10px;min-width:0;font-size:15px;display:inline-flex}.menu.is-open .menu-list a,.menu.is-open .menu-foot{opacity:1;transform:none}.foot{color:var(--ink-3);padding:24px 0 48px;font-size:14.5px}.foot-top{box-shadow:inset 0 1px 0 var(--ring),inset 0 -1px 0 var(--ring);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 40px;padding:32px 0;display:flex}.foot-nav{flex-wrap:wrap;gap:10px 24px;display:flex}.foot-nav a{color:var(--ink-2);text-decoration:none}.foot-nav a:hover{color:var(--ink)}.foot-bottom{flex-wrap:wrap;justify-content:space-between;gap:8px 28px;padding-top:22px;display:flex}.foot-legal{flex-wrap:wrap;gap:6px 20px;display:flex}.foot-legal a{color:var(--ink-3);text-decoration:none}.foot-legal a:hover{color:var(--ink)}.legal{gap:30px;display:grid}.legal h2{margin:0 0 10px;font-size:clamp(19px,.5vw + 16px,22px)}.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 12px/1.4 var(--f-mono);letter-spacing:.06em;color:var(--ink-3)!important}.legal-other{box-shadow:inset 0 1px 0 var(--ring);padding-top:22px}.btn{--h:46px;--ic:34px;min-height:var(--h);background:var(--core);color:var(--ink);font:500 15px/1.2 var(--f-body);text-align:left;cursor:pointer;box-shadow:0 0 0 1px var(--ring),inset 0 1px 0 var(--hi),0 8px 20px -14px var(--drop);transition:transform .5s var(--ease),box-shadow .6s var(--ease),background-color .6s var(--ease),color .5s var(--ease);border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 20px;text-decoration:none;display:inline-flex;position:relative}.btn:hover{box-shadow:0 0 0 1px var(--ring-2),inset 0 1px 0 var(--hi),0 12px 26px -14px var(--drop)}.btn:active{transform:scale(.98)}.btn .ic{width:17px;height:17px}.btn:has(>.btn-ic){justify-content:space-between;gap:14px;padding:5px 5px 5px 20px}.btn-ic{width:var(--ic);height:var(--ic);background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);transition:transform .7s var(--spring);border-radius:50%;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,.btn-accent{background:var(--accent);color:var(--on-accent);box-shadow:inset 0 1px 0 #ffffff47,0 0 0 1px #0e1b2c0f,0 12px 28px -14px var(--cta-glow)}.btn-primary:hover,.btn-accent:hover{box-shadow:inset 0 1px 0 #ffffff47,0 0 0 1px #0e1b2c0f,0 16px 34px -14px var(--cta-glow)}.btn-primary .btn-ic,.btn-accent .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;gap:8px;padding:0 15px;font-size:14px}.btn-sm:has(>.btn-ic){gap:10px;padding:5px 5px 5px 15px}.btn-sm .ic{width:16px;height:16px}.btn-lg{--h:56px;--ic:44px;padding:0 26px;font-size:16.5px}.btn-lg:has(>.btn-ic){padding:6px 6px 6px 26px}.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:14px;width:100%}.btn-google svg{flex:none;width:20px;height:20px}.btn-google .btn-ic{margin-left:auto}.page{padding:clamp(124px,11vw,148px) 0 clamp(72px,8vw,112px)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 32px;margin:0 0 clamp(36px,4.4vw,60px);display:flex}.page-head>div:first-child{min-width:0;max-width:840px}.page-head h1{margin:0 0 18px}.page-head h1:last-child{margin-bottom:0}.page-head p:not(.eyebrow){color:var(--ink-2);text-wrap:pretty;max-width:60ch;margin:0;font-size:clamp(16.5px,.5vw + 14px,18.5px);line-height:1.6}.page-head .row{gap:10px}.lede{color:var(--ink-2);text-wrap:pretty;max-width:60ch;font-size:clamp(16.5px,.5vw + 14px,18.5px);line-height:1.6}.crumbs{color:var(--ink-3);overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 22px;font-size:14px;display:flex}.crumbs a{color:var(--ink-2);background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);transition:background-color .5s var(--ease),color .5s var(--ease);border-radius:999px;margin:-6px 0;padding:6px 12px;text-decoration:none}.crumbs a:hover{color:var(--ink);background:var(--core)}.section-title{flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 24px;display:flex}.section-title h2{margin:0}.card{background:var(--core);border-radius:var(--r);min-width:0;box-shadow:inset 0 1px 0 var(--hi),0 0 0 1px var(--ring),0 0 0 var(--pad) var(--shell),var(--shadow);outline:1px solid var(--ring);outline-offset:var(--pad);padding:clamp(22px,2.6vw,34px);position:relative}.card-lift{box-shadow:inset 0 1px 0 var(--hi),0 0 0 1px var(--ring),0 0 0 var(--pad) var(--shell),var(--shadow-lift)}.well{background:var(--core-2);box-shadow:inset 0 0 0 1px var(--ring);border-radius:20px}.grid{gap:var(--gap);display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stack{flex-direction:column;gap:12px;display:flex}.stack-cards{gap:var(--gap);flex-direction:column;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spacer{flex:1}.chip{background:var(--shell);box-shadow:inset 0 0 0 1px var(--ring);font:500 11.5px/1.1 var(--f-mono);font-variant-ligatures:none;letter-spacing:.02em;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;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-orange{background:color-mix(in srgb,var(--accent) 10%,var(--core));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent-ink)}.chip-blue{background:var(--core);box-shadow:0 0 0 1px var(--ring),inset 0 1px 0 var(--hi);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{background:var(--core);box-shadow:inset 0 0 0 1px var(--ring);font:500 12px/1 var(--f-mono);font-variant-ligatures:none;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;padding:7px 12px;display:inline-flex}.tag-k{font:500 10.5px/1.2 var(--f-mono);font-variant-ligatures:none;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.flash{background:var(--core);color:var(--ink-2);box-shadow:0 0 0 1px var(--ring),inset 0 1px 0 var(--hi);border-radius:18px;margin:0 0 24px;padding:14px 18px;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(--accent) 9%,var(--core));color:var(--accent-ink);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 26%,transparent)}.flash-bad b,.flash-ok b,.flash-warn b{color:inherit}.meter{background:var(--shell);height:6px;box-shadow:inset 0 0 0 1px var(--ring);border-radius:999px;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{color:var(--ink-3);grid-template-columns:1fr auto;align-items:center;gap:8px 10px;font-size:14px;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{background:var(--core);border-radius:var(--r);min-width:0;box-shadow:inset 0 1px 0 var(--hi),0 0 0 1px var(--ring),0 0 0 var(--pad) var(--shell),var(--shadow);outline:1px solid var(--ring);outline-offset:var(--pad);flex-direction:column;gap:12px;padding:26px;display:flex;position:relative}.lesson-card .num{font:500 10.5px/1.2 var(--f-mono);font-variant-ligatures:none;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink)}.lesson-card h3{letter-spacing:-.03em;margin:0;padding-right:84px;font-size:clamp(21px,.8vw + 14px,25px)}.lesson-card p{color:var(--ink-2);margin:0;font-size:15px}.lesson-card .links{flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:8px;display:flex}.lesson-card .state{position:absolute;top:22px;right:22px}.table-wrap{background:var(--core);border-radius:var(--r);box-shadow:inset 0 1px 0 var(--hi),0 0 0 1px var(--ring),0 0 0 var(--pad) var(--shell),var(--shadow);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:14.5px}table.data th{font:500 10.5px/1.3 var(--f-mono);font-variant-ligatures:none;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);text-align:left;background:var(--core-2);box-shadow:inset 0 -1px 0 var(--ring);white-space:nowrap;padding:16px 16px 14px}table.data td{box-shadow:inset 0 -1px 0 var(--ring);vertical-align:middle;padding:14px 16px}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 14px/1.4 var(--f-mono);font-variant-ligatures:none;white-space:nowrap}table.data th:first-child,table.data td:first-child{padding-left:22px}table.data th:last-child,table.data td:last-child{padding-right:22px}.person{align-items:center;gap:12px;min-width:200px;display:flex}.person b{font-weight:600;display:block}.person small{color:var(--ink-3);font-size:12.5px;display:block}.cell-progress{min-width:92px;font:400 12px/1.25 var(--f-mono);font-variant-ligatures:none;color:var(--ink-3);flex-direction:column;gap:3px;display:flex}.cell-progress .done{color:var(--ok)}.form{flex-direction:column;gap:20px;display:flex}.field{flex-direction:column;gap:8px;min-width:0;display:flex}.field>label,.field>legend{color:var(--ink);font-size:14.5px;font-weight:600}.field .hint,.hint{color:var(--ink-3);font-size:13.5px}fieldset.field{border:0;min-width:0;margin:0;padding:0}fieldset.field>legend{margin-bottom:8px;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;color:var(--ink);background:var(--core);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;border-radius:14px;padding:11px 15px;font-size:15.5px}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;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;padding-right:40px}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;color:var(--ink-2);max-width:100%;font-size:14.5px}input[type=file]::file-selector-button{background:var(--core);color:var(--ink);font:500 14px/1 var(--f-body);cursor:pointer;box-shadow:0 0 0 1px var(--ring-2),inset 0 1px 0 var(--hi);border:0;border-radius:999px;margin-right:14px;padding:10px 16px}.code-input{font-variant-ligatures:none;letter-spacing:.32em;text-transform:uppercase;text-align:center;font:500 24px/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{align-items:center;gap:8px;margin:0;display:flex}.inline-form select{background-position:right 12px center;border-radius:999px;width:auto;min-height:38px;padding:6px 36px 6px 14px;font-size:14.5px}.check{cursor:pointer;align-items:center;gap:10px;padding:5px 0;font-size:15px;display:flex}.divider{color:var(--ink-3);font:500 10.5px/1.2 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:14px;margin:8px 0;display:flex}.divider:before,.divider:after{content:"";background:var(--ring-2);flex:1;height:1px}.auth{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(40px,6vw,96px);min-height:calc(100vh - 360px);display:grid}.auth h1{margin:0 0 22px;font-size:clamp(38px,3.2vw + 16px,68px)}.auth .lede{margin:0}.auth-points{color:var(--ink-2);gap:12px;margin:32px 0 0;padding:0;font-size:15.5px;list-style:none;display:grid}.auth-points li{align-items:center;gap:12px;display:flex}.auth-points .orb{width:34px;height:34px}.auth-card{flex-direction:column;gap:16px;padding:clamp(26px,3vw,40px);display:flex}.auth-card h2{margin:0;font-size:22px}.auth-card .flash{margin:0}.auth-error{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;display:flex}.auth-error p{flex:220px;margin:0}.auth-error .btn{flex:none}.auth-card form{margin:0}.dev-list{gap:10px;display:grid}.dev-list .btn{justify-content:space-between;width:100%}.orb{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);border-radius:50%;flex:none;place-items:center;display:grid}.orb .ic{width:18px;height:18px}.slots{justify-content:center;gap:6px;display:flex}.slots i{background:var(--core-2);width:26px;height:34px;box-shadow:inset 0 0 0 1px var(--ring);border-radius:9px;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{background:var(--shell);width:max-content;max-width:100%;box-shadow:inset 0 0 0 1px var(--ring);scrollbar-width:none;border-radius:22px;gap:4px;margin:0 0 clamp(32px,4vw,48px);padding:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs a{color:var(--ink-2);font:500 14.5px/1.1 var(--f-body);white-space:nowrap;transition:background-color .5s var(--ease),color .5s var(--ease),box-shadow .5s var(--ease);border-radius:18px;padding:10px 16px;text-decoration:none}.tabs a:hover{color:var(--ink)}.tabs a[aria-current=page]{background:var(--core);color:var(--ink);box-shadow:0 0 0 1px var(--ring),inset 0 1px 0 var(--hi),0 6px 14px -8px var(--drop)}.code-tag{background:var(--core-2);box-shadow:inset 0 0 0 1px var(--ring);font:500 18px/1 var(--f-mono);font-variant-ligatures:none;letter-spacing:.2em;color:var(--ink);border-radius:14px;align-items:center;padding:9px 14px;display:inline-flex}.empty{text-align:center;color:var(--ink-2);flex-direction:column;align-items:center;gap:14px;padding:clamp(40px,5vw,64px) 24px;display:flex}.empty>.ic,.empty .orb{margin:0 auto}.empty>.ic{background:var(--core-2);width:48px;height:48px;box-shadow:inset 0 0 0 1px var(--ring);color:var(--ink-3);border-radius:50%;padding:13px}.empty p{max-width:44ch;margin:0}.teach-grid{gap:var(--gap);grid-template-columns:minmax(0,1fr) 380px;align-items:start;display:grid}.cohort{flex-direction:column;gap:18px;display:flex}.cohort-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 16px;display:flex}.cohort-head h3{letter-spacing:-.032em;margin:0 0 4px;font-size:clamp(22px,.8vw + 15px,27px)}.cohort-code{background:var(--core-2);box-shadow:inset 0 0 0 1px var(--ring);border-radius:18px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px 16px;display:flex}.cohort-code .code-tag{background:var(--core);box-shadow:0 0 0 1px var(--ring),inset 0 1px 0 var(--hi)}.cohort-code form{margin-left:auto}.cohort-courses summary{cursor:pointer;color:var(--ink-2);align-items:center;gap:8px;padding:4px 0;font-size:14px;font-weight:500;list-style:none;display:inline-flex}.cohort-courses summary::-webkit-details-marker{display:none}.cohort-courses summary:before{content:"+";background:var(--shell);width:22px;height:22px;box-shadow:inset 0 0 0 1px var(--ring);font:400 14px/1 var(--f-mono);border-radius:50%;place-items:center;display:grid}.cohort-courses[open] summary:before{content:"−"}.cohort-courses form{align-items:flex-start;margin-top:12px}.cohort-head .row{gap:8px}.lessons-card{flex-direction:column;gap:20px;display:flex}.lessons-title{letter-spacing:-.032em;margin:0;font-size:clamp(22px,.8vw + 15px,27px)}.lesson-tools{background:var(--core-2);box-shadow:inset 0 0 0 1px var(--ring);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;padding:14px 16px;display:flex}.lesson-bulk{flex-wrap:wrap;align-items:center;gap:10px 12px;margin:0;display:flex}.lesson-bulk label{color:var(--ink);font-size:14.5px;font-weight:600}.lesson-bulk select{background-position:right 12px center;border-radius:999px;width:auto;min-height:38px;padding:6px 36px 6px 14px;font-size:14.5px}.lesson-rows{gap:10px;margin:0;padding:0;list-style:none;display:grid}.lesson-row{background:var(--core);box-shadow:0 0 0 1px var(--ring),inset 0 1px 0 var(--hi);border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px 16px;padding:14px 16px;display:grid}.lesson-num{background:var(--shell);min-width:34px;height:34px;box-shadow:inset 0 0 0 1px var(--ring);font:500 13px/1 var(--f-mono);color:var(--ink-2);border-radius:999px;place-items:center;padding:0 8px;display:grid}.lesson-main{flex-direction:column;gap:2px;min-width:0;display:flex}.lesson-main h3{letter-spacing:-.01em;overflow-wrap:anywhere;margin:0;font-size:16.5px}.lesson-state{flex-wrap:wrap;align-items:center;gap:6px 10px;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{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.lesson-schedule{border-top:1px solid var(--ring);flex-wrap:wrap;grid-column:1/-1;align-items:flex-end;gap:12px 14px;padding-top:12px;display:flex}.lesson-schedule .field{flex:0 180px}.lesson-schedule-actions{gap:8px;display:flex}.lesson-schedule .lesson-past{border-radius:14px;flex:100%;margin:0;padding:10px 14px}.create-card{top:var(--top);flex-direction:column;gap:12px;display:flex;position:sticky}.create-card h3{letter-spacing:-.03em;margin:6px 0 4px;font-size:24px}.filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:0;display:flex}.filters .field{gap:6px}.filters label{font:500 10.5px/1.2 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.filters select{border-radius:999px;width:auto;min-width:180px;min-height:42px;padding:8px 40px 8px 16px;font-size:14.5px}.error-card{text-align:center;background:radial-gradient(60% 90% at 50% 0%,var(--accent-wash),transparent 70%),var(--core);flex-direction:column;align-items:center;max-width:880px;margin:clamp(8px,3vw,40px) auto 0;padding:clamp(40px,6vw,88px) clamp(22px,5vw,72px);display:flex;overflow:hidden}.error-code{font:640 clamp(104px,12vw + 40px,200px)/.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;margin:0 0 30px;padding-bottom:.06em}.error-card h1{margin:0 0 18px}.error-card .lede{margin:0 0 34px}@media (max-width:960px){.topbar{padding:0 12px;top:12px}.island{justify-content:space-between;width:100%}.island-links,.island-tools{display:none}.island-avatar{margin-left:auto;margin-right:6px;display:grid}.burger{display:block}html:not(.js) .burger{display:none}html:not(.js) .island-tools{margin-left:auto;display:flex}html:not(.js) .island-avatar{display:none}.grid-2,.grid-3,.teach-grid{grid-template-columns:1fr}.create-card{position:static}.lesson-row{grid-template-columns:auto minmax(0,1fr)}.lesson-state,.lesson-actions{grid-column:2}.lesson-actions{justify-content:flex-start}.auth{grid-template-columns:1fr;gap:48px;min-height:0}}@media (max-width:767px){:root{--r:21px;--pad:5px;--gap:26px;--top:80px}body{font-size:16px}.wrap{padding:0 20px}.page{padding:108px 0 72px}.page-head{margin-bottom:36px}.lesson-card{padding:22px}.lesson-card .state{top:18px;right:18px}table.data th:first-child,table.data td:first-child{padding-left:18px}.foot-bottom{flex-direction:column}.tabs a{padding:9px 11px;font-size:13.5px}}@media (max-width:420px){.brand-name{font-size:15px}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:24px}.card,.table-wrap,.lesson-card{box-shadow:none;outline-offset:0;outline:1px solid #ccc}}
