:root{--bg:#070b0a;--surface:#0d1513;--surface-2:#121d1a;--border:#1f322d;--text:#c9e8dc;--muted:#6f8d84;--green:#4ef0a0;--green-dim:#2a8f5f;--blue:#6cb6ff;--red:#ff7b7b;--amber:#ffcf6b;--cyan:#74d9ef;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);color:var(--text);font-family:var(--sans);margin:0;line-height:1.5}code{white-space:nowrap;font-family:var(--mono);color:var(--green);background:#4ef0a014;border-radius:4px;padding:.05em .35em;font-size:.92em}a{color:var(--green)}button,.button{font:inherit;cursor:pointer}.ghost,.button{color:var(--green);border:1px solid var(--green-dim);background:0 0;border-radius:6px;padding:.35rem .8rem;text-decoration:none;display:inline-block}.ghost:hover,.button:hover{background:#4ef0a01a}.ghost.small{padding:.2rem .6rem;font-size:.85rem}:focus-visible{outline:2px solid var(--green);outline-offset:2px}.hub{max-width:760px;margin:0 auto;padding:3rem 16px 4rem}.eyebrow{font-family:var(--mono);color:var(--muted);margin:0;font-size:.85rem}.hub h1{font-family:var(--mono);color:var(--green);text-shadow:0 0 18px #4ef0a059;margin:.3rem 0 .5rem;font-size:clamp(2rem,6vw,3rem)}.cursor{animation:1.1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.lead{color:var(--muted);margin:0 0 2rem}.worlds{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.world{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem}.world.planned{opacity:.5}.world-head{align-items:baseline;gap:.75rem;display:flex}.world-num{font-family:var(--mono);color:var(--green-dim)}.world h2{flex:1;margin:0;font-size:1.1rem}.tag{font-family:var(--mono);color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:0 .5rem;font-size:.75rem}.world-commands{margin:.4rem 0 0;line-height:1.9}.missions{gap:.5rem;margin-top:.8rem;display:grid}.mission-link{border:1px solid var(--green-dim);font-family:var(--mono);background:#4ef0a00d;border-radius:8px;justify-content:space-between;gap:1rem;padding:.7rem .9rem;text-decoration:none;display:flex}.mission-link:hover{background:#4ef0a01f}.mission-link .status{color:var(--muted);white-space:nowrap}.mission-link.complete .status{color:var(--green)}.mission-page{flex-direction:column;height:100dvh;display:flex}.topbar{border-bottom:1px solid var(--border);font-family:var(--mono);align-items:center;gap:1rem;padding:.6rem 16px;font-size:.9rem;display:flex}.back{white-space:nowrap;text-decoration:none}.crumb{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.mission{flex:1;grid-template-columns:minmax(0,1fr) 360px;min-height:0;display:grid}.terminal{font-family:var(--mono);cursor:text;background:radial-gradient(ellipse at top, #0c1714, var(--bg) 70%);padding:1rem 16px 2rem;font-size:.95rem;line-height:1.45;overflow-y:auto}.line{white-space:pre-wrap;overflow-wrap:anywhere}.line.err{color:var(--red)}.line.intro{color:var(--muted)}.line.hint{color:var(--amber)}.hint-mark{opacity:.6}.line.strong{color:var(--text);font-weight:700}.line.zero{color:var(--cyan);text-indent:-7ch;padding-left:7ch}.line.zero:before{content:"ZERO ▸";text-indent:0;opacity:.65;width:7ch;display:inline-block}.line.zero code{color:var(--cyan);background:#6edcf01a}.line.success{color:var(--green);font-weight:600}.line.list{flex-wrap:wrap;column-gap:2ch;display:flex}.dir{color:var(--blue);font-weight:600}.prompt{color:var(--green);white-space:pre}.input-line{flex-wrap:wrap;align-items:baseline;display:flex}.command{min-width:8ch;font:inherit;color:var(--text);caret-color:var(--green);background:0 0;border:0;outline:none;flex:1;padding:0}.panel{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;gap:1.5rem;padding:1rem 16px 2rem;display:flex;overflow-y:auto}.panel h2{font-size:1rem;font-family:var(--mono);color:var(--green);margin:0 0 .5rem}.panel h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .5rem;font-size:.8rem}.progress{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.bar{background:var(--green);height:100%;transition:width .6s cubic-bezier(.2,.9,.3,1.1)}.count{color:var(--muted);margin:.3rem 0 .8rem;font-size:.8rem}.objective-list{gap:.35rem;margin:0;padding:0;font-size:.92rem;list-style:none;display:grid}.objective-list li{grid-template-columns:1.2rem 1fr;gap:.4rem;display:grid}.objective-list .mark{font-family:var(--mono)}.objective-list .phase{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--green-dim);margin:.7rem 0 .1rem;font-size:.72rem;display:block}.objective-list .phase:first-child{margin-top:0}.objective-list .phase.locked-phase{color:var(--muted);opacity:.6}.objective-list .done{color:var(--muted)}.objective-list .done .mark{color:var(--green)}.objective-list .locked{color:var(--border);font-family:var(--mono);font-size:.8rem}.objective-list .current{background:var(--surface-2);border:1px solid var(--green-dim);border-radius:8px;margin:.3rem 0;padding:.6rem .6rem .7rem .4rem}.objective-list .current .mark{color:var(--green);font-weight:700}.task{margin:0;font-weight:600}.concept{color:var(--muted);margin:.4rem 0 .6rem;font-size:.88rem}.answer{margin:0;font-size:.9rem}.complete-card{border:1px solid var(--green);background:#4ef0a012;border-radius:10px;margin-top:1rem;padding:.9rem}.complete-card h3{color:var(--green);letter-spacing:.04em;font-size:1rem}.complete-card p{margin:0 0 .6rem;font-size:.9rem}.complete-card .sandbox{color:var(--muted)}.map{font-family:var(--mono);color:var(--muted);margin:0;font-size:.85rem;line-height:1.35;overflow-x:auto}.map .dir .name{color:var(--blue)}.map .here .name{color:var(--bg);background:var(--green);border-radius:3px;padding:0 2px}.map .you{color:var(--green)}.objectives,.map-box{border-radius:10px;margin:-.5rem;padding:.5rem}.pulse{animation:.9s ease-out pulse}@keyframes pulse{0%{box-shadow:0 0 0 2px var(--green), 0 0 24px #4ef0a073}to{box-shadow:0 0 0 2px #0000,0 0 24px #0000}}.objective-list .just-done{border-radius:6px;animation:1.4s ease-out just-done}@keyframes just-done{0%,25%{color:var(--green);background:#4ef0a047}to{background:0 0}}.objective-list .just-done .mark{animation:.5s cubic-bezier(.3,1.6,.5,1) tick;display:inline-block}@keyframes tick{0%{transform:scale(.2)}to{transform:scale(1)}}.objective-list .current.arrive,.complete-card.arrive{animation:.6s ease-out .2s backwards arrive,1.6s ease-out .2s glow}@keyframes arrive{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes glow{0%{box-shadow:0 0 0 3px #4ef0a099,0 0 28px #4ef0a066}to{box-shadow:0 0 0 3px #0000,0 0 28px #0000}}.objective-list .current.warned{animation:.45s ease-in-out shake,1.6s ease-out warn}@keyframes shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@keyframes warn{0%,30%{border-color:var(--amber);box-shadow:0 0 18px #ffcf6b59}}.count.bump{animation:.5s ease-out bump}@keyframes bump{0%{color:var(--green);transform:scale(1.25)}to{transform:scale(1)}}.count{transform-origin:0}.map .fresh .name{animation:1.6s ease-out fresh}@keyframes fresh{0%,30%{color:var(--bg);background:var(--amber)}}.map .arrived .name{animation:.45s cubic-bezier(.3,1.6,.5,1) tick;display:inline-block}.tour{z-index:100;position:fixed;inset:0}.tour-spot{border:2px solid var(--green);pointer-events:none;border-radius:10px;transition:top .35s,left .35s,width .35s,height .35s;position:fixed;box-shadow:0 0 0 200vmax #020504c7,0 0 30px #4ef0a080}.tour-card{background:var(--surface-2);border:1px solid var(--green-dim);border-radius:12px;width:min(320px,100vw - 32px);padding:1rem 1.1rem .9rem;position:fixed;box-shadow:0 18px 50px #0009}.tour-card.enter{animation:.35s ease-out arrive}.tour-count{font-family:var(--mono);color:var(--muted);margin:0;font-size:.75rem}.tour-card h2{color:var(--green);font-size:1.05rem;font-family:var(--mono);margin:.15rem 0 .4rem}.tour-text{margin:0 0 .9rem;font-size:.92rem}.tour-actions{align-items:center;gap:.5rem;display:flex}.tour-spacer{flex:1}.tour-skip{color:var(--muted);background:0 0;border:0;padding:.2rem 0;font-size:.85rem;text-decoration:underline}.tour-next{background:var(--green);color:var(--bg);border:0;border-radius:6px;padding:.35rem .9rem;font-weight:600}.tour-next:hover{filter:brightness(1.1)}@media (width<=899px){.topbar{gap:.5rem}.topbar .ghost{padding:.3rem .55rem;font-size:.8rem}.mission-page{height:auto}.mission{grid-template-columns:1fr}.terminal{border-bottom:1px solid var(--border);height:60dvh;font-size:16px}.panel{border-left:0;border-bottom:1px solid var(--border);order:-1;padding-bottom:1rem}.objective-list .done,.objective-list .locked,.objective-list .phase:not(.current-phase),.map-box{display:none}.objective-list .done.just-done{display:grid}}@media (prefers-reduced-motion:reduce){.cursor,.tour-card.enter,.objective-list .just-done .mark,.map .arrived .name{animation:none}.objective-list .current.arrive,.complete-card.arrive{animation:1.6s ease-out glow}.objective-list .current.warned{animation:1.6s ease-out warn}.count.bump{color:var(--green);animation:none}.bar,.tour-spot{transition:none}}
