@font-face{font-family:"Press Start 2P";src:url(../fonts/press-start-2p-latin-400-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:Lilita One;src:url(../fonts/lilita-one-latin-400-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:Atkinson Hyperlegible Next;src:url(../fonts/atkinson-hyperlegible-next-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Atkinson Hyperlegible Next;src:url(../fonts/atkinson-hyperlegible-next-latin-700-normal.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Fraunces;src:url(../fonts/fraunces-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Fraunces;src:url(../fonts/fraunces-latin-700-normal.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Fraunces;src:url(../fonts/fraunces-latin-400-italic.woff2)format("woff2");font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(../fonts/jetbrains-mono-latin-400-normal.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(../fonts/jetbrains-mono-latin-700-normal.woff2)format("woff2");font-weight:700;font-display:swap}:root{--font-ui:system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:var(--font-ui);--font-code:"JetBrains Mono", ui-monospace, Menlo, monospace;--bg:#f4f4f4;--bg-image:none;--surface:#fff;--surface-2:#f0f0f0;--text:#111;--muted:#555;--border:#ccc;--accent:#0a62c9;--on-accent:#fff;--accent-2:#7b4fd6;--ok:#17803d;--bad:#b3261e;--warn:#8a5a00;--radius:8px;--radius-sm:6px;--shadow:0 2px 10px #0000001f;--title-bg:transparent;--title-text:var(--text);--code-bg:#1e1e24;--code-text:#e8e8ec;--code-gutter:#8a8a96;--tok-kw:#ff7ab2;--tok-str:#ffb86b;--tok-num:#d0bfff;--tok-com:#9a9aa8;--tok-fn:#6bd7ff;--tok-def:#9ef0a0;--selection:#78a0ff59;--focus:0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent);--gap:16px;--bar:6px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-height:100vh;font:16px/1.55 var(--font-ui);color:var(--text);background-color:var(--bg);background-image:var(--bg-image);background-attachment:fixed;background-size:var(--bg-size,cover);background-position:var(--bg-position,0 0);background-repeat:var(--bg-repeat,repeat);margin:0}h1,h2,h3{font-family:var(--font-display);margin:0 0 .5em;line-height:1.2}h1{font-size:clamp(1.5rem,3vw,2.1rem)}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 .8em}a{color:var(--link,var(--accent))}code,pre,kbd{font-family:var(--font-code);font-size:.92em}code,pre,kbd,.cm-editor,.console,.xterm{font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0}:focus-visible{box-shadow:var(--focus);outline:none}[hidden]{display:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.icon{vertical-align:-.2em;flex:none;width:1.15em;height:1.15em}.muted{color:var(--muted)}.section-title{color:var(--page-text,var(--text));width:-moz-fit-content;width:fit-content;padding:var(--page-label-pad,0);background:var(--page-label-bg,transparent);border-radius:var(--radius-sm);text-shadow:var(--page-text-shadow,none);margin:8px 0 -4px}#app{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:20;background:var(--topbar-bg,var(--surface));color:var(--topbar-text,var(--text));border-bottom:1px solid var(--border);box-shadow:var(--topbar-shadow,none);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 16px;display:flex;position:sticky;top:0}.brand{font:700 1.05rem var(--font-display);color:inherit;align-items:center;gap:8px;margin-right:8px;text-decoration:none;display:flex}.brand .logo{width:28px;height:28px}.nav{flex-wrap:wrap;gap:4px;display:flex}.nav a{color:inherit;border-radius:var(--radius-sm);padding:6px 10px;text-decoration:none}.nav a:hover{background:color-mix(in srgb, currentColor 10%, transparent)}.nav a[aria-current=page]{background:var(--nav-active-bg,color-mix(in srgb, var(--accent) 18%, transparent));color:var(--nav-active-text,inherit);font-weight:700}.stats{align-items:center;gap:8px;margin-left:auto;display:flex}.stat{background:var(--chip-bg,var(--surface-2));color:var(--chip-text,var(--text));white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-weight:700;display:inline-flex}.stat .icon-flame{color:var(--flame,#e8562a)}.stat .icon-gem{color:var(--gem,#0a84ff)}.stat .icon-star{color:var(--star,#c79100)}main{width:100%;max-width:1240px;padding:var(--gap);flex:1;margin:0 auto}main.wide{max-width:none}.footer{text-align:center;color:var(--footer-text,var(--muted));padding:12px 16px 20px;font-size:.85rem}.footer a{color:inherit}.window{background:var(--surface);color:var(--text);border:var(--win-border,1px solid var(--border));border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;overflow:hidden}.titlebar{padding:var(--title-pad,10px 14px 0);background:var(--title-bg);color:var(--title-text);font:var(--title-font,700 .8rem var(--font-ui));text-transform:var(--title-case,uppercase);letter-spacing:var(--title-spacing,.06em);align-items:center;gap:8px;display:flex}.titlebar .title-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.titlebar .controls{display:var(--controls,none);gap:2px}.window-body{padding:var(--body-pad,14px)}.grid{gap:var(--gap);display:grid}.cols-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.stack{gap:var(--gap);flex-direction:column;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}.btn{font:var(--btn-font,700 .95rem var(--font-ui));padding:var(--btn-pad,8px 16px);color:var(--btn-text,var(--text));background:var(--btn-bg,var(--surface-2));border:var(--btn-border,1px solid var(--border));border-radius:var(--btn-radius,var(--radius-sm));box-shadow:var(--btn-shadow,none);cursor:pointer;text-transform:var(--btn-case,none);letter-spacing:var(--btn-spacing,normal);justify-content:center;align-items:center;gap:6px;min-height:38px;text-decoration:none;display:inline-flex}.btn:hover{filter:brightness(var(--hover-brightness,1.06))}.btn:active{box-shadow:var(--btn-shadow-active,var(--btn-shadow,none));transform:var(--btn-press,translateY(1px))}.btn.primary{background:var(--primary-bg,var(--accent));color:var(--on-accent);border:var(--primary-border,1px solid transparent)}.btn.ok{background:var(--ok);color:#fff;border-color:#0000}.btn:disabled{opacity:.55;cursor:not-allowed;filter:none;transform:none}.btn.small{min-height:30px;padding:4px 10px;font-size:.85rem}input[type=text],input[type=search],select,textarea{font:inherit;color:var(--text);background:var(--field-bg,var(--surface-2));border:var(--field-border,1px solid var(--border));border-radius:var(--radius-sm);box-shadow:var(--field-shadow,none);min-height:38px;padding:7px 10px}.bar{height:var(--bar);background:var(--track-bg,color-mix(in srgb, var(--text) 14%, transparent));box-shadow:var(--bar-shadow,none);border-radius:999px;overflow:hidden}.bar>span{background:var(--bar-fill,var(--accent));border-radius:inherit;width:0;height:100%;transition:width .5s;display:block}.pill{background:var(--chip-bg,var(--surface-2));color:var(--chip-text,var(--text));border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:.8rem;font-weight:700;display:inline-flex}.pill.lang{font-family:var(--font-code)}.hero{grid-template-columns:auto 1fr;align-items:center;gap:18px;display:grid}.hero .mascot{width:104px;height:104px}.hero h1{margin-bottom:6px}.level-line{color:var(--muted);justify-content:space-between;margin-top:6px;font-size:.85rem;display:flex}.quest{border-bottom:1px dashed var(--border);grid-template-columns:1fr auto;align-items:center;gap:4px 10px;padding:8px 0;display:grid}.quest:last-child{border-bottom:0}.quest.done .quest-text{color:var(--muted);text-decoration:line-through}.quest .bar{grid-column:1/-1}.track-card{flex-direction:column;height:100%;display:flex}.track-card .window-body{flex-direction:column;flex:1;gap:10px;display:flex}.track-card .desc{color:var(--muted);flex:1;margin:0}.track-card h3{align-items:center;gap:8px;margin:0;display:flex}.track-icon{border-radius:var(--radius-sm);background:var(--accent);width:38px;height:38px;color:var(--on-accent);font:700 .85rem var(--font-code);flex:none;place-items:center;display:grid}.path{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.path a,.path .locked{color:inherit;border-radius:var(--radius-sm);border:1px solid #0000;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:grid}.path a:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:var(--border)}.path .node{background:var(--surface-2);border:2px solid var(--border);border-radius:50%;place-items:center;width:44px;height:44px;font-weight:700;display:grid}.path .done .node{background:var(--ok);color:#fff;border-color:var(--ok)}.path .next .node{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.path .locked{opacity:.6;cursor:not-allowed}.lesson-layout{gap:var(--gap);grid-template-columns:minmax(300px,.9fr) minmax(360px,1.1fr);align-items:start;display:grid}.lesson-text{max-height:calc(100vh - 140px);overflow:auto}.lesson-text .window-body{font-size:1rem}.prose h1{font-size:1.6rem}.prose h2{margin-top:1.2em;font-size:1.15rem}.prose pre{background:var(--code-bg);color:var(--code-text);border-radius:var(--radius-sm);padding:12px 14px;line-height:1.45;overflow:auto}.prose :not(pre)>code{background:var(--inline-code-bg,var(--surface-2));color:var(--inline-code-text,inherit);border-radius:4px;padding:1px 5px}.prose blockquote{border-left:4px solid var(--accent);background:var(--surface-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:0 0 1em;padding:8px 14px}.prose blockquote p:last-child{margin:0}.prose ul,.prose ol{padding-left:1.3em}.prose table{border-collapse:collapse;margin-bottom:1em}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:4px 8px}.workspace{gap:var(--gap);flex-direction:column;min-width:0;display:flex}.editor-host{background:var(--code-bg);height:clamp(260px,42vh,520px)}.editor-host .cm-editor{height:100%}.toolbar{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;display:flex}.console{font:.88rem/1.5 var(--font-code);background:var(--code-bg);color:var(--code-text);white-space:pre-wrap;word-break:break-word;min-height:90px;max-height:260px;margin:0;padding:10px 14px;overflow:auto}.console .warn{color:var(--tok-str)}.console .error{color:#ff8a8a}.console .status{color:var(--code-gutter);font-style:italic}.results{margin:0;padding:0;list-style:none}.results li{border-bottom:1px dashed var(--border);grid-template-columns:22px 1fr;gap:8px;padding:7px 0;display:grid}.results li:last-child{border-bottom:0}.results .pass .mark{color:var(--ok)}.results .fail .mark{color:var(--bad)}.results .msg{color:var(--muted);grid-column:2;font-size:.9rem}.result-banner{border-radius:var(--radius-sm);margin-bottom:10px;padding:10px 14px;font-weight:700}.result-banner.pass{background:color-mix(in srgb, var(--ok) 16%, var(--surface));color:var(--ok-text,var(--text));border:1px solid var(--ok)}.result-banner.fail{background:color-mix(in srgb, var(--bad) 12%, var(--surface));color:var(--bad-text,var(--text));border:1px solid var(--bad)}.sql-table{border-collapse:collapse;font:.85rem var(--font-code);max-width:100%;margin:6px 0 12px;display:block;overflow:auto}.sql-table th,.sql-table td{border:1px solid color-mix(in srgb, var(--code-text) 25%, transparent);text-align:left;white-space:nowrap;padding:3px 8px}.sql-table th{color:var(--tok-fn)}.term-host{background:#0b0e0d;height:clamp(300px,52vh,560px);padding:6px}.lesson-nav{margin-top:var(--gap);justify-content:space-between;gap:10px;display:flex}.tutor-log{flex-direction:column;gap:8px;max-height:300px;margin-bottom:10px;display:flex;overflow:auto}.bubble{border-radius:var(--radius);background:var(--surface-2);white-space:pre-wrap;max-width:92%;padding:8px 12px}.bubble.me{background:color-mix(in srgb, var(--accent) 18%, var(--surface));align-self:flex-end}.bubble.spot{align-self:flex-start}.spot-head{align-items:center;gap:8px;display:flex}.spot-head .mascot{width:34px;height:34px}.badge{grid-template-columns:46px 1fr;align-items:center;gap:12px;display:grid}.badge .medal{background:var(--surface-2);width:46px;height:46px;color:var(--muted);border:2px dashed var(--border);border-radius:50%;place-items:center;display:grid}.badge.got .medal{background:var(--medal,#e6c229);color:#3b2a00;border:2px solid color-mix(in srgb, var(--medal,#e6c229) 60%, #000)}.badge.got .medal .icon{width:24px;height:24px}.table-wrap{overflow-x:auto}.board{border-collapse:collapse;width:100%}.board th,.board td{text-align:left;border-bottom:1px solid var(--border);padding:10px}.board .me td{font-weight:700}.avatar{color:#fff;vertical-align:middle;border-radius:50%;place-items:center;width:30px;height:30px;margin-right:8px;font-weight:700;display:inline-grid}.looks{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.look-card{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);cursor:pointer;text-align:left;font:inherit;flex-direction:column;gap:6px;padding:10px;display:flex}.look-card[aria-pressed=true]{border-color:var(--accent);box-shadow:var(--focus)}.look-card .swatch{border-radius:4px;height:34px;display:flex;overflow:hidden}.look-card .swatch span{flex:1}.look-card small{color:var(--muted)}.toasts{z-index:50;flex-direction:column;gap:8px;max-width:min(360px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--surface);color:var(--text);border:var(--win-border,1px solid var(--border));border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:10px;padding:10px 14px;animation:.25s toast-in;display:flex}.toast .icon{width:22px;height:22px;color:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}dialog{width:100%;max-width:min(520px,100vw - 32px);color:var(--text);background:0 0;border:0;padding:0}dialog::backdrop{background:#00000073}.celebrate{text-align:center}.celebrate .big{font:700 2.4rem var(--font-display);color:var(--accent-strong,var(--accent));margin:4px 0 10px}.celebrate ul{flex-direction:column;gap:6px;margin:0 0 14px;padding:0;list-style:none;display:flex}.empty{text-align:center;color:var(--muted);padding:30px}@media (max-width:860px){.topbar{position:static}.lesson-layout{grid-template-columns:1fr}.lesson-text{max-height:none}.stats{margin-left:0}.hero{grid-template-columns:1fr}.hero .mascot{width:72px;height:72px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.tok-keyword,.tok-operatorKeyword,.tok-modifier,.tok-controlKeyword{color:var(--tok-kw)}.tok-string,.tok-string2,.tok-regexp{color:var(--tok-str)}.tok-number,.tok-bool,.tok-atom,.tok-null{color:var(--tok-num)}.tok-comment,.tok-lineComment,.tok-blockComment{color:var(--tok-com);font-style:italic}.tok-variableName.tok-definition,.tok-definition{color:var(--tok-def)}.tok-propertyName,.tok-function,.tok-className,.tok-typeName{color:var(--tok-fn)}[data-look=win98]{--page-text:#fff;--page-text-shadow:1px 1px 0 #000;--font-ui:Tahoma, Verdana, "Segoe UI", sans-serif;--font-display:Tahoma, Verdana, sans-serif;--bg:teal;--bg-image:url(../wallpapers/camp98.svg);--surface:silver;--surface-2:#fff;--text:#000;--muted:#3a3a3a;--border:gray;--accent:navy;--on-accent:#fff;--link:navy;--ok:#006400;--bad:#a00000;--radius:0;--radius-sm:0;--shadow:none;--bevel-out:inset -1px -1px #0a0a0a, inset 1px 1px #fff, inset -2px -2px gray, inset 2px 2px #dfdfdf;--bevel-in:inset -1px -1px #fff, inset 1px 1px gray, inset -2px -2px #dfdfdf, inset 2px 2px #0a0a0a;--win-border:0;--title-bg:linear-gradient(90deg, navy, #0d5ea8);--title-text:#fff;--title-pad:3px 3px 3px 6px;--title-font:700 .82rem Tahoma, Verdana, sans-serif;--title-case:none;--title-spacing:0;--controls:flex;--body-pad:12px;--btn-bg:silver;--btn-text:#000;--btn-border:0;--btn-shadow:var(--bevel-out);--btn-shadow-active:var(--bevel-in);--btn-press:none;--btn-font:400 .9rem Tahoma, Verdana, sans-serif;--primary-bg:silver;--primary-border:1px solid #000;--field-bg:#fff;--field-border:0;--field-shadow:var(--bevel-in);--chip-bg:silver;--chip-text:#000;--track-bg:#fff;--bar-fill:repeating-linear-gradient(90deg, navy 0 10px, transparent 10px 12px);--bar:16px;--bar-shadow:var(--bevel-in);--code-bg:#fff;--code-text:#000;--code-gutter:#555;--tok-kw:#00008b;--tok-str:#8b0000;--tok-num:#6b007a;--tok-com:#006400;--tok-fn:#005a5a;--tok-def:#000;--selection:#b5d0ff;--inline-code-bg:#fff;--nav-active-bg:transparent;--topbar-bg:#c0c0c06b;--topbar-text:#000;--footer-text:#fff;--flame:#c00000;--gem:navy;--star:#806000;--focus:0 0 0 1px #000, 0 0 0 2px #fff}[data-look=win98] .window{box-shadow:var(--bevel-out);padding:3px}[data-look=win98] .titlebar .controls span{width:16px;height:14px;box-shadow:var(--bevel-out);color:#000;background:silver;place-items:center;font:700 9px/1 Tahoma,sans-serif;display:grid}[data-look=win98] .btn.primary{outline-offset:-1px;color:#000;outline:1px solid #000;font-weight:700}[data-look=win98] .btn.ok{color:#006400;background:silver;font-weight:700}[data-look=win98] .editor-host,[data-look=win98] .console,[data-look=win98] .lesson-text .window-body{box-shadow:var(--bevel-in)}[data-look=win98] .console{color:silver;--code-text:silver;background:#000}[data-look=win98] .console .status{color:#9a9a9a}[data-look=win98] .lesson-text .window-body{background:#fff;margin:2px}[data-look=win98] .prose pre{color:#000;box-shadow:var(--bevel-in);background:#fff}[data-look=win98] .nav a{box-shadow:var(--bevel-out);background:silver}[data-look=win98] .nav a[aria-current=page]{box-shadow:var(--bevel-in);background:#dcdcdc}[data-look=win98] .stat{box-shadow:var(--bevel-in);background:silver;border-radius:0}[data-look=win98] .pill{box-shadow:var(--bevel-out);border-radius:0}[data-look=win98] .path .node{box-shadow:var(--bevel-out);background:silver;border:0;border-radius:0}[data-look=win98] .path .done .node{background:#006400}[data-look=win98] .path .next .node{background:navy}[data-look=win98] .path a:hover{color:#fff;background:navy;border-color:#0000}[data-look=win98] .track-icon{box-shadow:var(--bevel-out);border-radius:0}[data-look=win98] .result-banner{box-shadow:var(--bevel-in);background:#fff;border:0;border-radius:0}[data-look=win98] .look-card{box-shadow:var(--bevel-out);background:silver;border:0;border-radius:0}[data-look=win98] .look-card[aria-pressed=true]{box-shadow:var(--bevel-in)}[data-look=win98] .toast{box-shadow:var(--bevel-out);padding:10px 14px}[data-look=win98] .bubble{box-shadow:var(--bevel-in);background:#fff;border-radius:0}[data-look=win98] .bubble.me{background:#ffffe1}[data-look=win98] .topbar{-webkit-backdrop-filter:blur(3px)saturate(1.7);backdrop-filter:blur(3px)saturate(1.7);border-bottom:0;box-shadow:inset 0 1px #ffffffd9,inset 0 -1px #00000059,0 4px 18px #00000040}@supports ((-webkit-backdrop-filter:url(#x)) or (backdrop-filter:url(#x))){[data-look=win98] .topbar{-webkit-backdrop-filter:url(#ecc-glass)blur(1.5px)saturate(1.7);backdrop-filter:url(#ecc-glass)blur(1.5px)saturate(1.7)}}[data-look=win98] .brand{text-shadow:0 1px #ffffffb3}[data-look=win98] .footer{text-shadow:0 1px 2px #000}[data-look=glass]{--font-ui:-apple-system, "SF Pro Text", system-ui, "Segoe UI", sans-serif;--font-display:-apple-system, "SF Pro Display", system-ui, sans-serif;--bg:#0f0f13;--bg-image:radial-gradient(circle at 12% 18%, #0a84ff8c, transparent 32%), radial-gradient(circle at 85% 12%, #bf5af280, transparent 30%), radial-gradient(circle at 70% 85%, #30d15859, transparent 32%), radial-gradient(circle at 20% 90%, #ff9f0a52, transparent 30%);--surface:#1e202a94;--surface-2:#ffffff14;--text:#f2f2f7;--muted:#b4b4c0;--border:#ffffff29;--accent:#0a84ff;--on-accent:#fff;--link:#64b5ff;--accent-strong:#64b5ff;--ok:#30d158;--bad:#ff6961;--radius:20px;--radius-sm:12px;--shadow:0 10px 40px #00000059, inset 0 1px #ffffff2e;--title-text:#c7c7d1;--btn-bg:#ffffff1a;--btn-text:#f2f2f7;--btn-border:1px solid #ffffff2e;--btn-radius:999px;--btn-shadow:inset 0 1px #ffffff40;--primary-bg:linear-gradient(180deg, #2f97ff, #0a6fe0);--field-bg:#00000040;--chip-bg:#ffffff1a;--chip-text:#f2f2f7;--code-bg:#0a0a10b8;--topbar-bg:#16161e73;--track-bg:#ffffff1f;--bar-fill:linear-gradient(90deg, #0a84ff, #bf5af2);--flame:#ff9f0a;--gem:#64d2ff;--star:#ffd60a;--ok-text:#d8ffe2;--bad-text:#ffe1df;--medal:#ffd60a}[data-look=glass] .window,[data-look=glass] .topbar,[data-look=glass] .toast{-webkit-backdrop-filter:blur(26px)saturate(180%);backdrop-filter:blur(26px)saturate(180%)}[data-look=glass] .topbar{border-bottom:1px solid #ffffff1a}[data-look=glass] .track-icon{background:linear-gradient(135deg,#0a84ff,#bf5af2);border-radius:12px}[data-look=glass] .result-banner.pass{background:#30d15829}[data-look=glass] .result-banner.fail{background:#ff696129}[data-look=glass] .path .done .node,[data-look=glass] .btn.ok{color:#04210d}[data-look=glass] .bubble.me{background:#0a84ff4d}[data-look=terminal] body{font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0}[data-look=terminal]{--page-text:var(--phos);--phos:#a8dfb9;--phos-dim:#7fb592;--phos-hot:#5fd68a;--font-ui:"JetBrains Mono", ui-monospace, Menlo, monospace;--font-display:"JetBrains Mono", ui-monospace, monospace;--bg:#0b100e;--surface:#101614;--surface-2:#16201c;--text:var(--phos);--muted:var(--phos-dim);--border:color-mix(in srgb, var(--phos) 30%, transparent);--accent:var(--phos-hot);--on-accent:#08110c;--ok:var(--phos-hot);--bad:#ff7b72;--radius:0;--radius-sm:0;--shadow:none;--title-case:none;--title-spacing:0;--title-font:700 .85rem "JetBrains Mono", monospace;--btn-bg:transparent;--btn-text:var(--phos);--btn-border:1px solid var(--phos);--btn-font:700 .88rem "JetBrains Mono", monospace;--primary-bg:var(--phos-hot);--field-bg:#0b100e;--chip-bg:transparent;--chip-text:var(--phos);--code-bg:#0b100e;--code-text:var(--phos);--code-gutter:var(--phos-dim);--tok-kw:#ffd479;--tok-str:#c3f08a;--tok-num:#ffb3e6;--tok-com:#6f8f7c;--tok-fn:#8be9fd;--tok-def:#e6fff0;--selection:color-mix(in srgb, var(--phos) 30%, transparent);--track-bg:#16201c;--bar-fill:var(--phos-hot);--flame:#ffb454;--gem:#8be9fd;--star:#ffd479;--medal:var(--phos-hot);--inline-code-bg:#16201c}[data-look=terminal][data-tint=amber]{--phos:#ffc66d;--phos-dim:#c9984f;--phos-hot:#ffb000;--bg:#110c05;--surface:#161007;--surface-2:#21180b;--on-accent:#1a1000}[data-look=terminal][data-tint=crt]{--phos:#8cff9e;--phos-dim:#5fc472;--phos-hot:#3f6;--bg:#050b06;--surface:#07110a;--surface-2:#0c1a10}[data-look=terminal] .titlebar:before{content:"┌─ ";color:var(--muted)}[data-look=terminal] .titlebar .title-text:after{content:" ─┐";color:var(--muted)}[data-look=terminal] .window{border:1px solid var(--border)}[data-look=terminal] h1:before{content:"$ ";color:var(--phos-hot)}[data-look=terminal] .stat{border:1px solid var(--border)}[data-look=terminal] .nav a[aria-current=page]{background:var(--phos);color:var(--bg)}[data-look=terminal] .path .node{border-radius:0}[data-look=terminal] .path .done .node,[data-look=terminal] .btn.ok{color:var(--on-accent)}[data-look=terminal] .track-icon,[data-look=terminal] .badge .medal{border-radius:0}[data-look=terminal] .badge.got .medal{color:var(--on-accent)}[data-look=terminal] .avatar{border-radius:0}[data-look=terminal] ::selection{background:var(--phos);color:var(--bg)}[data-look=terminal][data-tint=crt] body:after{content:"";pointer-events:none;z-index:100;background:repeating-linear-gradient(0deg,#00000038 0 1px,#0000 1px 3px);position:fixed;inset:0}[data-look=terminal][data-tint=crt] body{text-shadow:0 0 6px color-mix(in srgb, var(--phos) 45%, transparent)}[data-look=arcade]{--page-text:#fc0;--font-display:"Press Start 2P", ui-monospace, monospace;--font-ui:"Atkinson Hyperlegible Next", system-ui, sans-serif;--bg:#0f0f1b;--bg-image:linear-gradient(#00e5ff0d 1px, transparent 1px), linear-gradient(90deg, #00e5ff0d 1px, transparent 1px);--bg-size:24px 24px;--surface:#1a1a2e;--surface-2:#24243e;--text:#f4f4ff;--muted:#b8b8d8;--border:#4a4a7a;--accent:#d6003a;--on-accent:#fff;--link:#00e5ff;--accent-strong:#fc0;--ok:#00ff85;--bad:#ff5c7a;--radius:0;--radius-sm:0;--px:4px;--shadow:0 0 0 var(--px) #000, var(--px) var(--px) 0 var(--px) #000;--win-border:var(--px) solid #00e5ff;--title-font:400 .7rem "Press Start 2P", monospace;--title-text:#00e5ff;--title-case:uppercase;--title-pad:12px 14px 4px;--btn-font:400 .68rem/1.4 "Press Start 2P", monospace;--btn-pad:10px 14px;--btn-bg:#24243e;--btn-text:#fff;--btn-border:var(--px) solid #fff;--btn-shadow:var(--px) var(--px) 0 #000;--btn-shadow-active:none;--btn-press:translate(var(--px), var(--px));--primary-bg:#d6003a;--primary-border:var(--px) solid #fff;--field-bg:#0f0f1b;--chip-bg:#0f0f1b;--chip-text:#fc0;--code-bg:#0b0b14;--code-text:#e8e8ff;--tok-kw:#ff6b9a;--tok-str:#fc0;--tok-num:#00e5ff;--tok-com:#8a8ab0;--tok-fn:#00ff85;--track-bg:#0b0b14;--bar:14px;--bar-fill:repeating-linear-gradient(90deg, #00ff85 0 10px, #00c968 10px 14px);--flame:#f80;--gem:#00e5ff;--star:#fc0;--medal:#fc0;--ok-text:#d8ffe9;--bad-text:#ffe0e7}[data-look=arcade] h1,[data-look=arcade] h2,[data-look=arcade] h3{letter-spacing:.02em;line-height:1.5}[data-look=arcade] h1{color:#fc0;text-shadow:3px 3px #f04;font-size:clamp(1rem,2.4vw,1.4rem)}[data-look=arcade] h2{font-size:.85rem}[data-look=arcade] h3{font-size:.75rem}[data-look=arcade] .prose h1{font-size:1.1rem}[data-look=arcade] .brand{color:#fc0;font-size:.7rem}[data-look=arcade] .topbar{border-bottom:var(--px) solid #f04;background:#0f0f1b}[data-look=arcade] .nav a{padding:8px;font:400 .6rem "Press Start 2P",monospace}[data-look=arcade] .nav a[aria-current=page]{color:#fff;background:#d6003a}[data-look=arcade] .stat{border:2px solid #fc0;border-radius:0;font:400 .62rem "Press Start 2P",monospace}[data-look=arcade] .pill{border-radius:0}[data-look=arcade] .window{margin:var(--px)}[data-look=arcade] .bar{border-radius:0;outline:2px solid #fff}[data-look=arcade] .bar>span{border-radius:0}[data-look=arcade] .path .node{border-radius:0;font-family:"Press Start 2P",monospace;font-size:.7rem}[data-look=arcade] .path .done .node,[data-look=arcade] .btn.ok{color:#002611}[data-look=arcade] .track-icon{border:2px solid #fff}[data-look=arcade] .badge .medal,[data-look=arcade] .avatar{border-radius:0}[data-look=arcade] .celebrate .big{color:#fc0;text-shadow:3px 3px #f04;font-size:1.4rem}[data-look=arcade] img,[data-look=arcade] .mascot{image-rendering:pixelated}[data-look=arcade] body:after{content:"";pointer-events:none;z-index:100;background:repeating-linear-gradient(0deg,#0000002e 0 2px,#0000 2px 4px);position:fixed;inset:0}[data-look=yard]{--page-label-bg:#fff8ec;--page-label-pad:2px 14px;--font-display:"Lilita One", "Atkinson Hyperlegible Next", system-ui, sans-serif;--font-ui:"Atkinson Hyperlegible Next", system-ui, sans-serif;--ink:#2b2118;--bg:#6dbb4f;--bg-image:linear-gradient(180deg, #9fd8f5 0, #c8ecfa 150px, transparent 150px), repeating-linear-gradient(90deg, #8a5a34 0 22px, #a06b40 22px 26px, transparent 26px 34px), repeating-linear-gradient(100deg, #63b046 0 6px, #6dbb4f 6px 14px);--bg-size:100% 100%, 100% 70px, 100% 100%;--bg-position:0 0, 0 110px, 0 0;--bg-repeat:no-repeat, no-repeat, repeat;--surface:#fff8ec;--surface-2:#f4e7cf;--text:var(--ink);--muted:#5e4a38;--border:var(--ink);--accent:#d8342f;--on-accent:#fff;--link:#a6211d;--ok:#2f7d1e;--bad:#b3261e;--radius:18px;--radius-sm:12px;--win-border:3px solid var(--ink);--shadow:6px 6px 0 var(--ink);--title-font:400 1.05rem "Lilita One", sans-serif;--title-case:none;--title-spacing:.01em;--title-text:#8a5a34;--btn-font:400 1.02rem "Lilita One", sans-serif;--btn-bg:#fff8ec;--btn-border:3px solid var(--ink);--btn-radius:999px;--btn-shadow:3px 3px 0 var(--ink);--btn-shadow-active:none;--btn-press:translate(3px, 3px);--primary-bg:#d8342f;--primary-border:3px solid var(--ink);--field-border:3px solid var(--ink);--chip-bg:#fff8ec;--chip-text:var(--ink);--code-bg:#17131f;--code-text:#f5ecdf;--tok-kw:#ff8f6b;--tok-str:#ffd76b;--tok-num:#9fd8f5;--tok-com:#a99c8f;--tok-fn:#9be36f;--track-bg:#f4e7cf;--bar:12px;--bar-fill:#d8342f;--topbar-bg:#fff8ec;--flame:#d8342f;--gem:#2b7fb8;--star:#a77b00;--medal:#e6c229;--footer-text:#17131f}[data-look=yard] .topbar{border-bottom:3px solid var(--ink)}[data-look=yard] .stat,[data-look=yard] .bar{border:2px solid var(--ink)}[data-look=yard] .track-icon{border:3px solid var(--ink);border-radius:50%}[data-look=yard] .path .node{border:3px solid var(--ink)}[data-look=yard] .path .done .node{background:#2f7d1e}[data-look=yard] h1{color:#17131f}[data-look=yard] .footer{font-weight:700}[data-look=hose]{--page-text:#ece8df;--font-display:"Fraunces", Georgia, serif;--font-ui:Georgia, "Times New Roman", serif;--ink:#111;--bg:#1a1a1a;--bg-image:radial-gradient(ellipse at center, #3a3a3a 0, #141414 75%);--surface:#dedad2;--surface-2:#cdc8bd;--text:var(--ink);--muted:#3d3d3d;--border:var(--ink);--accent:#111;--on-accent:#ece8df;--link:#111;--ok:#1f4d1f;--bad:#6b1111;--radius:255px 18px 225px 18px / 18px 225px 18px 255px;--radius-sm:125px 12px 115px 12px / 12px 115px 12px 125px;--win-border:3px solid var(--ink);--shadow:0 0 0 6px #dedad2, 0 0 0 9px var(--ink), 0 12px 30px #0009;--title-font:italic 700 1.05rem "Fraunces", Georgia, serif;--title-case:none;--title-spacing:.02em;--title-pad:14px 22px 0;--body-pad:16px 22px 20px;--btn-font:700 1rem "Fraunces", Georgia, serif;--btn-bg:#dedad2;--btn-border:3px solid var(--ink);--btn-shadow:3px 3px 0 var(--ink);--btn-shadow-active:none;--btn-press:translate(3px, 3px);--primary-bg:#111;--primary-border:3px solid #111;--field-border:2px solid var(--ink);--chip-bg:#dedad2;--chip-text:var(--ink);--code-bg:#161616;--code-text:#e7e3da;--code-gutter:#9a968e;--tok-kw:#fff;--tok-str:#c9c5bc;--tok-num:#e7e3da;--tok-com:#8f8b84;--tok-fn:#f5f2ea;--tok-def:#e7e3da;--track-bg:#b9b4a9;--bar-fill:#111;--topbar-bg:#dedad2;--flame:#111;--gem:#111;--star:#111;--medal:#e7e3da;--footer-text:#cfcac0;--ok-text:#111;--bad-text:#111}[data-look=hose] .topbar{border-bottom:4px double var(--ink)}[data-look=hose] .window{margin:9px 0}[data-look=hose] main{padding-inline:26px}[data-look=hose] h1{letter-spacing:.01em;font-style:italic}[data-look=hose] .stat{border:2px solid var(--ink)}[data-look=hose] .track-icon{border:3px solid var(--ink);color:#ece8df;background:#111;border-radius:50%}[data-look=hose] .path .node{border:3px solid var(--ink)}[data-look=hose] .path .done .node{background:#111}[data-look=hose] .badge.got .medal{border:3px solid var(--ink);color:#111}[data-look=hose] #app{filter:grayscale()}[data-look=hose] body:after{content:"";pointer-events:none;z-index:100;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");animation:.42s steps(3,end) infinite hose-grain;position:fixed;inset:-50%}[data-look=hose] #app{animation:4s step-end infinite hose-flicker}@keyframes hose-grain{33%{transform:translate(-3%,2%)}66%{transform:translate(2%,-3%)}}@keyframes hose-flicker{0%,to{opacity:1}41%{opacity:.94}43%{opacity:1}77%{opacity:.97}}@media (prefers-reduced-motion:reduce){[data-look=hose] body:after,[data-look=hose] #app{animation:none}}[data-look=hifi]{--page-text:#f2efe9;--font-ui:"Helvetica Neue", Helvetica, Arial, sans-serif;--font-display:"Helvetica Neue", Helvetica, Arial, sans-serif;--bg:#1a1a1e;--bg-image:radial-gradient(ellipse at 50% 0, #34343a 0, #1a1a1e 60%);--metal:linear-gradient(180deg, #ffffff8c, #fff0 40%), repeating-linear-gradient(90deg, #dcdad6 0 2px, #d2d0cc 2px 3px, #e0deda 3px 5px);--surface:#dad8d4;--surface-2:#efeeeb;--text:#1b1b1d;--muted:#4c4c52;--border:#9c9a96;--accent:#c2410c;--on-accent:#fff;--link:#a3360a;--accent-strong:#c2410c;--ok:#1d7a3a;--bad:#b3261e;--radius:14px;--radius-sm:9px;--win-border:1px solid #8e8c88;--shadow:0 1px 0 #fffc inset, 0 -1px 0 #0000002e inset, 0 14px 30px #00000080;--title-text:#55555b;--title-font:700 .7rem "Helvetica Neue", Helvetica, sans-serif;--title-spacing:.18em;--btn-bg:linear-gradient(180deg, #fbfbfa, #d6d4d0);--btn-text:#1b1b1d;--btn-border:1px solid #8e8c88;--btn-radius:10px;--btn-shadow:0 1px 0 #fff inset, 0 2px 3px #0000004d;--btn-shadow-active:0 2px 4px #00000059 inset;--btn-case:uppercase;--btn-spacing:.06em;--btn-font:700 .78rem "Helvetica Neue", Helvetica, sans-serif;--primary-bg:linear-gradient(180deg, #e8562a, #b83c0b);--primary-border:1px solid #7d2a07;--field-bg:#f7f6f4;--field-shadow:0 1px 3px #00000040 inset;--chip-bg:#121214;--chip-text:#f2efe9;--code-bg:#121214;--code-text:#ece9e4;--tok-kw:#ff8a5c;--tok-str:#f2c879;--tok-num:#8fd3ff;--tok-com:#8d8a85;--tok-fn:#a8e6a1;--track-bg:#121214;--bar-fill:linear-gradient(90deg, #e8562a, #ffb36b);--bar-shadow:0 1px 2px #0009 inset;--bar:8px;--topbar-bg:#121214;--topbar-text:#f2efe9;--nav-active-bg:#e8562a;--nav-active-text:#121214;--flame:#ff8a5c;--gem:#8fd3ff;--star:#f2c879;--footer-text:#a9a6a0}[data-look=hifi] .window{background:var(--metal)}[data-look=hifi] .titlebar{padding-top:12px}[data-look=hifi] .titlebar:before{content:"";background:#39d353;border-radius:50%;width:8px;height:8px;box-shadow:0 0 6px #39d353,0 0 0 1px #0d5a1f}[data-look=hifi] .topbar{border-bottom:1px solid #000;box-shadow:0 1px #333}[data-look=hifi] .stat{font-family:JetBrains Mono,monospace;box-shadow:0 1px #ffffff1f}[data-look=hifi] .track-icon{color:#0000;background:radial-gradient(circle,#e8562a 0 18%,#111 19% 100%);border-radius:50%;box-shadow:0 0 0 2px #333,0 3px 6px #00000080}[data-look=hifi] .path .node{background:radial-gradient(circle at 35% 30%,#fff,#c9c7c3);box-shadow:0 2px 4px #0000004d}[data-look=hifi] .path .done .node{background:radial-gradient(circle at 35% 30%,#4ccf72,#1d7a3a)}[data-look=hifi] .path .next .node{background:radial-gradient(circle at 35% 30%,#ff8a5c,#c2410c)}[data-look=hifi] .look-card{background:var(--metal)}[data-look=paper]{--font-display:"Fraunces", Georgia, serif;--font-ui:"Atkinson Hyperlegible Next", system-ui, sans-serif;--bg:#f3f1ea;--surface:#f3f1ea;--surface-2:#e8e5da;--text:#1c1b19;--muted:#55524b;--border:#1c1b19;--accent:#c4122f;--on-accent:#fff;--link:#a30f27;--ok:#1f6b35;--bad:#a30f27;--radius:0;--radius-sm:0;--shadow:none;--win-border:0;--title-text:#c4122f;--title-font:700 .72rem "Atkinson Hyperlegible Next", sans-serif;--title-spacing:.16em;--title-pad:12px 0 0;--body-pad:10px 0 16px;--btn-bg:transparent;--btn-border:1px solid #1c1b19;--btn-radius:0;--primary-bg:#1c1b19;--primary-border:1px solid #1c1b19;--field-bg:#fbfaf6;--chip-bg:transparent;--chip-text:#1c1b19;--code-bg:#1c1b19;--code-text:#f3f1ea;--tok-kw:#ff8fa0;--tok-str:#f2d58c;--tok-num:#b9d4ff;--tok-com:#a8a396;--tok-fn:#a6e3b8;--track-bg:#e0dccf;--bar:4px;--bar-fill:#c4122f;--topbar-bg:#f3f1ea;--nav-active-bg:transparent;--flame:#c4122f;--gem:#1c1b19;--star:#1c1b19;--medal:#c4122f;--gap:24px}[data-look=paper] .window{border-top:2px solid #1c1b19}[data-look=paper] .topbar{border-bottom:3px double #1c1b19;padding:14px 24px}[data-look=paper] .brand{font:italic 700 1.5rem Fraunces,Georgia,serif}[data-look=paper] .nav a[aria-current=page]{text-underline-offset:6px;-webkit-text-decoration:underline #c4122f;text-decoration:underline #c4122f;text-decoration-thickness:2px}[data-look=paper] h1{letter-spacing:-.01em;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700}[data-look=paper] .stat{border:1px solid #1c1b19;border-radius:0}[data-look=paper] .pill{border:1px solid;border-radius:0}[data-look=paper] .track-icon{color:#c4122f;background:0 0;border:1px solid #c4122f;border-radius:0;font-family:Fraunces,serif;font-size:1.1rem}[data-look=paper] .path .node{border-radius:0;font-family:Fraunces,serif}[data-look=paper] .path a,[data-look=paper] .path .locked{border-bottom:1px solid #c9c4b6;border-radius:0}[data-look=paper] .badge.got .medal{color:#fff;border-color:#c4122f}[data-look=paper] .prose{font-size:1.05rem}[data-look=paper] .prose>p:first-of-type:first-letter{float:left;color:#c4122f;margin:.06em .08em 0 0;font:700 3.1em/.8 Fraunces,serif}[data-look=paper] dialog .window{background:#f3f1ea;padding:0 20px;box-shadow:0 20px 60px #00000059}
