@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Host+Grotesk:wght@400;500;600;700&family=Geist+Mono:wght@400;500;600&display=swap";:root{color-scheme:light;--paper: oklch(.962 .011 84);--paper-strong: oklch(.985 .006 84);--paper-dim: oklch(.936 .013 84);--line: oklch(.865 .018 84);--line-soft: oklch(.905 .014 84);--ink: oklch(.24 .03 258);--ink-dim: oklch(.45 .025 256);--ink-faint: oklch(.58 .02 256);--slate: oklch(.25 .032 258);--slate-deep: oklch(.21 .03 260);--slate-line: oklch(.34 .03 258);--slate-ink: oklch(.93 .012 84);--slate-dim: oklch(.68 .02 260);--cobalt: oklch(.46 .14 258);--cobalt-bright: oklch(.56 .15 258);--cobalt-wash: oklch(.46 .14 258 / .08);--amber: oklch(.72 .15 73);--amber-deep: oklch(.6 .14 68);--green: oklch(.56 .12 153);--green-wash: oklch(.56 .12 153 / .1);--red: oklch(.55 .17 29);--red-wash: oklch(.55 .17 29 / .08);--font-display: "Fraunces", "Georgia", serif;--font-body: "Host Grotesk", ui-sans-serif, system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", monospace;--radius-sm: 5px;--radius: 8px;--radius-lg: 12px;--shadow-soft: 0 1px 2px oklch(.3 .03 84 / .08), 0 8px 24px oklch(.3 .03 84 / .07);--shadow-pop: 0 12px 40px oklch(.25 .03 258 / .22);--ease-out: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:clip}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}#root{min-height:100vh}button,a,input,textarea,[role=tab]{touch-action:manipulation}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}code,kbd,pre{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--cobalt-bright);outline-offset:2px}::selection{background:#1e55a433}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.layout{display:grid;grid-template-columns:260px minmax(400px,1fr) minmax(320px,27%);flex:1;min-height:0}.mode-playground .layout{grid-template-columns:minmax(400px,1fr) minmax(320px,29%)}.topbar{display:flex;align-items:center;gap:18px;padding:8px 16px;background:var(--slate-deep);color:var(--slate-ink);border-bottom:3px solid var(--amber);min-height:54px}.topbar .atlas-toggle{display:none}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-sm);background:var(--cobalt);color:#f8f5ee;font-size:17px;font-weight:700}.brand h1{margin:0;font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:.01em;line-height:1.1}.brand-tag{display:block;font-size:10.5px;color:var(--slate-dim);letter-spacing:.04em}.mode-switch{display:flex;gap:2px;padding:3px;background:#ffffff12;border:1px solid var(--slate-line);border-radius:999px}.mode-switch button{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--slate-dim);transition:color .18s var(--ease-out),background .18s var(--ease-out)}.mode-switch button:hover{color:var(--slate-ink)}.mode-switch button.on{background:var(--amber);color:var(--slate-deep)}.progress{display:flex;align-items:center;gap:10px;margin-left:auto;min-width:0}.progress-points{display:inline-flex;align-items:baseline;gap:3px;font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--amber);white-space:nowrap}.progress-points em{font-style:normal;font-size:10.5px;color:var(--slate-dim)}.progress-track{width:110px;height:5px;border-radius:999px;background:#ffffff1f;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--cobalt-bright),var(--amber));transition:width .5s var(--ease-out)}.progress-pct{font-size:11px;color:var(--slate-dim);white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:6px}.ghost-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:12px;font-weight:600;color:inherit;opacity:.85;transition:opacity .15s,background .15s,border-color .15s}.topbar .ghost-btn{color:var(--slate-ink);border-color:var(--slate-line)}.ghost-btn:hover{opacity:1;background:#ffffff14}.work-pane .ghost-btn,.schema-pane .ghost-btn,.saves-drawer .ghost-btn{border-color:var(--line);color:var(--ink-dim);background:var(--paper-strong)}.work-pane .ghost-btn:hover,.schema-pane .ghost-btn:hover,.saves-drawer .ghost-btn:hover{background:var(--paper-dim);color:var(--ink)}.ghost-btn.danger:hover{color:var(--red);border-color:var(--red)}.locale-btn{padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--slate-line);font-family:var(--font-mono);font-size:11.5px;font-weight:600;color:var(--slate-ink)}.locale-btn:hover{background:#ffffff14}.atlas-pane{border-right:1px solid var(--line);background:var(--paper-dim);min-height:0;overflow-y:auto}.sidebar{padding:14px 12px 28px}.sidebar-title{font-family:var(--font-mono);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-faint);padding:2px 8px 10px}.chapter{margin-bottom:14px}.chapter-head{display:flex;align-items:center;gap:9px;padding:6px 8px}.chapter-numeral{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--cobalt);width:22px;text-align:center;flex-shrink:0}.chapter-head>div{min-width:0;flex:1}.chapter-title{font-size:12.5px;font-weight:700;line-height:1.25}.chapter-subtitle{font-size:10.5px;color:var(--ink-faint)}.chapter-progress{font-family:var(--font-mono);font-size:10px;color:var(--ink-faint);border:1px solid var(--line);border-radius:999px;padding:2px 7px;white-space:nowrap}.chapter-progress.full{color:var(--green);border-color:var(--green);background:var(--green-wash)}.chapter-progress.soon{border-style:dashed}.chapter-lessons{list-style:none;padding:0 0 0 18px;border-left:1px solid var(--line-soft);margin:2px 0 0 18px}.lesson-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:var(--radius-sm);text-align:left;transition:background .15s}.lesson-item:hover:not(:disabled){background:var(--paper-strong)}.lesson-item.active{background:var(--cobalt-wash);box-shadow:inset 2px 0 0 var(--cobalt)}.lesson-item:disabled{cursor:not-allowed;opacity:.45}.lesson-state{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;flex-shrink:0;color:var(--ink-faint)}.lesson-item.done .lesson-state{background:var(--green);color:#faf8f5}.lesson-dot{width:6px;height:6px;border-radius:50%;border:1.5px solid var(--ink-faint)}.lesson-item.active .lesson-dot{background:var(--cobalt);border-color:var(--cobalt)}.lesson-name{flex:1;min-width:0;font-size:12.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-item.active .lesson-name{font-weight:700;color:var(--cobalt)}.lesson-topic{font-family:var(--font-mono);font-size:9px;letter-spacing:.05em;color:var(--ink-faint);text-transform:uppercase;white-space:nowrap}.work-pane{min-width:0;min-height:0;overflow-y:auto;padding:18px 22px 40px;display:flex;flex-direction:column;gap:14px}.work-pane>*{flex-shrink:0}.mission-head{margin-bottom:12px}.mission-meta{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.topic-chip{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--cobalt);border:1px solid oklch(.46 .14 258 / .4);background:var(--cobalt-wash);border-radius:999px;padding:3px 9px}.points-chip{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--amber-deep)}.done-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--green);background:var(--green-wash);border-radius:999px;padding:3px 9px}.mission-title{margin:0 0 4px;font-family:var(--font-display);font-size:clamp(22px,2.6vw,30px);font-weight:600;line-height:1.12;letter-spacing:.005em}.mission-goal{margin:0;font-size:14.5px;color:var(--ink-dim);max-width:62ch}.mission-sass{margin:4px 0 0;font-size:12px;font-style:italic;color:var(--ink-faint)}.mission-task{background:var(--paper-strong);border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-soft)}.task-label{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--amber-deep);margin-bottom:6px}.mission-task>p{margin:0 0 10px;font-size:14px;font-weight:500}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.checklist li{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink-dim);transition:color .25s var(--ease-out)}.checklist li.checked{color:var(--green);font-weight:600}.check-box{display:grid;place-items:center;width:17px;height:17px;border-radius:5px;border:1.5px solid var(--line);background:var(--paper);color:#faf8f5;flex-shrink:0;transition:background .25s var(--ease-out),border-color .25s var(--ease-out),transform .25s var(--ease-out)}.checklist li.checked .check-box{background:var(--green);border-color:var(--green);transform:scale(1.08)}.focus-hint{display:flex;align-items:center;gap:6px;margin:12px 0 0;font-size:11.5px;color:var(--ink-faint)}.editor{background:var(--slate);border-radius:var(--radius-lg);border:1px solid var(--slate-deep);box-shadow:var(--shadow-soft);overflow:hidden}.editor-head{display:flex;align-items:center;gap:12px;padding:8px 10px;background:var(--slate-deep);border-bottom:1px solid var(--slate-line)}.dialect-switch{display:flex;gap:2px;padding:2px;border:1px solid var(--slate-line);border-radius:var(--radius-sm)}.dialect-switch button{padding:4px 10px;border-radius:4px;font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--slate-dim);transition:background .15s,color .15s}.dialect-switch button:hover{color:var(--slate-ink)}.dialect-switch button.on{background:var(--cobalt);color:#f8f5ee}.editor-hint{font-size:11px;color:var(--slate-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.editor .ghost-btn{color:var(--slate-dim);border:1px solid var(--slate-line)}.editor .ghost-btn:hover{color:var(--slate-ink);background:#ffffff12}.run-btn{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:var(--radius-sm);background:var(--amber);color:var(--slate-deep);font-size:12.5px;font-weight:700;transition:transform .12s var(--ease-out),filter .15s}.run-btn:hover{filter:brightness(1.06)}.run-btn:active{transform:scale(.97)}.run-btn kbd{font-size:10px;font-weight:600;background:#00000024;border-radius:4px;padding:1.5px 5px}.editor-body{position:relative;min-height:132px}.editor-mirror,.editor-input{margin:0;padding:14px 16px;font-family:var(--font-mono);font-size:13.5px;line-height:1.65;-moz-tab-size:2;tab-size:2;white-space:pre-wrap;word-break:break-word}.editor-mirror{color:var(--slate-ink);min-height:132px;max-height:320px;overflow:auto;pointer-events:none}.editor-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;resize:none;border:none;background:transparent;color:transparent;caret-color:var(--amber);overflow:auto}.editor-input:focus{outline:none}.tok-keyword{color:#98b7f8;font-weight:600}.tok-function{color:#e9b26a}.tok-string{color:#88ca95}.tok-operator{color:#9da5b1}.tok-literal{color:#f09080}.tok-comment{color:#737b87;font-style:italic}.results{background:var(--paper-strong);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);overflow:hidden;animation:result-in .35s var(--ease-out)}@keyframes result-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.results-head{display:flex;align-items:baseline;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line-soft)}.results-label{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.results-count{font-size:13.5px}.runtime{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--ink-faint)}.result-error{margin:12px 16px;padding:10px 14px;border-radius:var(--radius);border:1px solid oklch(.55 .17 29 / .4);border-left:3px solid var(--red);background:var(--red-wash);color:var(--red);font-size:13px}.result-warning{margin:12px 16px 0;padding:8px 14px;border-radius:var(--radius);border:1px dashed oklch(.6 .14 68 / .55);background:#dc931114;color:var(--amber-deep);font-size:12.5px}.result-empty{display:flex;flex-direction:column;gap:4px;padding:26px 16px;text-align:center;color:var(--ink-faint)}.result-empty strong{color:var(--ink-dim)}.result-empty span{font-size:12.5px;max-width:46ch;margin:0 auto}.table-wrap{overflow:auto;max-height:320px}.table-wrap table{width:100%;border-collapse:collapse;font-size:12.5px}.table-wrap th{position:sticky;top:0;background:var(--slate);color:var(--slate-ink);font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;text-align:left;padding:7px 12px;white-space:nowrap}.table-wrap td{padding:6px 12px;border-bottom:1px solid var(--line-soft);font-family:var(--font-mono);font-size:12px;white-space:nowrap}.table-wrap tbody tr:nth-child(2n){background:#efebe280}.table-wrap tbody tr:hover{background:var(--cobalt-wash)}.table-wrap td.is-null{color:var(--ink-faint);font-style:italic}.explain{padding:12px 16px 14px;border-top:1px solid var(--line-soft);background:var(--paper)}.explain-title{display:block;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--cobalt);margin-bottom:6px}.explain p{margin:0 0 3px;font-size:12.5px;color:var(--ink-dim)}.explain-hints{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.explain-hints span{font-family:var(--font-mono);font-size:10.5px;color:var(--green);background:var(--green-wash);border:1px solid oklch(.56 .12 153 / .35);border-radius:999px;padding:2px 9px}.mission-learn{border-top:1px dashed var(--line);padding-top:14px}.learn{display:flex;flex-direction:column;gap:8px}.learn-section{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-strong);overflow:hidden}.learn-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;font-size:12.5px;font-weight:700;color:var(--ink-dim);text-align:left}.learn-toggle:hover{color:var(--ink);background:var(--paper-dim)}.learn-chevron{margin-left:auto;transition:transform .2s var(--ease-out)}.learn-section.open .learn-chevron{transform:rotate(180deg)}.learn-body{padding:2px 12px 12px 33px}.learn-body p{margin:0 0 6px;font-size:13px;color:var(--ink-dim);max-width:68ch}.learn-dim{color:var(--ink-faint)!important;font-size:12.5px!important}.notes{margin:0;padding-left:16px;font-size:12.5px;color:var(--ink-dim)}.notes li{margin-bottom:3px}.dialect-tip{margin:2px 0 0;padding:9px 12px;border-radius:var(--radius);border:1px dashed var(--line);font-size:12.5px;color:var(--ink-dim);background:var(--paper)}.working-example{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-strong);overflow:hidden}.example-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line-soft)}.example-toolbar>span{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}.example-code{margin:0;padding:12px 14px;background:var(--slate);color:var(--slate-ink);font-size:12.5px;line-height:1.6;overflow-x:auto;white-space:pre}.example-error{margin:10px 12px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--red-wash);border:1px solid oklch(.55 .17 29 / .4);color:var(--red);font-size:12.5px}.example-result{border-top:1px solid var(--line-soft)}.example-result-head{display:flex;align-items:baseline;justify-content:space-between;padding:8px 12px 4px;font-size:12px}.compact-table{max-height:200px}.compact-table th{position:static}.example-more{margin:0;padding:6px 12px 10px;font-size:11px;color:var(--ink-faint)}.mission-nav{display:flex;justify-content:space-between;gap:10px;margin-top:14px}.nav-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--paper-strong);font-size:13px;font-weight:600;color:var(--ink-dim);transition:background .15s,color .15s,transform .12s var(--ease-out)}.nav-btn:hover:not(:disabled){background:var(--paper-dim);color:var(--ink)}.nav-btn:disabled{opacity:.4;cursor:not-allowed}.nav-next:not(:disabled){background:var(--cobalt);border-color:var(--cobalt);color:#f8f5ee}.nav-next:not(:disabled):hover{background:var(--cobalt-bright);color:#f8f5ee}.playground-bar{display:flex;flex-direction:column;gap:10px}.playground-intro{display:flex;align-items:center;gap:8px;margin:0;padding:10px 14px;border-radius:var(--radius);border:1px solid var(--line);border-left:3px solid var(--cobalt);background:var(--paper-strong);font-size:13px;color:var(--ink-dim)}.playground-examples{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.examples-label{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-right:4px}.example-chip{padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--paper-strong);font-size:12px;font-weight:600;color:var(--ink-dim);transition:border-color .15s,color .15s,background .15s}.example-chip:hover{border-color:var(--cobalt);color:var(--cobalt);background:var(--cobalt-wash)}.schema-col{min-height:0;border-left:1px solid var(--line);overflow-y:auto;background:linear-gradient(90deg,oklch(.46 .14 258 / .045) 1px,transparent 1px),linear-gradient(0deg,oklch(.46 .14 258 / .045) 1px,transparent 1px),var(--paper);background-size:24px 24px,24px 24px,auto}.schema-pane{display:flex;flex-direction:column;gap:10px;padding:14px}.schema-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.schema-title{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--cobalt)}.schema-legend{font-size:10px;color:var(--ink-faint)}.legend-pk,.legend-fk{font-family:var(--font-mono);font-style:normal;font-size:8.5px;font-weight:700;border-radius:3px;padding:1px 4px}.legend-pk{background:var(--amber);color:var(--slate-deep)}.legend-fk{background:var(--cobalt);color:#f8f5ee}.blueprint{width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-strong);box-shadow:var(--shadow-soft)}.edge-line{stroke:var(--line);stroke-width:1.4;stroke-dasharray:5 4;transition:stroke .25s}.edge-arrow{fill:var(--line);transition:fill .25s}.edge.hot .edge-line{stroke:#1e55a473;stroke-dasharray:none}.edge.hot .edge-arrow{fill:var(--cobalt)}.edge-flow{stroke:var(--cobalt-bright);stroke-width:2;stroke-dasharray:7 9;stroke-linecap:round;animation:edge-flow 1.1s linear infinite}@keyframes edge-flow{to{stroke-dashoffset:-16}}.table-node{cursor:pointer}.node-card{fill:var(--paper-strong);stroke:var(--line);stroke-width:1.2;transition:stroke .25s,filter .25s}.node-head{fill:var(--slate);transition:fill .25s}.table-node:hover .node-card{stroke:var(--ink-faint)}.table-node.active .node-card{stroke:var(--cobalt);stroke-width:1.6;filter:drop-shadow(0 0 6px oklch(.46 .14 258 / .35))}.table-node.active .node-head{fill:var(--cobalt)}.table-node.selected .node-card{stroke:var(--amber-deep);stroke-width:1.8}.node-title{fill:var(--slate-ink);font-family:var(--font-mono);font-size:10px;font-weight:600}.node-count{fill:var(--slate-dim);font-family:var(--font-mono);font-size:8px;text-anchor:end}.table-node.active .node-count{fill:#e7ddc8}.node-key{font-family:var(--font-mono);font-size:7px;font-weight:700}.node-key.key-pk{fill:var(--amber-deep)}.node-key.key-fk{fill:var(--cobalt)}.node-col{fill:var(--ink-dim);font-family:var(--font-mono);font-size:8.5px}.schema-caption{margin:0;font-size:11px;color:var(--ink-faint)}.inspector-hint{margin:0;padding:12px;border:1px dashed var(--line);border-radius:var(--radius);font-size:11.5px;color:var(--ink-faint);text-align:center}.inspector{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-strong);padding:12px;box-shadow:var(--shadow-soft);animation:result-in .3s var(--ease-out)}.inspector-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.inspector-head strong{font-family:var(--font-display);font-size:15px;font-weight:600}.inspector-head span{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-faint)}.inspector-desc{margin:4px 0 10px;font-size:12px;color:var(--ink-dim)}.inspector-query{font-family:var(--font-mono);font-size:11px;margin-bottom:10px}.inspector-cols{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.inspector-cols button{display:flex;align-items:center;gap:7px;width:100%;padding:5px 8px;border-radius:var(--radius-sm);text-align:left;transition:background .15s}.inspector-cols button:hover{background:var(--cobalt-wash)}.col-name{font-family:var(--font-mono);font-size:11.5px;color:var(--ink)}.col-type{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--ink-faint)}.dialect-note{display:flex;gap:9px;padding:11px 12px;border:1px solid var(--line);border-left:3px solid var(--cobalt);border-radius:var(--radius);background:var(--paper-strong);color:var(--ink-dim)}.dialect-note strong{display:block;font-size:12px;margin-bottom:2px;color:var(--ink)}.dialect-note p{margin:0;font-size:12px}.dialect-note svg{flex-shrink:0;margin-top:2px;color:var(--cobalt)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#121b2866;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;animation:fade-in .2s var(--ease-out)}@keyframes fade-in{0%{opacity:0}}.saves-drawer{position:fixed;top:0;right:0;bottom:0;width:min(400px,92vw);background:var(--paper);border-left:1px solid var(--line);box-shadow:var(--shadow-pop);z-index:41;overflow-y:auto;padding:14px 16px 30px;animation:drawer-in .28s var(--ease-out)}@keyframes drawer-in{0%{transform:translate(40px);opacity:0}to{transform:none;opacity:1}}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.drawer-head>span{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:17px;font-weight:600}.drawer-section{margin-bottom:20px}.drawer-section h3{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.drawer-empty{margin:0;font-size:12.5px;color:var(--ink-faint)}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px}.slot{display:flex;flex-direction:column;gap:2px;padding:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-strong);text-align:left;min-width:0}.slot strong{font-family:var(--font-mono);font-size:11px;color:var(--ink-dim)}.slot span{font-size:10.5px;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot.filled span{color:var(--ink-dim)}.slot.on{border-color:var(--cobalt);background:var(--cobalt-wash)}.slot.on strong{color:var(--cobalt)}.slot-form{display:flex;gap:6px}.slot-form input{flex:1;min-width:0;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-strong);font:inherit;font-size:12.5px;color:var(--ink)}.slot-form input:focus{outline:2px solid var(--cobalt-bright);outline-offset:-1px}.save-list,.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.save-list li{display:flex;gap:6px;align-items:stretch}.save-load{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-strong);text-align:left;transition:border-color .15s,background .15s}.save-load:hover{border-color:var(--cobalt);background:var(--cobalt-wash)}.save-load strong{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-load span{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-faint)}.history-list button{display:flex;flex-direction:column;gap:1px;width:100%;padding:7px 10px;border:1px solid var(--line);border-left-width:3px;border-radius:var(--radius-sm);background:var(--paper-strong);text-align:left;transition:border-color .15s}.history-list button.ok{border-left-color:var(--green)}.history-list button.err{border-left-color:var(--red)}.history-list button:hover{border-color:var(--cobalt)}.history-list code{font-size:11px;color:var(--ink-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.history-list span{font-family:var(--font-mono);font-size:10px;color:var(--ink-faint)}.celebration{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.confetti-piece{position:absolute;top:-20px;border-radius:2px;animation-name:confetti-fall;animation-timing-function:ease-in;animation-fill-mode:forwards}@keyframes confetti-fall{0%{transform:translateY(-10vh) translate(0) rotate(0);opacity:1}to{transform:translateY(110vh) translate(var(--drift, 0px)) rotate(540deg);opacity:.7}}.celebration-toast{position:absolute;left:50%;bottom:40px;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:13px 20px;border-radius:var(--radius-lg);background:var(--slate-deep);color:var(--slate-ink);border:1px solid var(--slate-line);border-bottom:3px solid var(--amber);box-shadow:var(--shadow-pop);animation:toast-in .4s var(--ease-out)}@keyframes toast-in{0%{transform:translate(-50%) translateY(16px);opacity:0}to{transform:translate(-50%);opacity:1}}.celebration-toast svg{color:var(--amber)}.celebration-toast strong{display:block;font-family:var(--font-display);font-size:15px}.celebration-toast span{font-size:12px;color:var(--slate-dim)}.driver-popover.qc-tour{background:var(--paper-strong);color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--amber);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);font-family:var(--font-body)}.driver-popover.qc-tour .driver-popover-title{font-family:var(--font-display);font-size:16px;font-weight:600}.driver-popover.qc-tour .driver-popover-description{font-size:13px;color:var(--ink-dim)}.driver-popover.qc-tour button{background:var(--cobalt);color:#f8f5ee;border:none;border-radius:var(--radius-sm);padding:5px 12px;font-weight:600;text-shadow:none}.driver-popover.qc-tour button:hover{background:var(--cobalt-bright)}.driver-popover.qc-tour .driver-popover-close-btn{background:transparent;color:var(--ink-faint)}.driver-popover.qc-tour .driver-popover-progress-text{color:var(--ink-faint)}.driver-popover.qc-tour .driver-popover-arrow-side-left.driver-popover-arrow{border-left-color:var(--paper-strong)}.driver-popover.qc-tour .driver-popover-arrow-side-right.driver-popover-arrow{border-right-color:var(--paper-strong)}.driver-popover.qc-tour .driver-popover-arrow-side-top.driver-popover-arrow{border-top-color:var(--paper-strong)}.driver-popover.qc-tour .driver-popover-arrow-side-bottom.driver-popover-arrow{border-bottom-color:var(--paper-strong)}@media(max-width:1240px){.layout{grid-template-columns:236px minmax(380px,1fr) minmax(280px,26%)}.progress-pct{display:none}}@media(max-width:1024px){.layout,.mode-playground .layout{grid-template-columns:minmax(0,1fr) minmax(280px,34%)}.topbar .atlas-toggle{display:inline-flex}.atlas-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#121b2866;z-index:30;animation:fade-in .2s var(--ease-out)}.atlas-pane{position:fixed;top:54px;left:0;bottom:0;width:min(300px,84vw);z-index:31;transform:translate(-102%);transition:transform .25s var(--ease-out);border-right:1px solid var(--line);box-shadow:var(--shadow-pop)}.atlas-pane.open{transform:none}.btn-text{display:none}}@media(max-width:480px){.topbar{flex-wrap:wrap;row-gap:6px}.brand h1{font-size:15px}.mode-switch{order:3;flex-basis:100%}.mode-switch button{flex:1;justify-content:center}.progress{order:2;margin-left:0}.progress-points em,.run-btn kbd{display:none}}@media(max-width:760px){.layout,.mode-playground .layout{display:flex;flex-direction:column;overflow-y:auto}.app{height:auto;min-height:100dvh}.work-pane{overflow:visible;padding:14px 14px 24px}.schema-col{order:2;border-left:none;border-top:1px solid var(--line);overflow:visible}.topbar{gap:10px;padding:8px 10px;position:sticky;top:0;z-index:20}.brand-tag{display:none}.brand h1{font-size:16px}.mode-switch button{padding:5px 9px}.mode-switch button svg{display:none}.progress-track{width:56px}.progress-pct{display:none}.atlas-pane{top:50px}.mission-title{font-size:21px}.editor-hint{display:none}.table-wrap{max-height:260px}}@media(max-width:430px){.progress-points em{display:none}.topbar-actions .ghost-btn:not(.danger){padding:6px}.slot-grid{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.edge-flow,.confetti{display:none}}.driver-active .driver-overlay,.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in .2s ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in .2s}.driver-popover{all:unset;box-sizing:border-box;color:#2d2d2d;margin:0;padding:15px;border-radius:5px;min-width:250px;max-width:300px;box-shadow:0 1px 10px #0006;z-index:1000000000;position:fixed;top:0;right:0;background-color:#fff}.driver-popover *{font-family:Helvetica Neue,Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif}.driver-popover-title{font:19px/normal sans-serif;font-weight:700;display:block;position:relative;line-height:1.5;zoom:1;margin:0}.driver-popover-close-btn{all:unset;position:absolute;top:0;right:0;width:32px;height:28px;cursor:pointer;font-size:18px;font-weight:500;color:#d2d2d2;z-index:1;text-align:center;transition:color;transition-duration:.2s}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{margin-bottom:0;font:14px/normal sans-serif;line-height:1.5;font-weight:400;zoom:1}.driver-popover-footer{margin-top:15px;text-align:right;zoom:1;display:flex;align-items:center;justify-content:space-between}.driver-popover-progress-text{font-size:13px;font-weight:400;color:#727272;zoom:1}.driver-popover-footer button{all:unset;display:inline-block;box-sizing:border-box;padding:3px 7px;text-decoration:none;text-shadow:1px 1px 0 #fff;background-color:#fff;color:#2d2d2d;font:12px/normal sans-serif;cursor:pointer;outline:0;zoom:1;line-height:1.3;border:1px solid #ccc;border-radius:3px}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}:not(body):has(>.driver-active-element){overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover-footer button:hover,.driver-popover-footer button:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{display:flex;flex-grow:1;justify-content:flex-end}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";position:absolute;border:5px solid #fff}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{left:100%;border-right-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-right{right:100%;border-left-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-top{top:100%;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.driver-popover-arrow-side-bottom{bottom:100%;border-left-color:transparent;border-top-color:transparent;border-right-color:transparent}.driver-popover-arrow-side-center{display:none}.driver-popover-arrow-side-left.driver-popover-arrow-align-start,.driver-popover-arrow-side-right.driver-popover-arrow-align-start{top:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-start,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-start{left:15px}.driver-popover-arrow-align-end.driver-popover-arrow-side-left,.driver-popover-arrow-align-end.driver-popover-arrow-side-right{bottom:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-end,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-end{right:15px}.driver-popover-arrow-side-left.driver-popover-arrow-align-center,.driver-popover-arrow-side-right.driver-popover-arrow-align-center{top:50%;margin-top:-5px}.driver-popover-arrow-side-top.driver-popover-arrow-align-center,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-center{left:50%;margin-left:-5px}.driver-popover-arrow-none{display:none}
