:root{--bg: #0f0e17;--bg-2: #13121d;--panel: #191826;--panel-2: #201f30;--panel-3: #2a283d;--border: #2a2840;--line: #3a3754;--text: #cdcadb;--heading: #f5f4fb;--muted: #908ca8;--faint: #625e7c;--accent: #2b78f0;--accent-2: #1f63d1;--accent-ink: #ffffff;--accent-soft: rgb(43 120 240 / .16);--violet: #7b5cff;--grad: var(--accent);--hi: #7cb6ff;--hi-2: #5b9bff;--hi-ink: #0f0e17;--hi-soft: rgb(124 182 255 / .13);--gold: #f5b942;--ok: #34d399;--warn: #fbbf24;--bad: #fb7185;--premium: #c9a96e;--easy: #34d399;--medium: #fbbf24;--hard: #fb7185;--insane: #c084fc;--fundamental: #7cb6ff;--code-bg: #0b0a12;--term-bg: #08070e;--nav-h: 60px;--page-max: 1320px;--gutter: 12px;--radius: 10px;--radius-sm: 6px;--shadow: 0 12px 32px rgb(0 0 0 / .4);--font: "Ubuntu", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--display: "Ubuntu", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, "Cascadia Code", Menlo, Consolas, monospace;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font:15px/1.6 var(--font);-webkit-font-smoothing:antialiased}#app{min-height:100vh;display:flex;flex-direction:column}#page{flex:1}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,h4{line-height:1.2;margin:0 0 .5em;color:var(--heading);font-weight:700;letter-spacing:-.015em;font-family:var(--display)}.brand,.stat .v,.price,.score-big,.hero-stats b,.eyebrow,.tnum{font-family:var(--display)}h1{font-size:clamp(1.9rem,3.6vw,2.6rem)}h2{font-size:1.45rem}h3{font-size:1.15rem}p{margin:0 0 1em}code{font-family:var(--mono);font-size:.86em;background:var(--panel-3);color:#e6edf8;padding:.12em .4em;border-radius:4px}::selection{background:#3d8bff59}.muted{color:var(--muted)}.faint{color:var(--faint)}.wrap{max-width:var(--page-max);margin:0 auto;padding:0 var(--gutter)}.hidden{display:none!important}.mono{font-family:var(--mono)}.spacer{flex:1}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.nav{position:sticky;top:0;z-index:30;background:#0f0e17eb;backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.nav .bar{display:flex;align-items:center;gap:22px;height:var(--nav-h);max-width:var(--page-max);margin:0 auto;padding:0 var(--gutter)}.brand{display:flex;align-items:center;gap:10px;color:var(--heading);font-weight:700;font-size:18px;letter-spacing:-.01em;flex-shrink:0}.brand:hover{text-decoration:none}.brand svg,.brand img{display:block}.brand .logo-full{height:34px;width:auto}.brand .tld{color:var(--accent)}.nav-main{display:flex;align-items:stretch;align-self:stretch;gap:4px}.nav-group{position:relative;display:flex}.nav-top{position:relative;display:flex;align-items:center;gap:5px;padding:0 12px;background:none;border:0;cursor:pointer;color:var(--muted);font:500 14.5px var(--font);white-space:nowrap}.nav-top svg{width:14px;height:14px;opacity:.7;transition:transform .15s}.nav-top:hover,.nav-group:hover>.nav-top,.nav-group.open>.nav-top{color:var(--heading);text-decoration:none}.nav-group.open>.nav-top svg{transform:rotate(180deg)}.nav-top.active,.nav-group.active>.nav-top{color:var(--heading)}.nav-top.active:after,.nav-group.active>.nav-top:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;border-radius:2px;background:var(--hi)}.nav-pop{position:absolute;top:100%;left:-6px;width:300px;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);z-index:40;visibility:hidden;opacity:0;transform:translateY(-4px);transition:opacity .12s,transform .12s,visibility .12s}.nav-group.open>.nav-pop{visibility:visible;opacity:1;transform:none}@media(hover:hover)and (min-width:901px){.nav-group:hover>.nav-pop{visibility:visible;opacity:1;transform:none}.nav-group:hover>.nav-top svg{transform:rotate(180deg)}}.nav-pop a{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--radius-sm);color:var(--text)}.nav-pop a:hover,.nav-pop a.active{background:var(--panel-2);text-decoration:none}.nav-pop .ic{width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;border-radius:8px;background:var(--panel-3);color:var(--hi)}.nav-pop .ic svg{width:17px;height:17px}.nav-pop b{display:block;color:var(--heading);font-weight:500;font-size:14.5px;line-height:1.3}.nav-pop small{display:block;color:var(--muted);font-size:12.5px;line-height:1.4}.nav-right{margin-left:auto;display:flex;align-items:center;gap:10px}.nav-right a:not(.btn){color:var(--muted);font-size:14.5px}.nav-right a:not(.btn):hover{color:var(--heading);text-decoration:none}.nav-stat{display:inline-flex;align-items:center;gap:6px;font:600 13.5px var(--font);color:var(--heading);padding:6px 10px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);white-space:nowrap}.nav-stat svg{width:15px;height:15px}.nav-stat.pts{color:var(--hi)}.nav-stat.cubes{color:var(--gold)}.nav-stat.streak{color:#ffb454}.avatar{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:700 14px var(--font);color:#fff;background:var(--accent);border:2px solid var(--panel-3);flex-shrink:0;text-transform:uppercase}.avatar.lg{width:64px;height:64px;font-size:24px}img.avatar{object-fit:cover;background:var(--panel-2)}.avatar.xl{width:84px;height:84px;font-size:30px}.pf-pic{position:relative;flex:none}.pf-pic-edit{position:absolute;right:-2px;bottom:-2px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;border:2px solid var(--bg);cursor:pointer}.pf-pic-edit:hover{background:var(--accent-2)}.pf-pic-edit svg{width:15px;height:15px}.pf-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.pf-form[hidden]{display:none}.pf-form input{height:38px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-2);color:var(--heading);font:inherit;width:220px}.pf-form .error{flex-basis:100%}.avatar.sm{width:26px;height:26px;font-size:11px;border-width:1px}.pf-pic{display:inline-block}.pf-pic{position:relative}.prem-mark{position:absolute;right:-16%;top:-58%;width:66%;aspect-ratio:48 / 56;transform:rotate(18deg);pointer-events:none;z-index:1}.prem-mark svg{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 1px rgb(0 0 0 / .45))}.sm-crown .prem-mark{right:-14%;top:-36%;width:52%}.crown-mark{position:absolute;right:-30%;top:-39%;width:68%;aspect-ratio:32 / 28;transform:rotate(25deg);pointer-events:none;z-index:1}.crown-mark svg{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 1px rgb(0 0 0 / .45))}.crown-mark.p2{right:-23%;top:-32%;width:57%}.crown-mark.p3{right:-18%;top:-27%;width:50%}.sm-crown .crown-mark{right:-24%;top:-26%}.thanks{padding:36px 32px;text-align:center}.thanks .pf-pic{align-self:center;margin:14px 0}.thanks h1{font-size:1.8rem;font-weight:500;margin:0 0 18px}.thanks-note{text-align:left;max-width:52ch;margin:0 auto 24px;color:var(--text);line-height:1.65}.thanks .thanks-note p{margin:0 0 14px;color:var(--text);font-size:15px}.thanks>.btn{align-self:center;padding-inline:28px}.thanks-note a{color:var(--hi)}.thanks .thanks-note .thanks-sign{margin:22px 0 0}.thanks-sign b{color:var(--heading);font-weight:500}.thanks-sign span{display:block;color:var(--muted);font-size:13px}.menu{position:relative}.menu>button{background:none;border:0;padding:0;cursor:pointer;display:flex;align-items:center;gap:8px;color:var(--text);font:14px var(--font)}.menu-pop{position:absolute;right:0;top:calc(100% + 10px);min-width:210px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px;display:none;z-index:40}.menu.open .menu-pop{display:block}.menu-pop a,.menu-pop button{display:block;width:100%;text-align:left;padding:8px 12px;border-radius:5px;color:var(--text);background:none;border:0;font:14px var(--font);cursor:pointer}.menu-pop a:hover,.menu-pop button:hover{background:var(--panel-2);color:var(--heading);text-decoration:none}.menu-pop hr{border:0;border-top:1px solid var(--border);margin:6px 0}.menu-pop .who{padding:8px 12px 10px;font-size:13px;color:var(--muted)}.menu-pop .who b{display:block;color:var(--heading);font-size:14.5px}.nav-burger{display:none;background:none;border:0;color:var(--text);padding:6px;cursor:pointer}@media(max-width:1080px){.nav-stat.streak{display:none}}@media(max-width:900px){.nav-burger{display:block}.nav-main{display:none;position:absolute;top:var(--nav-h);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--bg-2);border-bottom:1px solid var(--border);padding:8px 12px 14px}.nav.open .nav-main{display:flex}.nav-group{flex-direction:column}.nav-top{padding:12px 10px}.nav-group>.nav-top{pointer-events:none;padding:14px 10px 4px;font-size:13px;color:var(--faint)}.nav-group>.nav-top svg,.nav-top:after{display:none}.nav-pop{position:static;width:auto;padding:0;background:none;border:0;box-shadow:none;visibility:visible;opacity:1;transform:none}.nav-stat.pts{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--heading);padding:9px 18px;border-radius:6px;font:600 14px var(--font);cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s,transform .05s}.btn:hover{border-color:#4a4668;background:var(--panel-3);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:16px;height:16px}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn.go{background:var(--accent);border-color:transparent;color:#fff}.btn.go:hover{background:var(--accent-2);border-color:transparent}.btn.danger{background:transparent;color:var(--bad);border-color:#f8717173}.btn.danger:hover{background:#f871711a;border-color:var(--bad)}.btn.outline{background:transparent}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.ghost:hover{background:var(--panel-2);color:var(--heading)}.btn.sm{padding:5px 11px;font-size:13px;border-radius:5px}.btn.lg{padding:12px 24px;font-size:15.5px}.btn.block{width:100%}input,select,textarea{font:inherit;color:var(--heading);background:var(--code-bg);border:1px solid var(--line);border-radius:6px;padding:10px 12px;width:100%}input::placeholder,textarea::placeholder{color:var(--faint)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}select{cursor:pointer;appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23908ca8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}label{display:block;font-weight:500;font-size:13px;margin:0 0 6px;color:var(--muted)}.field{margin-bottom:16px}.field small{display:block;margin-top:5px;font-size:12.5px}.check-line{display:flex;align-items:flex-start;gap:9px;margin:0 0 14px;font-weight:400;font-size:13.5px;line-height:1.4;color:var(--muted);cursor:pointer}.check-line[hidden]{display:none}.check-line input[type=checkbox]{flex:none;width:16px;height:16px;margin:1px 0 0;padding:0;accent-color:var(--accent);cursor:pointer}.error{color:var(--bad);font-size:14px;min-height:1.2em}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;background:var(--panel-3);font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap}.pill svg{width:13px;height:13px}.pill.ok{color:var(--ok);background:#4ade801f}.pill.warn{color:var(--warn);background:#fbbf241f}.pill.bad{color:var(--bad);background:#f871711f}.pill.accent{color:#8bb8ff;background:var(--accent-soft)}.pill.hi{color:var(--hi);background:var(--hi-soft)}.diff{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;text-transform:capitalize;color:var(--d, var(--muted))}.diff:before{content:"";width:8px;height:8px;border-radius:2px;background:var(--d, var(--muted))}.diff.fundamental{--d: var(--fundamental)}.diff.easy{--d: var(--easy)}.diff.medium{--d: var(--medium)}.diff.hard{--d: var(--hard)}.diff.insane{--d: var(--insane)}.kind svg{width:12px;height:12px}.kind{display:inline-flex;align-items:center;gap:5px;font:600 12px var(--font);padding:3px 9px;border-radius:999px}.kind.premium{color:var(--premium);background:none;padding:0}.kind.premium svg{width:18px;height:18px}.kind.room{color:#8bb8ff;background:var(--accent-soft)}.kind.challenge{color:#ff8f8f;background:#f8717121}.kind.free{color:var(--hi);background:var(--hi-soft)}.section{padding:48px 0}.page-head{padding:40px 0 20px}.page-head h1{margin-bottom:8px}.page-head p{max-width:680px;margin:0}.eyebrow{font:700 12px var(--display);letter-spacing:.16em;text-transform:uppercase;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:10px;display:block}.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:6px;color:var(--text)}a.card:hover{border-color:var(--line);text-decoration:none;box-shadow:var(--shadow)}.card h3{margin:0;font-size:1.05rem}.card p{margin:0;color:var(--muted);font-size:14px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}.panel-head h2,.panel-head h3{margin:0;font-size:1.02rem}.panel-body{padding:18px}.meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:13px;color:var(--muted)}.meta>span{display:inline-flex;align-items:center;gap:5px}.meta svg{width:14px;height:14px;opacity:.8}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:4px 0 22px}.toolbar input[type=search]{max-width:340px}.toolbar select{width:auto}.seg{display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:7px;padding:3px;gap:2px}.seg button{background:none;border:0;color:var(--muted);padding:6px 13px;border-radius:5px;font:500 13.5px var(--font);cursor:pointer}.seg button:hover{color:var(--heading)}.seg button.on{background:var(--panel-3);color:var(--heading)}.narrow{max-width:440px;margin:64px auto}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border)}.table th{color:var(--muted);font-weight:500;font-size:12.5px;text-transform:uppercase;letter-spacing:.06em}.table tr:last-child td{border-bottom:0}.progress{height:6px;background:var(--panel-3);border-radius:99px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--grad);border-radius:99px;transition:width .4s}.progress.blue>i{background:linear-gradient(90deg,var(--accent-2),var(--accent))}.footer{border-top:1px solid var(--border);color:var(--faint);font-size:13px;padding:30px 0;margin-top:56px;flex-shrink:0;background:var(--bg-2)}.footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.footer a{color:var(--muted)}.detail{display:grid;grid-template-columns:1fr 320px;gap:36px;padding:40px 0}.detail aside .card{position:sticky;top:calc(var(--nav-h) + 20px);gap:14px}@media(max-width:900px){.detail{grid-template-columns:1fr}}.kv{display:grid;grid-template-columns:auto 1fr;gap:7px 16px;font-size:14px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:500;color:var(--heading)}.notice{padding:12px 16px;border-left:3px solid var(--accent);background:var(--panel-2);border-radius:0 6px 6px 0;font-size:14px;margin:14px 0}.notice.warn{border-left-color:var(--warn)}.notice.ok{border-left-color:var(--ok)}.spinner{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--hi);border-radius:50%;animation:spin .8s linear infinite;display:inline-block;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;padding:48px 20px;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius)}.hero{position:relative;overflow:hidden;padding:84px 0 72px;border-bottom:1px solid var(--border);background:none}.hero:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgb(255 255 255 / .035) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .035) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,#000 30%,transparent)}.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:48px;align-items:center}.hero h1{font-size:clamp(2.4rem,5.2vw,4rem);line-height:1.04;letter-spacing:-.025em;margin:0 0 20px}.hero h1 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p.lead{font-size:18px;color:var(--text);max-width:52ch;margin-bottom:30px}.hero-cta{display:flex;gap:12px;flex-wrap:wrap}.hero-art svg{width:100%;height:auto;display:block;filter:drop-shadow(0 30px 60px rgb(0 0 0 / .45))}.hero-stats{display:flex;gap:36px;margin-top:40px;flex-wrap:wrap}.hero-stats div{display:flex;flex-direction:column}.hero-stats b{font-size:26px;color:var(--heading);font-weight:700}.hero-stats span{font-size:13px;color:var(--muted)}@media(max-width:900px){.hero{padding:48px 0 40px}.hero .wrap{grid-template-columns:1fr}.hero-art{max-width:520px}}.band{padding:72px 0;border-bottom:1px solid var(--border)}.band.alt{background:var(--bg-2)}.band-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px;flex-wrap:wrap}.band-head h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:0}.band-head p{margin:8px 0 0;max-width:60ch;color:var(--muted)}.how{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.how li{list-style:none;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:22px;position:relative}.how li b{display:block;color:var(--heading);font-size:16px;margin:12px 0 6px}.how li span{font-size:14px;color:var(--muted)}.how li .n{font:700 12px var(--mono);color:var(--hi)}.how li svg{width:34px;height:34px;color:var(--accent)}.how{padding:0;margin:0}@media(max-width:900px){.how{grid-template-columns:1fr 1fr}}@media(max-width:560px){.how{grid-template-columns:1fr}}.skills{display:flex;flex-wrap:wrap;gap:10px}.skill{display:inline-flex;align-items:center;gap:9px;padding:9px 14px 9px 10px;border-radius:8px;background:var(--panel);border:1px solid var(--border);color:var(--heading);font-weight:500;font-size:14px}.skill:hover{border-color:var(--line);text-decoration:none;background:var(--panel-2)}.skill svg{width:26px;height:26px;border-radius:6px}.room-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.room-card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;color:var(--text);transition:transform .15s,border-color .15s,box-shadow .15s;position:relative}.room-card:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--line);box-shadow:var(--shadow)}.room-card .art{aspect-ratio:16 / 7;position:relative;overflow:hidden;border-bottom:1px solid var(--border)}.room-card .art svg{width:100%;height:100%;display:block}.room-card .art .tags{position:absolute;left:10px;top:10px;display:flex;gap:6px}.room-card .art .tags .kind{backdrop-filter:blur(6px);background:#0f0e17b3}.room-card .art .lock{position:absolute;right:10px;top:10px;width:26px;height:26px;border-radius:50%;background:#0f0e17bf;display:flex;align-items:center;justify-content:center;color:var(--premium)}.room-card .art .lock svg{width:14px;height:14px}.room-card .art .done{position:absolute;right:10px;top:10px;width:26px;height:26px;border-radius:50%;background:var(--hi);color:var(--hi-ink);display:flex;align-items:center;justify-content:center}.room-card .art .done svg{width:15px;height:15px}.room-card .body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:7px;flex:1}.room-card h3{font-size:1rem;margin:0;line-height:1.3}.room-card p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.5;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.room-card .foot{display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--muted);margin-top:4px}.room-card .foot>span{display:inline-flex;align-items:center;gap:4px}.room-card .foot svg{width:14px;height:14px}.room-card .foot .pts{color:var(--hi);font-weight:600;margin-left:auto}.room-card .bar{height:3px;background:var(--panel-3)}.room-card .bar i{display:block;height:100%;background:var(--hi)}.box-list{display:flex;flex-direction:column;gap:10px}.box{display:grid;grid-template-columns:64px minmax(0,1fr) 110px 120px;gap:18px;align-items:center;padding:12px 16px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.box:hover{border-color:var(--line);text-decoration:none;background:var(--panel-2)}.box .icon{width:64px;height:64px}.box .icon{display:grid;place-items:center}.box .icon svg{width:34px;height:34px;display:block}.box h3{margin:0 0 4px;font-size:1.02rem}.box p{margin:0;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.box .col{font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:2px}.box .col b{color:var(--heading);font-weight:600;font-size:14px}.box .owned{display:flex;gap:6px}.flagdot{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--panel-3);color:var(--faint)}.flagdot svg{width:12px;height:12px}.flagdot.on{background:var(--hi);color:var(--hi-ink)}@media(max-width:820px){.box{grid-template-columns:52px minmax(0,1fr) auto}.box .icon{width:52px;height:52px}.box .col.opt{display:none}}.path-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.path-card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;color:var(--text);position:relative}.path-card:hover{text-decoration:none;border-color:var(--line);box-shadow:var(--shadow)}.path-card .art{height:120px;position:relative}.path-card .art svg{width:100%;height:100%;display:block}.path-card .body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px;flex:1}.path-card h3{margin:0;font-size:1.2rem}.path-card p{margin:0;color:var(--muted);font-size:14px;flex:1}.path-card .meta{font-size:13px}.path-card .lvl{position:absolute;left:16px;top:14px}.path-hero{padding:40px 0 30px;border-bottom:1px solid var(--border);background:none}.path-hero .wrap{display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:center}.path-hero h1{margin:6px 0 10px}.path-hero p{max-width:64ch}@media(max-width:860px){.path-hero .wrap{grid-template-columns:1fr}}.path-stats{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;display:flex;flex-direction:column;gap:12px}.path-stats .row2{display:flex;justify-content:space-between;font-size:13.5px;color:var(--muted)}.path-stats .row2 b{color:var(--heading)}.path-steps{list-style:none;margin:28px 0 0;padding:0;position:relative}.path-steps:before{content:"";position:absolute;left:23px;top:10px;bottom:10px;width:2px;background:var(--border)}.path-step{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;align-items:center;margin-bottom:12px}.path-step .node{width:48px;height:48px;border-radius:50%;background:var(--panel);border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font:700 15px var(--mono);color:var(--muted);z-index:1}.path-step.done .node{border-color:var(--hi);background:var(--hi);color:var(--hi-ink)}.path-step.done .node svg{width:20px;height:20px}.path-step.cur .node{border-color:var(--accent);color:var(--heading);box-shadow:0 0 0 5px var(--accent-soft)}.path-step .room-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px 14px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.path-step .room-row:hover{border-color:var(--line);text-decoration:none;background:var(--panel-2)}.path-step .room-row .thumb{display:grid;place-items:center}.path-step .room-row .thumb svg{width:22px;height:22px}.path-step .room-row h3{margin:0 0 4px;font-size:1rem}.path-step .room-row p{margin:0;font-size:13px;color:var(--muted)}.path-step.soon .room-row{opacity:.45}@media(max-width:640px){.path-step .room-row{grid-template-columns:22px minmax(0,1fr) auto;gap:12px}}.dash-htb{padding-top:26px;padding-bottom:56px}.dash-crumb{margin:0 0 18px;font-size:13px;color:var(--muted)}.dash-welcome{display:flex;align-items:center;gap:18px;flex-wrap:wrap}img.dash-avatar{object-fit:cover}.dash-avatar{flex:none;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--panel-2);border:1px solid var(--line);color:var(--hi)}.dash-avatar svg{width:30px;height:30px}.dash-hello{flex:1;min-width:220px}.dash-hello h1{margin:0 0 6px;font-size:1.75rem;font-weight:500}.dash-hello p{margin:0}.dash-stats{display:flex;gap:22px;font-size:14px;color:var(--muted)}.dash-stats span{display:inline-flex;align-items:center;gap:6px}.dash-stats svg{width:17px;height:17px}.dash-stats span:first-child svg{color:#ff8a3d}.dash-stats span:last-child svg{color:var(--hi)}.dash-stats b{color:var(--heading);font-size:16px}.dash-block{margin-top:38px}.dash-block-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.dash-block-head h2{margin:0;font-size:1.2rem;font-weight:500}.dash-block-head a,.dash-block-head .muted{font-size:14px}.rec-grid{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1000px){.rec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.rec-grid{grid-template-columns:1fr}}.rec-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:16px 18px 18px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);overflow:hidden;transition:border-color .15s,transform .15s}.rec-card:hover{text-decoration:none;border-color:var(--line);transform:translateY(-2px)}.rec-kind{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);text-transform:lowercase}.rec-kind svg{width:12px;height:12px;color:var(--premium)}.rec-main{display:flex;align-items:center;gap:12px;min-height:52px}.rec-icon{flex:none;display:grid;place-items:center;width:32px;height:32px}.rec-icon svg{width:28px;height:28px;display:block}.rec-main b{color:var(--heading);font-weight:500;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rec-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-top:auto}.rec-meta .dot{color:var(--faint)}.rec-bar{position:absolute;left:0;bottom:0;height:3px;background:var(--hi)}.prod-grid{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:1180px){.prod-grid{grid-template-columns:1fr}}.prod-card{position:relative;overflow:hidden;display:flex;align-items:stretch;min-height:340px;padding:30px 28px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(rgb(255 255 255 / .025) 1px,transparent 1px) 0 0 / 22px 22px,linear-gradient(90deg,rgb(255 255 255 / .025) 1px,transparent 1px) 0 0 / 22px 22px,var(--panel)}.prod-card.learner .prod-img{top:-6px;right:-34px;transform:rotate(14deg)}.prod-body{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;max-width:54%;padding:12px 0 6px}.prod-eyebrow{font-size:15px;color:var(--heading);margin-bottom:14px}.prod-eyebrow span{color:var(--muted)}.prod-card h3{margin:0 0 12px;font-size:1.6rem;line-height:1.25;font-weight:700;color:var(--heading)}.prod-card p{margin:0 0 26px;color:var(--muted);line-height:1.55}.prod-card .btn{margin-top:auto;padding-inline:20px;height:42px;font-weight:500}.prod-img{position:absolute;top:-22px;right:0;height:80%;width:auto;transform:rotate(-20deg);transform-origin:70% 30%;pointer-events:none}@media(max-width:560px){.prod-card{min-height:0;padding-top:200px}.prod-body{max-width:none}.prod-img{top:-30px;right:-36px;height:200px}}.lb-page{padding-top:32px;padding-bottom:56px}.lb-table{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.lb-table table{width:100%;border-collapse:collapse;font-size:15px}.lb-table th{padding:22px 16px;font-weight:500;color:var(--heading);text-align:left}.lb-table td{padding:12px 16px;color:var(--text)}.lb-table .rank{width:110px;text-align:center}.lb-table .num{width:18%;text-align:center}.lb-table td.num,.lb-table td.rank{font-variant-numeric:tabular-nums}.lb-table .who{display:flex;align-items:center;gap:14px;min-width:0}.lb-table .avatar.lb{width:44px;height:44px;font-size:16px;flex:none}.lb-table .who b{color:var(--hi);font-weight:500}.lb-table .lb-rank{display:inline-flex}.lb-table .lb-badge{width:30px;height:30px}.lb-table .cup{display:inline-flex;vertical-align:middle}.lb-table .cup svg{width:22px;height:22px}.lb-table .lb-pfp{position:relative;display:inline-flex;flex:none}.lb-table .cup.p1{color:#d4af37}.lb-table .cup.p2{color:#c0c4cc}.lb-table .cup.p3{color:#c08457}@media(max-width:640px){.lb-table .rank{width:56px}.lb-table th,.lb-table td{padding-left:10px;padding-right:10px}}.lb-head h1{margin:0 0 6px;font-size:1.75rem;font-weight:500}.lb-head p{margin:0 0 22px}.lb-join{margin-top:18px}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:24px}@media(max-width:760px){.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;display:flex;flex-direction:column;gap:2px}.stat .k{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}.stat .k svg{width:14px;height:14px}.stat .v{font-size:26px;font-weight:700;color:var(--heading);line-height:1.2}.stat .s{font-size:12.5px;color:var(--faint)}.stat.hi .v{color:var(--hi)}.stat.amber .v{color:#ffb454}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:30px 0 14px}.section-title h2{margin:0;font-size:1.2rem}.section-title a{font-size:14px}.section-title h2 a.lvl-link{font-size:inherit;color:inherit}.section-title h2 a.lvl-link:hover{text-decoration:underline;text-underline-offset:4px}.activity li{list-style:none;display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13.5px}.activity li:last-child{border-bottom:0}.activity{padding:0;margin:0}.activity .pts{margin-left:auto;color:var(--hi);font-weight:600;white-space:nowrap}.room-banner{position:relative;border-bottom:1px solid var(--border);overflow:hidden}.room-banner .bg{position:absolute;inset:0}.room-banner .bg svg{width:100%;height:100%;display:block}.room-banner .bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0f0e17f7,#0f0e17e0,#0f0e178c)}.room-banner .wrap{position:relative;display:flex;gap:22px;align-items:center;padding-top:30px;padding-bottom:30px}.room-banner .icon{width:96px;height:96px;flex-shrink:0;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}.room-banner .icon svg{width:100%;height:100%;display:block}.room-banner h1{margin:6px 0 8px;font-size:clamp(1.6rem,3vw,2.2rem)}.room-banner p{margin:0 0 10px;max-width:70ch;color:var(--text)}.room-banner .crumbs{font-size:13px;color:var(--muted)}.back-link{display:inline-flex;align-items:center;gap:6px;margin:0 0 14px;padding:7px 14px 7px 9px;border-radius:999px;border:1px solid var(--line);background:#ffffff0f;color:var(--heading);font-size:14.5px;font-weight:600;line-height:1.2;transition:background .15s,border-color .15s}.back-link:hover{background:#ffffff1f;border-color:var(--hi);color:var(--heading);text-decoration:none}.back-link:focus-visible{outline:2px solid var(--hi);outline-offset:2px}.back-link svg{width:18px;height:18px;stroke-width:2.4}.back-link span{max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-head .back-link{margin:0;flex-shrink:0}.room-banner .wrap.back-row{display:block;padding-top:18px;padding-bottom:0}.room-banner .back-row+.wrap{padding-top:6px}.back-row .back-link{margin-bottom:0}.room-banner .crumbs a{color:var(--muted)}@media(max-width:640px){.room-banner .icon{display:none}}.room-actions{position:sticky;top:var(--nav-h);z-index:20;background:#0f0e17f0;backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.room-actions .wrap{display:flex;align-items:center;gap:14px;height:60px}.room-actions .prog{display:flex;align-items:center;gap:12px;min-width:0;flex:1;font-size:13.5px;color:var(--muted)}.room-actions .prog .progress{width:180px;flex-shrink:0}.room-actions .prog b{color:var(--heading)}.room-actions .pts{color:var(--hi);font-weight:600;white-space:nowrap}@media(max-width:640px){.room-actions .prog .progress{width:80px}.room-actions .opt{display:none}}.room-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.room-main{padding:26px 0 40px}.machine-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin-bottom:20px;font-size:14px}.machine-strip .st{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--heading)}.machine-strip .led{width:9px;height:9px;border-radius:50%;background:var(--faint)}.machine-strip .led.on{background:var(--hi);box-shadow:0 0 10px var(--hi)}.machine-strip .led.boot{background:var(--warn);animation:pulse 1s ease-in-out infinite alternate}@keyframes pulse{0%{opacity:.4}to{opacity:1}}.machine-strip .kv2{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted)}.machine-strip .kv2 b{color:var(--heading);font-family:var(--mono);font-weight:500}.task{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.task>summary{list-style:none;display:flex;align-items:center;gap:14px;padding:14px 18px;cursor:pointer;user-select:none}.task>summary::-webkit-details-marker{display:none}.task>summary:hover{background:var(--panel-2)}.task .tnum{font:700 11.5px var(--font);letter-spacing:.08em;text-transform:uppercase;color:#0f0e17;background:var(--accent);padding:4px 9px;border-radius:4px;white-space:nowrap}.task.complete .tnum{background:var(--hi)}.task .ttl{font-weight:600;color:var(--heading);flex:1;min-width:0}.task .tstate{font-size:12.5px;color:var(--muted);white-space:nowrap}.task.complete .tstate{color:var(--hi)}.task .chev{width:18px;height:18px;color:var(--muted);transition:transform .2s;flex-shrink:0}.task[open] .chev{transform:rotate(180deg)}.task .tbody{padding:4px 22px 22px;border-top:1px solid var(--border)}.questions{margin-top:18px;display:flex;flex-direction:column;gap:14px}.questions h4{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:6px 0 0}.q{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.q .qtext{color:var(--heading);font-weight:500;margin-bottom:10px;display:flex;gap:10px}.q .qtext .qpts{margin-left:auto;color:var(--hi);font-size:12.5px;font-weight:600;white-space:nowrap}.q .qtext p{margin:0}.q .row{display:flex;gap:8px}.q .row input{font-family:var(--mono);font-size:14px}.q .row .btn{flex-shrink:0}.q .fmt{font:12px var(--mono);color:var(--faint);margin-top:6px;letter-spacing:.06em}.q .qmsg{font-size:13.5px;margin-top:8px}.q .qmsg.bad{color:var(--bad)}.q.correct{border-color:#34d39973;background:linear-gradient(180deg,rgb(52 211 153 / .06),var(--bg-2))}.q.correct input{border-color:#34d39980;color:var(--ok)}.q.correct .btn{background:var(--ok);border-color:var(--ok);color:#06231a;opacity:1;cursor:default}.q.shake{animation:shake .35s}@keyframes shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.q .hintline{display:flex;gap:12px;margin-top:8px;font-size:13px}.q .hintline button{background:none;border:0;padding:0;color:var(--muted);font:inherit;cursor:pointer;display:inline-flex;gap:5px;align-items:center}.q .hintline button:hover{color:var(--warn)}.q .hintline svg{width:14px;height:14px}.q .hint{margin-top:10px;padding:10px 12px;border-radius:6px;background:#fbbf2414;border:1px solid rgb(251 191 36 / .25);font-size:14px}.q .hint p:last-child{margin:0}.q .checks{margin-top:10px}.flagq .row input{letter-spacing:.02em}.flag-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#f871711f;color:var(--bad);flex-shrink:0}.flag-icon svg{width:18px;height:18px}.q.correct .flag-icon{background:var(--hi-soft);color:var(--hi)}.room-complete{text-align:center;padding:34px 20px;border:1px solid rgb(124 182 255 / .35);border-radius:10px;background:var(--panel);margin-top:20px}.room-complete h2{margin:10px 0 6px}.room-complete svg{width:64px;height:64px;color:var(--hi)}body.split-on{overflow:hidden}.room-split{position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;display:flex;z-index:25;background:var(--bg)}.room-split .pane-left{width:var(--left, 42%);min-width:300px;overflow:auto;border-right:1px solid var(--border);padding:0}.room-split .pane-left .room-main{padding:18px 20px 40px}.room-split .pane-left .compact-head{position:sticky;top:0;z-index:3;background:#0f0e17f5;backdrop-filter:blur(8px);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;gap:12px}.room-split .pane-left .compact-head h2{margin:0;font-size:1rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-split .pane-right{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--term-bg);position:relative}.mbar{display:flex;align-items:center;gap:10px;height:46px;padding:0 12px;background:#121120;border-bottom:1px solid var(--border);flex-shrink:0;font-size:13px}.mbar .st{display:inline-flex;align-items:center;gap:7px;font-weight:600;color:var(--heading)}.mbar .led{width:8px;height:8px;border-radius:50%;background:var(--hi);box-shadow:0 0 8px var(--hi)}.mbar .led.boot{background:var(--warn);box-shadow:none;animation:pulse 1s ease-in-out infinite alternate}.mbar .ip{font-family:var(--mono);color:var(--muted)}.mbar .tleft{font:600 13px var(--mono);color:var(--heading);background:var(--panel-2);padding:3px 9px;border-radius:5px}.mbar .tleft.low{color:var(--warn)}.mbar .btn{padding:4px 10px;font-size:12.5px}@media(max-width:860px){.room-split{flex-direction:column}.room-split .pane-left{width:auto;height:45%;border-right:0;border-bottom:1px solid var(--border);min-width:0}.room-split .gutter{display:none}}.prose{font-size:15px;line-height:1.7}.prose>:first-child{margin-top:14px}.prose h1{font-size:1.45rem}.prose h2{font-size:1.2rem;margin-top:1.4em}.prose h3{font-size:1.05rem;margin-top:1.2em}.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1em}.prose li{margin:.3em 0}.prose strong{color:var(--heading)}.prose table{border-collapse:collapse;margin:0 0 1em;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);padding:7px 11px}.prose th{background:var(--panel-2);color:var(--heading)}.prose blockquote{margin:0 0 1em;padding:8px 16px;border-left:3px solid var(--accent);background:var(--panel-2);border-radius:0 6px 6px 0;color:var(--text)}.prose blockquote p:last-child{margin:0}.prose img{max-width:100%;border-radius:6px}.prose hr{border:0;border-top:1px solid var(--border);margin:1.5em 0}pre.code{position:relative;background:var(--code-bg);border:1px solid var(--border);border-radius:7px;padding:13px 15px;overflow-x:auto;margin:0 0 1em;font:13px/1.6 var(--mono);color:#d7e2f3}pre.code code{background:none;padding:0;font-size:inherit;color:inherit}pre.code .code-actions{position:absolute;top:7px;right:7px;display:flex;gap:4px;opacity:0;transition:opacity .15s}pre.code:hover .code-actions{opacity:1}pre.code .code-actions .btn{padding:3px 9px;font-size:12px}pre.code[data-lang]:after{content:attr(data-lang);position:absolute;right:10px;bottom:6px;font:10.5px var(--mono);color:var(--faint);text-transform:uppercase;letter-spacing:.08em}pre.code.exec{border-left:3px solid var(--hi);cursor:pointer;padding-bottom:24px}pre.code.exec:before{content:"▶ click to run in terminal";position:absolute;left:14px;bottom:5px;font:10.5px var(--mono);color:var(--faint)}pre.code.exec:hover{background:#14121f}pre.code.waiting{border-left:3px solid var(--line);cursor:not-allowed;padding-bottom:24px;opacity:.7}pre.code.waiting:before{content:"▶ launch the VM above to run this";position:absolute;left:14px;bottom:5px;font:10.5px var(--mono);color:var(--faint)}details.reveal{border:1px solid var(--border);border-radius:7px;padding:9px 14px;margin:0 0 12px;background:var(--bg-2)}details.reveal summary{cursor:pointer;font-weight:600;color:var(--muted)}details.reveal[open] summary{margin-bottom:8px}.runner{position:fixed;inset:0;display:flex;flex-direction:column;background:var(--bg)}.runbar{display:flex;align-items:center;gap:12px;height:52px;padding:0 14px;background:#121120;border-bottom:1px solid var(--border);color:var(--text);flex-shrink:0}.runbar .brand{color:var(--heading)}.runbar .pill{background:var(--panel-3);color:var(--heading)}.runbar .title{font-weight:700;color:var(--heading);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.runbar .spacer{flex:1}.timer{font:600 14.5px var(--mono);padding:4px 11px;border-radius:5px;background:var(--panel-2);color:var(--heading)}.timer.low{color:var(--warn)}.timer.out{color:var(--bad)}.split{flex:1;display:flex;min-height:0}.pane-left{width:var(--left, 38%);min-width:260px;overflow:auto;padding:22px 24px 40px;border-right:1px solid var(--border)}.gutter{width:6px;cursor:col-resize;background:transparent;flex-shrink:0;margin-left:-3px;margin-right:-3px;z-index:2}.gutter:hover,.gutter.drag{background:var(--accent)}.pane-right{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--term-bg)}@media(max-width:820px){.split{flex-direction:column}.pane-left{width:auto;height:42%;border-right:0;border-bottom:1px solid var(--border);min-width:0}.gutter{display:none}}.stepnav{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:22px;padding-top:16px;border-top:1px solid var(--border);flex-wrap:wrap}.check-result{margin-top:10px;font-size:14px}.check-result li{list-style:none}.check-result li:before{content:"✗ ";color:var(--bad);font-weight:700}.check-result li.ok:before{content:"✓ ";color:var(--ok)}.check-result ul{padding:0;margin:6px 0}.tabs{display:flex;align-items:stretch;height:36px;background:#0d0c16;border-bottom:1px solid var(--border);overflow-x:auto;flex-shrink:0}.tab{display:flex;align-items:center;gap:8px;padding:0 12px;border-right:1px solid var(--border);color:var(--muted);font:13px var(--mono);cursor:pointer;white-space:nowrap;user-select:none}.tab.active{background:var(--term-bg);color:var(--heading);box-shadow:inset 0 2px 0 var(--hi)}.tab .x{opacity:.5;border:0;background:none;color:inherit;cursor:pointer;padding:0 2px;font-size:14px}.tab .x:hover{opacity:1}.tab .dot{width:7px;height:7px;border-radius:50%;background:var(--faint)}.tab .dot.on{background:var(--hi)}.tab .dot.err{background:var(--bad)}.tab-add{position:relative}.tab-add select{height:100%;border:0;border-radius:0;background:transparent;color:var(--muted);width:auto;padding:0 10px;cursor:pointer;font-size:13px}.tab-add select:focus{box-shadow:none}.terms{flex:1;position:relative;min-height:0}.term{position:absolute;inset:0}.term .xterm{height:100%;padding:6px 4px 12px 8px}.term-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:#070b14e6;color:var(--text);z-index:3}.boot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--term-bg);z-index:10;padding:20px}.boot:before{content:"";position:absolute;inset:0;opacity:.5;background-image:linear-gradient(rgb(255 255 255 / .03) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .03) 1px,transparent 1px);background-size:32px 32px}.boot-card{position:relative;width:min(560px,100%);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:24px;box-shadow:var(--shadow)}.boot-card b{color:var(--heading)}.boot-log{font:12.5px/1.75 var(--mono);color:var(--muted);max-height:220px;overflow:auto;margin-top:14px;background:var(--code-bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px}.boot-log div:before{content:"$ ";color:var(--hi)}.boot-log div:last-child{color:var(--heading)}.qnav{display:flex;gap:5px;flex-wrap:wrap}.qbtn{min-width:32px;height:30px;padding:0 6px;border-radius:5px;border:1px solid var(--border);background:var(--panel-2);color:var(--muted);font:600 12.5px var(--font);cursor:pointer;position:relative}.qbtn:hover{color:var(--heading)}.qbtn.cur{border-color:var(--accent);color:#fff;background:var(--accent)}.qbtn.flag:after{content:"";position:absolute;top:-3px;right:-3px;width:8px;height:8px;border-radius:50%;background:var(--warn)}.qhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.ctxbox{display:flex;align-items:center;gap:8px;background:var(--code-bg);border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin:0 0 16px;font:13px var(--mono);overflow-x:auto}.ctxbox code{background:none;padding:0;flex:1;white-space:nowrap}.notepad{position:absolute;right:16px;bottom:16px;width:min(420px,calc(100% - 32px));height:300px;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);z-index:8;resize:both;overflow:hidden}.notepad header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid var(--border);font-weight:600;font-size:13px}.notepad textarea{flex:1;border:0;border-radius:0;resize:none;font:13px/1.5 var(--mono);background:var(--panel)}.score-big{font-size:3.6rem;font-weight:700;line-height:1}.result-q{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin-bottom:12px}.result-q>summary{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;font-weight:600;color:var(--heading)}.result-q>div{padding:0 18px 16px;border-top:1px solid var(--border)}.toast{pointer-events:none;position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--panel-2);color:var(--heading);border:1px solid var(--line);padding:11px 18px;border-radius:8px;box-shadow:var(--shadow);z-index:100;font-size:14px}.toast.pts{border-color:#7cb6ff80;color:var(--hi);font-weight:600}.modal-bg{position:fixed;inset:0;background:#03060eb3;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:24px;width:min(460px,100%);box-shadow:var(--shadow)}.pay-modal{position:relative;width:min(1000px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:0;background:#fff}.pay-host{min-height:360px}.pay-wait{display:flex;align-items:center;justify-content:center;gap:10px;min-height:360px;color:#555;font-size:14px}.pay-close{position:absolute;top:10px;right:10px;z-index:1;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:#0000000f;color:#333;cursor:pointer}.pay-close:hover{background:#0000001f}.pay-close svg{width:18px;height:18px}.modal .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.po{position:relative;width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:28px}.po-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer}.po-close:hover{background:var(--panel-2);color:var(--heading)}.po-close svg{width:18px;height:18px}.po-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;border:1px solid var(--line);color:var(--premium);font-size:13px;font-weight:600}.po-badge svg{width:15px;height:15px}.po h2{margin:14px 0 6px}.po>p{margin:0 0 18px}.po-cmp{width:100%;border-collapse:collapse;font-size:14px}.po-cmp th,.po-cmp td{padding:9px 10px;border-bottom:1px solid var(--border);text-align:center}.po-cmp tbody th{text-align:left;font-weight:400;color:var(--text)}.po-cmp thead th{color:var(--muted);font-size:12.5px;text-transform:uppercase;letter-spacing:.05em}.po-cmp thead .po-prem{color:var(--premium)}.po-cmp td:last-child{background:var(--panel-2);color:var(--heading)}.po-cmp td svg{width:16px;height:16px;color:var(--premium);vertical-align:-3px}.po-no{color:var(--faint)}.po-price{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin:20px 0 0}.po-price>div:first-child{display:flex;flex-direction:column;gap:2px}.po-now{font-size:15px;color:var(--muted)}.po-now b{font-size:1.5rem;color:var(--heading)}.po-price s{color:var(--faint)}.po-price .muted{font-size:13.5px}.po-sale{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}.po-sale b{color:var(--gold, var(--warn));font-weight:600}.sale-clock{color:var(--muted);font-variant-numeric:tabular-nums}.sale-clock b{color:var(--heading)!important;font-weight:600;margin-left:2px}.po-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}@media(max-width:520px){.po{padding:22px 18px}.po-actions{flex-direction:column-reverse}.po-actions .btn{justify-content:center}}.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:10px 0 24px}.plan{display:flex;flex-direction:column;gap:6px;padding:26px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.plan.featured{border-color:#7cb6ff80;background:var(--panel);position:relative}.plan.featured:before{content:"Most popular";position:absolute;top:-11px;left:24px;background:var(--hi);color:var(--hi-ink);font:700 11px var(--font);letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:4px}.plan h2{margin:0;font-size:1.25rem}.price{font-size:2.4rem;font-weight:700;color:var(--heading);margin:6px 0 4px}.price span{font-size:14px;color:var(--muted);margin-left:6px;font-weight:400}.plan ul{padding:0;margin:10px 0 22px;flex:1;list-style:none}.plan li{margin:9px 0;font-size:14.5px;padding-left:24px;position:relative}.plan li:before{content:"✓";position:absolute;left:0;color:var(--hi);font-weight:700}.plan .btn{align-self:stretch;white-space:normal}@media(max-width:900px){.plans{grid-template-columns:1fr}}.sim-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.sim{display:flex;gap:18px;align-items:flex-start;padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:10px;color:var(--text)}.sim:hover{border-color:var(--line);text-decoration:none}.sim .badge{width:72px;height:72px;flex-shrink:0}.sim h3{margin:0 0 6px}.sim p{margin:0 0 10px;font-size:14px;color:var(--muted)}.auth{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - var(--nav-h))}.auth .side{position:relative;overflow:hidden;border-right:1px solid var(--border);display:flex;align-items:flex-end;padding:48px;background:var(--bg-2)}.auth .side svg.art{position:absolute;inset:0;width:100%;height:100%;opacity:.9}.auth .side .quote{position:relative;max-width:420px}.auth .side .quote h2{font-size:1.8rem}.auth .form{display:flex;align-items:center;justify-content:center;padding:40px 20px}.auth .form>div{width:min(400px,100%)}@media(max-width:860px){.auth{grid-template-columns:1fr}.auth .side{display:none}}.profile-head{display:flex;align-items:center;gap:20px;padding:34px 0 24px;flex-wrap:wrap}.profile-head h1{margin:0 0 4px}.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:14px}.badge-tile{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:16px 10px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);font-size:12.5px;color:var(--muted)}.badge-tile svg{width:64px;height:64px}.badge-tile b{color:var(--heading);font-size:13px}.badge-tile.locked{opacity:.35;filter:grayscale(1)}.compare td:not(:first-child),.compare th:not(:first-child){text-align:center;width:18%}.compare td svg{width:18px;height:18px;color:var(--ok);vertical-align:middle}.faq details.reveal{margin-bottom:10px}.faq summary{color:var(--heading)}.cubes{display:inline-flex;align-items:center;gap:4px;color:var(--gold);font-weight:600;white-space:nowrap}.cubes svg.cube{width:15px;height:15px}.tier{display:inline-flex;align-items:center;font:700 10.5px var(--display);letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:4px;background:#0f0e17bf;backdrop-filter:blur(6px);color:var(--hi);border:1px solid rgb(124 182 255 / .35)}.tier.t0{color:#a7f3d0;border-color:#34d39966}.tier.t2{color:#fde68a;border-color:#fbbf2466}.tier.t3{color:#fecdd3;border-color:#fb718573}.tier.t4{color:#e9d5ff;border-color:#c084fc73}.module-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.module-card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;color:var(--text);transition:transform .15s,border-color .15s,box-shadow .15s}.module-card:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--line);box-shadow:var(--shadow)}.module-card .art{aspect-ratio:8 / 3;position:relative;overflow:hidden;border-bottom:1px solid var(--border)}.module-card .art svg{width:100%;height:100%;display:block}.module-card .art .tags{position:absolute;left:10px;top:10px;display:flex;gap:6px}.module-card .bar{height:3px;background:var(--panel-3)}.module-card .bar i{display:block;height:100%;background:var(--grad)}.module-card .body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:7px;flex:1}.module-card h3{margin:0;font-size:1.05rem}.module-card p{margin:0;color:var(--muted);font-size:13.5px;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.module-card .foot{display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}.module-card .foot>span{display:inline-flex;align-items:center;gap:4px}.module-card .foot svg{width:14px;height:14px}.module-card .foot .rw{margin-left:auto}.mstatus{position:absolute;right:10px;top:10px;display:inline-flex;align-items:center;gap:5px;font:600 12px var(--font);padding:4px 9px;border-radius:999px;background:#0f0e17cc;backdrop-filter:blur(6px);color:var(--text)}.mstatus svg{width:13px;height:13px}.mstatus.done{background:var(--ok);color:#06231a}.mstatus.prog,.mstatus.open{color:var(--hi)}.mstatus.lock .cubes svg{width:13px;height:13px}.learn-hero{background:var(--bg-2);border-bottom:1px solid var(--border)}.learn-hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:40px;padding-top:44px;padding-bottom:40px}.learn-hero h1{font-size:clamp(2.2rem,4.4vw,3rem);margin:0 0 12px}.learn-hero p{max-width:62ch;margin:0 0 24px;color:var(--text)}.learn-stats{display:flex;flex-wrap:wrap;gap:14px 36px}.learn-stats span{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13.5px;line-height:1.25;max-width:9em}.learn-stats b{font:700 1.9rem var(--display);color:var(--heading)}.learn-art{display:flex;align-items:flex-end}.learn-art svg{width:108px;height:108px;margin-left:-14px}.learn-art svg:nth-child(2){width:132px;height:132px;transform:translateY(-14px)}.learn-art svg:nth-child(3){width:156px;height:156px;transform:translateY(-34px)}@media(max-width:820px){.learn-hero .wrap{grid-template-columns:1fr}.learn-art{display:none}}.learn-tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);margin:18px 0 0;overflow:auto hidden;scrollbar-width:none}.learn-tabs button{position:relative;display:inline-flex;align-items:center;gap:8px;padding:14px;background:none;border:0;cursor:pointer;color:var(--muted);font:500 15px var(--font);white-space:nowrap}.learn-tabs button svg{width:17px;height:17px}.learn-tabs button:hover,.learn-tabs button[aria-selected=true]{color:var(--heading)}.learn-tabs button[aria-selected=true]:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--hi)}.roadmap{--rm-line: rgb(124 182 255 / .38);margin-top:26px;padding:40px 24px 48px;border:1px solid var(--border);border-radius:14px;background:var(--bg-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Cpath d='M28 0H0v28' fill='none' stroke='%23ffffff' stroke-opacity='.035'/%3E%3C/svg%3E")}.rm-intro{text-align:center;max-width:620px;margin:0 auto 34px}.rm-intro h2{font-size:1.6rem;margin-bottom:10px}.rm-intro p{color:var(--muted);margin:0}.rm-stage,.rm-branch{position:relative;display:flex;flex-direction:column;gap:10px}.rm-stage{width:min(380px,100%);margin:0 auto;padding-bottom:34px}.rm-stage:before,.rm-branch:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--rm-line)}.rm-head,.rm-node{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.rm-head{text-align:center;padding:16px 20px;margin-bottom:14px}.rm-head h3,.rm-title h3{font-size:1.05rem;margin:0 0 4px}.rm-head p,.rm-title p{color:var(--muted);font-size:13.5px;line-height:1.5;margin:0}.rm-node{display:flex;align-items:center;gap:0;min-height:64px;overflow:hidden;color:var(--text);background:var(--panel-2)}.rm-node:hover{text-decoration:none;border-color:var(--hi)}.rm-node .art{width:64px;align-self:stretch;flex-shrink:0;display:grid;place-items:center;background:var(--panel-3)}.rm-node .art svg{width:100%;height:100%;display:block}.rm-node .art img{width:44px;height:auto}.rm-node .art:has(>svg.i){width:52px;background:none}.rm-node .art svg.i{width:22px;height:22px;color:var(--muted)}.rm-node:hover .art svg.i{color:var(--hi)}.rm-node .tx{padding:9px 14px;min-width:0}.rm-node b{display:block;color:var(--heading);font-weight:500;font-size:14.5px;line-height:1.3}.rm-node .meta{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:12.5px;color:var(--muted)}.rm-node .chip{padding:1px 8px;border-radius:999px;font-size:12px;background:var(--accent-soft);color:var(--hi)}.rm-node .chip.module{background:#f5b94224;color:var(--gold)}.rm-node .chip.exam{background:#7b5cff2e;color:#b9a8ff}.rm-node .ok{margin-left:auto;margin-right:14px;width:22px;height:22px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:var(--ok);color:#06231a}.rm-node .ok svg{width:13px;height:13px}.rm-node .bar{position:absolute;left:0;bottom:0;height:3px;background:var(--hi)}.rm-branches{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:22px;padding-top:34px}.rm-branches{--rm-gap: 22px}.rm-branch:before{top:-34px}.rm-branch:after{content:"";position:absolute;top:-34px;left:calc(var(--rm-gap) / -2);right:calc(var(--rm-gap) / -2);height:2px;background:var(--rm-line)}.rm-branch:first-child:after{left:50%}.rm-branch:last-child:after{right:50%}.rm-title{position:relative;text-align:center;padding:14px 16px;margin-bottom:4px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}@media(max-width:1000px){.rm-branches{grid-template-columns:1fr;row-gap:34px;width:min(380px,100%);margin:0 auto}.rm-branch:after{display:none}}@media(max-width:600px){.roadmap{padding:28px 14px 32px}.rm-branches{grid-template-columns:1fr}}.learn-explain{margin:24px 0 0;color:var(--muted);max-width:70ch}.learn-explain b{color:var(--heading);font-weight:500}.learn-track{margin-top:34px;scroll-margin-top:calc(var(--nav-h) + 16px)}.learn-track .head{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:16px}.learn-track .head .track-badge{width:64px;height:64px}.learn-track h2{margin:0 0 2px;font-size:1.3rem}.learn-track .head p{margin:0;color:var(--muted);font-size:14px;max-width:70ch}@media(max-width:600px){.learn-track .head{grid-template-columns:52px minmax(0,1fr)}.learn-track .head .diff{display:none}}.mod-hero{position:relative;border-bottom:1px solid var(--border);overflow:hidden}.mod-hero .bg{position:absolute;inset:0}.mod-hero .bg svg{width:100%;height:100%;display:block}.mod-hero .bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0f0e17f7,#0f0e17db 55%,#0f0e1780)}.mod-hero .wrap{position:relative;padding-top:34px;padding-bottom:34px}.mod-hero h1{margin:8px 0 10px;font-size:clamp(1.8rem,3.4vw,2.5rem)}.mod-hero p{max-width:70ch;margin:0 0 14px}.mod-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:30px;padding:30px 0;align-items:start}.mod-grid aside{position:sticky;top:calc(var(--nav-h) + 18px);display:flex;flex-direction:column;gap:16px}@media(max-width:900px){.mod-grid{grid-template-columns:1fr}.mod-grid aside{position:static}}.sec-list{list-style:none;padding:0;margin:0}.sec-list li a,.sec-list li>span{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text);font-size:14.5px}.sec-list li:last-child a,.sec-list li:last-child>span{border-bottom:0}.sec-list li a:hover{background:var(--panel-2);text-decoration:none}.sec-list .n{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:600 11.5px var(--mono);background:var(--panel-3);color:var(--muted)}.sec-list .done .n{background:var(--ok);color:#06231a}.sec-list .done .n svg{width:13px;height:13px}.sec-list .cur .n{background:var(--accent);color:#fff}.sec-list .assess{color:var(--gold)}.unlock-card{padding:20px;display:flex;flex-direction:column;gap:12px}.unlock-card .row3{display:flex;justify-content:space-between;font-size:13.5px;color:var(--muted)}.unlock-card .row3 b{color:var(--heading)}.academy{display:grid;grid-template-columns:290px minmax(0,1fr);gap:0;min-height:calc(100vh - var(--nav-h))}.academy .toc{position:sticky;top:var(--nav-h);align-self:start;height:calc(100vh - var(--nav-h));overflow:auto;border-right:1px solid var(--border);background:var(--bg-2);padding:18px 0}.academy .toc .head{padding:0 18px 14px;border-bottom:1px solid var(--border);margin-bottom:6px}.academy .toc .head a{color:var(--heading);font:600 15px var(--display)}.academy .toc .head .progress{margin-top:10px}.academy .toc .head small{display:block;margin-top:6px;color:var(--muted);font-size:12.5px}.academy .toc .sec-list li a{padding:9px 18px;font-size:13.5px;border-bottom:0}.academy .toc .sec-list li.cur a{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.academy .toc .spawn{margin:14px 18px 0;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);font-size:13px}.academy .toc .spawn b{display:block;color:var(--heading);margin-bottom:4px}.academy .toc .spawn .btn{width:100%;margin-top:10px}.academy main{padding:26px 0 60px}.academy main .section-body{max-width:860px;margin:0 auto;padding:0 28px}.section-body .counter{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted);margin-bottom:4px}.section-body h1{font-size:clamp(1.6rem,3vw,2.1rem);margin:4px 0 6px}.section-body .qhead{margin-top:30px;padding-top:22px;border-top:1px solid var(--border)}.section-body .qhead h2{font-size:1.1rem;margin:0 0 4px}.section-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:30px;padding-top:20px;border-top:1px solid var(--border)}.section-nav .pts{color:var(--hi);font-weight:600;font-size:13px}@media(max-width:900px){.academy{grid-template-columns:1fr}.academy .toc{position:static;height:auto;border-right:0;border-bottom:1px solid var(--border)}}.room-split .pane-left .section-body{padding:0 6px}.complete-hero{text-align:center;padding:50px 20px 30px}.complete-hero .medal svg{width:150px;height:150px}.complete-hero h1{margin:18px 0 6px}.complete-hero .rewards{display:flex;gap:14px;justify-content:center;margin:22px 0;flex-wrap:wrap}.complete-hero .rewards .stat{min-width:160px}.i.flip{transform:scaleX(-1)}.nav-stat svg.cube{width:15px;height:15px}a.nav-stat:hover{text-decoration:none;border-color:var(--line)}.unlock-card .track-badge{width:96px;height:96px;align-self:center}.tier.adv{color:#fecdd3;border-color:#fb71858c;background:#500e1ebf}.sec-list li.locked>span{opacity:.55}.sec-list li.locked .n svg{width:12px;height:12px}.launch{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;margin:6px 0 16px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--bg-2)}.launch .ico{width:38px;height:38px;border-radius:9px;background:var(--accent-soft);color:var(--hi);display:flex;align-items:center;justify-content:center;flex-shrink:0}.launch .ico svg{width:20px;height:20px}.launch .txt{flex:1;min-width:200px;font-size:14px}.launch .txt b{color:var(--heading);display:block}.launch.on{border-style:solid;border-color:#34d39973}.launch.on .ico{background:#34d39924;color:var(--ok)}.task .tnum .mtag{margin-left:6px}.tagvm{display:inline-flex;align-items:center;gap:4px;font:600 11px var(--font);color:var(--muted);background:var(--panel-3);padding:2px 7px;border-radius:4px}.tagvm svg{width:12px;height:12px}.legal{max-width:72ch;padding-top:40px;padding-bottom:40px;line-height:1.65}.legal h1{margin-bottom:4px}.legal h2{font-size:1.15rem;margin:28px 0 8px}.legal ul{padding-left:22px}.legal li{margin:4px 0}.about{max-width:760px;padding-top:48px;padding-bottom:56px}.about section{margin-bottom:40px}.about .lead{font-size:1.15rem;color:var(--text);max-width:62ch}.about h2{font-size:1.3rem;margin-bottom:10px}.about .todo{color:var(--faint);font-style:italic;border-left:2px solid var(--line);padding-left:14px}.about-photo{margin:0 0 18px}.about-photo img,.about-ig img{display:block;width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--border)}.about-photo figcaption{color:var(--muted);font-size:14px;margin-top:8px}.about-ig{display:block;margin:8px 0 6px}.about-ig:hover img{border-color:var(--line)}main h1.page-title{display:flex;align-items:center;gap:.4em;font-weight:500;letter-spacing:-.01em}main h1.page-title>svg{flex:none;width:.9em;height:.9em;color:var(--hi);stroke-width:1.75}h1,h2,h3,h4{letter-spacing:0}.lp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 20px;border-radius:5px;font:500 16px var(--font);white-space:nowrap;cursor:pointer;border:1px solid transparent;background:var(--grad);color:#fff;transition:filter .2s,background-color .2s,color .2s}.lp-btn:hover{text-decoration:none;filter:brightness(1.12)}.lp-btn svg{width:16px;height:16px}.lp-btn.light{background:var(--heading);color:var(--bg)}.lp-btn.light:hover{filter:brightness(.94)}.lp-btn.outline{background:transparent;border-color:var(--accent);color:var(--heading)}.lp-btn.outline:hover{background:var(--accent-soft);filter:none}.lp-btn.lg{height:60px;padding:0 40px;font-size:20px;border-radius:8px}.lp-btn.lg svg{width:20px;height:20px}.lp-btn.sm{height:30px;padding:0 12px;font-size:14px}:root{--nav-h: 80px}.nav{background:var(--bg);backdrop-filter:none}body.on-home .nav{border-bottom-color:transparent}.nav .bar{height:var(--nav-h);gap:20px}.nav .brand{font-size:19px}.nav-main{gap:6px}.nav-top{flex-direction:column;justify-content:center;gap:5px;padding:0 12px;font:400 14.5px var(--font);color:#ffffff8c}.nav-top svg{width:22px;height:22px;opacity:1;transition:color .15s}.nav-top span{line-height:1.2}.nav-top:hover,.nav-group:hover>.nav-top,.nav-group.open>.nav-top{color:#ffffffd9}.nav-top.active,.nav-group.active>.nav-top{color:#fff}.nav-top.active svg,.nav-group.active>.nav-top svg{color:var(--hi)}.nav-group.open>.nav-top svg,.nav-group:hover>.nav-top svg{transform:none}.nav-top.active:after,.nav-group.active>.nav-top:after{display:none}.nav-right{gap:18px}.nav-right a.nav-icon{display:grid;place-items:center;color:#fff9}.nav-icon svg{width:20px;height:20px}.nav-right a.nav-icon:hover{color:#fff}.nav-right a.nav-upgrade{height:32px;display:inline-flex;align-items:center;padding:0 14px;border-radius:5px;background:var(--grad);color:#fff;font:500 14.5px var(--font)}.nav-right a.nav-upgrade:hover{filter:brightness(1.12);color:#fff}.nav-sep{width:1px;height:26px;background:var(--line)}.nav-stat,a.nav-stat{gap:7px;padding:0;background:none;border:0;border-radius:0;font:600 15px var(--font);color:var(--heading)}.nav-stat svg,.nav-stat svg.cube{width:18px;height:18px}.nav-stat.streak svg{color:#ff8a3d}.nav-stat.pts svg{color:var(--hi)}.nav-right a.nav-stat,.nav-stat.pts,.nav-stat.cubes{color:var(--heading)}.nav .avatar{width:42px;height:42px;font-size:16px;border-width:3px}.nav-right{gap:20px}.nav-right a.login{color:var(--heading);font-size:16px}.nav-right a.lp-btn,.nav-right a.lp-btn:hover{color:#fff;text-decoration:none}.nav-right a.login:hover{text-decoration:underline}@media(max-width:900px){.nav-main{top:var(--nav-h);background:var(--bg);padding:12px}.nav-main a.nav-top{flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 10px;font-size:16px}.nav-main a.nav-top svg{width:20px;height:20px}.nav-sep{display:none}.nav-group>.nav-top,.nav-group.active>.nav-top{flex-direction:row;justify-content:flex-start;padding:14px 10px 4px;font-size:13px;color:var(--faint)}.nav-right .lp-btn{height:34px;padding:0 14px;font-size:15px}}@media(max-width:520px){.nav-right a.login,.nav-right a.nav-upgrade{display:none}}.footer{background:var(--panel);border-top:0;color:var(--heading);font-size:16px;padding:60px 0 22px;margin-top:72px}body.on-home .footer{margin-top:0}#app:has(#page>:last-child:is(.ws-final,.lp-final,.h2-final)) .footer{margin-top:0;background:var(--panel)}body.on-home .footer{margin-top:0;background:var(--panel)}.footer .wrap{display:block}.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;margin-bottom:42px}.footer-links{display:flex;gap:30px 120px;flex-wrap:wrap}.footer-links h3{font:600 16px var(--font);color:var(--heading);margin:0 0 30px}.footer-links ul{list-style:none;margin:0;padding:0}.footer-links li{margin-bottom:12px}.footer-links a{color:var(--heading);font-size:16px}.footer-brand{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.footer-brand p{color:var(--heading);font-size:14px;max-width:32ch;margin:24px 0 0}.footer-bottom{border-top:2px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.footer-bottom p{margin:0;color:var(--faint);font-size:16px}@media(max-width:900px){.footer-top{flex-direction:column-reverse}.footer-brand{align-items:flex-start;text-align:left}.footer-links{gap:40px}}.lp-wrap{max-width:var(--page-max);margin:0 auto;padding:0 var(--gutter)}@media(max-width:1100px){.lp-wrap{max-width:1024px}}@media(max-width:520px){.lp-wrap{padding:0 16px}}.lp-title h2,h2.lp-title{font-size:36px;line-height:40px;font-weight:500;color:var(--heading);margin:0}.lp-title h2 span,h2.lp-title span{display:block}.lp-title.center,h2.lp-title.center,.desc.center{text-align:center}.lp-title.rule h2:after{content:"";display:block;width:150px;height:4px;margin-top:24px;border-radius:100px;background:var(--accent)}.lp-light .desc,.lp-title .desc{color:var(--muted);font-size:18px;line-height:24px;margin:16px 0 0;max-width:72ch}.desc.center{margin-left:auto;margin-right:auto}.lp-title .desc span{display:block;margin-top:4px}@media(max-width:760px){.lp-title h2,h2.lp-title{font-size:28px;line-height:34px}.lp-light .desc,.lp-title .desc{font-size:16px}}.lp-cta{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.lp-cta.center{justify-content:center}@media(max-width:560px){.lp-cta{flex-direction:column;align-items:stretch}.lp-cta .lp-btn{width:100%}}.lp-hero{position:relative;overflow:hidden;isolation:isolate;background:var(--bg)}.lp-hero .inner{position:relative;z-index:1;padding:150px 12px 170px}.lp-hero h1{font-size:54px;line-height:1.12;font-weight:700;max-width:800px;margin:0 0 24px;color:var(--heading)}.lp-hero .lead{font-size:24px;line-height:35px;color:var(--text);max-width:34ch;text-wrap:balance;margin:0}.lp-cta.top{margin:46px 0 30px}@media(max-width:1100px){.lp-hero h1{font-size:44px}}@media(max-width:760px){.lp-hero .inner{padding:80px 16px 200px}.lp-hero h1{font-size:32px}.lp-hero .lead{font-size:20px;line-height:1.4}}.lp-light>*{width:100%}.lp-light{background:var(--bg-2);display:flex;flex-direction:column;gap:160px;padding-bottom:80px}@media(max-width:760px){.lp-light{gap:80px}}.lp-paths{padding-top:80px}.lp-levels{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:40px}.lp-levels button{padding:6px 20px;font:500 16px/24px var(--font);color:var(--text);background:var(--panel-2);border:0;border-radius:9999px;cursor:pointer;transition:box-shadow .3s,background-color .3s}.lp-levels button:hover{box-shadow:0 8px 26px #00000059}.lp-levels button[aria-selected=true]{background:var(--accent);color:#fff;font-weight:600}.lp-filter{display:flex;gap:42px;margin-top:56px;padding:24px;background:var(--panel);border-radius:20px;overflow:hidden}.lp-topics{display:flex;flex-direction:column;gap:12px;padding:24px 0;min-width:170px}.lp-topics button{padding:6px 12px;font:400 18px/24px var(--font);color:var(--text);text-align:left;background:transparent;border:0;border-radius:6px;cursor:pointer;white-space:nowrap}.lp-topics button:hover{background:var(--panel-2)}.lp-topics button[aria-selected=true]{background:var(--panel-3);color:var(--heading);font-weight:600}.lp-carousel{flex:1;min-width:0;padding:16px;background:var(--bg-2);border-radius:16px;display:flex;flex-direction:column;align-items:center;gap:30px}.lp-viewport{width:100%;display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth}.lp-viewport::-webkit-scrollbar{display:none}.lp-pcard{flex:0 0 calc((100% - 48px)/4);scroll-snap-align:start;min-height:335px;display:flex;flex-direction:column;gap:24px;padding:16px 16px 25px;background:var(--panel-2);border:1px solid var(--border);border-radius:10px}.lp-pcard .img{position:relative;border-radius:10px;overflow:hidden}.lp-pcard .img svg{display:block;width:100%;height:135px}.lp-new{position:absolute;top:12px;left:12px;z-index:1;height:20px;padding:0 10px;border-radius:10px;display:inline-flex;align-items:center;font:500 12px var(--font);text-transform:uppercase;color:#fff;background:var(--grad)}.lp-pcard .txt{flex:1;display:flex;flex-direction:column;gap:16px}.lp-pcard h3{font:500 16px/22px var(--font);color:var(--heading);margin:0}.lp-pcard .lp-btn{align-self:flex-start}.lp-diff{display:inline-flex;align-items:center;gap:6px;font-size:14px;line-height:18px;text-transform:capitalize;color:var(--d)}.lp-diff svg{width:14px;height:14px;fill:var(--d)}.lp-diff svg .off{opacity:.3}.lp-diff[data-d=easy]{--d: var(--easy)}.lp-diff[data-d=intermediate]{--d: var(--medium)}.lp-diff[data-d=hard]{--d: var(--hard)}.lp-none{color:var(--muted);padding:60px 0;text-align:center;width:100%}.lp-dots{display:flex;gap:8px;width:290px;justify-content:center}.lp-dots:empty{display:none}.lp-dots button{flex:1;height:8px;border:0;border-radius:10rem;background:var(--panel-3);cursor:pointer;padding:0}.lp-dots button.on{background:var(--accent)}.lp-more{margin:18px 0 0;display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;font-size:18px;color:var(--text)}.lp-more a{display:inline-flex;align-items:center;gap:4px;color:var(--hi);font-size:16px}.lp-more a svg{width:14px;height:14px}@media(max-width:1000px){.lp-filter{flex-direction:column;gap:20px}.lp-topics{flex-direction:row;flex-wrap:wrap;justify-content:center;padding:0}.lp-topics button{border-radius:9999px;padding:4px 12px;background:var(--panel-2)}.lp-topics button[aria-selected=true]{background:var(--accent);color:#fff}.lp-pcard{flex-basis:calc((100% - 16px)/2)}}@media(max-width:640px){.lp-filter{padding:12px}.lp-pcard{flex-basis:85%}}.lp-hands{position:relative;display:flex;flex-direction:column;align-items:center;padding:50px 100px;border-radius:10px;overflow:hidden;background:var(--panel)}.lp-hands h2{font:500 32px var(--font);color:var(--heading);text-align:center;margin:0 0 16px}.lp-hands .sub{color:var(--heading);text-align:center;margin:0 0 32px;font-size:16px}.lp-tabs{display:flex;padding:5px;margin-bottom:32px;background:var(--panel-3);border-radius:6px}.lp-tabs button{all:unset;cursor:pointer;padding:16px 20px;border-radius:5px;font:500 16px var(--font);color:var(--heading);white-space:nowrap;transition:background-color .2s,color .2s}.lp-tabs button:hover{background:#ffffff0d}.lp-tabs button[aria-selected=true]{background:var(--accent);color:#fff}.lp-tabs button:focus-visible{outline:2px solid var(--hi)}.lp-tabsel{display:none;max-width:260px;margin-bottom:32px}.lp-slides{width:100%}.lp-slide{display:none}.lp-slide.on{display:block}.lp-video{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:26px;overflow:hidden;display:grid;place-items:center}.lp-video .bg,.lp-video .bg svg{position:absolute;inset:0;width:100%;height:100%;display:block}.lp-video .lp-term{position:relative;width:min(78%,760px);background:var(--term-bg);border:1px solid var(--line);border-radius:10px;box-shadow:0 30px 60px #00000080;overflow:hidden}.lp-video .tbar{display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--panel-2);font:12px var(--mono);color:var(--muted)}.lp-video .tbar i{width:10px;height:10px;border-radius:50%;background:var(--panel-3)}.lp-video .tbar span{margin-left:8px}.lp-video pre{margin:0;padding:16px 18px 20px;font:14px/1.7 var(--mono);color:var(--text);white-space:pre-wrap;word-break:break-word}.lp-video pre .t-in{color:var(--heading)}.lp-video pre .t-o{color:var(--muted)}.lp-video pre .t-c{color:var(--faint)}.lp-video pre .t-q{color:var(--hi)}.lp-video pre .t-ok{color:var(--ok)}.lp-video pre .t-bad{color:var(--bad)}.lp-video pre .t-flag{color:var(--gold);font-weight:700}.lp-play{position:absolute;right:28px;bottom:28px;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#0009;color:#fff;transition:transform .2s,background-color .2s}.lp-play svg{width:24px;height:24px;margin-left:3px}.lp-play:hover{transform:scale(1.1);background:var(--accent)}.lp-vdesc{color:var(--text);font:16px/23px "Source Sans Pro",var(--font);text-align:center;margin:32px 0 0;padding-inline:40px}@media(max-width:1100px){.lp-hands{padding:50px 60px}}@media(max-width:900px){.lp-tabs{display:none}.lp-tabsel{display:block}}@media(max-width:640px){.lp-hands{padding:40px 16px}.lp-hands h2{font-size:24px}.lp-video{border-radius:16px;aspect-ratio:auto;padding:24px 0 88px}.lp-video .lp-term{width:92%}.lp-video pre{font-size:12px}.lp-vdesc{padding-inline:8px}}.lp-boxes{display:grid;grid-template-columns:1fr 1fr;gap:24px}.lp-box{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:24px;min-height:400px;padding:50px 20px 20px 50px;border-radius:10px;background:var(--panel-2)}.lp-box>*{position:relative;z-index:1}.lp-box .label{display:flex;align-items:center;gap:16px;font-size:14px;line-height:14px;color:var(--heading)}.lp-box .label svg{width:20px;height:20px;color:var(--hi)}.lp-box h3{font:700 24px/29px var(--font);color:var(--heading);margin:0;max-width:20ch}.lp-box p{margin:8px 0 0;max-width:50ch;color:var(--text)}.lp-box .lp-btn{width:fit-content;margin-top:8px}.lp-box .pic{position:absolute;right:24px;bottom:16px}.lp-badge{width:180px;height:180px;display:block}@media(max-width:900px){.lp-boxes{grid-template-columns:1fr}.lp-box{padding:32px 24px 24px;min-height:0}.lp-box .pic{position:relative;right:auto;bottom:auto;align-self:center;margin-top:8px}}.lp-tools{display:flex;flex-direction:column;gap:32px}.lp-tools .desc{margin-top:18px}.lp-marquee{overflow:hidden;padding-bottom:8px;mask-image:linear-gradient(to right,transparent 0,#000 150px,#000 calc(100% - 150px),transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 150px,#000 calc(100% - 150px),transparent 100%)}.lp-marquee .track{display:flex;width:max-content;animation:lp-scroll 50s linear infinite}.lp-marquee:hover .track{animation-play-state:paused}.lp-marquee .set{display:flex;align-items:center;gap:72px;padding-right:72px}.lp-marquee .tool{display:flex;align-items:center;gap:12px;color:var(--heading);font:500 20px var(--font);white-space:nowrap}.lp-marquee .tool:hover{text-decoration:none;color:var(--hi)}.lp-marquee .tool svg{width:32px;height:32px}@keyframes lp-scroll{to{transform:translate(-50%)}}@media(max-width:760px){.lp-marquee .set{gap:40px;padding-right:40px}.lp-marquee{mask-image:linear-gradient(to right,transparent 0,#000 80px,#000 calc(100% - 80px),transparent 100%)}}.lp-final{position:relative;overflow:hidden;display:flex;justify-content:center;padding:150px 40px;background:var(--bg)}.lp-final .inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:32px;max-width:963px}.lp-final h2{font:700 40px/1.1 var(--font);letter-spacing:.05em;color:var(--heading);text-align:center;margin:0}.lp-final p{color:var(--heading);text-align:center;max-width:758px;margin:0;font-size:16px;line-height:24px}@media(max-width:760px){.lp-final{padding:80px 24px}.lp-final .inner{gap:24px}.lp-final h2{font-size:26px;line-height:32px}}.lp-space{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.lp-space .tw{animation:lp-twinkle 4s ease-in-out infinite}@keyframes lp-twinkle{50%{opacity:.1}}.lp-astro{overflow:visible;position:absolute;z-index:0;pointer-events:none;right:max(24px,calc((100% - 1320px)/2 + 20px));top:110px;width:400px;height:400px;animation:lp-drift 9s ease-in-out infinite;transform-origin:55% 45%}@keyframes lp-drift{50%{transform:translate(-6px,-14px) rotate(4deg)}}.lp-racks{animation:none}@media(max-width:1250px){.lp-astro{width:300px;height:300px;top:150px;opacity:.9}}@media(max-width:1000px){.lp-astro{width:200px;height:200px;top:auto;bottom:150px;right:8px;opacity:.55}}@media(max-width:640px){.lp-astro{width:130px;height:130px;bottom:24px}}.lp-planet{position:absolute;z-index:0;pointer-events:none;overflow:visible;top:36px;right:max(24px,calc((100% - 1320px)/2 + 40px));width:120px;height:80px;opacity:.9}@media(max-width:1000px){.lp-planet{width:84px;height:56px;top:24px;right:16px;opacity:.7}}.lp-pcard .txt{gap:10px}.lp-pcard .blurb{margin:0;font-size:14px;line-height:20px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.lp-pcard .meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:auto;font-size:13px;color:var(--muted)}.lp-pcard .meta span{display:inline-flex;align-items:center;gap:5px}.lp-pcard .meta svg{width:14px;height:14px}.lp-hero .lead.lp-lines{display:flex;flex-direction:column;gap:4px;max-width:none;color:var(--muted);font-size:18px;line-height:1.5}.lp-lines>span{display:block;min-height:1.5em}.lp-caret{display:inline-block;width:2px;height:1.05em;margin-left:3px;vertical-align:-.15em;background:var(--hi);animation:lp-blink 1s steps(1) infinite}@keyframes lp-blink{50%{opacity:0}}.lp-hero-cta{display:grid;gap:10px;width:min(420px,100%);margin-top:40px}.lp-btn.lp-go{height:58px;font-size:19px;border-radius:10px}.lp-btn.lp-go svg{width:20px;height:20px}.lp-hero-more{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lp-hero-more .lp-btn{height:46px;font-size:16px;border-radius:10px}@media(max-width:760px){.lp-hero h1 br{display:none}.lp-hero .lead.lp-lines{font-size:16px}.lp-hero-cta{margin-top:28px}}@media(prefers-reduced-motion:reduce){.lp-caret{animation:none}}@media(max-width:480px){.nav .bar{gap:10px;padding:0 10px}.nav .brand{font-size:17px;gap:8px}.nav .brand .logo-full{height:28px}.nav-right{gap:10px}.nav-right .lp-btn{height:32px;padding:0 12px;font-size:14px}}@media(max-width:400px){.nav-right a.nav-icon{display:none}}body:not(.signed-in) [data-signed-in-only]{display:none!important}
