@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=optional";.driver-popover{all:unset;font-family:var(--driver-popover-font-family,"Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", Helvetica, Arial, sans-serif);box-sizing:border-box;color:#2d2d2d;z-index:1000000000;background-color:#fff;border-radius:5px;min-width:250px;max-width:300px;margin:0;padding:15px;position:fixed;top:0;right:0;box-shadow:0 1px 10px #0006}.driver-popover-title{zoom:1;margin:0;font-size:19px;font-weight:700;line-height:1.5;display:block;position:relative}.driver-popover-close-btn{all:unset;cursor:pointer;color:#d2d2d2;z-index:1;text-align:center;width:32px;height:28px;font-size:18px;font-weight:500;transition:color .2s;position:absolute;top:0;right:0}.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{zoom:1;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.5}.driver-popover-footer{text-align:right;zoom:1;justify-content:space-between;align-items:center;margin-top:15px;display:flex}.driver-popover-progress-text{color:#727272;zoom:1;font-size:13px;font-weight:400}.driver-popover-footer-btn{all:unset;box-sizing:border-box;color:#2d2d2d;cursor:pointer;zoom:1;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;padding:3px 7px;font-size:12px;line-height:1.3;text-decoration:none;display:inline-block}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}.driver-popover-footer-btn:hover,.driver-popover-footer-btn:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{flex-grow:1;justify-content:flex-end;display:flex}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";border:5px solid #fff;position:absolute}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000;left:100%}.driver-popover-arrow-side-right{border-top-color:#0000;border-bottom-color:#0000;border-left-color:#0000;right:100%}.driver-popover-arrow-side-top{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;top:100%}.driver-popover-arrow-side-bottom{border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;bottom:100%}.driver-popover-arrow-side-center,.driver-popover-arrow-none{display:none}.driver-active .driver-overlay{pointer-events:none}.driver-active.driver-no-scroll{overflow:hidden}.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 var(--driver-animation-duration,.4s) ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in var(--driver-animation-duration,.4s)}.driver-active-element-parent-no-scroll{overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}:root{color-scheme:dark;--af-bg: #05070a;--af-surface: #0a0f1a;--af-surface-2: #0d1117;--af-surface-3: #161b22;--af-line: #1a2233;--af-text: #ffffff;--af-text-muted: #94a3b8;--af-font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;--af-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--af-radius: .5rem;--af-radius-lg: 1rem;--af-accent: #ff4e00;--af-accent-hover: #e64600;--af-accent-contrast: #ffffff}[data-flavor=circuit]{--af-accent: #22d3ee;--af-accent-hover: #06b6d4;--af-accent-contrast: #05070a}[data-flavor=flux]{--af-accent: #a78bfa;--af-accent-hover: #8b5cf6;--af-accent-contrast: #05070a}[data-flavor=relay]{--af-bg: #0a0a0a;--af-surface: #1a1a1a;--af-surface-2: #161616;--af-surface-3: #202020;--af-line: #2a2a2a;--af-accent: #ff6b00;--af-accent-hover: #e56000;--af-accent-contrast: #05070a}[data-flavor=signal]{--af-accent: #ffb000;--af-accent-hover: #e69e00;--af-accent-contrast: #05070a}[data-theme=light]{color-scheme:light;--af-bg: #f7f8fa;--af-surface: #ffffff;--af-line: #dde1e6;--af-text: #0a0f1a;--af-text-muted: #475569}[data-theme=light][data-flavor=forge]{--af-accent: #cf3f00;--af-accent-hover: #b63700;--af-accent-contrast: #ffffff}[data-theme=light][data-flavor=circuit]{--af-accent: #0b7c8d;--af-accent-hover: #0a6d7c;--af-accent-contrast: #ffffff}[data-theme=light][data-flavor=flux]{--af-accent: #7a4ff7;--af-accent-hover: #5e2af5;--af-accent-contrast: #ffffff}[data-theme=light][data-flavor=relay]{--af-bg: #f5f5f5;--af-line: #e2e2e2;--af-text: #0a0a0a;--af-text-muted: #525252;--af-accent: #ba4e00;--af-accent-hover: #a44500;--af-accent-contrast: #ffffff}[data-theme=light][data-flavor=signal]{--af-accent: #966800;--af-accent-hover: #845c00;--af-accent-contrast: #ffffff}@theme inline{ --font-sans: var(--af-font-sans); --font-mono: var(--af-font-mono); --color-axe-black: var(--af-bg); --color-axe-navy: var(--af-surface); --color-axe-line: var(--af-line); --color-axe-muted: var(--af-text-muted); --color-axe-accent: var(--af-accent); --color-axe-accent-hover: var(--af-accent-hover); --color-axe-accent-contrast: var(--af-accent-contrast); --color-axe-orange: var(--af-accent); --color-axe-orange-hover: var(--af-accent-hover); }body{background:var(--af-bg);color:var(--af-text);font-family:var(--af-font-sans);-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--af-accent);outline-offset:2px}.technical-grid{background-size:80px 80px;background-image:radial-gradient(circle,var(--af-line) 1px,transparent 1px)}.glass-card{background:color-mix(in srgb,var(--af-surface) 60%,transparent);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--af-line);border-radius:var(--af-radius-lg);transition:border-color .5s ease,box-shadow .5s ease}.glass-card:hover{border-color:color-mix(in srgb,var(--af-accent) 50%,transparent)}.terminal-window{background:var(--af-surface-2);border:1px solid var(--af-line);border-radius:var(--af-radius);overflow:hidden;font-family:var(--af-font-mono);font-size:.75rem;line-height:1.5;box-shadow:0 25px 50px -12px #00000080}.terminal-header{background:var(--af-surface-3);padding:.5rem 1rem;display:flex;align-items:center;gap:.5rem;border-bottom:1px solid var(--af-line)}.dot{width:10px;height:10px;border-radius:9999px}.dot-red{background:#ff5f56}.dot-yellow{background:#ffbd2e}.dot-green{background:#27c93f}.glow-accent,.glow-orange{box-shadow:0 0 20px color-mix(in srgb,var(--af-accent) 15%,transparent)}.axe-button{display:inline-flex;align-items:center;gap:.5rem;background:var(--af-accent);color:var(--af-accent-contrast);padding:.75rem 1.5rem;border:0;border-radius:var(--af-radius);font-family:var(--af-font-sans);font-size:1.25rem;font-weight:700;cursor:pointer;text-decoration:none;transition:background .15s ease,transform .15s ease}.axe-button:hover{background:var(--af-accent-hover)}.axe-button:active{transform:scale(.95)}:root{--pass: #4ade80;--pass-dim: #16351f;--fail: #f87171;--fail-dim: #3a1a1a;--warn: #fbbf24;--warn-dim: #362a10;--skip: #64748b;--panel: color-mix(in srgb, var(--af-surface) 92%, #000);--panel-raised: color-mix(in srgb, var(--af-surface) 70%, #fff 3%);--hairline: var(--af-line);--hairline-soft: color-mix(in srgb, var(--af-line) 60%, transparent);--s1: 4px;--s2: 8px;--s3: 14px;--s4: 22px;--s5: 34px;--cue: cubic-bezier(.16, .9, .24, 1);--fade: cubic-bezier(.4, 0, .2, 1);--glow: 0 0 0 1px color-mix(in srgb, var(--af-accent) 34%, transparent), 0 0 22px -6px color-mix(in srgb, var(--af-accent) 55%, transparent);--lift: 0 1px 0 color-mix(in srgb, #fff 6%, transparent) inset, 0 8px 24px -18px #000}html,body,#root{height:100%}body{margin:0;background:var(--af-bg);overflow:hidden}::selection{background:color-mix(in srgb,var(--af-accent) 34%,transparent);color:var(--af-text)}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--af-accent) 26%,transparent) transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--af-accent) 22%,transparent);border-radius:99px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--af-accent) 40%,transparent);background-clip:padding-box}kbd{font-family:var(--af-font-mono);font-size:.68rem;padding:2px 6px;border:1px solid var(--hairline);border-bottom-width:2px;border-radius:var(--af-radius);background:var(--af-surface-2);color:var(--af-text-muted)}.app{height:100%;display:flex;flex-direction:column;overflow:hidden}.topbar{padding:14px 18px;min-height:68px;border-bottom:1px solid var(--af-line);background:var(--af-surface);position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:var(--s3);flex-shrink:0}.brand{display:flex;align-items:center;gap:10px;background:none;border:0;padding:0;cursor:pointer;color:var(--af-text);text-align:left}.lime-mark{color:var(--af-accent);flex-shrink:0;transition:filter .3s var(--cue)}.brand:hover .lime-mark{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--af-accent) 60%,transparent))}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-text strong{font-size:1.3rem;font-weight:700;letter-spacing:-.02em}.brand-text em{font-style:normal;font-size:.74rem;color:var(--af-text-muted)}.mode-switch{display:flex;gap:2px;padding:3px;border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--af-surface-2)}.mode-switch button{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:.78rem;font-weight:600;padding:6px 12px;border:0;border-radius:calc(var(--af-radius) - 2px);background:transparent;color:var(--af-text-muted);cursor:pointer;transition:color .18s var(--cue),background .18s var(--cue)}.mode-switch button:hover{color:var(--af-text)}.mode-switch button.on{background:var(--af-accent);color:var(--af-accent-contrast)}.progress{margin-left:auto;display:flex;align-items:center;gap:10px}.progress-points{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:var(--af-text-muted)}.progress-points svg{color:var(--af-accent)}.progress-points strong{color:var(--af-text);font-size:.92rem;animation:pop .4s var(--cue)}.progress-points em{font-style:normal}.progress-track{width:110px;height:5px;border-radius:99px;background:var(--af-surface-2);border:1px solid var(--hairline);overflow:hidden}.progress-fill{display:block;height:100%;background:var(--af-accent);transition:width .6s var(--cue)}.progress-pct{font-family:var(--af-font-mono);font-size:.74rem;color:var(--af-text-muted);min-width:34px;text-align:right}.topbar-actions{display:flex;align-items:center;gap:6px}@keyframes pop{0%{transform:translateY(3px) scale(.85);opacity:0}to{transform:none;opacity:1}}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--af-surface-2);color:var(--af-text-muted);cursor:pointer;touch-action:manipulation;transition:transform .12s var(--cue),border-color .18s var(--cue),color .18s var(--cue)}.icon-btn:hover:not(:disabled){color:var(--af-text);border-color:color-mix(in srgb,var(--af-accent) 55%,transparent);transform:translateY(-1px)}.icon-btn:active:not(:disabled){transform:translateY(0)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn.sm{width:28px;height:28px}.icon-btn.xs{width:22px;height:22px}.icon-btn.danger:hover{color:var(--fail);border-color:color-mix(in srgb,var(--fail) 55%,transparent)}.locale-btn{font:inherit;font-family:var(--af-font-mono);font-size:.72rem;font-weight:700;letter-spacing:.06em;padding:0 10px;height:32px;border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--af-surface-2);color:var(--af-text-muted);cursor:pointer;transition:color .18s var(--cue),border-color .18s var(--cue)}.locale-btn:hover{color:var(--af-accent);border-color:color-mix(in srgb,var(--af-accent) 55%,transparent)}.btn{display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:.82rem;font-weight:600;padding:8px 14px;border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--af-surface-2);color:var(--af-text);cursor:pointer;touch-action:manipulation;transition:transform .12s var(--cue),background .18s var(--cue),border-color .18s var(--cue)}.btn:hover:not(:disabled){transform:translateY(-1px);border-color:color-mix(in srgb,var(--af-accent) 50%,transparent)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary:disabled{background:var(--af-surface-2);border-color:var(--hairline);color:var(--af-text-muted)}.btn.primary{background:var(--af-accent);border-color:var(--af-accent);color:var(--af-accent-contrast)}.btn.primary:hover:not(:disabled){background:var(--af-accent-hover)}.btn-mini{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:.74rem;font-weight:600;padding:5px 10px;border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--af-surface-2);color:var(--af-text-muted);cursor:pointer;touch-action:manipulation;transition:color .16s var(--cue),border-color .16s var(--cue),transform .12s var(--cue)}.btn-mini:hover:not(:disabled){color:var(--af-text);border-color:color-mix(in srgb,var(--af-accent) 50%,transparent);transform:translateY(-1px)}.btn-mini:disabled{opacity:.4;cursor:not-allowed}.btn-mini.primary{background:var(--af-accent);border-color:var(--af-accent);color:var(--af-accent-contrast)}.btn-mini.ghost{background:transparent}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:260px minmax(0,1fr) minmax(430px,40%);overflow:hidden}.app.mode-playground .workspace{grid-template-columns:minmax(0,1fr) minmax(430px,40%)}.map-workspace{grid-template-columns:1fr;overflow:auto}.rehearsal{min-width:0;overflow-y:auto;padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3);border-right:1px solid var(--hairline)}.house{min-width:0;overflow-y:auto;padding:var(--s4) var(--s4) var(--s4) var(--s3);background:color-mix(in srgb,var(--af-bg) 80%,#000);display:flex;flex-direction:column}.drawer{border-right:1px solid var(--hairline);background:var(--af-surface);overflow-y:auto}.drawer-backdrop,.menu-toggle{display:none}.sidebar{padding:var(--s3) 0 var(--s5)}.drawer-head{display:none}.act-group{padding:0 0 var(--s3)}.act-group h4{display:flex;align-items:baseline;gap:7px;margin:0;padding:14px 16px 8px;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--af-text-muted);position:sticky;top:0;background:var(--af-surface);z-index:2}.act-group h4 .act-code{color:var(--af-accent);font-weight:700}.act-group h4 .act-wing{color:var(--af-text);font-weight:600}.act-group h4 .act-count{margin-left:auto;font-family:var(--af-font-mono);letter-spacing:0}.act-group.locked{opacity:.45}.act-group ol{list-style:none;margin:0;padding:0}.scene-link{width:100%;display:grid;grid-template-columns:22px 1fr;grid-template-areas:"num name" ". topic";gap:0 10px;text-align:left;font:inherit;padding:7px 16px;border:0;border-left:3px solid transparent;background:none;color:var(--af-text-muted);cursor:pointer;transition:background .16s var(--cue),color .16s var(--cue)}.scene-link:hover:not(:disabled){background:var(--af-surface-2);color:var(--af-text)}.scene-link:disabled{opacity:.45;cursor:not-allowed}.scene-link.active{border-left-color:var(--af-accent);background:color-mix(in srgb,var(--af-accent) 8%,transparent);color:var(--af-text)}.scene-link.done .scene-num{color:var(--pass);border-color:color-mix(in srgb,var(--pass) 45%,transparent)}.scene-num{grid-area:num;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--hairline);border-radius:var(--af-radius);font-family:var(--af-font-mono);font-size:.66rem}.scene-name{grid-area:name;font-size:.82rem;font-weight:500}.scene-topic{grid-area:topic;font-size:.68rem;color:var(--af-text-muted);opacity:.75}.map{max-width:1080px;margin:0 auto;padding:var(--s5) var(--s4) var(--s5);width:100%}.map-head{text-align:center;margin-bottom:var(--s5)}.map-head h2{margin:0 0 6px;font-size:1.9rem;letter-spacing:-.02em}.map-head p{margin:0;color:var(--af-text-muted);font-size:.92rem}.backlot{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"prologue prologue" "fork fork" "web api" "join join" "grand grand";gap:0 var(--s4)}.rig{display:flex;justify-content:center;gap:26px;margin-bottom:14px}.rig span{width:7px;height:7px;border-radius:50%;background:color-mix(in srgb,var(--af-accent) 25%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--af-accent) 30%,transparent);animation:rig-breathe 5.2s var(--fade) infinite}.rig span:nth-child(2){animation-delay:.7s}.rig span:nth-child(3){animation-delay:1.4s}.rig span:nth-child(4){animation-delay:2.1s}.rig span:nth-child(5){animation-delay:2.8s}@keyframes rig-breathe{0%,to{opacity:.3}50%{opacity:1}}.junction{position:relative;display:block;height:42px;--road: color-mix(in srgb, var(--af-accent) 22%, transparent)}.junction.fork{grid-area:fork}.junction.join{grid-area:join}.junction:before{content:"";position:absolute;left:50%;top:0;width:1px;height:18px;transform:translate(-50%);background:var(--road)}.junction:after{content:"";position:absolute;left:32%;right:32%;top:17px;height:25px;border-top:1px solid var(--road);border-left:1px solid var(--road);border-right:1px solid var(--road);border-radius:10px 10px 0 0}.junction.join:before{top:auto;bottom:0}.junction.join:after{top:0;border-top:0;border-bottom:1px solid var(--road);border-radius:0 0 10px 10px}.backlot[data-prologue=lit] .junction.fork,.backlot[data-web=lit][data-api=lit] .junction.join{--road: color-mix(in srgb, var(--af-accent) 70%, transparent)}.landing{position:relative;z-index:1;background:var(--panel);border:1px solid var(--hairline);border-radius:var(--af-radius-lg);padding:var(--s3) var(--s4) var(--s4);display:flex;flex-direction:column;gap:9px;box-shadow:var(--lift);transition:border-color .24s var(--cue),transform .24s var(--cue)}.landing:hover:not(.locked){border-color:color-mix(in srgb,var(--af-accent) 42%,transparent);transform:translateY(-2px)}.landing.current{border-color:color-mix(in srgb,var(--af-accent) 34%,transparent);box-shadow:var(--lift),0 0 34px -22px var(--af-accent)}.landing-prologue{grid-area:prologue}.landing-web{grid-area:web}.landing-api{grid-area:api}.landing-grand{grid-area:grand}.landing.locked{opacity:.5}.landing.complete{border-color:color-mix(in srgb,var(--pass) 38%,transparent);box-shadow:var(--lift)}.landing-head{display:flex;align-items:baseline;gap:10px}.landing-act{font-family:var(--af-font-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--af-accent);flex-shrink:0}.landing.locked .landing-act{color:var(--af-text-muted)}.landing-wing{margin:0;font-size:1.2rem;display:flex;align-items:center;gap:8px}.landing-wing svg{color:var(--af-text-muted)}.landing.complete .landing-wing svg{color:var(--pass)}.landing-blurb{margin:0;color:var(--af-text-muted);font-size:.85rem;line-height:1.5}.landing-meter{height:3px;border-radius:99px;background:var(--af-surface-2);overflow:hidden}.landing-fill{display:block;height:100%;background:var(--af-accent);transition:width .6s var(--cue)}.landing.complete .landing-fill{background:var(--pass)}.pips{list-style:none;display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0}.pip{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--af-font-mono);font-size:.68rem;border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--af-surface-2);color:var(--af-text-muted);cursor:pointer;touch-action:manipulation;transition:transform .14s var(--cue),border-color .16s var(--cue),color .16s var(--cue)}.pip:hover:not(:disabled){transform:translateY(-2px);border-color:var(--af-accent);color:var(--af-accent)}.pip[data-state=done]{background:color-mix(in srgb,var(--pass) 16%,transparent);border-color:color-mix(in srgb,var(--pass) 45%,transparent);color:var(--pass)}.pip[data-state=active]{border-color:var(--af-accent);color:var(--af-accent-contrast);background:var(--af-accent)}.pip[data-state=locked]{opacity:.38;cursor:not-allowed}.landing-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);margin-top:auto;padding-top:4px}.landing-count{font-family:var(--af-font-mono);font-size:.72rem;color:var(--af-text-muted)}.landing-locked{margin:0;font-size:.73rem;color:var(--af-text-muted)}.scene-brief{background:var(--panel);border:1px solid var(--hairline);border-radius:var(--af-radius-lg);padding:var(--s3) var(--s4) var(--s4)}.brief-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s2);margin-bottom:10px}.brief-meta{display:flex;flex-wrap:wrap;gap:5px}.chip{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:600;letter-spacing:.02em;padding:3px 8px;border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--af-surface-2);color:var(--af-text-muted)}.chip-act{color:var(--af-accent);border-color:color-mix(in srgb,var(--af-accent) 35%,transparent)}.chip-index{font-family:var(--af-font-mono)}.chip-topic{color:var(--af-text)}.chip-done{color:var(--pass);border-color:color-mix(in srgb,var(--pass) 42%,transparent);background:color-mix(in srgb,var(--pass) 12%,transparent)}.stepper{display:flex;gap:4px;flex-shrink:0}.brief-title{margin:0 0 4px;font-size:1.42rem;letter-spacing:-.02em}.brief-goal{margin:0 0 var(--s3);color:var(--af-text-muted);font-size:.92rem}.task{border:1px solid var(--hairline);border-left:3px solid var(--af-accent);border-radius:var(--af-radius);background:var(--af-surface-2);padding:var(--s3)}.task-head{display:flex;align-items:center;gap:6px;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--af-accent);margin-bottom:7px}.task-text{margin:0 0 8px;font-size:.92rem;line-height:1.55}.focus-hint{margin:0 0 10px;font-family:var(--af-font-mono);font-size:.74rem;color:var(--af-text-muted)}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.checklist li{display:flex;align-items:flex-start;gap:9px;font-size:.84rem;color:var(--af-text-muted);transition:color .3s var(--fade)}.checklist li.checked{color:var(--af-text)}.check-box{flex-shrink:0;width:16px;height:16px;margin-top:1px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--hairline);border-radius:4px;background:var(--af-surface);color:transparent;transition:background .28s var(--cue),border-color .28s var(--cue),color .28s var(--cue)}.checklist li.checked .check-box{background:var(--pass);border-color:var(--pass);color:#04140a;animation:tick .34s var(--cue)}@keyframes tick{0%{transform:scale(.5)}60%{transform:scale(1.18)}to{transform:scale(1)}}.task-aids{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s3)}.tips-button.nudge{border-color:color-mix(in srgb,var(--warn) 45%,transparent);color:var(--warn)}.tips{list-style:none;margin:var(--s3) 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.tips li{display:flex;gap:10px;min-width:0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--warn) 24%,transparent);border-radius:var(--af-radius);background:color-mix(in srgb,var(--warn) 7%,transparent);animation:rise .32s var(--cue) both}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.tip-num{flex-shrink:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:color-mix(in srgb,var(--warn) 22%,transparent);color:var(--warn);font-family:var(--af-font-mono);font-size:.66rem;font-weight:700}.tips li>div{min-width:0;flex:1}.tips p{margin:0;font-size:.84rem;line-height:1.5}.tip-example{margin:7px 0 0;padding:8px 10px;background:var(--af-surface-2);border:1px solid var(--hairline);border-radius:var(--af-radius);overflow-x:auto}.tip-example code{font-family:var(--af-font-mono);font-size:.74rem;color:var(--af-text);white-space:pre}.tip-example{max-width:100%}.task-next{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3);padding-top:var(--s3);border-top:1px dashed var(--hairline)}.task-next>span{display:inline-flex;align-items:center;gap:7px;font-size:.86rem;font-weight:600;color:var(--pass)}.pulse{animation:pulse 2.2s var(--fade) infinite}@keyframes pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--af-accent) 40%,transparent)}50%{box-shadow:0 0 0 7px transparent}}.scene-learn{display:flex;flex-direction:column;gap:6px}.learn-section{border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--panel);overflow:hidden}.learn-toggle{width:100%;display:flex;align-items:center;gap:8px;font:inherit;font-size:.8rem;font-weight:600;padding:10px 13px;border:0;background:none;color:var(--af-text-muted);cursor:pointer;text-align:left;transition:color .16s var(--cue)}.learn-toggle:hover{color:var(--af-text)}.learn-toggle svg:first-child{color:var(--af-accent);flex-shrink:0}.learn-chevron{margin-left:auto;transition:transform .22s var(--cue)}.learn-section.open .learn-toggle{color:var(--af-text)}.learn-section.open .learn-chevron{transform:rotate(180deg)}.learn-body{padding:0 13px 13px;animation:rise .24s var(--cue) both}.learn-body p{margin:0 0 8px;font-size:.86rem;line-height:1.62;color:var(--af-text-muted)}.learn-body p:last-child{margin-bottom:0}.learn-why{padding-left:11px;border-left:2px solid color-mix(in srgb,var(--af-accent) 40%,transparent)}.notes{margin:0;padding-left:17px;display:flex;flex-direction:column;gap:6px}.notes li{font-size:.82rem;line-height:1.55;color:var(--af-text-muted)}.compare{border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--panel);padding:12px 13px}.compare-scroll{overflow-x:auto}.compare table{border-collapse:collapse;width:100%;min-width:380px}.compare th,.compare td{text-align:left;padding:7px 10px;font-size:.78rem;border-bottom:1px solid var(--hairline-soft);vertical-align:top}.compare thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--af-accent)}.compare tbody th{color:var(--af-text-muted);font-weight:500;white-space:nowrap}.compare td{color:var(--af-text)}.verdict{margin:10px 0 0;font-size:.8rem;color:var(--af-text-muted);line-height:1.55}.verdict strong{color:var(--af-accent)}.example-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 13px;border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--panel)}.example-label{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--af-accent)}.example-snippet{flex:1;min-width:180px;margin:0;padding:7px 10px;background:var(--af-surface-2);border:1px solid var(--hairline);border-radius:var(--af-radius);overflow-x:auto}.example-snippet code{font-family:var(--af-font-mono);font-size:.74rem;white-space:pre}.run-example{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:.74rem;font-weight:600;padding:6px 11px;border:1px solid var(--af-accent);border-radius:var(--af-radius);background:var(--af-accent);color:var(--af-accent-contrast);cursor:pointer;touch-action:manipulation}.run-example:hover{background:var(--af-accent-hover)}.playground-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s2);padding:var(--s3) var(--s4);border:1px solid var(--hairline);border-left:3px solid var(--af-accent);border-radius:var(--af-radius);background:var(--panel)}.playground-bar p{margin:0;font-size:.86rem;color:var(--af-text-muted)}.playground-actions{display:flex;gap:6px}.workbench{display:flex;flex-direction:column;border:1px solid var(--hairline);border-radius:var(--af-radius-lg);background:var(--panel);overflow:hidden;min-height:430px;flex:1}.work-tabs{display:flex;align-items:center;gap:2px;padding:6px 8px;border-bottom:1px solid var(--hairline);background:var(--af-surface-3)}.work-tabs button{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:.76rem;font-weight:600;padding:6px 11px;border:0;border-radius:var(--af-radius);background:transparent;color:var(--af-text-muted);cursor:pointer;transition:color .16s var(--cue),background .16s var(--cue)}.work-tabs button:hover{color:var(--af-text)}.work-tabs button.active{background:var(--af-surface-2);color:var(--af-text);box-shadow:inset 0 -2px 0 var(--af-accent)}.tab-dot{width:6px;height:6px;border-radius:50%}.tab-dot.err{background:var(--fail)}.tab-dot.ok{background:var(--pass)}.action-btn{margin-left:auto!important;background:var(--af-accent)!important;color:var(--af-accent-contrast)!important}.action-btn:disabled{opacity:.55;cursor:progress}.work-body{flex:1;min-height:0;display:flex;overflow:hidden}.files-pane{flex:1;min-width:0;display:grid;grid-template-columns:190px minmax(0,1fr)}.files-pane.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--af-text-muted);padding:var(--s4);text-align:center}.file-tree{border-right:1px solid var(--hairline);background:color-mix(in srgb,var(--af-surface-2) 70%,#000);overflow-y:auto;min-width:0}.tree-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 8px 8px 12px;font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--af-text-muted);border-bottom:1px solid var(--hairline-soft);position:sticky;top:0;background:color-mix(in srgb,var(--af-surface-2) 70%,#000);z-index:1}.tree-list,.tree-dir ul{list-style:none;margin:0;padding:0}.tree-list{padding:5px 0 12px}.tree-dir-name{display:flex;align-items:center;gap:6px;padding:4px 10px;font-size:.74rem;color:var(--af-text-muted)}.tree-dir-name svg{opacity:.6}.tree-file{display:flex;align-items:center}.tree-file>button:first-child{flex:1;min-width:0;display:flex;align-items:center;gap:6px;font:inherit;font-size:.76rem;padding:4px 6px 4px 10px;border:0;border-left:2px solid transparent;background:none;color:var(--af-text-muted);cursor:pointer;text-align:left;transition:color .14s var(--cue),background .14s var(--cue)}.tree-file>button:first-child span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-file>button:first-child svg{flex-shrink:0;opacity:.55}.tree-file:hover>button:first-child{color:var(--af-text);background:var(--af-surface-2)}.tree-file>button.active{color:var(--af-accent);border-left-color:var(--af-accent);background:color-mix(in srgb,var(--af-accent) 8%,transparent)}.tree-delete{opacity:0;border:0;background:none;color:var(--af-text-muted);cursor:pointer;padding:4px 8px 4px 2px;transition:opacity .14s var(--cue),color .14s var(--cue)}.tree-file:hover .tree-delete{opacity:1}.tree-delete:hover{color:var(--fail)}.editor-pane{display:flex;flex-direction:column;min-width:0;min-height:0}.editor-empty{display:flex;align-items:center;justify-content:center;padding:var(--s4);color:var(--af-text-muted);font-size:.85rem;text-align:center}.editor-path{display:flex;align-items:center;gap:6px;padding:6px 12px;font-family:var(--af-font-mono);font-size:.7rem;color:var(--af-text-muted);border-bottom:1px solid var(--hairline-soft);background:var(--af-surface-3)}.editor-wrap{position:relative;flex:1;min-height:220px;display:flex;overflow:hidden;background:var(--af-surface-2)}.gutter{flex-shrink:0;width:42px;padding:12px 8px 12px 0;text-align:right;overflow:hidden;font-family:var(--af-font-mono);font-size:.78rem;line-height:1.6;color:color-mix(in srgb,var(--af-text-muted) 55%,transparent);border-right:1px solid var(--hairline-soft);-webkit-user-select:none;user-select:none}.gutter span{display:block}.gutter span.flagged{color:var(--fail);font-weight:700}.code-overlay,.code-input{margin:0;padding:12px 14px;font-family:var(--af-font-mono);font-size:.82rem;line-height:1.6;white-space:pre;-moz-tab-size:2;tab-size:2;border:0;overflow:auto}.code-overlay{position:absolute;top:0;right:0;bottom:0;left:42px;pointer-events:none;color:var(--af-text)}.code-input{position:relative;flex:1;min-width:0;background:transparent;color:transparent;caret-color:var(--af-accent);resize:none;outline-offset:-2px}.code-input::selection{background:color-mix(in srgb,var(--af-accent) 30%,transparent)}.tok-comment{color:color-mix(in srgb,var(--af-text-muted) 78%,transparent);font-style:italic}.tok-string{color:#a5e887}.tok-regex{color:#f9a8d4}.tok-number,.tok-literal{color:#fbbf24}.tok-keyword{color:#c4b5fd}.tok-api{color:var(--af-accent);font-weight:600}.tok-fn{color:#93c5fd}.tok-type{color:#7dd3fc}.tok-op{color:var(--af-text-muted)}.tok-key{color:var(--af-accent)}.tok-value{color:var(--af-text)}.lint-strip{border-top:1px solid var(--hairline);padding:7px 12px;font-size:.74rem;display:flex;flex-direction:column;gap:5px;background:var(--af-surface-3);max-height:128px;overflow-y:auto}.lint-strip.ok{flex-direction:row;align-items:center;justify-content:space-between}.lint-summary{display:inline-flex;align-items:center;gap:6px;font-weight:600}.lint-strip.ok .lint-summary{color:var(--pass)}.lint-strip.has-errors .lint-summary{color:var(--fail)}.lint-strip.has-warnings .lint-summary{color:var(--warn)}.lint-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.lint-item{display:flex;gap:9px;color:var(--af-text-muted)}.lint-loc{flex-shrink:0;font-family:var(--af-font-mono);color:color-mix(in srgb,var(--af-text-muted) 75%,transparent)}.lint-item.error .lint-msg{color:color-mix(in srgb,var(--fail) 85%,#fff)}.lint-hint{color:var(--af-text-muted);font-style:italic}.terminal-panel{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--af-surface-2)}.term-out{flex:1;overflow-y:auto;padding:12px 14px;font-family:var(--af-font-mono);font-size:.79rem;line-height:1.62;cursor:text;min-height:200px}.term-line{white-space:pre-wrap;word-break:break-word;animation:term-in .16s var(--cue) both}@keyframes term-in{0%{opacity:0;transform:translate(-3px)}to{opacity:1;transform:none}}.tone-plain{color:var(--af-text)}.tone-dim{color:var(--af-text-muted)}.tone-head{color:var(--af-accent);font-weight:600}.tone-pass{color:var(--pass)}.tone-fail{color:var(--fail)}.tone-warn{color:var(--warn)}.tone-skip{color:var(--skip)}.term-line.running{animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:.25}}.term-input-row{display:flex;align-items:center;gap:8px;padding:9px 14px;border-top:1px solid var(--hairline);background:var(--af-surface-3)}.term-prompt{font-family:var(--af-font-mono);font-size:.79rem;color:var(--af-accent);flex-shrink:0}.term-input{flex:1;min-width:0;font-family:var(--af-font-mono);font-size:.82rem;background:transparent;border:0;color:var(--af-text);outline-offset:3px}.term-input::placeholder{color:color-mix(in srgb,var(--af-text-muted) 65%,transparent)}.term-hint{font-size:.68rem;color:var(--af-text-muted);flex-shrink:0}.report-panel{flex:1;min-width:0;overflow-y:auto;background:var(--af-surface-2)}.report-panel.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--af-text-muted);text-align:center;padding:var(--s5) var(--s4)}.empty-title{margin:0;font-weight:600;color:var(--af-text)}.empty-hint{margin:0;font-size:.82rem}.report-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s2);padding:11px 14px;border-bottom:1px solid var(--hairline);background:var(--af-surface-3);position:sticky;top:0;z-index:2}.report-stats{display:flex;flex-wrap:wrap;gap:10px}.stat{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;color:var(--af-text-muted)}.stat strong{font-family:var(--af-font-mono);font-size:.88rem}.stat.pass strong{color:var(--pass)}.stat.fail strong{color:var(--fail)}.stat.warn strong{color:var(--warn)}.stat.skip strong{color:var(--skip)}.report-command{font-family:var(--af-font-mono);font-size:.7rem;color:var(--af-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.report-tabs{display:flex;gap:2px;padding:6px 10px;border-bottom:1px solid var(--hairline-soft)}.report-tabs button{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:.72rem;font-weight:600;padding:4px 9px;border:1px solid transparent;border-radius:var(--af-radius);background:none;color:var(--af-text-muted);cursor:pointer}.report-tabs button.on{color:var(--af-text);border-color:var(--hairline);background:var(--panel)}.report-errors{list-style:none;margin:0;padding:10px 14px;border-bottom:1px solid var(--hairline-soft);background:color-mix(in srgb,var(--fail) 8%,transparent)}.report-errors li{font-family:var(--af-font-mono);font-size:.74rem;color:color-mix(in srgb,var(--fail) 85%,#fff)}.report-tests{list-style:none;margin:0;padding:0}.report-test{border-bottom:1px solid var(--hairline-soft)}.report-row{width:100%;display:flex;align-items:center;gap:9px;font:inherit;padding:9px 14px;border:0;border-left:2px solid transparent;background:none;color:var(--af-text);cursor:pointer;text-align:left;transition:background .14s var(--cue)}.report-row:hover{background:var(--panel)}.report-test.failed .report-row,.report-test.timedOut .report-row{border-left-color:var(--fail)}.report-test.passed .report-row{border-left-color:color-mix(in srgb,var(--pass) 55%,transparent)}.report-test.flaky .report-row{border-left-color:var(--warn)}.status-dot{flex-shrink:0;width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}.status-dot.passed{background:color-mix(in srgb,var(--pass) 20%,transparent);color:var(--pass)}.status-dot.failed,.status-dot.timedOut,.status-dot.interrupted{background:color-mix(in srgb,var(--fail) 20%,transparent);color:var(--fail)}.status-dot.flaky{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.status-dot.skipped{background:color-mix(in srgb,var(--skip) 22%,transparent);color:var(--skip)}.report-title{flex:1;min-width:0;font-size:.82rem;display:flex;align-items:center;gap:3px;flex-wrap:wrap}.report-title .branch{color:var(--af-text-muted);display:inline-flex;align-items:center;gap:3px}.report-project,.report-retry{font-family:var(--af-font-mono);font-size:.66rem;padding:2px 6px;border:1px solid var(--hairline);border-radius:var(--af-radius);color:var(--af-text-muted);flex-shrink:0}.report-retry{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.report-duration{font-family:var(--af-font-mono);font-size:.7rem;color:var(--af-text-muted);flex-shrink:0}.report-detail{padding:4px 14px 14px 40px;animation:rise .2s var(--cue) both}.report-loc{margin:0 0 8px;font-family:var(--af-font-mono);font-size:.7rem;color:var(--af-text-muted)}.report-detail h5{margin:10px 0 5px;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--af-text-muted)}.report-steps{list-style:none;margin:0 0 10px;padding:0}.report-steps button{width:100%;display:flex;align-items:center;gap:8px;font:inherit;font-size:.76rem;padding:4px 8px;border:0;border-radius:var(--af-radius);background:none;color:var(--af-text-muted);cursor:pointer;text-align:left}.report-steps button:hover{background:var(--panel);color:var(--af-text)}.report-steps .status-dot{width:8px;height:8px}.step-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-duration{font-family:var(--af-font-mono);font-size:.68rem;flex-shrink:0}.report-error{border:1px solid color-mix(in srgb,var(--fail) 30%,transparent);border-radius:var(--af-radius);background:color-mix(in srgb,var(--fail) 7%,transparent);padding:10px 12px;margin-bottom:10px;overflow-x:auto}.error-message,.error-frame{margin:0;font-family:var(--af-font-mono);font-size:.74rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.error-message{color:color-mix(in srgb,var(--fail) 88%,#fff)}.error-frame{margin-top:9px;padding-top:9px;border-top:1px dashed color-mix(in srgb,var(--fail) 26%,transparent);color:var(--af-text-muted);white-space:pre;overflow-x:auto}.report-network{padding:4px 0 14px;overflow-x:auto}.report-network table{border-collapse:collapse;width:100%;min-width:460px}.report-network th,.report-network td{text-align:left;padding:6px 12px;font-size:.74rem;border-bottom:1px solid var(--hairline-soft)}.report-network thead th{font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;color:var(--af-text-muted)}.net-method,.net-status,.net-time{font-family:var(--af-font-mono)}.net-method{color:var(--af-accent)}.net-url{color:var(--af-text-muted);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.net-mock{margin-left:7px;font-size:.62rem;font-style:normal;padding:1px 5px;border-radius:3px;background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}.report-network tr.bad .net-status{color:var(--fail)}.report-network tr:not(.bad) .net-status{color:var(--pass)}.stage{display:flex;flex-direction:column;gap:var(--s3);min-height:100%}.stage-frame{flex:1;min-height:0;border:1px solid var(--hairline);border-radius:var(--af-radius-lg);background:var(--af-surface-3);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--lift);transition:box-shadow .3s var(--fade)}.stage-frame.failing{box-shadow:0 0 0 1px color-mix(in srgb,var(--fail) 40%,transparent),0 8px 30px -20px var(--fail)}.browser-chrome{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--hairline);background:var(--af-surface-3)}.dots{display:inline-flex;gap:5px;flex-shrink:0}.url-bar{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--hairline);border-radius:99px;background:var(--af-surface-2);font-family:var(--af-font-mono);font-size:.7rem;color:var(--af-text-muted)}.url-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.url-bar svg{flex-shrink:0;opacity:.6}.stage-badge{flex-shrink:0;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:var(--af-radius);border:1px solid var(--hairline);color:var(--af-text-muted)}.stage-badge.replaying{color:var(--af-accent);border-color:color-mix(in srgb,var(--af-accent) 45%,transparent)}.stage-badge.live{color:var(--pass);border-color:color-mix(in srgb,var(--pass) 40%,transparent)}.frame-body{position:relative;flex:1;min-height:360px;background:#fff;overflow:hidden}.stage-iframe{width:100%;height:100%;min-height:360px;border:0;display:block}.target-ring,.select-ring{position:absolute;border-radius:5px;pointer-events:none;transition:all .34s var(--cue)}.target-ring.act{box-shadow:0 0 0 2px var(--af-accent),0 0 16px -2px color-mix(in srgb,var(--af-accent) 70%,transparent)}.target-ring.pass{box-shadow:0 0 0 2px var(--pass),0 0 16px -2px color-mix(in srgb,var(--pass) 70%,transparent)}.target-ring.fail{box-shadow:0 0 0 2px var(--fail),0 0 18px -2px color-mix(in srgb,var(--fail) 80%,transparent);animation:shake .4s var(--cue)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.select-ring{box-shadow:0 0 0 2px color-mix(in srgb,var(--warn) 85%,transparent)}.cursor{position:absolute;pointer-events:none;color:var(--af-accent);transform:translate(-3px,-3px);transition:left .34s var(--cue),top .34s var(--cue);filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}.cursor .ripple{position:absolute;left:0;top:0;width:12px;height:12px;border-radius:50%;border:2px solid var(--af-accent);transform:translate(-50%,-50%);animation:ripple .55s var(--cue)}@keyframes ripple{0%{opacity:.9;transform:translate(-50%,-50%) scale(.4)}to{opacity:0;transform:translate(-50%,-50%) scale(3.2)}}.replay-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--hairline);background:var(--af-surface-3)}.replay-bar.idle{justify-content:space-between}.idle-hint{font-size:.76rem;color:var(--af-text-muted)}.timeline{flex:1;min-width:60px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:99px;background:var(--af-surface-2);border:1px solid var(--hairline);cursor:pointer}.timeline::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--af-accent);border:0;cursor:grab}.timeline::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--af-accent);border:0;cursor:grab}.replay-step{flex:1.4;min-width:0;font-family:var(--af-font-mono);font-size:.68rem;color:var(--af-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.speed{display:inline-flex;align-items:center;gap:4px;color:var(--af-text-muted);flex-shrink:0}.speed select{font:inherit;font-family:var(--af-font-mono);font-size:.7rem;padding:3px 4px;border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--af-surface-2);color:var(--af-text);cursor:pointer}.inspector{border:1px solid var(--hairline);border-radius:var(--af-radius-lg);background:var(--panel);padding:var(--s3)}.inspector h4{display:flex;align-items:center;gap:6px;margin:0 0 9px;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--af-accent)}.inspector-empty{margin:0;font-size:.8rem;color:var(--af-text-muted);line-height:1.55}.inspector dl{margin:0 0 10px;display:grid;gap:5px}.inspector dl>div{display:flex;gap:10px;font-size:.78rem}.inspector dt{color:var(--af-text-muted);min-width:108px;flex-shrink:0}.inspector dd{margin:0;color:var(--af-text);overflow:hidden;text-overflow:ellipsis}.locator-label{margin:0 0 5px;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--af-text-muted)}.locator{margin:0 0 9px;padding:9px 11px;background:var(--af-surface-2);border:1px solid var(--hairline);border-radius:var(--af-radius);overflow-x:auto}.locator code{font-family:var(--af-font-mono);font-size:.76rem;color:var(--af-accent);white-space:pre}.inspector-actions{display:flex;gap:6px;flex-wrap:wrap}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:color-mix(in srgb,var(--af-bg) 74%,transparent);animation:fade .18s var(--fade)}.cheatsheet{position:fixed;inset:0 0 0 auto;width:min(460px,94vw);z-index:75;display:flex;flex-direction:column;background:var(--af-surface);border-left:1px solid var(--hairline);box-shadow:-20px 0 50px -30px #000;animation:slide-in .26s var(--cue)}@keyframes slide-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:14px 14px 12px 18px;border-bottom:1px solid var(--hairline);flex-shrink:0}.sheet-head h3{margin:0;font-size:1.05rem}.sheet-search{display:flex;align-items:center;gap:8px;margin:12px 16px 4px;padding:7px 11px;border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--af-surface-2);color:var(--af-text-muted);flex-shrink:0}.sheet-search input{flex:1;min-width:0;font:inherit;font-size:.82rem;background:transparent;border:0;color:var(--af-text);outline-offset:4px}.sheet-body{flex:1;min-height:0;overflow-y:auto;padding:8px 16px 28px}.sheet-empty{color:var(--af-text-muted);font-size:.85rem;padding:var(--s4) 0;text-align:center}.sheet-section{margin-top:var(--s3)}.sheet-section h4{margin:0 0 8px;font-size:.68rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--af-accent);position:sticky;top:-8px;background:var(--af-surface);padding:8px 0 6px;z-index:1}.sheet-section ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.sheet-section li{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"code actions" "note actions";gap:3px 8px;padding:9px 11px;border:1px solid var(--hairline);border-radius:var(--af-radius);background:var(--panel);transition:border-color .16s var(--cue)}.sheet-section li:hover{border-color:color-mix(in srgb,var(--af-accent) 40%,transparent)}.sheet-code{grid-area:code;margin:0;min-width:0;overflow-x:auto}.sheet-code code{font-family:var(--af-font-mono);font-size:.74rem;color:var(--af-text);white-space:pre}.sheet-note{grid-area:note;margin:0;font-size:.76rem;line-height:1.45;color:var(--af-text-muted)}.sheet-actions{grid-area:actions;display:flex;flex-direction:column;gap:4px;align-self:center}.icon-btn.accent{color:var(--af-accent);border-color:color-mix(in srgb,var(--af-accent) 35%,transparent);font-size:.7rem;line-height:1}.sheet-copied{position:absolute;right:44px;top:9px;font-size:.66rem;color:var(--pass);animation:fade .16s var(--fade)}@media(max-width:520px){.cheatsheet{width:100vw}}.celebration{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:center;justify-content:center;pointer-events:auto;background:color-mix(in srgb,var(--af-bg) 55%,transparent);animation:fade .22s var(--fade)}@keyframes fade{0%{opacity:0}to{opacity:1}}.curtain-call{display:flex;flex-direction:column;align-items:center;gap:5px;padding:var(--s5) var(--s5) var(--s4);border:1px solid color-mix(in srgb,var(--af-accent) 40%,transparent);border-radius:var(--af-radius-lg);background:var(--af-surface);box-shadow:var(--glow);animation:curtain .42s var(--cue);text-align:center}@keyframes curtain{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}.celebrate-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:color-mix(in srgb,var(--af-accent) 16%,transparent);color:var(--af-accent);margin-bottom:5px}.curtain-call strong{font-size:1.28rem;letter-spacing:-.01em}.celebrate-scene{color:var(--af-accent);font-weight:600;font-size:.92rem}.curtain-call em{font-style:normal;font-size:.82rem;color:var(--af-text-muted)}.sparks{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.sparks i{position:absolute;top:42%;width:4px;height:4px;border-radius:50%;background:var(--af-accent);animation:spark 1.5s var(--cue) both}@keyframes spark{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(calc(var(--drift) * 70px),-190px) scale(.3)}}.driver-popover.lm-tour{background:var(--af-surface);color:var(--af-text);border:1px solid color-mix(in srgb,var(--af-accent) 42%,transparent);border-radius:var(--af-radius-lg);box-shadow:var(--glow);font-family:var(--af-font-sans);max-width:330px}.driver-popover.lm-tour .driver-popover-title{font-size:1rem;font-weight:700;color:var(--af-text)}.driver-popover.lm-tour .driver-popover-description{font-size:.85rem;line-height:1.55;color:var(--af-text-muted)}.driver-popover.lm-tour .driver-popover-progress-text{font-family:var(--af-font-mono);font-size:.7rem;color:var(--af-text-muted)}.driver-popover.lm-tour button{font-family:var(--af-font-sans);font-size:.76rem;font-weight:600;text-shadow:none;border-radius:var(--af-radius);border:1px solid var(--hairline);background:var(--af-surface-2);color:var(--af-text-muted);padding:5px 11px}.driver-popover.lm-tour button:hover{color:var(--af-text);border-color:color-mix(in srgb,var(--af-accent) 50%,transparent);background:var(--af-surface-2)}.driver-popover.lm-tour .driver-popover-next-btn{background:var(--af-accent);border-color:var(--af-accent);color:var(--af-accent-contrast)}.driver-popover.lm-tour .driver-popover-arrow-side-left{border-left-color:var(--af-surface)}.driver-popover.lm-tour .driver-popover-arrow-side-right{border-right-color:var(--af-surface)}.driver-popover.lm-tour .driver-popover-arrow-side-top{border-top-color:var(--af-surface)}.driver-popover.lm-tour .driver-popover-arrow-side-bottom{border-bottom-color:var(--af-surface)}@media(max-width:1400px){.workspace{grid-template-columns:232px minmax(0,1fr) minmax(390px,38%)}}@media(max-width:1180px){body{overflow:auto}html,body,#root{height:auto;min-height:100%}.app{height:auto;min-height:100%;overflow:visible}.workspace,.app.mode-playground .workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;overflow:visible;min-height:0}.workbench{min-height:0;flex:none}.work-body{height:58vh;min-height:330px;max-height:560px}.stage-frame{flex:none}.frame-body,.stage-iframe{min-height:300px;height:46vh;max-height:460px}.rehearsal{overflow:visible;border-right:0}.house{overflow:visible;padding:0 var(--s4) var(--s4);background:transparent}.menu-toggle{display:inline-flex}.drawer{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);z-index:60;transform:translate(-102%);transition:transform .28s var(--cue);box-shadow:0 0 40px -10px #000}.drawer.open{transform:none}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:12px 12px 10px 16px;border-bottom:1px solid var(--hairline);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--af-text-muted);position:sticky;top:0;background:var(--af-surface);z-index:3}.sidebar{padding-top:0}.act-group h4{top:45px}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:color-mix(in srgb,var(--af-bg) 76%,transparent)}.backlot{gap:var(--s4)}}@media(max-width:900px){.brand-text em,.progress-track{display:none}.backlot{grid-template-columns:1fr;grid-template-areas:"prologue" "fork" "web" "api" "join" "grand"}.junction{height:26px}.junction:after{display:none}.junction:before{height:26px}.files-pane{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.file-tree{border-right:0;border-bottom:1px solid var(--hairline);max-height:140px}}@media(max-width:1080px){.code-input,.code-overlay,.gutter{font-size:16px;line-height:1.55}.term-input,.term-out{font-size:16px}.inspector dt{min-width:92px}}@media(max-width:680px){.topbar{flex-wrap:wrap;padding:9px 11px;gap:7px;min-height:0}.brand{gap:7px}.mode-switch{order:3;width:100%;justify-content:space-between}.mode-switch button{flex:1;justify-content:center;padding:7px 6px}.progress{margin-left:auto;gap:6px}.progress-points em,.progress-pct{display:none}.topbar-actions{gap:4px}.topbar-actions .icon-btn,.locale-btn{width:30px;height:30px}.locale-btn{padding:0}.rehearsal,.house{padding:var(--s3)}.house{padding-top:0}.map{padding:var(--s4) var(--s3)}.map-head h2{font-size:1.45rem}.scene-brief{padding:var(--s3)}.brief-title{font-size:1.18rem}.work-tabs{flex-wrap:wrap}.action-btn{margin-left:0!important;width:100%;justify-content:center}.report-detail{padding-left:14px}.replay-step{display:none}}@media(max-width:400px){.brand-text strong{font-size:1.1rem}.landing{padding:var(--s3)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.rig,.sparks,.cursor .ripple{display:none}}
