:root{--bg:#0b1020;--bg-deep:#070a16;--panel:#141b33;--panel-raised:#1c2544;--line:#2a355c;--ink:#eef0f6;--ink-dim:#a9b0c7;--ink-faint:#7a82a0;--gold:#f2b85c;--gold-deep:#2a1d08;--teal:#5fd6c6;--teal-deep:#0b2a28;--violet:#b9a2ff;--coral:#ff9a76;--cyan:#9fe3ff;--stone:#8a8577;--ember:#ff7a45;--star:#fff0b3;--radius-s:10px;--radius-m:16px;--radius-l:22px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--topbar-h:64px;--dock-h:72px;--column:1100px;--font:ui-rounded, "SF Pro Rounded", "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--shadow:0 3px 0 #00000059}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}html{scroll-padding-bottom:calc(var(--dock-h) + var(--space-4))}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-tap-highlight-color:transparent;font-size:15px;line-height:1.4}.num{font-variant-numeric:tabular-nums}button{font:inherit;color:inherit;cursor:pointer;border:none}button:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}button:disabled{cursor:not-allowed}.btn{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-s);box-shadow:var(--shadow);font-weight:800;transition:transform 80ms}.btn:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.btn--gold{background:var(--gold);color:var(--gold-deep)}.btn--teal{background:var(--teal);color:var(--teal-deep)}.btn--ghost{background:var(--panel-raised);color:var(--ink)}.btn:disabled{background:var(--panel-raised);color:var(--ink-faint);box-shadow:none}.icon-btn{border-radius:var(--radius-s);background:var(--panel-raised);width:44px;height:44px;box-shadow:var(--shadow);justify-content:center;align-items:center;display:inline-flex}.icon-btn:disabled{color:var(--ink-faint);box-shadow:none}#app{flex-direction:column;min-height:100%;display:flex}.topbar{z-index:5;min-height:var(--topbar-h);align-items:center;gap:var(--space-5);padding:var(--space-2) var(--space-5);background:var(--bg-deep);border-bottom:2px solid var(--line);display:flex;position:sticky;top:0}.topbar__brand{letter-spacing:.04em;color:var(--gold);white-space:nowrap;font-weight:900}.topbar__main{align-items:baseline;gap:var(--space-2);display:flex}.topbar__value{font-size:28px;font-weight:900}.topbar__rate{color:var(--gold);font-weight:700}.topbar__label{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--panel);border-radius:999px;font-size:14px;font-weight:700;display:inline-flex}.chip__dot{border-radius:50%;width:10px;height:10px}.goal{gap:var(--space-1);flex-direction:column;min-width:220px;max-width:320px;margin-left:auto;display:flex}.goal__text{font-size:14px;font-weight:800}.bar{background:var(--panel-raised);border-radius:4px;height:8px;overflow:hidden}.bar__fill{background:var(--gold);border-radius:4px;height:100%;transition:width .2s linear}.bar--teal .bar__fill{background:var(--teal)}.bar--violet .bar__fill{background:var(--violet)}.bar--coral .bar__fill{background:var(--coral)}.bar--cyan .bar__fill{background:var(--cyan)}main.screen{width:100%;max-width:var(--column);padding:var(--space-5) var(--space-5) calc(var(--dock-h) + var(--space-6));gap:var(--space-5);flex-direction:column;flex:1;margin:0 auto;display:flex}.dock{z-index:5;height:var(--dock-h);justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3) calc(var(--space-2) + env(safe-area-inset-bottom));background:var(--bg-deep);border-top:2px solid var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.dock__tile{min-width:96px;min-height:52px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-s);color:var(--ink-dim);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:13px;font-weight:800;display:flex}.dock__tile[aria-current=page]{background:var(--panel-raised);color:var(--ink);box-shadow:var(--shadow)}.dock__tile:disabled{color:var(--ink-faint);opacity:.7}.dock__hint{font-size:11px;font-weight:600}.dock__short{display:none}.panel{background:var(--panel);border-radius:var(--radius-m);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow)}.panel__title{margin:0 0 var(--space-3);align-items:baseline;gap:var(--space-3);font-size:18px;font-weight:900;display:flex}.panel__aside{color:var(--ink-dim);margin-left:auto;font-size:14px;font-weight:700}.muted{color:var(--ink-dim)}.small{font-size:13px}.stage{border-radius:var(--radius-l);background:var(--bg-deep);box-shadow:var(--shadow);position:relative;overflow:hidden}.stage svg{width:100%;height:auto;max-height:380px;margin:0 auto;display:block}.chart-layers{position:relative}.stage svg.chart-ships{pointer-events:none;height:100%;max-height:none;position:absolute;inset:0}.stage__caption{left:var(--space-5);top:var(--space-4);flex-direction:column;display:flex;position:absolute}.stage__form{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;font-size:13px;font-weight:900}.stage__line{color:var(--ink-dim);font-weight:700}.spin{transform-box:view-box;transform-origin:200px 150px;animation:linear infinite spin}.pulse{animation:3.2s ease-in-out infinite pulse}.blink{animation:1.6s ease-in-out infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.spin,.pulse,.blink{animation:none}.bar__fill{transition:none}}.rows{gap:var(--space-2);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);border-radius:var(--radius-m);background:var(--panel);box-shadow:var(--shadow);grid-template-columns:48px minmax(0,1fr) auto auto;display:grid}.row--sealed{border:2px dashed var(--line);box-shadow:none;background:0 0}.row__badge{background:var(--panel-raised);border:3px solid var(--gold);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:14px;font-weight:900;display:flex}.row__name{font-weight:900}.row__sub{color:var(--ink-dim);font-size:13px}.row__stat{text-align:right;min-width:84px;font-weight:800}.row__stat small{color:var(--ink-dim);font-size:12px;font-weight:600;display:block}.row__actions{gap:var(--space-2);align-items:center;display:flex}.buy{flex-direction:column;justify-content:center;min-width:132px;line-height:1.1;display:flex}.buy small{opacity:.85;font-size:12px;font-weight:700}.segmented{background:var(--panel-raised);border-radius:var(--radius-s);gap:3px;padding:3px;display:inline-flex}.segmented button{min-width:48px;min-height:44px;color:var(--ink-dim);background:0 0;border-radius:8px;font-weight:800}.segmented button[aria-pressed=true]{background:var(--panel);color:var(--ink)}.split{gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.stat-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stat{background:var(--panel-raised);border-radius:var(--radius-s);padding:var(--space-3)}.stat__value{font-size:22px;font-weight:900}.stat__label{color:var(--ink-dim);font-size:12px;font-weight:700}.signal-hint{font-weight:800}.crew{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.crew__count{text-align:center;background:var(--panel-raised);width:88px;min-height:44px;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-s);appearance:textfield;font-size:18px;font-weight:900}.crew__count::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.crew__count::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.crew__count:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.crew__all{min-height:44px}.shelf{gap:var(--space-2);flex-wrap:wrap;display:flex}.relic{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-s);background:var(--panel-raised);font-size:13px;font-weight:800;display:flex}.relic--missing{border:2px dashed var(--line);color:var(--ink-faint);background:0 0}.relic-link{align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);border:2px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;align-self:start;display:flex}.relic-link svg{color:var(--violet)}.relic-link:hover{border-color:var(--violet)}.relic-link:active{transform:translateY(1px)}.relic-link:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.relic-link__label{font-size:17px;font-weight:900}.relic-link__count{color:var(--ink-dim);font-weight:800}.relic-link__go{color:var(--violet);margin-left:auto;font-weight:900}.relic-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.relic-card{align-items:center;gap:var(--space-2);text-align:center;padding:var(--space-4) var(--space-3);border-radius:var(--radius-m);background:var(--panel-raised);flex-direction:column;display:flex}.relic-card svg{color:var(--violet)}.relic-card__name{font-weight:900}.relic-card__text{color:var(--ink-dim);font-size:13px;font-weight:700}.relic-card--masked{border:2px dashed var(--line);background:0 0}.relic-card__mask{background:var(--line);width:40px;height:40px;color:var(--ink-faint);border-radius:50%;place-items:center;font-size:22px;font-weight:900;display:grid}.toast-host{left:50%;bottom:calc(var(--dock-h) + var(--space-4));z-index:10;gap:var(--space-2);flex-direction:column;align-items:center;display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--panel-raised);border:2px solid var(--line);border-radius:var(--radius-m);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow);max-width:min(420px,90vw);font-weight:800}@media (max-width:720px){.topbar{align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-1) var(--space-3) var(--space-2);grid-template-columns:minmax(0,1fr) auto;display:grid}.topbar__brand{display:none}.topbar__main{grid-area:1/1;min-width:0}.topbar__tools{grid-area:1/2}.topbar__value{font-size:24px}.topbar .chips{gap:var(--space-1) var(--space-2);grid-column:1/-1}.topbar .chip{padding:2px var(--space-2);flex:none;font-size:13px}.topbar .chip--elsewhere{display:none}.goal{align-items:baseline;gap:2px var(--space-2);flex-flow:wrap;grid-column:1/-1;width:100%;min-width:0;max-width:none;margin-left:0}.goal .topbar__label{font-size:11px}.goal__text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13px;overflow:hidden}.goal .bar{flex-basis:100%;height:6px}button.goal{align-content:center;min-height:44px}.topbar__tools .icon-btn{width:44px;height:44px}.view-rooms .topbar__tools{display:none}main.screen{padding:var(--space-3) var(--space-3) calc(var(--dock-h) + var(--space-6));gap:var(--space-4)}.row{gap:var(--space-3);grid-template-columns:44px minmax(0,1fr) auto}.row__stat{display:none}.buy{min-width:108px}.split{grid-template-columns:minmax(0,1fr)}.dock__tile{flex:1;min-width:0;font-size:12px}.dock__hint{display:none}.dock{gap:var(--space-1);padding-left:var(--space-1);padding-right:var(--space-1)}.dock__tile{padding:var(--space-1)}.dock__label{display:none}.dock__short{display:inline}}.stack{gap:var(--space-5);flex-direction:column;display:flex}.stack-s{margin:var(--space-3) 0;flex-direction:column;gap:6px;display:flex}.cluster{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.row__text{min-width:0}.row__full{grid-column:1/-1}.select{max-width:100%;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-s);border:2px solid var(--line);background:var(--panel-raised);color:var(--ink);font:inherit;font-weight:700}.select:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.voyage-card__extra{justify-content:flex-end}.voyage-card__extra .select{flex:0 320px}.topbar__tools{gap:var(--space-2);display:flex}button.goal{text-align:left;color:inherit;cursor:pointer;background:0 0;padding:0}.chip__label{color:var(--ink-dim)}.planner{z-index:20;padding:var(--space-6) var(--space-3);background:#04060ec7;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.planner__sheet{background:var(--bg);border:2px solid var(--line);border-radius:var(--radius-l);width:min(760px,100%);padding:var(--space-5);gap:var(--space-4);box-shadow:var(--shadow);flex-direction:column;display:flex}.planner__sections{gap:var(--space-4);flex-direction:column;display:flex}.planner__actions{justify-content:flex-end;gap:var(--space-3);bottom:calc(-1 * var(--space-6));z-index:1;margin:0 calc(-1 * var(--space-5)) calc(-1 * var(--space-5));padding:var(--space-3) var(--space-5) var(--space-5);background:var(--bg);border-top:2px solid var(--line);border-radius:0 0 var(--radius-l) var(--radius-l);flex-wrap:wrap;display:flex;position:sticky}.choices{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.choice{gap:var(--space-1);text-align:left;padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);background:var(--panel-raised);border:2px solid #0000;flex-direction:column;min-height:44px;display:flex}.choice[aria-pressed=true]{border-color:var(--gold)}.choice[aria-pressed=true] .choice__name:after{content:" ✓";color:var(--gold)}.choice:disabled{opacity:.55}.choice__name{font-weight:900}.choice__text{color:var(--ink-dim);font-size:13px}.btn--coral{background:var(--coral);color:#2b1208}.split--sky{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}.sky-frame,.wall-frame{scroll-margin-top:calc(var(--topbar-h) + var(--space-6))}.sky{border-radius:var(--radius-m);border:2px solid var(--line);background:#0a0f1f;height:clamp(360px,70vh,640px)}.sky-star{cursor:pointer;outline:none}.sky-star:focus-visible circle:first-child{stroke:var(--gold);stroke-width:4px}@media (max-width:720px){.sky{aspect-ratio:1;height:auto}.split--sky{grid-template-columns:minmax(0,1fr)}}.savebox{width:100%;margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-s);border:2px solid var(--line);background:var(--bg-deep);color:var(--ink);resize:vertical;font-family:ui-monospace,monospace;font-size:12px}.record--earned{border-color:var(--gold)}.segmented{flex-wrap:wrap}.board{gap:var(--space-2);flex-direction:column;display:flex}.board__stage{touch-action:manipulation;position:relative;overflow:hidden}.board__stage>svg{width:100%;height:100%;display:block}.board__chips{gap:var(--space-2);overscroll-behavior-x:contain;padding-bottom:var(--space-1);display:flex;overflow-x:auto}.board__chip{min-height:44px;padding:0 var(--space-4);align-items:center;gap:var(--space-2);border:2px solid var(--line);background:var(--panel);color:var(--ink);border-radius:22px;flex:none;font-weight:800;display:inline-flex}.board__chip[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}.board__chip:active{transform:translateY(1px)}.board__count{color:var(--ink-dim);font-variant-numeric:tabular-nums;font-weight:700}.medal-board{border-radius:var(--radius-m);border:2px solid var(--line);background:#0a0f1f;height:auto}@media (min-width:721px){.medal-board{max-height:72vh}}.medal{cursor:pointer;outline:none}.medal:focus-visible circle:first-child{stroke:var(--gold)}.opening{z-index:50;justify-content:center;align-items:center;gap:var(--space-5);background:radial-gradient(ellipse at 50% 45%, #141a33 0%, var(--bg-deep) 70%);flex-direction:column;transition:opacity .9s;display:flex;position:fixed;inset:0;overflow:hidden}.opening.is-leaving{opacity:0;pointer-events:none}.opening__sky{width:100%;height:100%;position:absolute;inset:0}.opening__husk{aspect-ratio:1;cursor:pointer;background:0 0;border:0;border-radius:50%;width:min(70vw,56vh);padding:0;animation:9s ease-in-out infinite husk-drift;position:relative}.opening__husk svg{width:100%;height:100%;display:block;overflow:visible}.opening__husk:focus-visible{outline-offset:12px;outline:2px dashed #f2b85c99}.opening__husk.is-shuddering{animation:.12s linear infinite husk-shudder}.opening__hint{min-height:1.5em;color:var(--ink-dim);letter-spacing:.04em;text-align:center;margin:0;font-size:18px;font-weight:800;animation:2.4s 1.2s both hint-in;position:relative}.opening__pulse{border:3px solid var(--gold);opacity:0;pointer-events:none;border-radius:50%;width:20px;height:20px;margin:-10px 0 0 -10px;position:absolute;top:45%;left:50%;box-shadow:0 0 24px #ffc45c99,inset 0 0 24px #ffc45c66}.opening__pulse.is-going{animation:1.2s ease-out forwards husk-pulse}@keyframes husk-drift{0%,to{transform:translate(0)rotate(-2deg)}50%{transform:translateY(-14px)rotate(2deg)}}@keyframes husk-shudder{0%{transform:translate(0)}25%{transform:translate(-3px,1px)}50%{transform:translate(2px,-2px)}75%{transform:translate(3px,2px)}to{transform:translate(0)}}@keyframes husk-pulse{0%{opacity:.9;width:20px;height:20px;margin:-10px 0 0 -10px}to{opacity:0;width:240vmax;height:240vmax;margin:-120vmax 0 0 -120vmax}}@keyframes hint-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.opening__husk,.opening__husk.is-shuddering,.opening__hint{animation:none}}.stage--husk{background:radial-gradient(#2a1f1a 0%,#141225 38%,#05070f 80%)}.stage--husk svg{overflow:visible}.hk-drift{transform-box:fill-box;transform-origin:50%;animation:10s ease-in-out infinite husk-drift}.hk-mote{animation:linear infinite hk-mote}@keyframes hk-mote{0%{opacity:0;transform:translateY(-60px)}25%{opacity:.9}to{opacity:0;transform:translate(3px)}}.hk-mote{animation-duration:4.5s}.hk-bay{cursor:pointer}.row--flash{animation:1.2s ease-out row-flash}@keyframes row-flash{0%{box-shadow:0 0 0 3px var(--gold)}to{box-shadow:0 0 0 3px #0000}}.hk-flame{transform-box:fill-box;transform-origin:50% 100%;animation:.9s ease-in-out infinite alternate hk-flicker}.hk-flame--in{animation-duration:.6s}@keyframes hk-flicker{0%{transform:scale(.88,.92)}to{transform:scale(1.06,1.1)}}.hk-write{stroke-dasharray:48;animation:2.8s ease-in-out infinite hk-write}@keyframes hk-write{0%{stroke-dashoffset:48px}50%,to{stroke-dashoffset:0}}.hk-hammer{transform-box:fill-box;transform-origin:0 90%;animation:1.2s ease-in infinite hk-hammer}@keyframes hk-hammer{0%,to{transform:rotate(-14deg)}45%{transform:rotate(10deg)}55%{transform:rotate(8deg)}}.hk-spark{animation:1.2s ease-out infinite hk-spark}@keyframes hk-spark{0%,70%{opacity:0;transform:translate(0)}74%{opacity:1}to{transform:translate(var(--dx), var(--dy));opacity:0}}.hk-spark{animation-duration:2.6s!important}.hk-orbit{transform-box:fill-box;transform-origin:50%;animation:90s linear infinite spin}@media (prefers-reduced-motion:reduce){.hk-drift,.hk-mote,.hk-flame,.hk-write,.hk-hammer,.hk-spark,.hk-orbit{animation:none}.hk-write{stroke-dashoffset:0}}.forge-panel{gap:var(--space-3);flex-direction:column;display:flex}.forge-scene{border-radius:var(--radius-m);overflow:hidden}.forge-scene svg{width:100%;height:auto;max-height:var(--scene-h);margin-inline:auto;display:block}.forge-scene.is-struck{animation:.16s linear forge-shake}.pixel-art{image-rendering:pixelated}.forge-scene svg.forge-cave{max-width:768px;max-height:min(768px,100svh - 240px)}.forge-door rect{transition:fill .12s}.forge-door:hover rect,.forge-door:focus-visible rect{fill:#ffd27a2e}.forge-panel.is-asleep .forge-cave .forge-seed{fill:#14110e;fill-opacity:.55}.forge-panel.is-asleep .forge-cave .forge-fire{opacity:0}@media (min-width:1000px){.forge-rooms{align-items:start;gap:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(400px,480px);display:grid}.forge-rooms .forge-scene svg.forge-cave{max-height:calc(100svh - 200px)}}.forge-panel.is-asleep .forge-glow,.forge-panel.is-asleep .forge-fire{opacity:.15}.forge-panel.is-asleep .forge-cot{cursor:pointer}.forge-fire{transform-box:fill-box;transform-origin:50% 100%;animation:.9s ease-in-out infinite alternate hk-flicker}.mold-line{transition:opacity .4s}.mold-status{min-height:1.5em;color:var(--ink-dim);margin:0;font-weight:700}.mold-meter{background:var(--panel-raised);border-radius:7px;height:14px;position:relative;overflow:hidden}.mold-meter__zone{background:#f2b85c8c;position:absolute;top:0;bottom:0}.mold-meter__mark{background:var(--ink);border-radius:2px;width:4px;margin-left:-2px;position:absolute;top:-2px;bottom:-2px}.mold-action{-webkit-user-select:none;user-select:none;touch-action:none;min-width:200px}@keyframes forge-shake{25%{transform:translate(-2px)}75%{transform:translate(2px)}}@media (prefers-reduced-motion:reduce){.forge-fire,.forge-scene.is-struck{animation:none}}.forge-panel.is-asleep .forge-seed{fill:#3a302b}.forge-scene.is-auto .mold-line{animation:3s ease-in-out infinite mold-auto}.forge-scene.is-auto .mold-line[data-part=bar]{animation-delay:1s}.forge-scene.is-auto .mold-line[data-part=curve]{animation-delay:2s}@keyframes mold-auto{0%,to{opacity:.15}30%,60%{opacity:1}}@media (prefers-reduced-motion:reduce){.forge-scene.is-auto .mold-line{opacity:.8;animation:none}}.mold-teach{flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;display:inline-flex}.mold-teach small{opacity:.85;font-weight:700}.orrery-parts{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.orrery-part{text-align:left;padding:var(--space-3);border-radius:var(--radius-s);background:var(--panel-raised);border:2px solid #0000;flex-direction:column;gap:4px;min-height:44px;display:flex}.orrery-part:hover{border-color:var(--line)}.orrery-part__name{font-weight:900}.hk-ring{transform-box:fill-box;transform-origin:50%;animation:240s linear infinite spin}@media (prefers-reduced-motion:reduce){.hk-ring{animation:none}}main.screen.is-slide{animation:.26s ease-out room-slide}main.screen.is-zoom-out{animation:.52s ease-out room-zoom-out}main.screen.is-zoom-in{animation:.42s ease-out room-zoom-in}@keyframes room-slide{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes room-zoom-out{0%{opacity:0;transform:scale(1.6)}to{opacity:1;transform:none}}@keyframes room-zoom-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){main.screen.is-slide,main.screen.is-zoom-out,main.screen.is-zoom-in{animation:.16s ease-out room-fade}}@keyframes room-fade{0%{opacity:0}to{opacity:1}}.forge-rooms .is-list-only{display:none}.room-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.room-card{scroll-margin-bottom:calc(var(--dock-h) + var(--space-4))}.forge-obj{cursor:pointer}.forge-obj:hover{filter:brightness(1.15)}.forge-obj.is-selected{filter:drop-shadow(0 0 6px #ffd27acc)}.bay-ship{pointer-events:none}.bay-ship__flame{opacity:0}.bay-ship.is-out .bay-ship__flame{opacity:1}.bay-ship.is-out .bay-ship__body{animation:9s ease-in-out infinite bay-drift}@keyframes bay-drift{0%,to{transform:translate(0)}25%{transform:translate(22px,-10px)}50%{transform:translate(6px,14px)}75%{transform:translate(-20px,-4px)}}.bay-lamp.is-on circle{animation:1.6s ease-in-out infinite pulse}@media (prefers-reduced-motion:reduce){.bay-ship.is-out .bay-ship__body,.bay-lamp.is-on circle{animation:none}}.fleet{align-items:center;gap:var(--space-2);display:inline-flex}.fleet__marks{gap:2px;display:inline-flex}.fleet__ship{width:37px;height:16px}.fleet__ship .bay-ship__flame,.stage--workshop .bay-ship__flame{display:none}.fleet__ship.is-out{opacity:.35}.fleet__text{font-weight:800}.ws-bot{animation:1.4s ease-in-out infinite alternate ws-work}@keyframes ws-work{0%{transform:translateY(0)}to{transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.ws-bot{animation:none}}.fr-flame{transform-box:fill-box;transform-origin:50% 100%;animation:.9s ease-in-out infinite alternate fr-flicker}@keyframes fr-flicker{0%{transform:scaleY(.85)}to{transform:scaleY(1.1)}}.fr-stoke{animation:1.2s ease-in-out infinite fr-stoke}@keyframes fr-stoke{0%,to{transform:rotate(0)}50%{transform:rotate(-8deg)}}@media (prefers-reduced-motion:reduce){.fr-flame,.fr-stoke{animation:none}}.br-lit{animation:2.4s ease-in-out infinite pulse}@media (prefers-reduced-motion:reduce){.br-lit{animation:none}}.qt-steam{animation:3s ease-in-out infinite qt-steam}.qt-steam--b{animation-delay:-1.5s}@keyframes qt-steam{0%{opacity:0;transform:translateY(4px)}40%{opacity:.7}to{opacity:0;transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.qt-steam{animation:none}}.forge-era-arch{animation:4s ease-in-out infinite era-shimmer}@keyframes era-shimmer{0%,to{opacity:.55}50%{opacity:1}}.evolve-moment{z-index:60;justify-content:center;align-items:center;gap:var(--space-2);background:radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--era) 45%, transparent) 0%, #05070feb 60%);pointer-events:none;flex-direction:column;transition:opacity .9s;animation:.5s ease-out room-fade;display:flex;position:fixed;inset:0}.evolve-moment.is-leaving{opacity:0}.evolve-moment__ring{border:4px solid var(--era);width:20px;height:20px;box-shadow:0 0 32px var(--era);border-radius:50%;margin:-10px 0 0 -10px;animation:1.8s ease-out forwards husk-pulse;position:absolute;top:45%;left:50%}.evolve-moment__kicker{color:var(--ink-dim);letter-spacing:.12em;text-transform:uppercase;margin:0;font-weight:800}.evolve-moment__name{color:var(--era);text-shadow:0 0 24px #000c;margin:0;font-size:clamp(32px,7vw,64px);font-weight:900}@media (prefers-reduced-motion:reduce){.forge-era-arch,.evolve-moment__ring{animation:none}.evolve-moment__ring{display:none}}.away{z-index:55;padding:var(--space-4);background:#05070fb8;place-items:center;animation:.3s ease-out room-fade;display:grid;position:fixed;inset:0}.away__card{gap:var(--space-3);width:min(420px,100%);display:grid}.away__scene svg{border-radius:12px;width:100%;display:block}.away__lines{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.away__lines li{justify-content:space-between;gap:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid #ffffff0f;display:flex}.away__lines b{color:var(--gold)}.away .btn{min-height:44px}.away-bot{animation:1.2s ease-in-out infinite alternate ws-work}@media (prefers-reduced-motion:reduce){.away-bot{animation:none}}.dock__tile.is-new{position:relative}.dock__tile.is-new:after{content:"";background:var(--gold);border-radius:50%;width:10px;height:10px;animation:1.6s ease-out infinite new-dot;position:absolute;top:6px;right:10px;box-shadow:0 0 #f2b85c99}@keyframes new-dot{to{box-shadow:0 0 0 10px #f2b85c00}}@media (prefers-reduced-motion:reduce){.dock__tile.is-new:after{animation:none}}.sc-tap{animation:.7s ease-in-out infinite alternate sc-tap}@keyframes sc-tap{0%{transform:rotate(0)}to{transform:rotate(-6deg)}}@media (prefers-reduced-motion:reduce){.sc-tap{animation:none}}.stage--scribes svg{max-height:200px;margin-inline:auto}.forge-orrery-ring{transform-box:view-box;transform-origin:346px 40px;animation:20s linear infinite orrery-turn}@keyframes orrery-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.forge-orrery-ring{animation:none}}.panel__title{row-gap:var(--space-1);flex-wrap:wrap}@media (max-width:480px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--scene-h:340px}.stage--room svg,.stage--bay svg,.stage--workshop svg{max-height:var(--scene-h)}.forge-rooms .forge-panel>.panel__title{display:none}.toast-host{pointer-events:none}@media (max-width:720px){.toast-host{left:var(--space-3);right:var(--space-3);transform:none}.toast{width:100%;max-width:none;padding:var(--space-2) var(--space-3);text-align:center;font-size:13px}.toast:nth-last-child(n+3){display:none}}.wall-frame{gap:var(--space-2);flex-direction:column;display:flex}.wall{border-radius:var(--radius-s);border:2px solid var(--line);background:#2e2a26;height:clamp(320px,48vh,600px)}@media (max-width:560px){.wall{aspect-ratio:1;height:auto}}.wall-hit{cursor:pointer;outline:none}.wall-hit .wall-ring{stroke:none}.wall-hit:hover .wall-ring{stroke:#4d5684;stroke-width:2px}.wall-hit:focus-visible .wall-ring{stroke:var(--gold);stroke-width:3px}.wall-hit[aria-pressed=true] .wall-ring{stroke:var(--gold);stroke-width:3px;stroke-dasharray:4 5}.wall-count{fill:#141210;font-variant-numeric:tabular-nums;font-size:20px;font-weight:900}.wall-drift{animation:9s ease-in-out infinite wall-drift}.wall-ready{animation:2.4s ease-in-out infinite wall-pulse}@keyframes wall-drift{0%,to{transform:translate(0)rotate(0)}33%{transform:translate(12px,-8px)rotate(4deg)}66%{transform:translate(-10px,7px)rotate(-3deg)}}@keyframes wall-pulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.wall-drift,.wall-ready{animation:none}}.glyph-reward{margin:0 0 var(--space-2);font-weight:800}.btn--violet{background:var(--violet);color:#1b1238}.puzzle{gap:var(--space-2);margin-top:var(--space-3);flex-direction:column;display:flex}.glyph-grid{gap:6px;width:min(100%,380px);display:grid}.glyph-cell{aspect-ratio:1;border-radius:var(--radius-s);background:var(--panel-raised);border:2px solid var(--line);justify-content:center;align-items:center;min-height:48px;display:flex}.glyph-cell--given{cursor:default;background:#251f47;border-color:#3d3470}.glyph-cell--given:disabled{color:inherit}.glyph-cell--bad{background:#3a1a26;border-color:#ff6b6b}
