:root{--bg:#15171c;--panel:#1c1f26;--panel-raised:#252932;--border:#2e333d;--text:#e3e6ec;--muted:#8e95a3;--accent:#8ab4ff;--run:#3fae5a;--stop:#d9534f;--warn:#ffb347;--danger:#ff5a4f;--radius:6px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:13px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overflow:hidden}.app{grid-template:"toolbar toolbar toolbar""palette canvas inspector"1fr"palette dock inspector""warnings warnings warnings"/220px 1fr 300px;height:100%;display:grid}.toolbar{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;grid-area:toolbar;align-items:center;gap:16px;padding:8px 12px;display:flex}.brand{letter-spacing:.02em;align-items:center;gap:7px;font-weight:700;display:inline-flex}.brand-mark{display:block}.group{align-items:center;gap:6px;display:flex}.clock{font-variant-numeric:tabular-nums;color:var(--muted);min-width:80px}button,select,input{font:inherit;color:var(--text);background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius);padding:4px 10px}button{cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.active{border-color:var(--accent);color:var(--accent)}button.run{background:var(--run);border-color:var(--run);color:#fff;font-weight:600}button.stop{background:var(--stop);border-color:var(--stop);color:#fff;font-weight:600}button.danger{color:var(--danger)}button.mini,select.mini{padding:1px 6px;font-size:12px}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.swatches{flex-wrap:wrap;gap:4px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:18px;height:18px;padding:0}.swatch.active{border-color:var(--text)}.field{align-items:center;gap:6px;display:flex}.field>span:first-child{color:var(--muted)}.project-name{background:0 0;border-color:#0000;width:180px;font-weight:600}.project-name:hover:not(:disabled),.project-name:focus{border-color:var(--border);background:var(--panel-raised)}.sync-status{color:var(--muted);font-size:11px}.sync-status.saving{color:var(--accent)}.sync-status.offline,.sync-status.error{color:var(--warn)}.live-dot{color:var(--danger);font-size:11px;font-weight:700}.menus{margin-left:auto}.banners{z-index:3;gap:6px;width:min(640px,90%);display:grid;position:absolute;top:8px;left:50%;transform:translate(-50%)}.banner{border:1px solid var(--accent);border-radius:var(--radius);background:#1c1f26f2;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 10px;display:flex}.banner.subtle{border-color:var(--warn)}.banner.live{border-color:var(--danger)}.banner.live input{width:220px}.chat-log{gap:2px;max-height:140px;font-size:12px;display:grid;overflow:auto}.chat-log.compact{width:100%;max-height:64px}.dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;width:min(480px,94vw);max-height:86vh;padding:0}.dialog.wide{width:min(760px,94vw)}.dialog::backdrop{background:#0000008c}.dialog-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.dialog-head h2{margin:0;font-size:15px}.dialog-body{gap:14px;max-height:calc(86vh - 50px);padding:12px 14px;display:grid;overflow:auto}.dialog-body h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:4px 0;font-size:12px}.dialog fieldset{border:0;margin:0;padding:0}.stack{gap:8px;display:grid}.stack-field{gap:3px;display:grid}.stack-field>span{color:var(--muted);font-size:12px}.row-wrap{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.grow{flex:1;min-width:120px}button.link{color:var(--accent);text-align:left;background:0 0;border:0;padding:0}tr.current td{background:var(--panel-raised)}.example-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.example{text-align:left;gap:4px;padding:10px;display:grid}.palette{background:var(--panel);border-right:1px solid var(--border);grid-area:palette;padding:12px;overflow-y:auto}.palette input{width:100%;margin-bottom:8px}.palette ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.palette li{background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius);cursor:grab;padding:8px 10px;display:grid}.palette li:hover{border-color:var(--accent)}.palette li.disabled{opacity:.5;cursor:not-allowed}.palette .category{color:var(--muted);font-size:11px}.canvas{grid-area:canvas;min-width:0;min-height:0;position:relative;overflow:hidden}.canvas canvas{touch-action:none;display:block}.error-banner{z-index:4;border:1px solid var(--danger);border-radius:var(--radius);background:#3a1d1d;justify-content:space-between;gap:8px;padding:8px 12px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.dev-overlay{border-radius:var(--radius);color:#b8f5c4;pointer-events:none;background:#0000008c;gap:10px;padding:4px 8px;font:11px ui-monospace,monospace;display:flex;position:absolute;bottom:8px;right:8px}.inspector{background:var(--panel);border-left:1px solid var(--border);grid-area:inspector;padding:12px;overflow-y:auto}.inspector h2{margin:0 0 2px;font-size:15px}.inspector h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:16px 0 6px;font-size:12px}.tabs{gap:4px;margin:10px 0 4px;display:flex}.form{gap:8px;display:grid}.form .field{justify-content:space-between}.number{align-items:center;gap:4px;display:flex}.number input{width:110px}.unit{color:var(--muted)}.row{gap:6px;margin-top:16px;display:flex}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:12px}kbd{background:var(--panel-raised);border:1px solid var(--border);border-radius:4px;padding:0 4px;font:11px ui-monospace,monospace}.datasheet dl{grid-template-columns:auto 1fr;gap:3px 10px;margin:0;display:grid}.datasheet dt{color:var(--muted)}.datasheet dd{margin:0}.datasheet ul{margin:0;padding-left:18px}.datasheet a{color:var(--accent)}table{border-collapse:collapse;width:100%;font-size:12px}td,th{text-align:left;border-bottom:1px solid var(--border);padding:3px 4px}.level{text-align:center;background:var(--panel-raised);border-radius:4px;width:18px;display:inline-block}.level.high{background:var(--run);color:#fff}.feed-editor{gap:10px;display:grid}.field.check{justify-content:space-between}.field-feed{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);gap:8px;padding:8px;display:grid}.field-feed header{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.badge{width:100%;color:var(--muted);font-size:11px}.form input[type=text]{width:150px}.manual{align-items:center;gap:8px;display:flex}.manual input[type=range]{flex:1;padding:0}.readout{font-variant-numeric:tabular-nums;text-align:right;min-width:64px}.preview .tabs{margin:2px 0 0}.sparkline{background:var(--panel);border-radius:4px;display:block}.shapers summary{cursor:pointer;color:var(--muted);font-size:12px}.shaper{border-top:1px solid var(--border);gap:6px;margin-top:6px;padding-top:6px;display:grid}.shaper-head{justify-content:space-between;align-items:center;display:flex}.row-tight{gap:3px;display:flex}.dock{border-top:1px solid var(--border);background:var(--panel);flex-direction:column;grid-area:dock;min-width:0;display:flex}.dock-bar{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:4px 8px;display:flex}.dock-file{color:var(--muted);font:12px ui-monospace,monospace}.dock-status{color:var(--muted);margin-left:auto;font-size:12px}.dock-status.running{color:var(--run)}.dock-body{grid-template-columns:1fr 1fr;height:260px;min-height:0;display:grid}.code-editor{border-right:1px solid var(--border);min-width:0;min-height:0;overflow:hidden}.code-editor-host,.code-editor-host .cm-editor{height:100%}.console-host{background:var(--bg);min-width:0;height:100%;min-height:0;padding:4px 0 0 6px}.dock-body.code-hidden{grid-template-columns:1fr}.dock-tabs{flex-wrap:wrap;gap:3px;display:flex}.dock-panel{min-width:0;min-height:0;position:relative;overflow:auto}.console-wrap{height:100%}.console-wrap.hidden{display:none}.instrument{flex-direction:column;gap:6px;min-height:100%;padding:6px 8px;display:flex}.instrument-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.instrument .hint{margin:0}.logic-canvas{cursor:crosshair;border-radius:4px;width:100%;display:block}.channel-picker{position:relative}.channel-picker summary{cursor:pointer;color:var(--muted)}.channel-picker[open]>:not(summary){z-index:5;background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius);padding:6px;position:absolute}.channel-picker input[type=search]{width:260px;top:22px;left:0}.channel-list{width:320px;max-height:220px;display:grid;top:52px;left:0;overflow:auto}.channel-grid{grid-template-columns:repeat(7,auto);gap:2px 8px;display:grid;top:22px;left:0}.plot-host{width:100%}.plot-host .u-legend{color:var(--muted);font-size:11px}.table-scroll{max-height:200px;overflow:auto}tr.failed td{color:var(--danger)}.mono{white-space:pre-wrap;font:11px ui-monospace,monospace}.num{font-variant-numeric:tabular-nums}.serial-log{background:var(--bg);white-space:pre-wrap;border-radius:4px;flex:1;min-height:140px;max-height:170px;margin:0;padding:6px;font:12px ui-monospace,monospace;overflow:auto}.serial-input input{width:100%}.rail{gap:3px;margin-bottom:8px;display:grid}.rail-head{align-items:baseline;gap:12px;display:flex}.bar{background:var(--panel-raised);border-radius:4px;height:8px;overflow:hidden}.bar .fill{background:var(--run);height:100%}.bar .fill.over{background:var(--danger)}.file-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.file-grid figure{gap:4px;margin:0;display:grid}.file-grid img{background:var(--bg);border-radius:4px;width:100%}.file-icon{background:var(--panel-raised);text-transform:uppercase;height:80px;color:var(--muted);border-radius:4px;place-items:center;display:grid}.file-grid a{color:var(--accent)}.error-text{color:var(--danger);padding:8px}.warnings{background:var(--panel);border-top:1px solid var(--border);white-space:nowrap;grid-area:warnings;align-items:center;gap:8px;min-height:34px;padding:6px 12px;display:flex;overflow-x:auto}.warning{color:var(--warn);border-color:#5a4524}.warning.damage{color:#ff8a80;border-color:#8a2a24;font-weight:600}.pin-tooltip{z-index:10;pointer-events:none;border:1px solid var(--border);border-radius:var(--radius);background:#0c0d11eb;padding:4px 8px;font-size:12px;position:fixed}.pin-tooltip .volts{color:var(--accent);font-variant-numeric:tabular-nums}@media (width<=900px){.app{grid-template:"toolbar""canvas"1fr"dock""inspector""warnings"/1fr}.dock-body{grid-template-columns:1fr;height:360px}.palette{display:none}.inspector{max-height:40vh}}.palette-groups{align-content:start;gap:4px;min-height:0;display:grid;overflow-y:auto}.palette details>summary{cursor:pointer;color:var(--muted);padding:4px 2px;font-weight:600;list-style-position:inside}.palette details>summary .count{opacity:.7;font-size:.85em;font-weight:400}.palette li.module{position:relative}.palette li.module .module-actions{gap:2px;display:none;position:absolute;top:4px;right:4px}.palette li.module:hover .module-actions{display:flex}.palette li.empty{cursor:default;font-size:.85em}.file-button{cursor:pointer;margin:4px 0;display:inline-block}.button-row{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.plain-list{gap:4px;padding:0;list-style:none;display:grid}.plain-list li{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.internals-schematic{border-radius:4px;overflow:hidden}.internals-schematic svg{width:100%;height:auto;display:block}.internals-nets th.num,.internals-nets td.num{text-align:right;white-space:nowrap}.internals-nets .outside{color:var(--muted)}.internals-tag{border:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px}.oauth-buttons{gap:8px;display:grid}.oauth-button{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-raised);color:var(--text);justify-content:center;align-items:center;gap:10px;padding:9px 12px;font-weight:500;text-decoration:none;display:flex}.oauth-button:hover{border-color:var(--accent)}.oauth-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.oauth-or{color:var(--muted);align-items:center;gap:10px;margin:14px 0 6px;font-size:12px;display:flex}.oauth-or:before,.oauth-or:after{content:"";border-top:1px solid var(--border);flex:1}.challenge-app{--mono:ui-monospace, "JetBrains Mono", "Fira Code", "Cascadia Code", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--radius:6px;height:100%;font:14px/1.55 var(--sans);color:var(--text);background:var(--bg);flex-direction:column;display:flex}.challenge-app,:root[data-theme=light] .challenge-app :is(.ws-code,.ws-board,.ws-console,.landing-code){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1113;--panel:#12171a;--panel-raised:#1a2124;--card:#12171a;--border:#263034;--border-strong:#3a464b;--text:#dfe7e3;--text-soft:#c3ccc8;--heading:#f1f4f3;--muted:#8a9a93;--placeholder:#5f6c71;--accent:#4fd987;--accent-ink:#03140a;--accent-soft:#4fd98712;--accent-soft-strong:#4fd9871f;--accent-line:#4fd98759;--link:#7cc4f5;--selection:#7cc4f54d;--hover:#ffffff08;--amber:#ffb547;--warn-bg:#2a1d0b;--warn-text:#ffd9a0;--warn-soft:#ffb5470f;--warn-line:#ffb54780;--danger-line:#ff5f6d80;--gold:#ffd76a;--liked:#ff6b9a;--run:#2fbf6a;--stop:#e5484d;--warn:#ffb547;--danger:#ff5f6d;--easy:#4fd987;--medium:#ffb547;--hard:#ff5f6d;--inset:#0a0e10;--overlay:#0d1113eb;--shadow-card:0 0 0 1px #0006, 0 10px 30px #00000059;--shadow-pop:0 20px 50px #00000073;--chart-1:#22a85a;--chart-2:#4a8fe0;color:var(--text)}:root[data-theme=light] .challenge-app{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f7f5;--panel:#fff;--panel-raised:#edf1ef;--card:#fff;--border:#d3dcd8;--border-strong:#aab8b2;--text:#17201c;--text-soft:#3a4842;--heading:#0b1410;--muted:#5b6963;--placeholder:#8b9791;--accent:#14824a;--accent-ink:#fff;--accent-soft:#14824a12;--accent-soft-strong:#14824a21;--accent-line:#14824a66;--link:#1763ad;--selection:#1763ad2e;--hover:#00000009;--amber:#9a5a00;--warn-bg:#fff4df;--warn-text:#6e4000;--warn-soft:#9a5a0012;--warn-line:#9a5a0073;--danger-line:#c4283873;--gold:#9a7400;--liked:#c92a63;--run:#2fbf6a;--stop:#d93a40;--warn:#9a5a00;--danger:#c42838;--easy:#14824a;--medium:#9a5a00;--hard:#c42838;--inset:#eef2f0;--overlay:#f4f7f5eb;--shadow-card:0 1px 2px #1018140f, 0 6px 20px #1018140f;--shadow-pop:0 20px 50px #10181429;--chart-1:#1f9e55;--chart-2:#2a78d6}.challenge-app ::selection{background:var(--selection)}.challenge-app a{color:var(--link);text-decoration:none}.challenge-app a:hover{text-underline-offset:3px;text-decoration:underline}.challenge-app button,.challenge-app select,.challenge-app input,.challenge-app a.button,.challenge-app textarea{font:inherit;color:var(--text);background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius)}.challenge-app button,.challenge-app a.button{cursor:pointer;padding:4px 12px;display:inline-block}.challenge-app button:hover:not(:disabled),.challenge-app a.button:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.challenge-app button:disabled{opacity:.45;cursor:default}.challenge-app button:focus-visible,.challenge-app a:focus-visible,.challenge-app input:focus-visible,.challenge-app textarea:focus-visible{outline:2px solid var(--link);outline-offset:2px}.challenge-app input,.challenge-app textarea{padding:5px 10px}.challenge-app input::placeholder,.challenge-app textarea::placeholder{color:var(--placeholder)}.challenge-app textarea{resize:vertical}.challenge-app button.primary,.challenge-app a.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.challenge-app button.primary:hover:not(:disabled),.challenge-app a.button.primary:hover{color:var(--accent-ink)}.challenge-app button.run{background:var(--run);border-color:var(--run);color:#03140a;font-weight:700}.challenge-app button.stop{background:var(--stop);border-color:var(--stop);color:#fff;font-weight:700}.challenge-app button.run:hover:not(:disabled),.challenge-app button.stop:hover:not(:disabled){color:inherit;filter:brightness(1.1)}.challenge-app button.danger{color:var(--danger)}.challenge-app button.mini{padding:1px 7px;font-size:12px}.challenge-app button.link{color:var(--link);background:0 0;border:0;padding:0}.challenge-app button.link:hover{text-decoration:underline}.challenge-app button.big,.challenge-app a.button.big{padding:8px 18px;font-size:14.5px}.challenge-app button.liked{color:var(--liked);border-color:var(--liked)}.challenge-app .muted{color:var(--muted)}.challenge-app .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.challenge-app .error-text{color:var(--danger);padding:4px 0}.challenge-app .hidden{display:none!important}.challenge-app code{font-family:var(--mono)}.topbar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:22px;padding:8px 16px;display:flex}.topbar .brand{color:var(--text);letter-spacing:-.01em;align-items:center;gap:8px;font-size:16px;font-weight:700;display:inline-flex}.topbar .brand:hover{text-decoration:none}.topbar .brand-mark{width:24px;height:24px;display:block}.topbar nav{gap:2px;display:flex}.topbar nav a{color:var(--muted);border-radius:var(--radius);border:1px solid #0000;padding:4px 10px}.topbar nav a:hover{color:var(--text);border-color:var(--border);text-decoration:none}.topbar nav a.active{color:var(--accent);border-color:var(--border);background:var(--panel-raised)}.topbar .account{align-items:center;gap:10px;margin-left:auto;display:flex}.fineprint{text-align:center;color:var(--muted);margin:4px 0 0;font-size:12px}.offline{background:var(--warn-bg);border-bottom:1px solid var(--amber);color:var(--warn-text);padding:6px 16px;font-size:12.5px}.challenge-main{background:var(--bg);flex:1;min-height:0;position:relative;overflow:auto}.page{gap:16px;max-width:980px;margin:0 auto;padding:24px 16px 48px;display:grid}.card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:10px;padding:18px 20px}.card h1{color:var(--heading);margin:4px 0 10px;font-size:24px}.card h2{margin:0 0 10px;font-size:15px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.card-head>.muted{font-size:12px}.hero{gap:10px;display:grid;position:relative;overflow:hidden}.hero-top{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12.5px;display:flex}.hero-date{color:var(--text);font-weight:600}.hero p{margin:0}.hero button,.hero a.button{justify-self:start}.facts{color:var(--muted);flex-wrap:wrap;align-items:center;gap:16px;display:flex}.facts strong{color:var(--text)}.result-row{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.result-row>div{background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;display:grid}.result-row span{font-size:12px}.result-row strong{font-variant-numeric:tabular-nums;color:var(--accent);font-size:20px;font-weight:700}.challenge-app .badge{text-transform:capitalize;letter-spacing:0;background:0 0;border:1px solid;border-radius:999px;width:auto;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.challenge-app .badge.easy{color:var(--easy)}.challenge-app .badge.medium{color:var(--medium)}.challenge-app .badge.hard{color:var(--hard)}.table{border-collapse:collapse;width:100%;font-size:13px}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:6px 8px}.table th{color:var(--muted);font-size:12px;font-weight:500}.table tbody tr:hover td{background:var(--hover)}.table tr.me td{background:var(--accent-soft-strong);color:var(--accent)}.table tr:first-child td:first-child{color:var(--gold)}.num{font-variant-numeric:tabular-nums;text-align:right!important}.segmented{border:1px solid var(--border);border-radius:var(--radius);gap:0;display:flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:0;padding:3px 12px}.segmented button.active{background:var(--panel-raised);color:var(--accent)}.practice-head .card-head p{margin:4px 0 0}.topic-chips{flex-wrap:wrap;gap:6px;display:flex}.challenge-app .topic-chips button{color:var(--muted);background:0 0;border-radius:999px;padding:3px 12px;font-size:13px}.challenge-app .topic-chips button.active{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.card-head>div>h2{margin:0}.objective-list,.post-list,.comments{margin:0;padding:0;list-style:none;display:grid}.objective-list li,.post-list li{border-bottom:1px solid var(--border);gap:4px;padding:10px 4px;display:grid}.objective-list li>a{color:var(--text);flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.objective-list li>a:hover strong{color:var(--accent)}.objective-list li span.muted{font-size:12px}.post-list li>a{color:var(--text);gap:2px;display:grid}.post-list li>a:hover strong{color:var(--accent)}.post-list li>a span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.post-meta{gap:14px;font-size:12px;display:flex}.comments li{border-bottom:1px solid var(--border);padding:10px 0}.comments .prose p{margin:4px 0 0}.comments button.link{margin-left:10px;font-size:12px}.code-view{background:var(--inset);border:1px solid var(--border);border-radius:var(--radius);max-height:480px;font:12.5px/1.55 var(--mono);color:var(--text);margin:0;padding:12px;overflow:auto}.prose{line-height:1.6}.prose h3,.prose h4{margin:16px 0 6px}.prose p{margin:0 0 10px}.prose ul,.prose ol{margin:0 0 10px;padding-left:20px}.prose code{background:var(--panel-raised);color:var(--text);border-radius:2px;padding:1px 5px;font-size:12.5px}.prose pre{background:var(--inset);border:1px solid var(--border);border-radius:var(--radius);padding:10px;overflow:auto}.prose pre code{background:0 0;padding:0}.prose strong{color:var(--heading)}.challenge-app .dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-pop);font-family:var(--sans);border-radius:10px}.challenge-app .dialog-head{border-bottom:1px solid var(--border)}.ws{background:var(--bg);grid-template:"bar bar bar""side code board"1fr"side code console"240px/minmax(280px,340px) minmax(360px,1fr) minmax(320px,1fr);display:grid;position:absolute;inset:0}.ws-bar{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;grid-area:bar;align-items:center;gap:18px;padding:7px 14px;display:flex}.ws-title{align-items:center;gap:10px;font-size:14px;display:flex}.ws-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.timer{font-variant-numeric:tabular-nums;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);background:var(--inset);padding:1px 10px;font-size:18px;font-weight:700}.timer.low{color:var(--danger)}.timer.done{text-shadow:none;color:var(--text);font-size:13px;font-weight:400}.cost{font-variant-numeric:tabular-nums;color:var(--amber);font-weight:700}.cost.over{color:var(--danger)}.ws-side{border-right:1px solid var(--border);background:var(--panel);grid-area:side;grid-template-rows:auto 1fr;min-height:0;display:grid}.side-body{padding:12px 14px 24px;overflow:auto}.side-body h4{margin:16px 0 6px}.side-body .facts{margin-bottom:12px;font-size:12.5px}.check-list{color:var(--muted);margin:0;padding-left:18px}.tabs{border-bottom:1px solid var(--border);background:var(--panel);gap:0;padding:0 6px;display:flex}.challenge-app .tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:7px 10px}.challenge-app .tabs button:hover:not(:disabled){color:var(--text);border-color:#0000}.challenge-app .tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.tabs.files{align-items:center}.build-state{color:var(--muted);margin-left:auto;padding-right:6px;font-size:12px}.build-state.bad{color:var(--danger)}.ws-code{border-right:1px solid var(--border);grid-area:code;grid-template-rows:auto 1fr auto;min-width:0;min-height:0;display:grid}.editor-stack{min-height:0;position:relative}.editor-pane{position:absolute;inset:0;overflow:hidden}.editor-pane .code-editor,.editor-pane .code-editor-host,.editor-pane .cm-editor{height:100%}.editor-pane .cm-editor .cm-scroller{font-family:var(--mono)}.build-error{color:#ffb4ad;border-top:1px solid var(--danger);max-height:200px;font:12.5px/1.45 var(--mono);background:#1d0b0e;gap:4px;padding:8px 12px;display:grid;overflow:auto}.build-error strong{color:#ffd2cd;white-space:pre-wrap}.build-error summary{cursor:pointer;color:var(--muted);font-size:12px}.build-error pre{white-space:pre-wrap;font:inherit;margin:4px 0 0}.ws-board{background:var(--bg);grid-area:board;min-width:0;min-height:0;position:relative}.board-host{position:absolute;inset:0}.board-host canvas{display:block}.board-tools{z-index:2;gap:4px;display:flex;position:absolute;top:8px;right:8px}.board-tools button.mini.active{color:var(--accent);border-color:var(--accent)}.ws-board .warnings{z-index:2;pointer-events:none;gap:4px;font-size:12px;display:grid;position:absolute;top:8px;left:8px;right:8px}.ws-board .warnings div{border:1px solid var(--amber);color:#ffd9a0;border-radius:var(--radius);background:#2a1d0bf2;width:fit-content;max-width:90%;padding:3px 8px}.ws-board .error-banner{border-radius:var(--radius)}.ws-console{border-top:1px solid var(--border);background:var(--inset);grid-area:console;min-height:0}.ws-console .console-host{height:100%;padding:4px 6px}.boot{z-index:3;background:var(--overlay);place-items:center;padding:16px;display:grid;position:absolute;inset:0;overflow:auto}.boot-card{background:var(--panel);border:1px solid var(--border);width:min(440px,100%);box-shadow:var(--shadow-card);border-radius:10px;padding:20px 22px}.boot-card h3{margin:0 0 12px;font-size:15px}.boot-figures{font-variant-numeric:tabular-nums;justify-content:space-between;margin:6px 0 12px;font-size:12px;display:flex}.boot-card p{margin:12px 0 0}.challenge-app .small{font-size:12px}.progress{background:var(--panel-raised);border-radius:999px;height:6px;overflow:hidden}.progress>div{border-radius:inherit;background:var(--accent);height:100%;transition:width .3s}.steps{gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.step{color:var(--muted);grid-template-columns:18px 1fr;align-items:start;gap:8px;display:grid}.step.done,.step.active{color:var(--text)}.step .progress{margin-top:6px}.step-icon{border:1.5px solid var(--border);border-radius:50%;place-items:center;width:16px;height:16px;margin-top:2px;font-size:10px;font-weight:700;line-height:1;display:grid}.step.done .step-icon{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.step.active .step-icon{border-color:var(--accent);border-top-color:#0000;animation:.8s linear infinite spin}.progress-card{background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:10px 12px;font-size:13px}.progress-card p{margin:8px 0 0;font-size:12.5px}.progress-head{align-items:center;gap:8px;display:flex}.spinner{border:1.5px solid var(--accent);border-top-color:#0000;border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner,.step.active .step-icon{border-top-color:var(--accent);animation:none}}.shop{gap:8px;display:grid}.shop h4{margin:12px 0 2px}.shop .search{width:100%}.bill{background:var(--inset);border:1px solid var(--border);border-radius:var(--radius);gap:6px;padding:10px 12px;display:grid}.bill header{justify-content:space-between;display:flex}.bill.over header span{color:var(--danger);font-weight:700}.bill table{width:100%;font-size:12.5px}.bill p{margin:0}.meter{background:var(--panel-raised);border-radius:999px;height:6px;overflow:hidden}.meter div{background:var(--accent);height:100%}.bill.over .meter div{background:var(--danger)}.shop-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);gap:4px;padding:8px 10px;font-size:12.5px;display:grid}.shop-item:hover{border-color:var(--border-strong)}.shop-item header{justify-content:space-between;gap:8px;display:flex}.shop-item .price{color:var(--amber);font-weight:700}.shop-item p{color:var(--muted);margin:0}.shop-item code{color:var(--text);font-size:12px}.shop-item .pins{font-size:11.5px}.shop-item button{justify-self:start}.results{gap:6px;display:grid}.results header{justify-content:space-between;gap:8px;display:flex}.results.verdict-accepted header strong{color:var(--easy)}.results.verdict-rejected header strong,.results.verdict-build-error header strong,.results.verdict-over-budget header strong{color:var(--danger)}.results p{margin:0}.checks{gap:4px;margin:0;padding:0;list-style:none;display:grid}.checks li{grid-template-columns:22px 1fr;gap:6px;font-size:12.5px;display:grid}.checks li small{color:var(--muted);display:block}.checks .pass .mark{color:var(--easy)}.checks .fail .mark{color:var(--danger)}.test-output{background:var(--inset);border:1px solid var(--border);border-radius:var(--radius);max-height:220px;padding:8px;font-size:11.5px;overflow:auto}.solved{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);margin:8px 0;padding:10px 12px}.solved strong:first-child{color:var(--accent)}.solved p{margin:4px 0 0}@media (width<=1100px){.ws{grid-template:"bar bar""side code"minmax(320px,1fr)"side board"320px"console console"200px/300px 1fr;overflow:auto}}.docs{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:32px;max-width:1180px;margin:0 auto;padding:22px 20px 64px;display:grid}.docs-side{gap:10px;max-height:calc(100vh - 90px);padding:0 4px 12px 0;display:grid;position:sticky;top:14px;overflow:auto}.docs-search{position:relative}.docs-side .search{width:100%;padding-right:30px}.docs-search-key{color:var(--muted);pointer-events:none;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.docs-search:focus-within .docs-search-key{display:none}.docs-nav{gap:2px;display:grid}.docs-nav .docs-nav-home{border-radius:var(--radius);color:var(--text);padding:6px 8px;font-size:13px;font-weight:600;display:block}.docs-nav .docs-nav-home:hover{background:var(--panel-raised);text-decoration:none}.docs-nav .docs-nav-home.active{color:var(--accent);background:var(--panel-raised)}.docs-nav-group summary{border-radius:var(--radius);cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:6px 8px;font-size:13px;font-weight:600;list-style:none;display:flex}.docs-nav-group summary::-webkit-details-marker{display:none}.docs-nav-group summary:before{content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);flex:none;width:6px;height:6px;margin-right:2px;transition:transform .15s;transform:rotate(-45deg)}.docs-nav-group[open]>summary:before{transform:rotate(45deg)}.docs-nav-group summary:hover{background:var(--panel-raised)}.docs-nav-group summary.current{color:var(--accent)}.docs-nav-count{color:var(--muted);margin-left:auto;font-size:11px;font-weight:500}.docs-nav-group a{border-left:1px solid var(--border);color:var(--muted);margin-left:11px;padding:4px 10px;font-size:13px;line-height:1.4;display:block}.docs-nav-group a:hover{color:var(--text);border-left-color:var(--muted);text-decoration:none}.docs-nav-group a.active{color:var(--accent);border-left:2px solid var(--accent);padding-left:9px;font-weight:600}.docs-nav-group[open]{padding-bottom:6px}.docs-crumbs{max-width:780px;color:var(--muted);align-items:center;gap:6px;margin:0 0 8px;font-size:12.5px;display:flex}.docs-crumbs a{color:var(--muted)}.docs-crumbs a:hover{color:var(--accent)}.docs-outline{gap:2px;max-height:calc(100vh - 90px);font-size:12.5px;display:none;position:sticky;top:14px;overflow:auto}.docs-outline-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:0 0 6px 10px;font-size:11px;font-weight:700}.docs-outline a{border-left:1px solid var(--border);color:var(--muted);padding:3px 10px;line-height:1.4;display:block}.docs-outline a.sub{padding-left:22px}.docs-outline a:hover{color:var(--text);text-decoration:none}.docs-outline a.active{color:var(--accent);border-left:2px solid var(--accent);padding-left:9px}.docs-outline a.sub.active{padding-left:21px}.docs-topics{max-width:780px;margin-top:22px}.docs-topics h2{color:var(--heading);margin:0 0 12px;font-size:18px}.docs-topics-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.docs-topics .docs-topic{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-soft,var(--muted));align-content:start;gap:4px;padding:14px 16px;font-size:13px;line-height:1.45;display:grid}.docs-topics .docs-topic span{color:var(--muted)}.docs-topic strong{color:var(--heading);font-size:14.5px}.docs-topics .docs-topic:hover{border-color:var(--accent);text-decoration:none}.docs-topics .docs-topic .docs-topic-count{color:var(--accent);margin-top:4px;font-size:12px;font-weight:600}@media (width>=1200px){.docs{grid-template-columns:250px minmax(0,1fr) 200px;max-width:1320px}.docs-outline{display:grid}}.docs-results{gap:4px;margin:0;padding:0;list-style:none;display:grid}.docs-results a{border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--panel);gap:2px;padding:7px 9px;font-size:12.5px;display:grid}.docs-results a:hover{border-color:var(--accent);text-decoration:none}.docs-results a span{color:var(--muted);font-size:12px}.docs-results a.first{border-color:var(--accent)}.docs-paper{min-width:0}.docs-prose{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);max-width:780px;padding:18px 24px;font:15px/1.7 system-ui,-apple-system,Segoe UI,sans-serif}.docs-prose h1,.docs-prose h2,.docs-prose h3,.docs-prose h4,.docs-prose h5,.docs-prose h6{font-family:var(--sans);color:var(--heading);scroll-margin-top:16px}.docs-prose h1{margin:0 0 14px;font-size:24px}.docs-prose h2{border-bottom:1px solid var(--border);margin:28px 0 8px;padding-bottom:4px;font-size:18px}.docs-prose h3{margin:20px 0 6px;font-size:15px}.docs-prose h4,.docs-prose h5,.docs-prose h6{margin:16px 0 6px;font-size:14px}.docs-prose p{margin:0 0 12px}.docs-prose ul,.docs-prose ol{margin:0 0 12px;padding-left:22px}.docs-prose li{margin:2px 0}.docs-prose li::marker{color:var(--accent)}.docs-prose code{font-family:var(--mono);background:var(--panel-raised);color:var(--text);border-radius:2px;padding:1px 5px;font-size:13px}.docs-prose pre{background:var(--inset);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font-size:13px;line-height:1.55;overflow:auto}.docs-prose pre code{color:var(--text);background:0 0;padding:0}.docs-prose img{object-fit:contain;background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius);width:132px;height:132px;margin:4px 0 14px;padding:8px;display:block}.docs-prose table{border-collapse:collapse;width:100%;margin:0 0 14px;font-size:13.5px}.docs-prose th,.docs-prose td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 10px}.docs-prose thead th{background:var(--panel-raised);font-size:13px;font-weight:600}.docs-prose blockquote{border-left:2px solid var(--amber);background:var(--warn-soft);margin:0 0 12px;padding:6px 12px}.doc-example{border:1px solid var(--border);border-radius:var(--radius);margin:0 0 14px;overflow:hidden}.doc-example-file{background:var(--panel-raised);border-bottom:1px solid var(--border);font:12px var(--mono);color:var(--muted);padding:4px 10px}.doc-example pre{border:0;border-radius:0;margin:0}.blog{max-width:780px;margin:0 auto;padding:22px 16px 64px}.blog-head{margin:0 0 16px}.blog-head h1{color:var(--heading);margin:0 0 6px;font-size:28px;line-height:1.25}.blog-head p{margin:0;font-size:13.5px}.blog-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.blog-list a{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);gap:4px;padding:14px 16px;display:grid}.blog-list a:hover{border-color:var(--accent)}.blog-list strong{color:var(--heading);font-size:16px}.blog-list .muted{font-size:12.5px}.blog-prose{max-width:none}.blog-prose img{background:0 0;width:auto;max-width:100%;height:auto;padding:0}.blog-foot{border-top:1px solid var(--border);justify-content:space-between;gap:12px;margin:24px 0 0;padding-top:14px;font-size:13px;display:flex}.docs-pager{border-top:1px solid var(--border);justify-content:space-between;gap:12px;max-width:780px;margin:28px 0 0;padding-top:14px;display:flex}.docs-pager a{font-size:13px}.docs-pager .next{margin-left:auto}.docs-footer{justify-content:space-between;align-items:baseline;gap:12px;max-width:780px;margin-top:18px;font-size:12px;display:flex}@media (width<=860px){.docs{grid-template-columns:1fr}.docs-side{max-height:none;position:static}}.ws-code{background:var(--inset)}.ws-code .cm-editor,.ws-code .cm-editor .cm-gutters{background-color:var(--inset)!important}.ws-code .cm-editor .cm-gutters{border-right:1px solid var(--border)!important;color:#56646a!important}.ws-code .cm-editor .cm-activeLine,.ws-code .cm-editor .cm-activeLineGutter{background-color:#ffffff09!important}.ws-code .cm-editor .cm-cursor{border-left-color:var(--accent)!important}.ws-code .cm-editor .cm-selectionBackground,.ws-code .cm-editor.cm-focused .cm-selectionBackground{background:#7cc4f533!important}.challenge-app hr{border:0;border-top:1px solid var(--border);margin:12px 0}.topbar .nav-link{color:var(--muted);border-radius:var(--radius);padding:4px 10px}.topbar .nav-link:hover,.topbar .nav-link.active{color:var(--text);text-decoration:none}.landing{gap:72px;max-width:1120px;margin:0 auto;padding:56px 20px 32px;display:grid}.landing h1{letter-spacing:-.02em;color:var(--heading);margin:8px 0 16px;font-size:clamp(30px,4.4vw,46px);line-height:1.1}.landing h2{letter-spacing:-.01em;color:var(--heading);margin:0 0 20px;font-size:24px}.landing h3{margin:0 0 6px;font-size:15px}.landing p{margin:0}.eyebrow{color:var(--accent);font-size:13px;font-weight:600}.lede{color:var(--text-soft);max-width:34em;font-size:17px;line-height:1.6}.landing-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:48px;display:grid}.landing-actions{flex-wrap:wrap;gap:10px;margin:28px 0 14px;display:flex}.landing-code{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-pop);border-radius:12px;overflow:hidden}.code-tab{color:var(--muted);background:var(--panel-raised);border-bottom:1px solid var(--border);padding:6px 14px;font-size:12px}.landing-code pre{font:13px/1.6 var(--mono);color:var(--text);background:var(--inset);margin:0;padding:14px 16px;overflow-x:auto}.landing-code pre+.code-tab{border-top:1px solid var(--border)}.t-kw{color:#c792ea}.t-fn{color:#82aaff}.t-str{color:#c3e88d}.t-num{color:#f78c6c}.code-result{border-top:1px solid var(--border);align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:flex}.done-icon{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.landing-shot img{border:1px solid var(--border);width:100%;height:auto;box-shadow:var(--shadow-pop);border-radius:12px;display:block}.landing-feature{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px 20px}.landing-feature p{color:var(--muted)}.landing-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.landing-cta{text-align:center;background:var(--panel);border:1px solid var(--border);border-radius:12px;justify-items:center;gap:4px;padding:40px 20px;display:grid}.landing-footer{justify-items:center;gap:6px;font-size:13px;display:grid}@media (width<=900px){.landing{gap:48px;padding-top:32px}.landing-hero,.landing-grid{grid-template-columns:1fr}}.challenge-app .tag{border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;padding:0 7px;font-size:11px;display:inline-block}.challenge-app .tag.warn{color:var(--amber);border-color:var(--warn-line)}.challenge-app .tag.bad{color:var(--danger);border-color:var(--danger-line)}.components-panel{gap:8px;display:grid}.components-panel h4{margin:10px 0 0}.components-panel .pitch{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--radius);margin:0;padding:10px 12px;font-size:13px}.component-rows{gap:6px;margin:0;padding:0;list-style:none;display:grid}.component-rows li{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;align-items:center;gap:6px 8px;padding:7px 9px;font-size:13px;display:flex}.component-rows li>button.mini:last-child{margin-left:auto}.component-rows .usage{color:var(--muted);flex-basis:100%;font-size:12px}.new-component{gap:6px;display:grid}.tabs.files .component-tab{color:#9fd8b5}.editor-pane.component-pane{flex-direction:column;display:flex}.editor-pane.component-pane:not(.hidden)>.code-editor,.editor-pane.component-pane:not(.hidden)>.code-editor-host{flex:1;height:auto;min-height:0}.component-strip{border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 12px;font-size:12.5px;display:flex}.component-strip .spacer{flex:1}.component-message{margin:0;padding:4px 12px}.post-components{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-raised);gap:6px;margin-top:12px;padding:10px 12px;display:grid}.post-components ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.post-components li{justify-content:space-between;align-items:center;gap:10px;display:flex}.post-components p{margin:0}.components-hero{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.components-hero h1{margin:6px 0 10px}.components-hero .lede{font-size:15px}.components-hero .new-component{border:1px solid var(--border);background:var(--panel-raised);border-radius:10px;padding:14px}.component-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.component-card{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;gap:4px;padding:12px 14px;display:grid}.component-card:hover{border-color:var(--accent);text-decoration:none}.component-card code{color:var(--muted);font-size:12px}.component-page{gap:12px;display:grid}.component-fields{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:10px;display:grid}.usage-box{border-radius:var(--radius);background:var(--inset);border:1px solid var(--border);align-items:center;gap:10px;padding:8px 12px;display:flex}.component-editor{border:1px solid var(--border);border-radius:var(--radius);height:460px;overflow:hidden}.component-editor .code-editor,.component-editor .code-editor-host,.component-editor .cm-editor{height:100%}@media (width<=900px){.components-hero,.component-fields{grid-template-columns:1fr}}.card.nudge{border-color:var(--accent-line);padding:12px 18px}.card.nudge p{margin:0}.challenge-app .oauth-button{color:var(--text)}.challenge-app button.theme-toggle{width:30px;height:30px;color:var(--muted);background:0 0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.challenge-app button.theme-toggle:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}:root[data-theme=light] body:has(.challenge-app){background:#f4f7f5}.app-frame{flex-direction:column;height:100%;display:flex}.app-frame>.challenge-app{flex:1;height:auto;min-height:0}.app-frame>.challenge-app.header-only{flex:none}.lab-host{flex:1;min-height:0;display:grid}.lab-host[hidden]{display:none}.lab-host>.app{height:auto;min-height:0}.lab-loading{color:var(--muted);margin:0;padding:24px}.faq-list{gap:8px;max-width:760px;display:grid}.faq-list details{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 16px}.faq-list summary{cursor:pointer;color:var(--heading);font-weight:600}.faq-list details p{color:var(--text-soft);margin:8px 0 0}.landing-links{flex-wrap:wrap;justify-content:center;gap:6px 18px;display:flex}.problem-public .statement{margin-top:8px}.problem-public .problem-facts{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 16px;display:flex}.problem-public .problem-cta{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;display:flex}.challenge-app .beta-badge{border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin-left:-14px;padding:1px 7px;font-size:10.5px;font-weight:700;line-height:16px}.challenge-app .beta-badge:hover{border-color:var(--accent);text-decoration:none}.challenge-app .beta-note{color:var(--muted);margin:0;font-size:12px}.challenge-app button.report-bug{color:var(--muted)}.challenge-app button.report-bug:hover{color:var(--text)}.bug-shots{flex-wrap:wrap;gap:8px;display:flex}.bug-shots figure,.bug-shots a{margin:0;position:relative}.bug-shots img{object-fit:cover;border:1px solid var(--border);border-radius:var(--radius);background:var(--inset);width:auto;max-width:180px;height:92px;display:block}.bug-shots figure button{position:absolute;top:4px;right:4px}.bug-shot-add{border:1px dashed var(--border-strong);border-radius:var(--radius);width:110px;height:92px;color:var(--muted);cursor:pointer;place-items:center;display:grid}.bug-shot-add:hover{color:var(--text);border-color:var(--accent)}.bug-shot-add input{display:none}.bug-list{margin:0;padding:0;list-style:none;display:grid}.bug-list li{border-bottom:1px solid var(--border);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:8px 0;display:grid}.dialog-body .admin-bug-title{text-transform:none;letter-spacing:0;color:var(--heading);margin:0;font-size:17px}.admin-bug-text{white-space:pre-wrap;margin:0}.kit-stat-link,.kit-stat-link:hover{color:inherit;text-decoration:none;display:grid}.kit-stat-link:hover .kit-stat{border-color:var(--accent)}.profile-head{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.profile-head h1{margin:0;font-size:22px}.profile-head p{margin:2px 0 0}.profile-who{flex:1;min-width:0}.profile-who h1{overflow-wrap:anywhere}.profile-avatar{letter-spacing:.02em;background:var(--accent);width:56px;height:56px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;font-size:20px;font-weight:700;display:grid}.profile-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.profile-grid h2,.profile .card>h2{margin:0 0 12px}.profile-tallies{gap:12px;margin:0;padding:0;list-style:none;display:grid}.profile-tally-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.profile-tally-head .num{font-variant-numeric:tabular-nums}.profile-comments{margin:0;padding:0;list-style:none;display:grid}.profile-comments li{border-bottom:1px solid var(--border);padding:10px 0}.profile-comments li:last-child{border-bottom:0}.profile-comments p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 4px}.profile-table{overflow-x:auto}.profile-table .table td{white-space:nowrap}.account-name{color:var(--text);text-decoration:none}.account-name:hover{color:var(--accent)}.objective-list .solved-tick{color:var(--accent);font-weight:700}@media (width<=700px){.profile-grid{grid-template-columns:1fr}}.profile.page>*{min-width:0}.profile .kit-stats{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=700px){.profile .kit-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.recovery-note{color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--amber);border-radius:8px;margin:0;padding:10px 12px;font-size:12.5px;line-height:1.5}.profile-recovery{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.profile-recovery p{margin:0}.recovery-note strong{margin-bottom:2px;display:block}.stack-field .optional{color:var(--muted);font-style:normal}.par-line{margin:6px 0;font-weight:600}.par-under{color:var(--accent)}.par-over{color:var(--amber)}.par-compare{margin:8px 0 0;font-size:13px}.facts .par strong{color:var(--accent)}.table .par-row td{color:var(--muted);border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);font-style:italic}.share-result{gap:12px;display:grid}.share-card{border:1px solid var(--border);border-radius:10px;width:100%;height:auto;display:block}.share-text{width:100%;font-family:var(--mono);resize:none;font-size:13px}.share-actions{flex-wrap:wrap;gap:8px;display:flex}.result-page{max-width:820px}.result-cta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.result-cta h2{margin:0 0 4px}.result-cta p{margin:0}.topbar{z-index:40;position:relative}.topbar-menu{display:contents}.topbar-compact,.menu-only{display:none}.menu-toggle{place-items:center;width:40px;height:40px;padding:0;display:inline-grid}@media (width<=860px){.topbar{gap:10px;padding:8px 12px}.topbar-compact{align-items:center;gap:8px;margin-left:auto;display:flex}.topbar-menu,.topbar .bar-only{display:none}.menu-only{display:inline}.topbar.menu-open .topbar-menu{background:var(--panel);border-bottom:1px solid var(--border);box-shadow:var(--shadow-pop);gap:4px;max-height:calc(100dvh - 60px);padding:8px 12px 14px;display:grid;position:absolute;top:100%;left:0;right:0;overflow:auto}.topbar.menu-open nav{gap:2px;display:grid}.topbar.menu-open nav a,.topbar.menu-open .account>*{border-radius:var(--radius);text-align:left;padding:11px 12px;font-size:16px}.topbar.menu-open .account{border-top:1px solid var(--border);justify-items:stretch;gap:2px;margin:4px 0 0;padding-top:8px;display:grid}.topbar.menu-open .theme-toggle{width:100%;height:auto;color:var(--text);background:0 0;border:0;align-items:center;gap:10px;display:flex}.topbar.menu-open .account .link{width:100%}}@media (pointer:coarse){.challenge-app input,.challenge-app textarea,.challenge-app select{font-size:16px}.challenge-app button:not(.mini),.challenge-app .button{min-height:36px}}@media (width<=640px){.challenge-app .table{white-space:nowrap;display:block;overflow-x:auto}.card{padding:14px}.page{gap:12px;padding:16px 12px 40px}}.landing-code pre{overflow-x:auto}.ws-panes{display:none}@media (width<=760px){.ws{grid-template:"bar""panes""main"minmax(0,1fr)"console"0/minmax(0,1fr);overflow:hidden}.ws.pane-board{grid-template-rows:auto auto minmax(0,1fr) 34%}.ws-bar{gap:8px 10px;padding:6px 10px}.ws-title{flex-wrap:wrap;gap:6px;min-width:0;font-size:13px}.ws-actions{flex-wrap:wrap;gap:6px}.ws-panes{border-bottom:1px solid var(--border);background:var(--panel);grid-area:panes;grid-template-columns:repeat(3,1fr);display:grid}.challenge-app .ws-panes button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;min-height:42px;padding:10px 4px;font-size:14px}.challenge-app .ws-panes button.active{color:var(--accent);border-bottom-color:var(--accent)}.ws-side,.ws-code,.ws-board{visibility:hidden;z-index:0;border-right:0;grid-area:main}.ws.pane-side .ws-side,.ws.pane-code .ws-code,.ws.pane-board .ws-board{visibility:visible;z-index:1}.ws-console{visibility:hidden}.ws.pane-board .ws-console{visibility:visible}.challenge-app .tabs{scrollbar-width:none;white-space:nowrap;overflow-x:auto}.challenge-app .tabs button{flex:none}}.challenge-app .docs-nav-toggle{display:none}@media (width<=860px){.docs{gap:14px;padding:12px 12px 48px}.challenge-app .docs-nav-toggle{text-align:left;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:10px 12px;display:flex}.docs-nav-toggle span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.docs-side:not(.nav-open) .docs-nav{display:none}.docs-nav-group summary,.docs-nav-home{padding:10px 8px;font-size:15px}.docs-nav-group a{padding:8px 10px;font-size:15px}.docs-search-key{display:none}.docs-prose{padding:14px;font-size:15px}.docs-prose table{display:block;overflow-x:auto}}.lab-phone-notice{display:none}@media (width<=760px){.lab-host:has(>.lab-phone-notice){grid-template-rows:auto minmax(0,1fr)}.lab-phone-notice{color:#ffd9a0;background:#2a1d0b;border-bottom:1px solid #ffb547;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font:13px/1.4 system-ui,sans-serif;display:flex}.lab-phone-notice a{color:#ffd9a0;text-decoration:underline}}.page>*,.admin-main>*,.admin-main .stack>*{min-width:0}@media (width<=760px){.admin-head{flex-wrap:wrap;row-gap:8px}}@media (width<=860px){.topbar .beta-badge{margin-left:2px}.topbar .brand{gap:6px}}.schematic-view{z-index:1;background:#fbfaf6;padding:48px 12px 12px;position:absolute;inset:0;overflow:auto}.schematic-view>.muted{padding:12px}.schematic-paper svg{width:clamp(calc(var(--natural-width) * .7), 100%, var(--natural-width));height:auto;display:block}.schematic-note{color:#8a5a00;margin:0 0 8px;font-size:12px}.board-tools .segmented button{min-height:0;padding:3px 9px;font-size:12px}.campaign{max-width:1040px}.campaign-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;display:flex}.campaign-head>div:first-child{flex:420px}.campaign-head h1{margin:0 0 6px}.campaign-head p{margin:0}.campaign-score{justify-items:center;line-height:1.1;display:grid}.campaign-score strong{color:#e0a106;font-size:26px}.campaign-chapter-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:12px;display:grid}.campaign-chapter-head h2{margin:0;font-size:17px}.campaign-chapter-head p{margin:2px 0 0}.campaign-chapter-number{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border:1px solid var(--accent);border-radius:50%;place-items:center;font-weight:800;display:grid}.campaign-lock{color:var(--muted);white-space:nowrap;font-size:12.5px}.campaign-chapter.locked{opacity:.6}.campaign-chapter.locked .campaign-chapter-number{background:var(--panel-raised);color:var(--muted);border-color:var(--border)}.campaign-levels{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.campaign-level{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);height:100%;color:var(--text);gap:6px;padding:12px 14px;display:grid}.challenge-app a.campaign-level:hover{border-color:var(--accent);text-decoration:none}.campaign-levels li.is-solved .campaign-level{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.campaign-level-number{color:var(--muted);letter-spacing:.04em;font-size:11px;font-weight:700}.campaign-level-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stars{letter-spacing:1px;color:color-mix(in srgb, var(--muted) 45%, transparent);white-space:nowrap;font-size:15px}.stars .on{color:#e0a106}.campaign-tag{align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.campaign-tag .button.mini{padding:2px 8px}@media (width<=640px){.campaign-chapter-head{grid-template-columns:auto minmax(0,1fr)}.campaign-chapter-head>:last-child{grid-column:1/-1}.campaign-levels{grid-template-columns:minmax(0,1fr)}}.ws-board .warnings div{white-space:normal}.ws-board .warnings div.damage{color:#ffc9c4;background:#3c0c0cf5;border-color:#ff5a4f;font-weight:600}.forgot-link{align-self:flex-end;margin-top:-6px}.email-confirmed{color:var(--run);font-weight:600}.try-side h2{color:var(--heading);margin:0 0 8px;font-size:17px}.try-side h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:18px 0 8px;font-size:13px}.try-side p{margin:0 0 8px}.try-buttons{flex-wrap:wrap;gap:6px;display:flex}.try-buttons button{font-size:13px}.try-note{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:6px;margin:14px 0 0;padding:8px 10px;font-size:13px}.try-blocked{color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--amber);border-radius:6px;margin:12px 0 0;padding:8px 10px;font-size:13px}.try-cta{background:var(--accent-soft-strong);border:1px solid var(--accent-line);border-radius:8px;margin-top:22px;padding:12px;font-size:13px;line-height:1.5}.try-cta button{margin-top:10px;display:block}.your-data{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.your-data h3{color:var(--heading);margin:0;font-size:14px}.your-data p{margin:0}.challenge-app button.danger-link{color:var(--danger);background:0 0;border-color:#0000}.challenge-app button.danger-link:hover:not(:disabled){border-color:var(--danger-line);color:var(--danger)}.delete-account{border:1px solid var(--danger-line);border-radius:8px;padding:12px;font-size:13px}.challenge-app .delete-account button.danger{border-color:var(--danger);font-weight:700}.age-check{align-items:flex-start;gap:8px;font-size:13px;line-height:1.45;display:flex}.age-check input{margin-top:3px}.oauth-terms{color:var(--muted);text-align:center;margin:6px 0 0;font-size:12px}.landing-ways{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.challenge-app a.landing-way{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;flex-direction:column;gap:6px;padding:18px 20px;text-decoration:none;display:flex}.challenge-app a.landing-way:hover{border-color:var(--accent-line);background:var(--accent-soft);text-decoration:none}.landing-way p{color:var(--muted);flex:1}.landing-way-link{color:var(--link);margin-top:6px;font-size:13px;font-weight:600}.landing-cta-actions{justify-content:center;margin:16px 0 0}@media (width<=900px){.landing-ways{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.landing-ways{grid-template-columns:1fr}}.code-result a{white-space:nowrap}.landing-showcase{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.landing-show{flex-direction:column;gap:8px;display:flex}.landing-show img{aspect-ratio:560/498;object-fit:cover;object-position:top;border:1px solid var(--border);background:#0d1113;border-radius:10px;width:100%;height:auto;margin-bottom:6px}.landing-show h3{margin:0;font-size:17px}.landing-show p{color:var(--text-soft)}.landing-show a{font-size:14px;font-weight:600}.landing-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:48px;display:grid}.landing-split .lede{margin:0 0 12px}.landing-links-stack{gap:10px;display:grid}.challenge-app a.landing-link-card{border:1px solid var(--border);background:var(--panel);color:var(--text-soft);border-radius:10px;gap:2px;padding:14px 18px;text-decoration:none;display:grid}.challenge-app a.landing-link-card strong{color:var(--heading)}.challenge-app a.landing-link-card:hover{border-color:var(--accent-line);background:var(--accent-soft);text-decoration:none}@media (width<=900px){.landing-showcase{grid-template-columns:1fr;max-width:560px}.landing-split{grid-template-columns:1fr;gap:24px}}.landing-show img.show-schematic{object-position:center;background:#faf9f6}
