:root{--bg: #ffffff;--surface: #f1efe8;--ink: #2a2e33;--accent: #4fd1e6;--accent2: #b8c4cc;--line: .5px;--font: "Space Grotesk", "Helvetica Neue", system-ui, sans-serif;--tracking: .08em;--radius: 2px;--panel: color-mix(in srgb, var(--surface) 86%, transparent);--ink-soft: color-mix(in srgb, var(--ink) 60%, transparent);--cinder: #993c1d;--choir: #534ab7;--commons: #1d9e75;--chosen: #b08324;--pad-a: #6dbe45;--pad-b: #e0413e;--pad-x: #3f8fdb;--pad-y: #f2c230;--hurt: #e0413e;--healed: #1d9e75}body[data-era="2148"]{--radius: 0;--tracking: .02em}body[data-era="2312"]{--tracking: .1em}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font)}body{overflow:hidden;letter-spacing:var(--tracking);transition:background .9s ease,color .9s ease}button{font:inherit;letter-spacing:inherit;color:inherit}h1,h2,h3{font-weight:500;margin:0}p{margin:0;line-height:1.5}#app{position:relative;width:100vw;height:100vh;overflow:hidden}#bg{position:absolute;inset:0;overflow:hidden;z-index:0}#bg .layer{position:absolute;inset:-6% -4%;will-change:transform}#bg .layer svg{width:100%;height:100%;display:block}#bg canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#bg.shake .layer[data-drift="0.6"],#bg.shake .layer[data-drift="1"],#bg.shake canvas{animation:shake .32s ease-out}@keyframes shake{0%{transform:translate(0)}20%{transform:translate(-6px,3px)}40%{transform:translate(5px,-3px)}60%{transform:translate(-3px,2px)}80%{transform:translate(2px,-1px)}to{transform:translate(0)}}#bg .era-fade{position:absolute;inset:0;background:var(--bg);opacity:0;pointer-events:none;transition:opacity .7s ease}#bg .era-fade.on{opacity:1}#screen{position:absolute;inset:0 0 56px;display:grid;grid-template-rows:minmax(0,1fr);padding:24px;overflow:hidden;z-index:1}#screen>*{min-height:0;min-width:0}#prompts{position:absolute;left:0;right:0;bottom:0;height:56px;z-index:2;display:flex;align-items:center;gap:22px;padding:0 24px;background:var(--panel);border-top:var(--line) solid var(--ink-soft);font-size:14px;backdrop-filter:blur(6px);overflow-x:auto;white-space:nowrap}#toast{position:absolute;top:18px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:8px 16px;border-radius:var(--radius);opacity:0;transition:opacity .25s;pointer-events:none;font-size:14px;z-index:20}#toast.on{opacity:1}.prompt{display:inline-flex;align-items:center;gap:8px}.glyph{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;font-size:12px;font-weight:700;border-radius:13px;letter-spacing:0}.glyph .key{display:none}.glyph .pad,body[data-device=keyboard] .glyph .key{display:inline}body[data-device=keyboard] .glyph .pad{display:none}body[data-device=keyboard] .glyph{border-radius:4px;border:1.5px solid var(--ink);background:var(--surface);color:var(--ink);min-width:30px;font-family:Space Grotesk,system-ui,sans-serif}body[data-device=gamepad] .glyph[data-btn=a]{background:var(--pad-a);color:#fff}body[data-device=gamepad] .glyph[data-btn=b]{background:var(--pad-b);color:#fff}body[data-device=gamepad] .glyph[data-btn=x]{background:var(--pad-x);color:#fff}body[data-device=gamepad] .glyph[data-btn=y]{background:var(--pad-y);color:#222}body[data-device=gamepad] .glyph[data-btn=lb],body[data-device=gamepad] .glyph[data-btn=rb]{background:var(--ink);color:var(--bg);border-radius:8px 8px 4px 4px}body[data-device=gamepad] .glyph[data-btn=lt],body[data-device=gamepad] .glyph[data-btn=rt]{background:var(--ink);color:var(--bg);border-radius:12px 12px 4px 4px}body[data-device=gamepad] .glyph[data-btn=ls],body[data-device=gamepad] .glyph[data-btn=rs],body[data-device=gamepad] .glyph[data-btn=dpad]{background:var(--surface);color:var(--ink);border:2px solid var(--ink)}body[data-device=gamepad] .glyph[data-btn=start],body[data-device=gamepad] .glyph[data-btn=select]{background:var(--surface);color:var(--ink);border:1.5px solid var(--ink)}.prompt.disabled{opacity:.4}.panel{background:var(--panel);border:var(--line) solid var(--ink-soft);border-radius:var(--radius);padding:18px 20px;backdrop-filter:blur(8px)}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.18em;opacity:.7;margin-bottom:6px}.menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.menu li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;border:var(--line) solid transparent;border-radius:var(--radius);cursor:pointer;transition:transform .12s ease,background .12s ease}.menu li .lbl{display:flex;align-items:center;gap:10px;white-space:nowrap}.menu li .hint{font-size:12px;opacity:.65;text-align:right;max-width:48%}.menu li.focused{background:color-mix(in srgb,var(--accent) 22%,transparent);border-color:var(--accent);transform:translate(4px)}.menu li.disabled{opacity:.45}.menu li .cost{font-size:12px;opacity:.8;padding:1px 6px;border:var(--line) solid var(--ink-soft);border-radius:10px}.bar{position:relative;height:8px;background:color-mix(in srgb,var(--ink) 12%,transparent);border-radius:4px;overflow:hidden}.bar>i{position:absolute;inset:0 auto 0 0;background:var(--accent);transition:width .35s ease}.bar.hp>i{background:var(--commons)}.bar.shield>i{background:var(--accent2)}.threads{display:flex;gap:4px}.threads i{width:14px;height:8px;border:var(--line) solid var(--ink);border-radius:2px;background:transparent}.threads i.on{background:var(--ink)}.threads i.slack{border-color:var(--accent);background:var(--accent)}.title{display:grid;place-items:center;align-content:center;gap:26px;text-align:center}.title h1{font-size:clamp(42px,8vw,96px);letter-spacing:.32em;font-weight:400;text-indent:.32em}.title .tag{opacity:.7;max-width:46ch}.title .menu{min-width:300px}.title #title-menu{background:var(--panel);border:var(--line) solid var(--ink-soft);border-radius:var(--radius);padding:10px;backdrop-filter:blur(8px)}.stance{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:16px;max-width:900px;margin:0 auto;align-content:center}.stance .card{padding:22px;border:var(--line) solid var(--ink-soft);border-radius:var(--radius);background:var(--panel);transition:transform .15s;min-height:200px}.stance .card.focused{transform:translateY(-6px);border-color:var(--stance-color);box-shadow:inset 0 3px 0 var(--stance-color)}.stance .card h3{color:var(--stance-color);margin-bottom:8px}.hub{display:grid;grid-template-columns:minmax(340px,440px) 1fr minmax(260px,320px);grid-template-rows:auto 1fr;gap:18px;height:100%}.hub .place{grid-column:1}.hub .place h2{font-size:26px}.hub .place .era{font-size:13px;opacity:.7;margin-bottom:10px}.hub .actions{grid-column:1;align-self:start;max-height:100%;overflow-y:auto}.hub .party{grid-column:3;grid-row:1 / span 2;align-self:start;max-height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.hub .journal{grid-column:2;grid-row:2;align-self:end;max-width:520px;font-size:13px;opacity:.8}.member{display:grid;grid-template-columns:54px 1fr;gap:10px;align-items:center}.member .portrait{width:54px;height:54px}.member .portrait svg{width:100%;height:100%}.member .name{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}.member .name b{font-weight:500}.member .hp-lbl{font-size:11px;opacity:.7;margin-top:3px}.scan{display:grid;place-items:center}.scan .card{width:min(560px,90vw)}.scan h2{margin-bottom:8px}.scan ul{margin:12px 0 0;padding-left:18px;line-height:1.7}.scan .choice{display:flex;gap:28px;margin-top:20px}.dialogue{display:grid;align-content:end;justify-items:center;padding-bottom:12px}.dialogue .box{width:min(860px,94vw);display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:start;min-height:170px}.dialogue .box.narrator{grid-template-columns:1fr;font-style:italic}.dialogue .portrait{width:120px;height:120px;border-radius:var(--radius);background:color-mix(in srgb,var(--accent) 15%,transparent);overflow:hidden}.dialogue .portrait svg{width:100%;height:100%}.dialogue .speaker{font-size:12px;text-transform:uppercase;letter-spacing:.2em;opacity:.75;margin-bottom:8px}.dialogue .text{font-size:18px;line-height:1.55}.dialogue .choices{margin-top:14px}.battle{display:grid;grid-template-columns:1fr minmax(280px,340px);grid-template-rows:auto 1fr auto;gap:14px;height:100%}.battle .stage{grid-column:1;grid-row:1 / span 2;position:relative;min-height:260px}.battle .enemies{position:absolute;top:6%;left:50%;transform:translate(-50%);display:flex;gap:40px;align-items:flex-end}.battle .enemy{width:150px;text-align:center;transition:transform .2s}.battle .enemy .rig{width:130px;height:150px;margin:0 auto}.battle .enemy .rig svg{width:100%;height:100%}.battle .enemy.targeted{transform:translateY(-8px)}.battle .enemy.targeted .rig{filter:drop-shadow(0 0 10px var(--accent))}.battle .enemy.down{opacity:.25;filter:grayscale(1)}.battle .enemy .nm{font-size:13px;margin-top:4px;display:flex;justify-content:space-between;gap:6px}.battle .enemy .marker{color:var(--accent);font-size:11px}.battle .enemy .intent{font-size:11px;margin-top:3px;padding:1px 6px;border-radius:3px;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink);opacity:.9}.battle .enemy .intent.hit{color:var(--hurt)}.battle .enemy .intent.heavy{color:var(--hurt);font-weight:700;background:color-mix(in srgb,var(--hurt) 18%,transparent)}.battle .enemy .intent.charge{color:var(--hurt);font-style:italic}.battle .enemy .intent.heal{color:var(--healed)}.battle .actorsrow{position:absolute;bottom:4%;left:4%;display:flex;gap:34px;align-items:flex-end}.battle .actor{width:110px;height:150px;transition:transform .25s}.battle .actor svg{width:100%;height:100%}.battle .actor.active{transform:translate(16px)}.battle .actor.down{opacity:.3}.battle .actor.targeted{transform:translateY(-10px) scale(1.06);filter:drop-shadow(0 0 12px var(--commons))}.battle .actor.targeted:after{content:"▼";position:absolute;top:-22px;left:50%;transform:translate(-50%);color:var(--commons);font-size:18px;animation:bob .7s ease-in-out infinite alternate}.battle .actor{position:relative}.battle .card.targeted{border-color:var(--commons);box-shadow:inset 0 0 0 2px var(--commons)}@keyframes bob{0%{transform:translate(-50%)}to{transform:translate(-50%,5px)}}.battle .actor.hit{animation:hitflash .3s}.battle .statuses{display:flex;flex-wrap:wrap;gap:3px;margin-top:5px;justify-content:center}.battle .card .statuses{justify-content:flex-start}.battle .chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;letter-spacing:.04em;line-height:1;padding:3px 4px 3px 5px;border-radius:var(--radius);border:var(--line) solid currentColor;white-space:nowrap;cursor:help}.battle .chip.good{color:var(--commons)}.battle .chip.bad{color:var(--cinder)}.battle .chip-turns{font-variant-numeric:tabular-nums;font-weight:600;background:color-mix(in srgb,currentColor 18%,transparent);padding:1px 4px;border-radius:var(--radius);min-width:12px;text-align:center}.battle .enemy.hurt .rig,.battle .actor.hurt{animation:pulse-hurt .8s ease-out 2}.battle .enemy.healed .rig,.battle .actor.healed{animation:pulse-healed .8s ease-out 2}.battle .card.hurt{animation:card-hurt .8s ease-out 2}.battle .card.healed{animation:card-healed .8s ease-out 2}@keyframes pulse-hurt{0%,to{filter:none}25%{filter:drop-shadow(0 0 14px var(--hurt)) drop-shadow(0 0 5px var(--hurt))}}@keyframes pulse-healed{0%,to{filter:none}25%{filter:drop-shadow(0 0 14px var(--healed)) drop-shadow(0 0 5px var(--healed))}}@keyframes card-hurt{0%,to{box-shadow:none;border-color:var(--ink-soft)}25%{box-shadow:0 0 14px var(--hurt),inset 0 0 0 2px var(--hurt);border-color:var(--hurt)}}@keyframes card-healed{0%,to{box-shadow:none;border-color:var(--ink-soft)}25%{box-shadow:0 0 14px var(--healed),inset 0 0 0 2px var(--healed);border-color:var(--healed)}}@media(prefers-reduced-motion:reduce){.battle .enemy.hurt .rig,.battle .actor.hurt,.battle .card.hurt{animation:none;box-shadow:0 0 0 2px var(--hurt)}.battle .enemy.healed .rig,.battle .actor.healed,.battle .card.healed{animation:none;box-shadow:0 0 0 2px var(--healed)}}@keyframes hitflash{0%{filter:brightness(2) saturate(0)}to{filter:none}}.battle .gauges{grid-column:2;grid-row:1;display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center}.battle .tempo-ring{width:96px;height:96px}.battle .entropy{font-size:12px}.battle .entropy .bar>i{background:var(--choir)}.battle .entropy.high .bar>i{background:var(--cinder)}.battle .side{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:10px;min-height:0}.battle .side .panel{min-height:0;overflow:auto}.battle .log{font-size:12.5px;line-height:1.5;flex:1;min-height:120px}.battle .log div{padding:2px 0;border-bottom:var(--line) dashed color-mix(in srgb,var(--ink) 15%,transparent)}.battle .log .hit{color:var(--ink)}.battle .log .heal{color:var(--commons)}.battle .log .tempo{color:var(--choir)}.battle .log .warn{color:var(--cinder)}.battle .log .system{opacity:.6}.battle .bottom{grid-column:1 / span 2;grid-row:3;display:grid;grid-template-columns:1fr 1fr 1fr minmax(300px,340px);gap:12px;align-items:start}.battle .card{padding:10px 12px}.battle .card.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.battle .card .st{font-size:11px;opacity:.75;margin-top:4px;min-height:14px}.battle .actionmenu{max-height:210px;overflow:auto}.battle .actionmenu .menu li{padding:6px 10px}.battle .actionmenu .menu li .hint{display:none}.battle .actionmenu .desc{font-size:12px;opacity:.75;margin-top:6px;min-height:30px}.battle .fork{border-color:var(--choir)}.battle .fork ul{margin:6px 0 0;padding-left:16px}.frame{position:absolute;inset:0;pointer-events:none;border:0 solid var(--cinder);transition:border-width .5s}.frame.e1{border-width:2px;opacity:.4}.frame.e2{border-width:5px;opacity:.6;clip-path:polygon(0 0,100% 0,100% 40%,96% 43%,100% 46%,100% 100%,0 100%,0 60%,3% 57%,0 54%)}.frame.e3{border-width:9px;opacity:.85;clip-path:polygon(0 0,30% 0,32% 3%,34% 0,100% 0,100% 40%,96% 43%,100% 46%,100% 100%,60% 100%,58% 97%,56% 100%,0 100%,0 60%,3% 57%,0 54%)}.result{display:grid;place-items:center}.result .card{width:min(520px,90vw)}.result ul{padding-left:18px;line-height:1.7}.tech{display:grid;grid-template-columns:1fr minmax(280px,360px);gap:18px;height:100%}.tech .tabs{display:flex;gap:10px;margin-bottom:12px;align-items:center}.tech .tabs span{padding:6px 12px;border:var(--line) solid var(--ink-soft);border-radius:var(--radius);opacity:.6}.tech .tabs span.on{opacity:1;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent)}.tech .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tech .trunk h3{font-size:14px;margin-bottom:8px;opacity:.8}.tech .node{padding:8px 10px;border:var(--line) solid var(--ink-soft);border-radius:var(--radius);margin-bottom:8px;font-size:13px;position:relative;background:var(--panel)}.tech .node .ty{font-size:10px;text-transform:uppercase;letter-spacing:.15em;opacity:.6}.tech .node.owned{border-color:var(--commons);background:color-mix(in srgb,var(--commons) 18%,transparent)}.tech .node.locked{opacity:.45}.tech .node.focused{outline:2px solid var(--accent);outline-offset:1px}.tech .node.contradiction{border-style:dashed}.tech .node.condition.locked{background:repeating-linear-gradient(45deg,transparent 0 6px,color-mix(in srgb,var(--ink) 8%,transparent) 6px 8px)}.tech .detail h3{margin-bottom:6px}.tech .detail .reason{margin-top:10px;font-size:13px;color:var(--cinder)}.tech .detail .points{margin-top:10px;font-size:13px}.tech .stats{margin-top:12px;font-size:12px;display:grid;grid-template-columns:1fr 1fr;gap:3px 12px}.shop{display:grid;grid-template-columns:1fr minmax(240px,300px);gap:18px}.shop .tabs{display:flex;gap:10px;margin-bottom:12px}.shop .tabs span{padding:6px 12px;border:var(--line) solid var(--ink-soft);border-radius:var(--radius);opacity:.6}.shop .tabs span.on{opacity:1;border-color:var(--accent)}.two{display:grid;grid-template-columns:1fr minmax(260px,320px);gap:18px}.center{display:grid;place-items:center}.center .card{width:min(560px,92vw)}.settings .row{display:flex;justify-content:space-between;padding:8px 0}.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:13px}.kv b{font-weight:500}.small{font-size:12.5px;opacity:.8}.err{color:var(--cinder);font-size:13px;margin-top:8px}.rig-idle{animation:idle 3.2s ease-in-out infinite;transform-origin:50% 100%}.rig-act{animation:act .5s ease-out;transform-origin:50% 100%}.rig-hit{animation:hurt .4s ease-out;transform-origin:50% 100%}.rig-down{transform:rotate(80deg) translate(10%,20%);opacity:.5;transform-origin:50% 100%;transition:transform .5s ease-in}@keyframes idle{0%,to{transform:translateY(0)}50%{transform:translateY(-3px) scaleY(1.01)}}@keyframes act{0%{transform:translate(0)}40%{transform:translate(22px) scaleX(1.05)}to{transform:translate(0)}}@keyframes hurt{0%{transform:translate(0)}30%{transform:translate(-12px) rotate(-6deg)}to{transform:translate(0)}}.echo-rig{filter:url(#chromatic) invert(1) hue-rotate(180deg);animation:glitch 2.4s steps(1) infinite}@keyframes glitch{0%,92%,to{clip-path:none}94%{clip-path:polygon(0 20%,100% 20%,100% 45%,0 45%);transform:translate(6px)}97%{clip-path:polygon(0 60%,100% 60%,100% 80%,0 80%);transform:translate(-6px)}}.amb-pulse{animation:pulse 6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}.amb-breathe{animation:breathe 6s ease-in-out infinite;transform-origin:50% 100%}@keyframes breathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.006)}}.amb-fog{animation:fog 24s linear infinite}@keyframes fog{0%{transform:translate(-4%)}50%{transform:translate(4%)}to{transform:translate(-4%)}}.amb-flicker{animation:flicker 2.3s steps(6) infinite}@keyframes flicker{0%,to{opacity:.85}30%{opacity:1}60%{opacity:.7}80%{opacity:.95}}.amb-sway{animation:sway 9s ease-in-out infinite;transform-origin:50% 0}@keyframes sway{0%,to{transform:rotate(-.4deg)}50%{transform:rotate(.4deg)}}.drift-cross{animation:cross 32s linear infinite}@keyframes cross{0%{transform:translate(-20%)}to{transform:translate(120%)}}body[data-reduced-motion=true] *,body[data-reduced-motion=true] *:before,body[data-reduced-motion=true] *:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}@media(prefers-reduced-motion:reduce){body:not([data-reduced-motion=false]) *,body:not([data-reduced-motion=false]) *:before,body:not([data-reduced-motion=false]) *:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}@media(max-width:900px){#screen{padding:12px}.hub{grid-template-columns:1fr;grid-template-rows:auto auto auto auto}.hub .party,.hub .journal,.hub .actions{grid-column:1;grid-row:auto}.battle{grid-template-columns:1fr;grid-template-rows:auto auto auto auto}.battle .stage{grid-column:1;grid-row:1;min-height:200px}.battle .gauges,.battle .side{grid-column:1;grid-row:auto}.battle .bottom{grid-column:1;grid-template-columns:1fr}.tech,.shop,.two,.stance{grid-template-columns:1fr}}.map{position:relative;height:100%}.map svg.world{width:100%;height:100%;display:block}.map .zone{fill:color-mix(in srgb,var(--cinder) 14%,transparent);stroke:var(--cinder);stroke-width:1;stroke-dasharray:6 5}.map .zone-label{font-size:16px;fill:var(--ink);opacity:.75;letter-spacing:.12em;text-transform:uppercase}.map .road{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-dasharray:14 10;opacity:.55}.map .node-label{font-size:20px;fill:var(--ink);text-anchor:middle}.map .node-ring{fill:none;stroke:var(--accent);stroke-width:2;opacity:0;transition:opacity .2s}.map .node-art{filter:drop-shadow(0 3px 0 rgba(0,0,0,.35))}.map .node.near .node-art{filter:drop-shadow(0 0 8px var(--accent))}.map .node-label{paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round}.map .node.near .node-ring{opacity:1}.map .node.locked{opacity:.35}.map .token{transition:none}.map .hud{position:absolute;top:18px;left:18px;max-width:360px}.map .near-prompt{position:absolute;left:50%;bottom:24px;transform:translate(-50%);font-size:18px}.map .party-mini{position:absolute;top:18px;right:18px;display:flex;flex-direction:column;gap:8px;width:280px}.panel,.title #title-menu,.stance .card,.difficulty-pick{background:#14234b;color:#f8efd5;border:3px double #c3d1ed;border-radius:0;box-shadow:0 3px #080f25;backdrop-filter:none;--ink: #f8efd5;--accent: #f4cb76;--commons: #79cf9b;--choir: #b7a6f7;--cinder: #f4977f}.rig,.portrait-svg{image-rendering:pixelated}.bar,.threads i,.menu li,.menu li .cost{border-radius:0}.menu li.focused{background:#334775;border-color:#f4cb76}#prompts{background:#101c3a;color:#f8efd5;backdrop-filter:none}.battle{grid-template-columns:minmax(0,1fr) 270px;grid-template-rows:minmax(340px,1fr) auto;gap:12px}.battle .stage{grid-column:1 / -1;grid-row:1;min-height:340px;border:4px double #c3d1ed;background:#101b3280;overflow:hidden}.battle .stage:before{content:"KELL  /  FIELD";position:absolute;top:12px;left:16px;color:#f8efd5;font-size:11px;letter-spacing:2px}.battle .enemies{inset:48px auto 16px 5%;width:50%;transform:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;justify-items:center;gap:12px;overflow-y:auto}.battle .enemy{width:min(160px,100%);color:#fff1d5;text-shadow:1px 2px #101426}.battle .enemy .rig{width:90px;height:110px}.battle .enemy>.rig{transform:scaleX(-1)}.battle .enemy .nm{justify-content:center;font-size:12px}.battle .enemy .st{font-size:10px;min-height:12px}.battle .enemy.targeted{transform:translate(8px)}.battle .enemy.targeted .rig{filter:drop-shadow(3px 0 #f4cb76)}.battle .actorsrow{inset:30px 9% 14px auto;width:90px;display:flex;flex-direction:column;justify-content:center;gap:0}.battle .actor{width:72px;height:88px;flex:0 1 88px;min-height:0}.battle .actor.active{transform:translate(-20px)}.battle .actor.active:before{content:"▶";position:absolute;left:-20px;top:35%;color:#f4cb76}.battle .actor.targeted{transform:translate(-12px);filter:drop-shadow(-3px 0 #79cf9b)}.battle .gauges{grid-column:2;grid-row:2;grid-template-columns:60px 1fr;padding:10px;align-self:start}.battle .tempo-ring{width:60px;height:60px}.battle .side{grid-column:2;grid-row:2;margin-top:156px;max-height:120px}.battle .log{min-height:60px;padding:8px;font-size:11px}.battle .bottom{grid-column:1;grid-row:2;grid-template-columns:minmax(200px,1fr) minmax(220px,1fr);gap:6px 10px}.battle .bottom>.card:not(.actionmenu){grid-column:2}.battle .actionmenu{grid-column:1;grid-row:1 / span 4;height:100%;max-height:280px}.battle .card{padding:8px 10px;font-size:12px}.rig-idle{animation:pixel-idle 1.2s steps(1) infinite}@keyframes pixel-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}.echo-rig{filter:hue-rotate(120deg) brightness(1.3)}@media(max-width:900px){#screen{overflow-y:auto}.battle{height:auto;min-height:100%;grid-template-columns:minmax(0,1fr);grid-template-rows:370px auto auto auto}.battle .stage{grid-column:1;grid-row:1}.battle .bottom{grid-column:1;grid-row:2}.battle .gauges{grid-column:1;grid-row:3}.battle .side{grid-column:1;grid-row:4;margin-top:0;max-height:180px}}@media(max-width:480px){.battle .bottom{grid-template-columns:minmax(0,1fr)}.battle .bottom>.card:not(.actionmenu){grid-column:1}.battle .actionmenu{grid-column:1;grid-row:auto;max-height:240px}.battle .enemies{left:2%;width:63%;gap:6px}.battle .enemy .rig{width:64px;height:80px}.battle .actorsrow{right:1%;width:64px}.battle .actor{width:64px}}@media(max-width:900px){.map .hud{top:8px;left:8px;max-width:calc(100% - 16px)}.map .party-mini{inset:auto 8px 8px;width:auto;flex-direction:row}.map .party-mini>*{flex:1;min-width:0}.map .party-mini .member{grid-template-columns:32px 1fr;gap:5px}.map .party-mini .portrait{width:32px;height:32px}.map .party-mini .name{flex-wrap:wrap}.map .near-prompt{bottom:130px}}@media(max-width:480px){.map .party-mini .member{display:block;padding:6px}.map .party-mini .portrait{display:none}}.battle .stage:before{content:none}.battle .field-label{position:absolute;top:12px;left:16px;color:#f8efd5;font-size:11px;letter-spacing:2px;text-transform:uppercase}.battle .telemetry{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:10px;min-height:0}.battle .telemetry .gauges{align-self:stretch}.battle .telemetry .side{margin-top:0;max-height:none;flex:1;overflow-y:auto}@media(max-width:900px){.battle .telemetry{grid-column:1;grid-row:3}.battle .telemetry .side{max-height:180px}}.battle .enemy>.rig{transform:none}.scene-art{image-rendering:auto}.battle .enemy>.rig:has(.party-echo){transform:scaleX(-1)}.tech .node,.tech .tabs span,.shop .tabs span{background:#14234b;color:#f8efd5;border-color:#c3d1ed;border-radius:0}.tech .node.owned{background:#1e4a3a;border-color:#79cf9b}.tech .node.locked{opacity:.7;color:#b9c3d8}.tech .node.condition.locked{background:repeating-linear-gradient(45deg,#14234b 0 6px,#1b2d5c 6px 8px)}.tech .node.focused{outline-color:#f4cb76}.tech .trunk h3,.tech .tabs .small{color:#f8efd5;text-shadow:1px 1px #0b1128}.tech .tabs span.on,.shop .tabs span.on{border-color:#f4cb76;background:#334775}.title>div:first-child,.title>p.small{background:#14234b;color:#f8efd5;border:3px double #c3d1ed;box-shadow:0 3px #080f25;padding:18px 28px}.title>p.small{padding:8px 14px;font-size:12px}.title h1{color:#f4cb76}.battle .narration{position:absolute;inset:0;display:grid;place-items:center;z-index:5;cursor:pointer;background:color-mix(in srgb,#050a18 45%,transparent)}.battle .narration-box{width:min(560px,82%);background:#14234b;color:#f8efd5;border:3px double #c3d1ed;box-shadow:0 4px #080f25;padding:16px 20px 12px;animation:narration-in .14s ease-out}.battle .narration-box .eyebrow{margin-bottom:2px;color:#f4cb76;opacity:1}.battle .narration-box p{font-size:15px;line-height:1.45;margin-bottom:10px}.battle .narration-box p:last-of-type{margin-bottom:4px}.battle .narration-box p.hit{color:#f8efd5}.battle .narration-box p.heal{color:#79cf9b}.battle .narration-box p.tempo{color:#b7a6f7}.battle .narration-box p.warn{color:#f4977f}.battle .narration-more{margin-top:8px;padding-top:8px;border-top:1px solid #38496f;font-size:12px;display:flex;align-items:center;gap:8px}@keyframes narration-in{0%{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}body[data-reduced-motion=true] .battle .narration-box{animation:none}.battle .actionmenu{display:flex;flex-direction:column;max-height:clamp(220px,46vh,520px);overflow:hidden}.battle .actionmenu .eyebrow{flex:0 0 auto}.battle .actionmenu .menu{flex:1 1 auto;overflow-y:auto;min-height:0}.battle .actionmenu .desc{flex:0 0 auto;border-top:1px solid #38496f;padding-top:6px}.manual{display:grid;grid-template-columns:minmax(210px,290px) 1fr;gap:16px;height:100%;min-height:0}.manual .toc{overflow-y:auto;min-height:0;padding:14px 10px}.manual .toc .group{font-size:11px;text-transform:uppercase;letter-spacing:.16em;opacity:.6;margin:12px 8px 4px}.manual .toc .page{padding:7px 10px;cursor:pointer;border-left:3px solid transparent;font-size:14px}.manual .toc .page.lvl3{padding-left:24px;font-size:13px;opacity:.85}.manual .toc .page.focused{background:#334775;border-left-color:#f4cb76;opacity:1}.manual .body{overflow-y:auto;min-height:0;padding:20px 26px;max-width:78ch}.manual .body h2{font-size:24px;margin-bottom:14px;color:#f4cb76}.manual .body h4{font-size:14px;margin:16px 0 4px}.manual .body p{margin-bottom:12px;line-height:1.6}.manual .body ul{margin:0 0 12px;padding-left:20px;line-height:1.6}.manual .body li{margin-bottom:4px}.manual .body table{width:100%;border-collapse:collapse;margin:6px 0 16px;font-size:13.5px}.manual .body th{text-align:left;padding:6px 10px 6px 0;border-bottom:2px solid #c3d1ed;font-weight:500}.manual .body td{padding:6px 10px 6px 0;border-bottom:1px solid #38496f;vertical-align:top;line-height:1.45}.manual .body tr td:first-child{padding-right:16px}.manual .body .end-note{margin-top:20px;padding-top:10px;border-top:1px solid #38496f;opacity:.7}@media(max-width:900px){.manual{grid-template-columns:1fr;grid-template-rows:minmax(90px,26%) 1fr}.manual .toc nav{display:flex;flex-wrap:wrap;gap:4px 6px;align-content:flex-start}.manual .toc .group{width:100%;margin:6px 0 0}.manual .toc .page{padding:5px 9px}.manual .toc .page{border-left:none;border-bottom:3px solid transparent}.manual .toc .page.lvl3{padding-left:10px}.manual .body{padding:14px 16px}}.battle .fork-preview{position:absolute;inset:0;display:grid;place-items:center;z-index:4;pointer-events:none}.battle .fork-box{width:min(560px,82%);background:#1a1746;color:#f8efd5;border:3px double #b7a6f7;box-shadow:0 4px #080f25;padding:14px 20px 10px}.battle .fork-box .eyebrow{color:#b7a6f7;opacity:1;margin-bottom:8px}.battle .fork-box ul{margin:0;padding-left:18px}.battle .fork-box li{font-size:14px;line-height:1.5;margin-bottom:4px}.battle .fork-foot{margin-top:10px;padding-top:8px;border-top:1px solid #4a3f86;display:flex;gap:20px;font-size:12px;flex-wrap:wrap}.two{height:100%;min-height:0}.two>*{min-height:0;overflow-y:auto}.bagpanel{display:flex;flex-direction:column;overflow:hidden}.bagpanel>.eyebrow{flex:0 0 auto}.baglist{flex:1 1 auto;overflow-y:auto;min-height:60px}.baglist .menu li{flex-wrap:wrap;align-items:flex-start;gap:3px 10px}.baglist .menu li .lbl{flex:1 1 100%;white-space:normal;justify-content:space-between}.baglist .menu li .hint{flex:1 1 100%;max-width:none;text-align:left;opacity:.7}.bagfoot{flex:0 0 auto;max-height:48%;overflow-y:auto;margin-top:12px;padding-top:10px;border-top:var(--line) solid var(--ink-soft)}.battle{grid-template-rows:minmax(0,1fr) auto}.battle .stage{min-height:min(320px,38vh)}.battle .bottom{min-height:0;max-height:52vh;overflow-y:auto}.battle .telemetry{min-height:0;max-height:52vh}.battle .telemetry .side{flex:1 1 0;min-height:0}.battle .telemetry .log{flex:1 1 0;min-height:0;overflow-y:auto}.battle .enemy .intent{white-space:normal;line-height:1.25}.battle .card .nerve.out,.battle .card .cont.thin,.hp-lbl .out{color:var(--hurt);font-weight:700}.hub .place .entropy-line{margin-top:8px;font-size:12px}.hub .place .entropy-line.fraying{color:var(--choir)}.hub .place .entropy-line.echoing,.hub .place .entropy-line.slipping{color:var(--cinder)}.scroll-hint{font-size:11px;opacity:.6;text-align:center;padding:2px 0 0}.tech .node.focused{outline:4px solid #f4cb76;outline-offset:0;box-shadow:0 0 0 2px #0b1128 inset}.tech .grid{position:relative}.tech .grid svg.wires{position:absolute;left:0;top:0;pointer-events:none;z-index:0;overflow:visible}.tech .grid .trunk{position:relative;z-index:1}.tech .wire{fill:none;stroke:#4a5f8c;stroke-width:2}.tech .wire.live{stroke:#79cf9b;stroke-width:2.5}.tech .wire.cut{stroke:#f4977f;stroke-width:1.5;stroke-dasharray:5 5;opacity:.55}.tech .pad{fill:#4a5f8c}.tech .pad.live{fill:#79cf9b}.tech .via{fill:#14234b;stroke:#4a5f8c;stroke-width:1.5}.tech .via.live{stroke:#79cf9b}.tech .tabs .sp{color:#f4cb76;font-weight:700;font-size:11px}.tech .points-banner{margin:0 0 12px;padding:7px 12px;border:var(--line) solid var(--ink-soft);background:#14234b;color:#b9c3d8;font-size:13px}.tech .points-banner.has{color:#f4cb76;border-color:#f4cb76}.tech .points-banner .small{color:#b9c3d8}.tech .node{margin-bottom:26px}.tech .grid{column-gap:22px}.tech .wire{stroke:#6b83b8}.tech .pad{fill:#6b83b8}.tech .via{stroke:#6b83b8}.tech .node{position:relative;z-index:1}section.two{overflow-y:auto}.roster{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:16px;height:100%;min-height:0}.roster>*{min-height:0;overflow-y:auto}.roster .member-row{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:8px 10px;border:var(--line) solid transparent;cursor:pointer}.roster .member-row .portrait{width:44px;height:44px}.roster .member-row .portrait svg{width:100%;height:100%}.roster .member-row .who{display:flex;flex-direction:column}.roster .member-row .tag{font-size:11px;text-transform:uppercase;letter-spacing:.12em;padding:2px 7px;border:1px solid currentColor}.roster .member-row.active .tag{color:#79cf9b}.roster .member-row.benched{opacity:.62}.roster .member-row.benched .tag{color:#b9c3d8}.roster .member-row.focused{border-color:#f4cb76;background:#334775;opacity:1}.roster .stats{margin-top:10px}.roster .stats i{font-style:normal;font-size:11px}.roster .stats i.up{color:#79cf9b}.roster .stats i.down{color:#f4977f}.roster .gear-row{padding:7px 10px;border:var(--line) solid transparent;border-left:3px solid transparent;cursor:pointer;font-size:14px}.roster .gear-row.empty{opacity:.6}.roster .gear-row.focused{border-color:#f4cb76;border-left-color:#f4cb76;background:#334775;opacity:1}.roster .gear-detail{margin-top:10px;padding-top:8px;border-top:1px solid #38496f;min-height:30px}.bar.core>i{background:#b7a6f7;opacity:.4}.bar.core.on>i{background:#f4977f;opacity:1}@media(max-width:900px){.roster{grid-template-columns:1fr;grid-template-rows:auto 1fr}}section.tech>div:first-child{overflow-y:auto;min-height:0}.tech{min-height:0}.minimap-panel{position:absolute;left:18px;bottom:18px;width:210px;padding:8px;opacity:.92}.minimap{display:block;width:100%;height:auto}@media(prefers-reduced-motion:reduce){.minimap-panel{opacity:1}}.log .toc .page{display:flex;justify-content:space-between;gap:10px}.log .toc .count{opacity:.55;font-variant-numeric:tabular-nums}.log tr.superseded td{opacity:.5;text-decoration:line-through}.log tr.superseded td:last-child,.log tr.superseded .small{text-decoration:none}.room{position:relative;height:100%;display:grid;place-items:center}.room-svg{width:min(100%,1100px);height:auto;max-height:calc(100vh - 150px)}.room .prop rect,.room .prop circle,.room .prop line{transition:filter .16s ease}.room .prop.near rect,.room .prop.near circle{filter:drop-shadow(0 0 6px var(--accent))}.room .hud{position:absolute;top:18px;left:18px;max-width:380px}@media(prefers-reduced-motion:reduce){.room .prop rect,.room .prop circle,.room .prop line{transition:none}}.ending{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;height:100%;min-height:0}.ending>*{min-height:0}.ending-art{display:grid;place-items:center;overflow:hidden;background:var(--panel);border:1px solid var(--ink-soft);padding:14px}.ending-art img{image-rendering:pixelated;width:100%;height:auto;max-height:100%;object-fit:contain}.ending-body{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:24px 28px 0}.ending-scroll{overflow-y:auto;min-height:0;flex:1}.ending-actions{border-top:1px solid var(--ink-soft);margin-top:12px;padding:10px 0 14px}.ending-body h1{font-size:34px;margin:6px 0 12px}.ending-body .lead{font-size:17px;opacity:.95}.ending-body p{margin:0 0 12px}.ending-body .coda{margin-top:18px;padding-top:14px;border-top:1px solid var(--ink-soft);font-style:italic}.ending-body table{margin-top:18px}@media(max-width:900px){.ending{grid-template-columns:1fr}.ending-art{max-height:30vh}}@media(max-height:820px){.battle{grid-template-rows:minmax(260px,1fr) auto}.battle .stage{min-height:260px}.battle .enemies{inset:36px auto 10px 5%;gap:8px;align-content:start}.battle .enemy .rig{width:72px;height:88px}.battle .enemy .nm{font-size:11px;margin-top:2px}.battle .actor{width:72px}.battle .actionmenu .menu li{padding:4px 9px}.battle .actionmenu .desc{min-height:24px;margin-top:4px}.battle .side{max-height:96px}}@media(max-height:700px){.battle .stage{min-height:200px}.battle .enemies{inset:30px auto 8px 4%}.battle .enemy .rig{width:58px;height:72px}.battle .enemy .st{font-size:9px}.battle .actionmenu .menu li{padding:3px 8px;font-size:13px}.battle .actionmenu .desc{min-height:20px;font-size:11px}}.intro{position:absolute;inset:0;display:grid;grid-template-rows:minmax(0,1fr) auto;background:var(--bg)}.intro-art{position:relative;overflow:hidden;background:#0c1020}.intro-art .scene-art{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}.intro-art:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 45%,var(--bg) 100%)}.intro-body{padding:0 6vw 28px;display:grid;gap:14px;justify-items:center}.intro-box{max-width:74ch;padding:22px 26px;margin-top:-60px;position:relative}.intro-box h2{margin:6px 0 12px;font-size:clamp(20px,2.6vw,30px);line-height:1.15;letter-spacing:.01em}.intro-box p{margin:0 0 10px;line-height:1.6;font-size:15px;color:color-mix(in srgb,var(--ink) 88%,transparent)}.intro-box p:last-child{margin-bottom:0}.intro-dots{display:flex;gap:8px}.intro-dots i{width:22px;height:3px;background:color-mix(in srgb,var(--ink) 18%,transparent);transition:background .3s}.intro-dots i.past{background:color-mix(in srgb,var(--ink) 40%,transparent)}.intro-dots i.on{background:var(--accent)}@media(max-height:780px){.intro-box{padding:16px 20px;margin-top:-40px}.intro-box p{font-size:14px;line-height:1.5;margin-bottom:8px}.intro-box h2{margin:4px 0 8px}}.battle .actionmenu .menu.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 6px;align-content:start}.battle .actionmenu .menu.cols li{min-width:0;padding:5px 8px;gap:6px}.battle .actionmenu .menu.cols li.focused{transform:none}.battle .actionmenu .menu.cols li .lbl{min-width:0;overflow:hidden}.battle .actionmenu .menu.cols li .lbl>span:not(.glyph):not(.cost){overflow:hidden;text-overflow:ellipsis}.battle .actionmenu .menu.cols li .cost{flex:0 0 auto;font-size:10.5px;padding:0 4px;letter-spacing:.02em}.battle .actionmenu .menu.cols li .lbl{gap:7px}.battle .bottom{grid-template-columns:minmax(260px,1.35fr) minmax(220px,1fr)}.battle .actionmenu{max-height:clamp(220px,50vh,560px)}.battle .enemies{inset:44px calc(9% + 110px) 12px 4%;width:auto;overflow:visible;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-content:center;align-items:end;gap:8px}.battle .enemy{width:100%;max-width:170px}.battle .enemies:has(>.enemy:nth-child(4)) .enemy .rig{width:76px;height:94px}.battle .enemy .st:empty{display:none}.hub .actions{display:flex;flex-direction:column;overflow:hidden}.hub .actions>#m{flex:1 1 auto;min-height:0;overflow-y:auto}.hub .actions .menu li{padding:6px 12px}.hub .actions .menu li .hint{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45%}.hub .actions .desc{flex:0 0 auto;font-size:12px;opacity:.8;margin-top:8px;padding-top:6px;border-top:1px solid #38496f;min-height:2.6em}.hub .actions{grid-column:1 / span 2;grid-row:2;max-width:940px}.hub .journal{grid-column:3;grid-row:2;align-self:end;max-width:none;z-index:1}.hub .actions .menu.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 8px;align-content:start}.hub .actions .menu.cols li{min-width:0}.hub .actions .menu.cols li.focused{transform:none}.hub .actions .menu.cols li .lbl{min-width:0;max-width:100%;flex:0 0 auto;overflow:hidden;white-space:nowrap}.hub .actions .menu.cols li .hint{font-size:11.5px}.hub .actions .menu.cols li .lbl>span:not(.glyph):not(.cost){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub .actions .menu.cols li .hint{flex:1 1 0;min-width:0;max-width:none;text-align:right}@media(max-width:900px){.hub .actions,.hub .journal{grid-column:1;grid-row:auto}.hub .actions .menu.cols{grid-template-columns:1fr}}.two .panel .menu li .hint{white-space:nowrap}.kv.statgrid{grid-template-columns:repeat(4,auto minmax(0,1fr));gap:3px 10px}.baglist .menu li:not(.focused) .hint{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-height:820px){.battle .enemies{inset:34px calc(9% + 100px) 8px 3%}.battle .enemies:has(>.enemy:nth-child(4)) .enemy .rig{width:60px;height:74px}.hub .actions .menu li{padding:4px 10px}.hub .actions .menu.cols li{padding:3px 10px;font-size:14px}.hub .place p.small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.tech .node{margin-bottom:14px}.roster .member-row{padding-top:4px;padding-bottom:4px}.roster .list>p.small{font-size:11px;margin-top:6px}.two .panel .menu li{padding-top:6px;padding-bottom:6px}.battle .actionmenu .menu.cols li{padding:3px 8px}.battle .actionmenu .desc{min-height:2.4em}}@media(max-height:700px){.battle .actionmenu .menu.cols li{padding:3px 7px;font-size:13px}.battle .enemies:has(>.enemy:nth-child(4)) .enemy .rig{width:50px;height:62px}.roster .member-row{padding-top:4px;padding-bottom:4px}.battle .actionmenu .kv{font-size:11px;row-gap:1px}.battle .card{padding:5px 10px}.battle .card .bar.hp{margin:2px 0!important}.battle .card .st{margin-top:2px;min-height:0}.battle{grid-template-rows:minmax(200px,1fr) auto}.battle .stage{min-height:200px}.battle .actionmenu .desc{min-height:0;max-height:2.7em;overflow:hidden}.battle .enemy .intent{font-size:10px}.battle .actionmenu p.small{font-size:11px;line-height:1.35}.roster .list>p.small{display:none}.hub .place h2{font-size:21px}.hub .place p.small{-webkit-line-clamp:2;line-clamp:2}.hub .actions .menu.cols li{padding:2px 9px;font-size:13px}.hub .actions .desc{min-height:0;margin-top:4px}.perks .menu li,.two .panel .menu li{padding-top:5px;padding-bottom:5px}}.difficulty-pick{max-width:720px;margin:14px auto 0;padding:10px 18px 12px;text-align:center}.difficulty-pick .chips{display:flex;justify-content:center;gap:8px;margin:8px 0 6px;flex-wrap:wrap}.difficulty-pick .chip{padding:4px 14px;border:1px solid #5d6f99;background:#1b2d5c;color:#f8efd5;cursor:pointer;font-size:14px}.difficulty-pick .chip.on{border-color:#f4cb76;background:#334775}.difficulty-pick p.small{min-height:2.8em;max-width:640px;margin:0 auto}
