@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/build/assets/jetbrains-mono-latin-Db4Uuiha.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/build/assets/jetbrains-mono-latin-ext-Bnd2h4Br.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}[hidden]{display:none!important}:root{--bg:#18181b;--panel:#1f1f23;--panel-2:#27272a;--border:#3f3f46;--text:#e4e4e7;--muted:#a1a1aa;--accent:#3b82f6;--accent-fill:#2563eb;--accent-text:#60a5fa;--gold:#facc15;--ok:#4ade80;--ko:#f87171;--radius:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.6 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent-text)}button,.button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel-2);border-radius:6px;padding:.4rem .9rem;line-height:1.5;text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:not-allowed}button[aria-busy=true]{cursor:wait}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#contenu:focus{outline:none}button.primary,.button.primary{background:var(--accent-fill);border-color:var(--accent-fill);color:#fff;font-weight:600}button.ghost,.button.ghost{background:0 0}button.ghost:hover,.button.ghost:hover{background:var(--panel-2)}button.small,.button.small{padding:.2rem .6rem;font-size:13px}.xp-badge{color:var(--gold);font-weight:600}.page{max-width:60rem;margin:0 auto;padding:2.5rem 2rem 4rem}.page h1{margin:0 0 .5rem;font-size:2rem}.lead{color:var(--muted);max-width:40rem;font-size:1.1rem}.meta{color:var(--muted);font-size:13px}.chapter{margin-top:2rem}.chapter h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:1.1rem}.exercises{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.exercises a{border-radius:var(--radius);background:var(--panel);border:1px solid var(--border);color:var(--text);align-items:center;gap:1rem;padding:.8rem 1rem;text-decoration:none;display:flex}.exercises a:hover{border-color:var(--accent)}.exercises .state{border:2px solid var(--border);border-radius:50%;flex:none;place-items:center;width:1.8rem;height:1.8rem;font-size:.85rem;display:grid}.exercises [data-state=completed] .state{background:var(--ok);border-color:var(--ok);color:#0b2a1b}.exercises [data-state=in_progress] .state{border-color:var(--gold)}.exercises .title{flex:1}.exercises li{position:relative}.exercises .hint{z-index:2;border-radius:var(--radius);background:var(--panel-2);border:1px solid var(--border);max-width:min(30rem,100% - 3.6rem);color:var(--text);text-align:left;opacity:0;visibility:hidden;pointer-events:none;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;font-size:12px;font-weight:400;transition:opacity .12s,transform .12s,visibility 0s linear .12s;display:flex;position:absolute;top:calc(100% + 6px);left:3.6rem;transform:translateY(-4px);box-shadow:0 8px 22px #00000040}.exercises a:hover .hint,.exercises a:focus-visible .hint{opacity:1;visibility:visible;transition-delay:.3s;transform:none}@media (hover:none){.exercises a:hover .hint{opacity:0;visibility:hidden}}.tag{background:var(--panel-2);color:var(--muted);border-radius:999px;padding:.1rem .55rem;font-size:12px}.tag.free{color:var(--ok)}.alert{border-radius:var(--radius);border:1px solid var(--ko);color:#ffb3b3;background:#ef5a5a1f;margin-bottom:1rem;padding:.7rem 1rem}.lesson{max-width:46rem;margin-top:2rem;font-size:16px;line-height:1.7}.lesson h2{border-top:1px solid var(--border);margin:2.2rem 0 .6rem;padding-top:1.2rem;font-size:1.4rem}.lesson h3{margin:1.6rem 0 .4rem;font-size:1.1rem}.lesson pre{border-radius:var(--radius);background:var(--panel);border:1px solid var(--border);padding:.9rem 1.1rem;font-size:13.5px;line-height:1.55;overflow-x:auto}.lesson code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.lesson :not(pre)>code{background:var(--panel-2);border-radius:4px;padding:.05em .25em;font-size:.9em}.lesson table{border-collapse:collapse;margin:1rem 0}.lesson th,.lesson td{border:1px solid var(--border);text-align:left;padding:.4rem .8rem}.lesson blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:1rem 0;padding:.2rem 1rem}:is(.lesson,.instructions) .hl-keyword{color:#c792ea}:is(.lesson,.instructions) .hl-type{color:#82aaff}:is(.lesson,.instructions) .hl-property{color:#f0a35e}:is(.lesson,.instructions) .hl-attribute{color:#e0b04a}:is(.lesson,.instructions) .hl-value{color:#c3e88d}:is(.lesson,.instructions) .hl-variable{color:#e6e6ea}:is(.lesson,.instructions) .hl-number,:is(.lesson,.instructions) .hl-literal{color:#f78c6c}:is(.lesson,.instructions) .hl-generic{color:#89ddff}:is(.lesson,.instructions) .hl-comment,:is(.lesson,.instructions) .hl-comment span{color:var(--muted);font-style:italic}:is(.lesson,.instructions) .hl-strong{font-weight:600}:is(.lesson,.instructions) .hl-em{font-style:italic}.practice-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.practice-head time{font-family:var(--font-mono,"JetBrains Mono", ui-monospace, Menlo, monospace);white-space:nowrap;margin-left:auto;font-size:11.5px}@media (max-width:640px){.practice-head time{margin-left:0}}.breadcrumb ol{color:var(--muted);flex-wrap:wrap;gap:.2rem .5rem;margin:0 0 1rem;padding:0;font-size:.9rem;list-style:none;display:flex}.breadcrumb li+li:before{content:"›";margin-right:.5rem}.exercise-facts{margin:0 0 .6rem}.exercise-concepts{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;display:flex}.exercise-instructions{margin-top:1.5rem}.playground-intro{height:100%;overflow:auto}body.playground-page{height:100%;overflow:hidden}html:has(>body.playground-page){height:100%;overflow:hidden}.playground{flex-direction:column;height:100%;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--panel);align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.crumbs{white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:.5rem;min-width:0;display:flex;overflow:hidden}.crumbs span{color:var(--muted)}.status{color:var(--muted);background:var(--panel-2);border-radius:999px;padding:.2rem .7rem;font-size:13px}.status[data-kind=ok]{color:var(--ok)}.status[data-kind=ko]{color:var(--ko)}.status[data-kind=busy]{color:var(--gold)}.actions{gap:.5rem;display:flex}.who{white-space:nowrap;align-items:center;gap:.6rem;font-size:13px;display:flex}.who.guest{color:var(--muted)}.workspace{flex:1;grid-template-columns:minmax(280px,25%) 1fr minmax(320px,32%);min-height:0;display:grid}.panel{border-right:1px solid var(--border);flex-direction:column;min-width:0;min-height:0;display:flex}.panel:last-child{border-right:none}.brief{background:var(--panel);padding:1rem 1.2rem 2rem;overflow-y:auto}.brief h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:1.2rem 0 .4rem;font-size:13px}.instructions h2{margin:1.2rem 0 .4rem;font-size:15px}.instructions p,.instructions li{color:#d4d4dc}.instructions code,.hint code{background:var(--panel-2);border-radius:4px;padding:.1rem .35rem;font-size:12.5px}.instructions pre{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;margin:.6rem 0;padding:.6rem .75rem;font-size:12.5px;line-height:1.5;overflow-x:auto}.instructions pre code{background:0 0;padding:0}.xp{flex-wrap:wrap;gap:.35rem;display:flex}.chip{background:var(--panel-2);color:var(--muted);border-radius:999px;padding:.1rem .55rem;font-size:12px}.chip.gold{color:var(--gold)}.objectives{margin:0;padding:0;list-style:none}.objectives li{grid-template-columns:1.2rem 1fr;align-items:baseline;gap:.4rem;padding:.35rem 0;display:grid}.objectives .dot{border:2px solid var(--muted);border-radius:50%;place-items:center;width:.9rem;height:.9rem;font-size:.6rem;font-weight:700;line-height:1;display:inline-grid}.objectives li[data-state=passed] .dot{background:var(--ok);border-color:var(--ok);color:#0d1f15}.objectives li[data-state=passed] .dot:after{content:"✓"}.objectives li[data-state=failed] .dot{border-color:var(--ko);color:var(--ko)}.objectives li[data-state=failed] .dot:after{content:"✕"}.monaco-editor textarea:focus-visible{outline:none}.objectives li[data-state=passed]>span:last-of-type{color:var(--ok)}.docs{gap:.3rem;margin:0;padding:0;font-size:13.5px;list-style:none;display:grid}.docs a{color:var(--accent-text);text-decoration:none}.docs a:hover{text-decoration:underline}.docs a:after{content:" ↗";font-size:11px}.brief .lead{color:var(--text);margin:0 0 .8rem;font-size:14.5px}a.chip{text-decoration:none}a.chip:hover{color:var(--text)}.further{gap:.3rem;margin:0;padding:0;font-size:13.5px;list-style:none;display:grid}.further a{color:var(--accent-text);text-decoration:none}.further a:hover{text-decoration:underline}.docs .host{color:var(--muted);font-size:11.5px}.objectives li[data-test^=mutant\:]>span:last-of-type:before{content:"🐛 "}.objectives .why{color:var(--ko);white-space:pre-wrap;grid-column:2;font:12px/1.4 ui-monospace,Menlo,monospace}@keyframes success-in{0%{opacity:0;transform:scale(.96)}60%{opacity:1;transform:scale(1.02)}to{transform:none}}.success:not([hidden]){animation:.45s ease-out success-in}.success{border-radius:var(--radius);border:1px solid var(--ok);background:#3fbf7f1f;justify-items:start;gap:.6rem;margin-top:1rem;padding:.8rem 1rem;display:grid}.success strong{color:var(--ok)}.success p{margin:0}.crumbs a{color:inherit;text-decoration:none}.crumbs a:hover{text-decoration:underline}.topbar .lp-brand{color:var(--text);flex:none;align-items:center;gap:9px;text-decoration:none;display:flex}.topbar .lp-brand:hover{color:var(--text);text-decoration:none}.topbar .lp-brand img{width:auto;height:26px;display:block}.topbar .lp-brand .lp-serif{letter-spacing:-.01em;font-size:19px;font-weight:600;line-height:1}.topbar .lp-chip{font-family:var(--font-mono,"JetBrains Mono", ui-monospace, Menlo, monospace);text-transform:uppercase;letter-spacing:.14em;color:var(--gold);white-space:nowrap;background:#e0b04a14;border:1px solid #e0b04a73;border-radius:4px;padding:2px 6px;font-size:10px}.crumbs .crumb-current{font:inherit;color:var(--text);text-overflow:ellipsis;margin:0;overflow:hidden}.crumbs .crumb-chapter{text-overflow:ellipsis;max-width:16rem;overflow:hidden}.crumbs .crumb-position{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:12px}.crumbs .crumb-nav{flex:none;gap:.15rem;display:flex}.crumbs .crumb-arrow{color:var(--muted);border-radius:4px;padding:0 .35rem}.crumbs a.crumb-arrow{color:var(--text)}.crumbs a.crumb-arrow:hover{background:var(--panel-2);text-decoration:none}.done-chip{color:var(--ok);background:#3fbf7f26;border-radius:999px;padding:.1rem .6rem;font-size:12px;font-weight:600}.already-done{border-radius:var(--radius);border:1px solid var(--ok);color:var(--ok);background:#3fbf7f1f;margin-bottom:.8rem;padding:.6rem .8rem;font-size:13px}.already-done a{color:inherit;font-weight:600}.hints{gap:.5rem;margin:1rem 0 .5rem;display:grid}.hint{border-radius:var(--radius);border-left:3px solid var(--gold);background:#e0b04a14;padding:.6rem .8rem}.hint strong{color:var(--gold);font-size:12px;display:block}.output{margin-top:1rem}.output summary{cursor:pointer;color:var(--muted)}.output pre{background:var(--bg);border-radius:var(--radius);white-space:pre-wrap;padding:.8rem;font:12px/1.45 ui-monospace,Menlo,monospace;overflow-x:auto}.tabs{background:var(--panel);border-bottom:1px solid var(--border);display:flex;overflow-x:auto}.tab{color:var(--muted);border:none;border-right:1px solid var(--border);white-space:nowrap;background:0 0;border-radius:0;padding:.5rem 1rem}.tab.active{color:var(--text);box-shadow:inset 0 2px 0 var(--accent);background:#1e1e1e}.tab.readonly:after{content:" 🔒";font-size:11px}.tabs-files{display:flex;overflow-x:auto}.tree-toggle{border:none;border-right:1px solid var(--border);filter:grayscale();opacity:.6;background:0 0;border-radius:0;flex:none;padding:.5rem .7rem;font-size:13px}.tree-toggle.open,.tree-toggle:hover{filter:none;opacity:1}.code-body{flex:1;min-height:0;display:flex}.editor{flex:1;min-width:0;min-height:0}.filetree{border-right:1px solid var(--border);background:var(--panel);flex:none;width:13rem;padding-bottom:.5rem;font:12.5px/1.7 ui-monospace,Menlo,monospace;overflow:auto}.filetree-head{background:var(--panel);border-bottom:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:.3rem .6rem;font:600 11px/1.6 system-ui,sans-serif;position:sticky;top:0}.filetree details>.filetree-list{border-left:1px solid var(--border);margin-left:.7rem}.filetree summary{cursor:pointer;color:var(--muted);padding:0 .6rem;list-style:none}.filetree summary::-webkit-details-marker{display:none}.filetree summary:before{content:"▸ "}.filetree details[open]>summary:before{content:"▾ "}.filetree button{text-align:left;color:#c9c9d1;width:100%;font:inherit;background:0 0;border:none;border-radius:0;padding:0 .6rem 0 1.1rem;display:block}.filetree button:hover{background:var(--panel-2)}.filetree button.active{color:var(--accent-text);background:var(--panel-2)}.filetree button.editable:after{content:" ✎";color:var(--gold)}.urlbar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:.25rem;padding:.35rem .5rem;display:flex}.urlbar .origin{color:var(--muted);font:13px ui-monospace,Menlo,monospace}.urlbar input{background:var(--bg);border:1px solid var(--border);min-width:0;color:var(--text);border-radius:6px;flex:1;padding:.3rem .5rem;font:13px ui-monospace,Menlo,monospace}.preview-frozen{color:var(--ko);background:var(--panel);border-bottom:1px solid var(--ko);padding:.5rem .7rem;font-size:13px}#frame{background:#fff;border:none;flex:1;width:100%}.requestlog{color:var(--muted);border-top:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;gap:.5rem;min-height:1.9rem;padding:.3rem .7rem;font:12px ui-monospace,Menlo,monospace;display:flex}.requestlog .method{color:var(--accent-text)}.requestlog .code.c2{color:var(--ok)}.requestlog .code.c3{color:var(--gold)}.requestlog .code.c4,.requestlog .code.c5{color:var(--ko)}.pane-requests{background:var(--panel);flex-direction:column;flex:1;gap:.4rem;min-height:0;padding:.5rem;display:flex}.req-examples{flex-wrap:wrap;gap:.3rem;display:flex}.req-examples .method,.req-line select{color:var(--accent-text);font:600 11px ui-monospace,Menlo,monospace}.req-line{gap:.3rem;display:flex}.pane-requests select,.pane-requests input,.pane-requests textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.3rem .5rem;font:12.5px/1.4 ui-monospace,Menlo,monospace}.req-line input{flex:1;min-width:0}.pane-requests textarea{resize:vertical}.req-response{border:1px solid var(--border);background:#0f1014;border-radius:6px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.req-status{color:var(--muted);border-bottom:1px solid var(--border);padding:.3rem .6rem;font:12px ui-monospace,Menlo,monospace}.req-status[data-kind=ok]{color:var(--ok)}.req-status[data-kind=ko]{color:var(--ko)}.req-status[data-kind=busy]{color:var(--gold)}.req-response details{color:var(--muted);border-bottom:1px solid var(--border);padding:.2rem .6rem;font-size:12px}.req-response pre{white-space:pre-wrap;word-break:break-word;color:#c9c9d1;margin:0;font:12px/1.45 ui-monospace,Menlo,monospace}.req-response .req-body{flex:1;padding:.5rem .6rem;overflow:auto}.pane-preview{position:relative}.overlay{z-index:100;background:#16171df5;place-items:center;padding:1rem;transition:opacity .3s;display:grid;position:absolute;inset:0}.overlay.hidden{opacity:0;pointer-events:none}.boot{text-align:center;width:min(420px,100%)}.boot .logo{font-size:3rem}.boot small{color:var(--muted)}.boot .boot-first{margin-top:.6rem;display:block}.boot .boot-first:empty{display:none}.boot-actions{justify-content:center;gap:.5rem;margin:1rem 0 0;display:flex}.load-error{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);max-width:32rem;color:var(--text);margin:3rem auto;padding:1.2rem 1.4rem}.load-error p{color:var(--muted)}.bar{background:var(--panel-2);border-radius:3px;height:6px;margin:.8rem 0 1rem;overflow:hidden}#boot-bar{background:var(--accent);width:0;height:100%;transition:width .2s}#boot-bar.indeterminate{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.4}}.pane-tabs{background:var(--panel);border-bottom:1px solid var(--border);display:flex}.pane-tabs button{color:var(--muted);background:0 0;border:none;border-radius:0;padding:.45rem 1rem}.pane-tabs button.active{color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.pane-tabs .badge{background:var(--ko);color:#fff;border-radius:50%;place-items:center;width:1.1rem;height:1.1rem;margin-left:.3rem;font-size:11px;display:inline-grid}.pane-preview,.pane-console{flex-direction:column;flex:1;min-height:0;display:flex}.console-output{background:#0f1014;flex:1;padding:.6rem .8rem;font:12.5px/1.45 ui-monospace,Menlo,monospace;overflow-y:auto}.console-entry+.console-entry{margin-top:.8rem}.console-command{color:var(--text)}.console-entry.failed .console-command{color:var(--ko)}.console-result{white-space:pre-wrap;word-break:break-word;font:inherit;color:#c9c9d1;margin:.2rem 0 0}.console-result .exit-code{color:var(--ko);font-style:italic}.console-input{border-top:1px solid var(--border);background:var(--panel);align-items:center;gap:.5rem;padding:.4rem .8rem;font:13px ui-monospace,Menlo,monospace;display:flex}.console-input[hidden]{display:none}.console-input:focus-within{box-shadow:inset 0 0 0 2px var(--accent-text)}.console-input input{min-width:0;color:var(--text);font:inherit;background:0 0;border:none;outline:none;flex:1}.prompt{color:var(--ok)}.muted{color:var(--muted)}.fg-0{color:#6b6b76}.fg-1{color:#ef5a5a}.fg-2{color:#3fbf7f}.fg-3{color:#e0b04a}.fg-4{color:#6c9ef8}.fg-5{color:#c678dd}.fg-6{color:#56b6c2}.fg-7{color:#e6e6ea}.fg-8{color:#8b8b96}.fg-9{color:#ff7b7b}.fg-10{color:#5fd99a}.fg-11{color:#f0c96a}.fg-12{color:#8fb6ff}.fg-13{color:#d9a0ec}.fg-14{color:#7fd3de}.fg-15{color:#fff}.bg-0{background:#2a2a33}.bg-1{color:#fff;background:#b83b3b}.bg-2{color:#fff;background:#2e8f5f}.bg-3{color:#fff;background:#a8822f}.bg-4{color:#fff;background:#3b62b8}.bg-5{color:#fff;background:#8a4b9c}.bg-6{color:#fff;background:#2f8591}.bg-7{color:#111;background:#c9c9d1}.bold{font-weight:700}.share{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.share-title,.share-status{color:var(--muted);font-size:13px}.share-status{overflow-wrap:anywhere}dialog.share-dialog h2{margin:0 0 .8rem;font-size:1.1rem}dialog.share-dialog .confirm-actions{text-align:right;margin:1rem 0 0}dialog.feedback{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:min(480px,100vw - 2rem);color:var(--text);padding:1.2rem 1.4rem;box-shadow:0 20px 60px #00000073}dialog.feedback::backdrop{background:#0000008c}dialog.shortcuts h2{margin:0 0 .8rem;font-size:1.1rem}.shortcuts-list{grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0 0 1rem;font-size:14px;display:grid}.shortcuts-list dt,.shortcuts-list dd{margin:0}.shortcuts-list kbd{font-family:var(--font-mono,"JetBrains Mono", ui-monospace, Menlo, monospace);border:1px solid var(--border);background:var(--panel-2);white-space:nowrap;border-bottom-width:2px;border-radius:4px;padding:.1rem .4rem;font-size:12px}.feedback-form{gap:.8rem;display:grid}.feedback-form h2{margin:0;font-size:1.1rem}.feedback-form .meta{color:var(--muted);margin:0;font-size:13px}.feedback-form label{color:var(--muted);gap:.3rem;font-size:13px;display:grid}.feedback-form select,.feedback-form textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .6rem}.feedback-form textarea{resize:vertical}.feedback-actions{align-items:center;gap:.5rem;display:flex}.feedback-status{color:var(--muted);flex:1;font-size:13px}.mentor{border-radius:var(--radius);border-left:3px solid var(--accent);background:#7c9cff14;gap:.5rem;margin-top:1rem;padding:.7rem .9rem;font-size:13.5px;display:grid}.mentor strong{color:var(--accent-text);font-size:12px}.mentor .what code{background:var(--panel-2);border-radius:4px;padding:.1rem .35rem;font-size:12.5px}.mentor .where{color:var(--muted);font-size:12px}.mentor .where a{color:var(--text);font-family:ui-monospace,Menlo,monospace}.mentor pre{background:var(--bg);border-radius:var(--radius);margin:0;padding:.5rem .7rem;font-size:12px;overflow-x:auto}.mentor .muted{color:var(--muted);margin:0}.review-points{gap:.6rem;margin:0;padding-left:1.2rem;display:grid}.review-points li{gap:.3rem;display:grid}.solution-note{color:var(--gold);margin-top:.8rem;font-size:12.5px}.output summary button,.console-input button{font:inherit;margin-left:.5rem;font-size:12px}.tab[title^=solution\/]{color:var(--gold)}.pane-switch,.actions .icon,.small-screen-note{display:none}@media (max-width:1100px){.playground:not(.studio) .workspace{grid-template-rows:minmax(0,34vh) minmax(0,1fr);grid-template-columns:1fr minmax(280px,42%)}.playground:not(.studio) .workspace .brief{border-right:none;border-bottom:1px solid var(--border);grid-column:1/-1;padding-top:.7rem}.brief .xp{margin-top:0}}@media (max-width:900px){.topbar{gap:.6rem;padding:.5rem .7rem}.topbar .lp-brand .lp-serif,.topbar .lp-brand .lp-chip,.crumbs .crumb-track,.crumbs .crumb-chapter,.who:not(.guest),.who.guest>span{display:none}.actions .label{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.actions .icon{display:inline}.status{background:var(--muted);border-radius:50%;flex:none;width:12px;height:12px;padding:0;font-size:0}.status[data-kind=ok]{background:var(--ok)}.status[data-kind=ko]{background:var(--ko)}.status[data-kind=busy]{background:var(--gold)}}@media (max-width:800px){.topbar{flex-wrap:wrap;row-gap:.4rem}.pane-switch{background:var(--panel-2);border-radius:999px;flex:1 0 100%;order:10;justify-content:center;gap:2px;padding:2px;display:flex}.pane-switch button{flex:1}.actions{flex:none;margin-left:auto}.pane-switch button{color:var(--muted);background:0 0;border:none;border-radius:999px;padding:.3rem .7rem;font-size:12.5px}.pane-switch button.active{background:var(--accent-fill);color:#fff}.crumbs{flex:1;min-width:0}.crumbs .crumb-current{max-width:10rem}.playground:not(.studio) .workspace{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr}.playground:not(.studio) .workspace .panel{border-bottom:none;border-right:none}.playground:not(.studio) .workspace[data-pane=brief] .panel:not(.brief),.playground:not(.studio) .workspace[data-pane=code] .panel:not(.code),.playground:not(.studio) .workspace[data-pane=preview] .panel:not(.preview){display:none}.playground:not(.studio) .workspace .brief{padding:.8rem 1rem 3rem}.filetree{width:11rem}}@media (max-width:700px){.small-screen-note{color:var(--gold);border-bottom:1px solid var(--border);background:#e0b04a14;justify-content:space-between;align-items:center;gap:.6rem;padding:.3rem .8rem;font-size:12.5px;display:flex}.small-screen-note button{flex:none;padding:0 .4rem}.topbar .status{display:none}}.filetree-head:has(.filetree-new:not([hidden])){justify-content:space-between;align-items:center;display:flex}.filetree-new{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:4px;padding:0 .35rem;font:600 13px/1.3 system-ui,sans-serif}.filetree-new:hover{background:var(--border)}dialog.before-after{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:min(1100px,100vw - 2rem);height:min(720px,100vh - 2rem);color:var(--text);padding:.9rem 1rem 1rem;box-shadow:0 20px 60px #00000073}dialog.before-after[open]{grid-template-rows:auto auto 1fr;gap:.5rem;display:grid}dialog.before-after::backdrop{background:#0000008c}dialog.before-after header{align-items:center;gap:.6rem;display:flex}dialog.before-after h2{flex:1;margin:0;font-size:1.05rem}dialog.before-after select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.3rem .5rem;font-size:13px}dialog.before-after .meta{color:var(--muted);grid-template-columns:1fr 1fr;margin:0;font-size:12px;display:grid}.before-after-editor{border:1px solid var(--border);border-radius:var(--radius);min-height:0;overflow:hidden}dialog.confirm h2{margin:0 0 .5rem;font-size:1.1rem}dialog.confirm p{color:var(--muted);margin:0 0 1rem}.confirm-actions{justify-content:flex-end;gap:.5rem;display:flex;margin:0!important}.undo-toast{z-index:50;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);align-items:center;gap:.8rem;padding:.55rem .9rem;font-size:14px;display:flex;position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0006}.workspace{--rail:2.6rem;transition:grid-template-columns .18s,grid-template-rows .18s}.workspace[data-brief-folded]{grid-template-columns:var(--rail) 1fr minmax(320px, 32%)}.workspace[data-preview-folded]{grid-template-columns:minmax(280px, 25%) 1fr var(--rail)}.workspace[data-brief-folded][data-preview-folded]{grid-template-columns:var(--rail) 1fr var(--rail)}.playground .workspace .panel.folded{padding:0;overflow:hidden}.panel.folded>:not(.pane-rail){display:none}.pane-fold{width:1.8rem;height:1.8rem;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;padding:0;font-size:18px;line-height:1;display:inline-grid}.pane-fold:hover{color:var(--text);background:var(--panel-2)}.brief>.pane-fold{z-index:1;background:var(--panel);flex:none;align-self:flex-end;margin:-.6rem -.8rem -.3rem 0;position:sticky;top:-.6rem}.pane-tabs .pane-fold{box-shadow:none;align-self:center;margin:0 .3rem 0 auto;padding:0}.pane-rail{background:var(--panel);width:100%;min-height:0;color:var(--muted);cursor:pointer;border:none;border-radius:0;flex-direction:column;flex:1;align-items:center;gap:.6rem;padding:.8rem 0;font-size:13px;display:flex}.pane-rail[hidden]{display:none}.pane-rail:hover{color:var(--text);background:var(--panel-2)}.pane-rail:focus-visible{outline-offset:-3px}.rail-name{writing-mode:vertical-rl;letter-spacing:.04em}.rail-badge{background:var(--ko);color:#fff;border-radius:999px;place-items:center;min-width:1.3rem;height:1.3rem;padding:0 .3rem;font-size:11px;font-weight:700;line-height:1;display:inline-grid}.rail-badge[hidden]{display:none}.rail-badge[data-kind=ok]{background:var(--ok);color:#0d1f15}@media (max-width:1100px){.playground:not(.studio) .workspace[data-brief-folded]{grid-template-rows:auto minmax(0,1fr)}.playground:not(.studio) .workspace[data-preview-folded]{grid-template-columns:1fr var(--rail)}.playground:not(.studio) .brief .pane-rail{flex-direction:row;justify-content:flex-start;padding:.45rem 1rem}.playground:not(.studio) .brief .rail-name{writing-mode:horizontal-tb}.playground:not(.studio) .brief>.pane-fold span{transform:rotate(90deg)}.playground:not(.studio) .brief .pane-rail:after{content:"›";margin-left:auto;font-size:18px;transform:rotate(90deg)}}@media (max-width:800px){.pane-fold{display:none}}@media (prefers-reduced-motion:reduce){.overlay,#boot-bar,.workspace{transition:none}#boot-bar.indeterminate,.success:not([hidden]){animation:none}}
