:root{color:#edf6ff;background:#080b13;font-family:Space Mono,monospace;--cyan: #5de4d6;--violet: #8f76ff;--amber: #ffc866;--ink: #0d1322}.journey-dock{position:absolute;z-index:12;left:0;right:0;bottom:0;padding:12px max(18px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom));color:#eef5ff;background:#111c2b;border-top:1px solid #4d7380;font-family:Arial,Helvetica,sans-serif}.journey-current,.journey-voice{display:flex;align-items:center;gap:16px;max-width:1100px;margin:0 auto}.journey-copy{flex:1;min-width:0}#journey-chapter{color:#8ce5d7;font-size:11px;font-weight:700;letter-spacing:.08em}#journey-title{margin:4px 0;font-size:20px;line-height:1.15}#journey-detail{margin:0;color:#c2cfdf;font-size:13px;line-height:1.4}#journey-action{flex-shrink:0;min-height:44px;max-width:200px;padding:10px 18px;color:#10242c;background:#8ce5d7;border:1px solid #c3fff1;border-radius:5px;font:700 12px/1.35 Arial,sans-serif;cursor:pointer}.journey-voice{margin-top:9px;border-top:1px solid #304051;padding-top:8px}.journey-speaker{color:#ffd694;font-size:11px;font-weight:700;letter-spacing:.1em}#journey-line{flex:1;min-width:0;margin:0;color:#e4d7bf;font-size:13px;line-height:1.4}#journey-journal{position:relative;flex-shrink:0;font-size:12px}#journey-journal summary{min-height:44px;display:flex;align-items:center;padding:0 6px;color:#a9c9e5;cursor:pointer}.journey-journal-content{position:absolute;right:0;bottom:40px;width:min(400px,calc(100vw - 24px));max-height:230px;overflow-y:auto;padding:14px 18px;background:#172639;border:1px solid #52677e;border-radius:7px;box-shadow:0 8px 24px #0008}.journey-journal-content p{margin:0 0 10px;color:#aebed0;font-size:12px}#journey-history{margin:0;padding-left:18px;color:#edf4ff;line-height:1.5}#journey-history li+li{margin-top:10px}#journey-history{overflow-wrap:anywhere}#journey-history strong{color:#8ce5d7;font-size:11px}.journey-compact .journey-voice,.panel-open .journey-dock,.modal-open .journey-dock{display:none}@media(max-width:650px){.journey-dock{padding:8px 12px calc(8px + env(safe-area-inset-bottom))}.journey-current{gap:10px}#journey-title{font-size:16px}#journey-detail,#journey-line{font-size:12px;line-height:1.35}#journey-chapter{font-size:9px;letter-spacing:.04em}#journey-action{max-width:112px;padding:8px;font-size:10px}.journey-voice{gap:8px;padding-top:6px;margin-top:6px}.journey-speaker{font-size:9px}}@media(max-height:480px){.journey-dock{padding-top:6px;padding-bottom:6px}.journey-voice{display:flex;justify-content:flex-end;margin-top:0;padding-top:0;border:0}.journey-voice>.journey-speaker,.journey-voice>#journey-line{display:none}#journey-title{font-size:16px}}.objective-card p,.coop-card p,.controls-help p,.modal-summary,.workshop-surface{font-family:Arial,sans-serif;font-size:14px;line-height:1.55}.workshop-route{width:100%;min-height:44px;margin-top:12px;border:1px solid #a57849;background:#29212b;color:#ffda94;padding:12px;cursor:pointer;font-size:12px}.workshop-route:disabled{opacity:.45;cursor:default}.workshop-surface{width:min(100%,620px)}.workshop-wallet{color:#ffda94;font-size:17px}.workshop-offer{padding:20px;border:1px solid #7d6048;background:linear-gradient(135deg,#282536,#151e2c)}.wild-meeting-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px 12px;padding:12px;margin:10px 0}.wild-meeting-card .echo-portrait{grid-row:1 / 3;width:64px;height:64px;object-fit:contain;margin:0;align-self:center}.wild-meeting-card strong{min-width:0;overflow-wrap:anywhere}.wild-meeting-card .primary-action{grid-column:2;width:100%;min-width:0;white-space:normal;padding:10px}#battle-gift{border:1px solid #486f61;border-radius:6px;padding:12px;margin:8px 0}#battle-gift summary{color:#a0f1cf;cursor:pointer}#battle-gift select{width:100%;max-width:100%;margin:8px 0}#offer-battle-gift{width:100%}.workshop-offer h3{color:#8cebdd;font-size:24px;margin:12px 0}.workshop-badge{color:#b7b5cd;letter-spacing:.1em;font-size:11px}.workshop-stats{display:flex;flex-wrap:wrap;gap:16px 28px;margin:20px 0}.workshop-stats dt{color:#a6b5c8;font-size:13px}.workshop-stats dd{margin:4px 0 0;color:#ffda94;font-size:17px;font-weight:700}.workshop-status{min-height:44px;color:#a5e5c7}.workshop-help{color:#a6b5c8;font-size:13px}*{box-sizing:border-box}html,body{width:100%;height:100%}body{margin:0;min-height:100dvh;overflow:hidden;background:linear-gradient(rgba(93,228,214,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(93,228,214,.025) 1px,transparent 1px),radial-gradient(circle at 50% -20%,#273059 0,#11162a 38%,#080b13 75%);background-size:24px 24px,24px 24px,auto}button{font:inherit}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}.game-shell{display:flex;flex-direction:column;width:calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right));height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:0;margin:env(safe-area-inset-top) auto env(safe-area-inset-bottom);padding:12px 0 10px}.titlebar{flex:0 0 auto;display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:10px}.eyebrow{color:var(--cyan);font-size:11px;letter-spacing:.16em}h1{margin:6px 0 0;font:clamp(15px,1.35vw,20px)/1.4 "Press Start 2P",monospace;letter-spacing:-.05em;text-shadow:4px 4px #151b35}h1 i{color:var(--amber);font-style:normal}.server-pill{padding:10px 13px;border:1px solid #46516f;color:#8490ac;font-size:11px;background:#090e19bf;cursor:pointer}.server-pill.online{color:var(--cyan);border-color:var(--cyan)}.server-pill:active{transform:translateY(1px)}.header-actions{display:flex;align-items:stretch;gap:8px}.header-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 13px;border:1px solid var(--violet);color:#c8bfff;background:#0c101fdb;cursor:pointer;font:inherit;text-decoration:none}.header-button:hover:not(:disabled){color:#fff;background:#282244}.header-button:disabled{opacity:.35;cursor:default}.battle-frame{position:relative;flex:1 1 auto;display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,23vw,360px);min-height:0;overflow:hidden;border:2px solid #34405e;box-shadow:0 25px 70px #00000073,inset 0 0 0 3px #11182a;background:#0e1423}#game{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;width:100%;height:100%;overflow:hidden;background:#090d19;touch-action:none;-webkit-user-select:none;user-select:none}#game canvas{display:block;max-width:100%;max-height:100%;image-rendering:pixelated}.touch-controls{position:absolute;z-index:12;top:0;right:0;bottom:0;left:0;display:none;align-items:end;justify-content:space-between;padding:clamp(10px,2.8vw,24px);pointer-events:none}.touch-enabled .touch-controls{display:flex}.touch-dpad{display:grid;grid-template:repeat(3,46px) / repeat(3,46px);filter:drop-shadow(0 7px 10px rgba(0,0,0,.4));pointer-events:auto}.touch-key,.touch-action{border:1px solid rgba(155,236,230,.72);color:#eaffff;background:#070f1bc7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.touch-key{width:46px;height:46px;padding:0;font-size:15px}.touch-key:active,.touch-action:active{color:#07131b;background:var(--cyan);transform:scale(.95)}.touch-up{grid-area:1 / 2}.touch-left{grid-area:2 / 1}.touch-center{grid-area:2 / 2;border:1px solid rgba(93,228,214,.2);background:#09111e8c}.touch-right{grid-area:2 / 3}.touch-down{grid-area:3 / 2}.touch-action{width:96px;height:62px;margin-bottom:8px;border-color:#ffc866d9;border-radius:50%;color:var(--amber);font-size:10px;font-weight:700;pointer-events:auto}.touch-controls.battle-mode .touch-dpad{visibility:hidden}.touch-controls.battle-mode .touch-action{border-color:#ff8798;color:#ffb3bd}.command-panel{display:flex;flex-direction:column;min-height:0;padding:clamp(12px,1.3vw,18px);overflow-y:auto;border-left:2px solid #34405e;background:linear-gradient(135deg,rgba(143,118,255,.08),transparent 45%),#111827}.turn-card{display:grid;gap:8px;padding:14px;border-left:4px solid var(--cyan);background:#0a1020}.turn-card span,.turn-card small{color:#7f8ca8;font-size:10px}.turn-card strong{color:#fff;font:12px/1.4 "Press Start 2P",monospace}.turn-card small{color:var(--amber)}.objective-card{margin-top:18px;padding:14px;border:1px solid #2d3955;background:#0a1020}.coop-card{margin-top:12px;padding:12px;border:1px solid #433c68;background:linear-gradient(135deg,rgba(143,118,255,.12),transparent),#0a1020}.coop-card span{color:#b6a9ff;font-size:9px;letter-spacing:.08em}.coop-card p{margin:7px 0 10px;color:#a9b6cc;font-size:10px;line-height:1.45}.coop-restart-button{width:100%;min-height:42px;border:1px solid #6d5268;color:#caaabd;background:#17111d;cursor:pointer}.coop-restart-button.active{border-color:var(--amber);color:#171006;background:var(--amber)}.coop-restart-button:disabled{opacity:.4;cursor:default}#battle-speed,#ai-style,.team-formation select{display:block;width:100%;min-height:44px;padding:8px;background:#111b2d;color:#e8fbff;border:1px solid #40546b;border-radius:6px;font:14px Arial,sans-serif}#ai-controls{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid #34405e}#ai-status{font:12px/1.6 Arial,sans-serif;color:#b8dce5}#team-selection{margin:16px 0 24px}.team-formation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.team-formation label{min-width:0;font:14px Arial,sans-serif;color:#b7c8de}.team-formation select{margin-top:6px}@media(max-width:620px){.team-formation{grid-template-columns:1fr}}.objective-card span,.controls-help b{color:var(--cyan);font-size:9px;letter-spacing:.08em}.objective-card p,.controls-help p{margin:9px 0 0;color:#a9b6cc;font-size:11px;line-height:1.6}.controls-help{margin-top:18px;padding:14px;border-left:2px solid #394663;background:#080d18b3}.controls-help p{margin:5px 0 14px}.battle-shortcut{margin-top:10px;padding:10px 12px}.battle-shortcut p{margin-bottom:0}.route-card{padding:14px;border:1px solid #66528b;margin-bottom:16px;font-size:12px;line-height:1.65}.route-card strong{color:#d6a4ff}.route-card details{margin-top:10px}.route-contract{padding:10px 0;border-top:1px solid #66528b;overflow-wrap:anywhere}.route-contract p{margin:5px 0}#route-event-list{display:grid;gap:6px;padding-top:8px}#route-event-list button{text-align:left;padding:8px;font:inherit}#route-event-overlay{position:fixed;grid-template-columns:minmax(0,1fr)}.route-event-surface{max-width:650px;min-width:0;justify-self:center;overflow-wrap:anywhere}.route-stakes{color:#ffcd73;border-left:3px solid #ffcd73;padding-left:12px}#route-event-options{display:grid;gap:10px}.route-event-surface p{font-size:14px;line-height:1.65;color:#c5cfe3}#route-event-list button{background:#162737;color:#d8dff4;border:1px solid #66528b}#route-event-list button:disabled{opacity:.5}.route-choice{display:flex;flex-direction:column;gap:7px;text-align:left;padding:14px;line-height:1.6;background:#162737;border:1px solid #66528b;color:#e6ecff;font-family:inherit;font-size:14px}.route-choice:hover:not(:disabled){border-color:#d6a4ff;background:#223249}.route-choice:disabled{opacity:.45}.route-choice strong{font-size:16px;color:#e3b9ff}.route-choice span{font-size:13px}.encounter-button{margin-top:18px;width:100%}.encounter-button:disabled{opacity:.35;cursor:default}.choice-label{margin-top:14px;color:#687590;font-size:8px;letter-spacing:.08em}.actor-row,.target-row,.commands{display:grid;gap:8px;margin-top:7px}.actor-row,.target-row{grid-template-columns:repeat(3,1fr)}.actor-button,.target-button,.command-button,.reset-button{border:1px solid #3a4664;color:#cbd7eb;background:#151f34;cursor:pointer}.actor-button,.target-button{padding:8px 4px;font-size:9px}.actor-button.active{color:#08131b;border-color:var(--cyan);background:var(--cyan)}.actor-button.done{color:#67728a;background:#0a0f1b}.target-button.active{color:#101525;border-color:var(--amber);background:var(--amber)}.enemy-intents{margin:12px 0;padding:0 10px 8px;border:1px solid #66543d;background:#191f2d}.enemy-intents summary{display:flex;align-items:center;min-height:44px;color:var(--amber);font-size:11px;cursor:pointer}.enemy-intents summary:before{content:"▸";margin-right:8px}.enemy-intents[open]>summary:before,.enemy-intent-details[open]>summary:before{content:"▾"}.enemy-intent-details{border-top:1px solid #364155;margin-top:8px}.enemy-intent{margin:0;padding:7px 0;border-top:1px solid #364155;font-size:12px;line-height:1.6}.enemy-intent strong,.enemy-intent span{display:block;overflow-wrap:anywhere}.enemy-intent strong{color:#f0d4a6}.enemy-intent span,.intent-help{color:#b9c7dc}.intent-help{margin:7px 0 0;font-size:10px;line-height:1.7}.threat-summary{display:grid;gap:6px;margin-bottom:8px}.threat-summary[hidden]{display:none}.threat-summary-row{padding:8px;border-left:3px solid var(--amber);background:#111b2c;font-size:11px;line-height:1.7}.threat-summary-row strong,.threat-summary-row span{display:block;overflow-wrap:anywhere}.threat-summary-row strong{color:#f0d4a6}.threat-summary-row.critical{border-color:#ff8b9a}.threat-summary-row.critical strong{color:#ffb3be}.actor-button:disabled,.target-button:disabled{opacity:.35;cursor:default}.command-button{position:relative;padding:13px 12px 13px 28px;text-align:left;font-weight:700}.command-button:before{content:"";position:absolute;left:11px;top:50%;width:7px;height:7px;background:var(--cyan);transform:translateY(-50%) rotate(45deg)}.command-button:hover:not(:disabled){color:#fff;border-color:var(--cyan);transform:translate(2px)}.command-button:disabled{opacity:.35;cursor:default}.battle-log{min-height:112px;margin-top:auto;padding:12px;overflow:hidden;border:1px solid #29344e;color:#aebbd1;background:#080d18;font-size:10px;line-height:1.55}.battle-log p{margin:0 0 7px}.battle-log p:first-child{color:#fff}.reset-button{margin-top:10px;padding:11px;color:var(--violet);font-weight:700}footer{flex:0 0 auto;padding:7px 4px 0;color:#687590;font-size:10px}.modal-overlay{position:absolute;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;overflow-y:auto;background:#03060ddb;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-surface{position:relative;width:min(860px,100%);max-height:100%;padding:clamp(20px,4vw,38px);overflow-y:auto;border:2px solid #445273;box-shadow:12px 12px #00000059;background:linear-gradient(145deg,rgba(93,228,214,.08),transparent 40%),#101829}.modal-kicker{color:var(--cyan);font-size:10px;letter-spacing:.12em}.modal-surface h2{margin:10px 0;color:var(--amber);font:clamp(19px,3vw,30px)/1.4 "Press Start 2P",monospace}.modal-summary{color:#a9b6cc;font-size:12px}.results-list,.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.result-card,.echo-card{padding:15px;border:1px solid #34415e;background:#090f1d}.result-card.level-up{border-color:var(--amber);box-shadow:inset 0 3px var(--amber)}.result-card strong,.echo-card strong{display:block;color:#fff;font:11px/1.5 "Press Start 2P",monospace}.result-card span,.echo-meta{display:block;margin-top:9px;color:#8d9bb6;font-size:10px}.level-flash{color:var(--amber)!important}.xp-track{height:7px;margin-top:12px;overflow:hidden;background:#222c40}.xp-fill{height:100%;background:linear-gradient(90deg,var(--violet),var(--cyan))}.stat-line{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:12px;color:#91a0bb;font-size:9px}.evolution-list{display:grid;gap:7px;margin-top:14px}.evolution-button{padding:9px;border:1px solid #5a4d83;color:#d6ceff;background:#1c1930;cursor:pointer;text-align:left;font-size:9px}.evolution-button:hover{border-color:var(--amber);color:#fff}.primary-action{width:100%;padding:14px;border:1px solid var(--cyan);color:#07131b;background:var(--cyan);font-weight:700;cursor:pointer}.modal-close{position:absolute;top:12px;right:14px;border:0;color:#9da9bf;background:transparent;font-size:28px;cursor:pointer}@media(max-width:850px){body{overflow:auto}.game-shell{width:calc(100% - 16px - env(safe-area-inset-left) - env(safe-area-inset-right));height:auto;min-height:100dvh;padding:10px 0}.titlebar{align-items:start;flex-direction:column}.battle-frame{flex:0 0 auto;grid-template-columns:1fr}#game{height:auto;aspect-ratio:4 / 3}.command-panel{min-height:0;overflow:visible;border-left:0;border-top:2px solid #34405e}h1{font-size:15px}.header-actions{width:100%}.header-button,.server-pill{flex:1;min-height:44px}.actor-button,.target-button{min-height:44px}.command-button,.reset-button,.primary-action{min-height:48px}.results-list,.team-grid{grid-template-columns:1fr}.modal-overlay{align-items:start;padding:10px}}@media(max-width:560px){.game-shell{padding-top:6px}.titlebar{gap:9px;margin-bottom:7px}.eyebrow{font-size:8px}h1{margin-top:3px;font-size:clamp(11px,4vw,14px)}.header-button,.server-pill{padding:8px;font-size:9px;text-align:center}.command-panel{padding:12px}.turn-card,.objective-card,.controls-help{padding:11px}.touch-controls{padding:8px}.touch-dpad{grid-template:repeat(3,42px) / repeat(3,42px)}.touch-key{width:42px;height:42px}.touch-action{width:84px;height:56px}.modal-surface{padding:18px 14px}.modal-surface h2{padding-right:25px}}@media(hover:hover)and (pointer:fine){html:not(.touch-enabled) .touch-controls{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media(min-width:851px)and (max-height:720px){.game-shell{padding:6px 0}.titlebar{margin-bottom:6px}.eyebrow{font-size:9px}h1{margin-top:3px;font-size:13px}.server-pill{padding:7px 10px}footer{display:none}}.objective-card p,.coop-card p,.controls-help p{font-size:13px;line-height:1.5}.modal-surface.workshop-surface{width:min(620px,100%)}.workshop-offer .primary-action:disabled{background:#293849;color:#aebccc;opacity:.65;cursor:default}.synthesis-offer{margin-top:24px;border-color:#438c85}.synthesis-offer select{display:block;width:100%;min-height:48px;margin:10px 0;padding:10px;color:#d7f9ef;background:#182535;border:1px solid #549d92;font:inherit}.synthesis-child{display:grid;gap:8px;margin:14px 0;padding:14px;border:1px solid #425966;background:#14242b;overflow-wrap:anywhere}.synthesis-child strong{color:#8cebdd;font-size:19px}.synthesis-child p{margin:0}.synthesis-traits{padding-left:20px;margin:6px 0;color:#c7e0ca}.synthesis-traits li{margin-bottom:7px}#synthesis-collection{margin-top:24px}.header-actions{flex-wrap:wrap}.players-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100}.players-surface{width:min(960px,100%);font-family:Arial,sans-serif}.players-help,.player-meta{color:#a8b9cb;font:13px/1.5 Arial,sans-serif}.player-label-form,.players-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 0}.player-label-form input:not([type=checkbox]),.players-filters input,.players-filters select{flex:1 1 160px;min-width:0}.players-surface input:not([type=checkbox]),.players-surface select,.players-surface button:not(.modal-close){min-height:44px;max-width:100%;padding:10px;background:#172536;border:1px solid #456574;color:#d5eff1;font:14px Arial,sans-serif}.player-test-checkbox{display:flex;align-items:center;gap:8px;font:13px Arial,sans-serif}.player-card{border:1px solid #35495e;padding:14px;margin-top:10px;background:#14202e;overflow-wrap:anywhere}.player-card.player-self{border-color:#56ddd0}.player-card-title{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:8px}.player-card p{margin:7px 0;font:14px/1.5 Arial,sans-serif}.player-online{color:#80efae}.player-offline{color:#a6b5c8}#players-status{font:13px Arial,sans-serif;color:#a6b5c8}.echo-portrait{display:block;object-fit:contain;image-rendering:pixelated;margin:4px auto 8px}.support-guide{margin-bottom:16px;padding:12px;border:1px solid #549d92;background:#14242b}.support-guide summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:11px;color:var(--cyan)}.support-guide summary:before{content:"▸";margin-right:8px}.support-guide[open]>summary:before{content:"▾"}.support-guide-content{font:14px/1.5 Arial,sans-serif;overflow-wrap:anywhere}.support-guide-content strong{display:block;color:#e3f9f3}.support-guide-content p{margin:10px 0}#support-guide-task,#support-guide-healer{color:#a8c9c4}.support-guide-actions{display:flex;gap:6px;flex-wrap:wrap}.support-guide-actions button{min-height:44px;flex:1 1 70px;padding:8px;border:1px solid #549d92;color:#d5eff1;background:#172536;font:11px Arial,sans-serif;cursor:pointer}.support-guide-actions button:disabled{opacity:.45;cursor:default}.support-guide-actions button:focus-visible,.support-guide summary:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.battle-statistics{margin:20px 0;font:14px/1.5 Arial,sans-serif}.battle-statistics h3{color:var(--cyan);font-size:13px}.battle-statistics-help{color:#a8b9cb}.battle-statistics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:10px}.battle-statistics-card{min-width:0;padding:12px;background:#14242b;border:1px solid #425966;overflow-wrap:anywhere}.battle-statistics-card strong,.battle-statistics-owner{display:block;text-align:center}.battle-statistics-owner{color:#a8c9c4;font-size:12px}.battle-statistics-card dl{display:grid;grid-template-columns:1fr auto;gap:6px 10px;margin-bottom:0}.battle-statistics-card dd{margin:0;color:#e3f9f3;font-variant-numeric:tabular-nums}.echo-role-card{margin-top:10px;padding:10px;border:1px solid #425966;background:#14242b;font:13px/1.5 Arial,sans-serif;overflow-wrap:anywhere}.echo-role-badge{display:inline-block;color:#8cebdd}.echo-role-card[data-role=guardian] .echo-role-badge{color:#c8d8ed}.echo-role-card[data-role=attacker] .echo-role-badge{color:#ffcf7f}.echo-role-card p{margin:7px 0}.echo-role-card small{display:block;margin-top:6px;color:#a8b9cb;font:12px/1.5 Arial,sans-serif}.team-role-summary{margin:14px 0;padding:12px;border:1px solid #549d92;background:#14242b;font:14px/1.5 Arial,sans-serif;overflow-wrap:anywhere}.team-role-summary p{margin:8px 0}.team-role-summary small{color:#a8b9cb}.team-role-summary[data-healers="0"]{border-color:#bc9147}#resume-expedition-overlay button{width:100%;min-height:44px;margin-top:12px;padding:12px}html,body{height:100%;overflow:hidden}.game-shell{width:100%;height:100vh;height:100dvh;margin:0;padding:0;min-height:0}.battle-frame{position:fixed;top:0;right:0;bottom:0;left:0;display:block;border:0;box-shadow:none}#game{width:100%;height:calc(100% - var(--journey-height,140px));aspect-ratio:auto}#game canvas{max-width:none;max-height:none}.titlebar{position:fixed;z-index:40;top:env(safe-area-inset-top,0px);left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);padding:10px 12px;margin:0;align-items:center;pointer-events:none;background:linear-gradient(#080e1aed,#080e1ac4)}.header-actions{pointer-events:auto}.command-panel{position:fixed;z-index:30;top:76px;bottom:12px;right:calc(12px + env(safe-area-inset-right,0px));width:350px;max-width:calc(100% - 24px);overflow-y:auto;overscroll-behavior:contain;background:#101829f5;border:1px solid #445273;box-shadow:0 8px 30px #0008;visibility:hidden;pointer-events:none}.panel-open .command-panel{visibility:visible;pointer-events:auto}footer{display:none}.modal-overlay{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;min-width:0;padding:16px;align-items:center}.modal-surface{min-width:0;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overscroll-behavior:contain}@media(max-width:850px){.titlebar{flex-direction:row;gap:8px;padding:8px}.titlebar>div:first-child{display:none}.header-actions{width:100%;flex-wrap:nowrap;gap:4px}.header-button,.server-pill{flex:1 1 auto;min-width:0;padding:8px 5px;font-size:9px}.server-pill{flex:1.8 1 auto}.command-panel{top:auto;bottom:env(safe-area-inset-bottom,0px);left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);width:auto;max-width:none;height:45vh;height:45dvh;border:1px solid #445273;padding:12px}.panel-open .touch-controls{bottom:45vh;bottom:45dvh}.modal-overlay{padding:10px}.modal-surface{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px)}}.battle-frame{bottom:auto;height:var(--viewport-height,100vh)}.game-shell{height:var(--viewport-height,100vh)}.modal-overlay{bottom:auto;height:var(--viewport-height,100vh)}.modal-surface{max-height:calc(var(--viewport-height,100vh) - 32px)}@media(max-width:850px){.command-panel{height:calc(var(--viewport-height,100vh) * .45)}.panel-open .touch-controls{bottom:calc(var(--viewport-height,100vh) * .45)}.modal-surface{max-height:calc(var(--viewport-height,100vh) - 20px)}}#team-overlay,#workshop-overlay{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;height:var(--viewport-height,100vh)}.modal-open .titlebar,.modal-open .header-actions{pointer-events:none}.modal-open .titlebar{visibility:hidden}.touch-controls{padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}.command-panel{display:flex;flex-direction:column}.command-panel>div{flex-shrink:0}#ai-controls{order:2;margin-top:16px}#battle-controls,#exploration-controls{order:0}.scene-label-layer{position:absolute;z-index:4;overflow:hidden;pointer-events:none}.scene-label{position:absolute;left:0;top:0;display:block;width:max-content;padding:3px 5px;font-family:Arial,Helvetica,sans-serif;font-weight:700;line-height:1.2;text-align:center;white-space:normal;overflow-wrap:break-word;color:#edf6ff;background:#101b2b;border-radius:3px;box-shadow:0 1px 2px #0008;pointer-events:none}.scene-label-name{padding:1px 4px;line-height:1;border-bottom:1px solid #7691a4}.scene-label-name.scene-label-inactive{color:#c6d1df!important;border-color:#7c879a}.scene-label-intent{padding:1px 4px;line-height:1.05;background:#142032}.scene-label-effect{background:#0b1425;border:1px solid currentColor}.scene-label-heading{background:#0b1425e8;text-align:left}:root{font-family:Arial,Helvetica,sans-serif;font-size:14px;color-scheme:dark}.command-panel,.route-card,.modal-surface,.workshop-surface,.support-guide{font-family:Arial,Helvetica,sans-serif}.header-button,.server-pill{font-size:13px;font-weight:700}.choice-label,.turn-card span,.turn-card small,.coop-card span,.intent-help,.enemy-intents summary,.threat-summary-row,.modal-kicker,.modal-summary,.result-card span,.echo-meta,.workshop-help,.workshop-badge,.route-choice span{font-size:13px;line-height:1.5}.actor-button,.target-button,.command-button{font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.35}.support-guide summary,.support-guide-actions button,.controls-help b{font-size:13px}button:disabled,.header-button:disabled,.route-choice:disabled,#route-event-list button:disabled,:is(#command-panel,.modal-surface,.header-actions) button:disabled{opacity:1;color:#b5c0d0;background:#17202f;border-color:#46536b}input[type=text],select{font-family:Arial,Helvetica,sans-serif;font-size:16px;color:#edf6ff;background-color:#172436;border:1px solid #52617b;padding:8px}.turn-card strong{font:700 16px/1.35 Arial,Helvetica,sans-serif}@media(max-width:850px){.header-button,.server-pill{font-size:12px;padding:8px 4px}.scene-label-heading{max-width:calc(100% - 24px)}}.profile-access{margin:12px 0;padding:12px;border:1px solid #566682;border-radius:8px}.profile-access summary{cursor:pointer}.profile-access label{display:block;margin:12px 0 6px;font-size:13px}.profile-access input,.profile-access textarea{box-sizing:border-box;width:100%;max-width:100%;padding:10px;color:#eff5ff;background:#101725;border:1px solid #7587a5;border-radius:4px;font-size:16px}.profile-access textarea{resize:vertical;overflow-wrap:anywhere}.profile-access button{white-space:normal}.bestiary-card{min-width:0}.bestiary-card .echo-portrait{width:88px;height:88px;object-fit:contain;align-self:center}.bestiary-card p,.bestiary-card li{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.bestiary-card ol{margin:0;padding-left:20px}.bestiary-card li{margin:8px 0}.bestiary-card li[data-complete=true]{color:#9ce8b7}#echo-memories{margin:16px 0;padding:12px;border:1px solid #6ba8b5;border-radius:10px}#echo-memories summary{cursor:pointer;color:#a4ebdc}.echo-memory-card{padding:14px;margin-top:12px;background:#152438;border:1px solid #435c76;border-radius:8px;overflow-wrap:anywhere}.echo-memory-card p,.echo-memory-card li,#echo-memories>p{font:14px/1.5 Arial,sans-serif}.echo-memory-card form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.echo-memory-card input{max-width:100%;box-sizing:border-box;font-size:16px;padding:8px}.evolution-preview{width:min(520px,calc(100% - 48px));max-height:85vh;overflow-y:auto;color:#edf6ff;background:#152438;border:1px solid #94d6d4;border-radius:12px;padding:20px;font:16px/1.5 Arial,sans-serif}.evolution-preview::backdrop{background:#030b19bd}.evolution-preview button,.echo-memory-card button{min-height:44px;padding:10px 14px;color:#e7f9ff;background:#214353;border:1px solid #7abbbd;border-radius:6px;cursor:pointer;font:14px/1.3 Arial,sans-serif;white-space:normal}.evolution-preview button{margin:6px}.evolution-preview button[data-confirm-evolution]{background:#286963}.evolution-preview>.echo-portrait{display:block;width:120px;height:120px;object-fit:contain;margin:8px auto;image-rendering:pixelated}.family-catalog{overflow-wrap:anywhere}.family-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.family-card{display:flex;flex-direction:column;min-width:0;padding:14px;border:1px solid #496879;border-radius:10px;background:#0c1929}.family-card h4{margin:6px 0 8px;font:700 19px/1.35 Arial,sans-serif;color:#def9ed}.family-card p{margin:8px 0}.family-card .echo-portrait{width:84px;height:84px;object-fit:contain;image-rendering:pixelated}.family-meeting,.family-capacity{color:#e3d5a6}.family-card .echo-detail-muted{font:13px/1.5 Arial,sans-serif;color:#b5c7d9}.family-condition{color:#b8d7ed}.family-forms{padding-left:18px}.family-forms li{margin:8px 0}.family-claim,.family-route{width:100%;min-height:48px;margin-top:10px;padding:10px;border:1px solid #79c8bd;border-radius:6px;color:#e8fff9;background:#234d56;font:700 13px/1.4 Arial,sans-serif;white-space:normal;cursor:pointer}.family-route{border-color:#526f89;background:#1b2d43}.family-claim:disabled,.family-route:disabled{opacity:.55;cursor:default}.family-claim:focus-visible,.family-route:focus-visible{outline:3px solid #ffd387;outline-offset:3px}.family-result{min-height:1.5em;color:#bce5d5}.family-growth{margin-top:20px;padding-top:14px;border-top:1px solid #3c586b}.family-growth h4{color:#def9ed;margin:0 0 8px}.family-growth li{margin:7px 0}@media(max-width:850px){.family-grid{grid-template-columns:1fr}}.echo-memory-card label{min-width:0;max-width:100%}.city-surface{width:min(760px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow-y:auto}.city-project,.city-next,.nursery-presets{margin:16px 0;padding:16px;border:1px solid #4e716d;border-radius:10px;background:#132735}.city-project[data-restored=true]{border-color:#86d4a4;background:#18342f}.city-surface p{font:15px/1.55 Arial,sans-serif;overflow-wrap:anywhere}.city-surface h3{font:700 18px/1.4 Arial,sans-serif}.nursery-preset,.nursery-echo{display:flex;flex-direction:column;gap:10px;margin:12px 0;padding:14px;border:1px solid #527273;border-radius:8px;min-width:0}.city-surface select,.city-surface input{box-sizing:border-box;max-width:100%;width:100%;min-width:0;font-size:16px}.city-surface label{font:14px/1.5 Arial,sans-serif}.city-surface button{min-height:44px;white-space:normal}.nursery-preset button,.nursery-echo button{padding:10px;background:#23534d;border:1px solid #8bc3b1;border-radius:6px;color:#edf9f1;font:14px/1.4 Arial,sans-serif;cursor:pointer}.city-surface button:disabled{opacity:.5;cursor:default}.city-next{background:#182633}.city-project[data-project=archive]{border-color:#678ca9;background:#172d40}.city-project[data-project=archive][data-restored=true]{border-color:#a5c8dc}.archive-record{margin:14px 0;padding:16px;border:1px solid #53748e;border-radius:8px;background:#102335}.archive-record h4{font:700 17px/1.4 Arial,sans-serif;color:#d6e8fa}.archive-record li{margin:10px 0;font:14px/1.5 Arial,sans-serif;overflow-wrap:anywhere}.archive-record .echo-portrait{width:100px;height:100px;object-fit:contain;float:right}.archive-record button,#restore-archive{min-height:44px;padding:12px;color:#edf5ff;background:#284e6c;border:1px solid #8ab9d5;border-radius:6px;font:14px/1.4 Arial,sans-serif;cursor:pointer}#battle-signals select{max-width:100%;min-height:36px;background:#142b3b;color:#edf8ff;border:1px solid #638797;padding:6px}#battle-signals .signal-buttons{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}#battle-signals button{min-height:40px;padding:8px;max-width:100%}#battle-signals [data-signal-list] p{border-left:3px solid #62d9cd;padding:7px;background:#163741;overflow-wrap:anywhere}#targets [data-signal-mark]:not([data-signal-mark=""]){border-color:#66e7d1}#targets [data-signal-mark]:not([data-signal-mark=""]):after{content:" · " attr(data-signal-mark);color:#77eadb;font-size:10px}#joint-resonance .resonance-buttons{display:flex;flex-wrap:wrap;gap:6px}#joint-resonance button{min-height:42px;max-width:100%;padding:8px}#joint-resonance [data-resonance-preview]{border-left:3px solid #ab9ded;padding-left:8px}#ai-personal-reset{min-height:42px;padding:8px;max-width:100%;white-space:normal}#ai-controls label.workshop-help{display:flex;align-items:center;gap:8px;min-height:36px}.testing-journal{margin:12px 0;padding:12px;border:1px solid #365c6b;border-radius:12px;color:#d9e9ee;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.testing-journal summary{cursor:pointer;font-weight:700}.testing-journal ol{max-height:240px;overflow:auto;padding-left:22px}.testing-journal a{color:#73dfd0}.testing-journal li{margin:8px 0}.actor-row>button,.target-row>button{min-width:0;overflow-wrap:anywhere}.battle-element{display:block;margin-top:5px;font:12px/1.35 Arial,sans-serif}.battle-element-matchup{display:block;margin-top:5px;font:13px/1.4 Arial,sans-serif;overflow-wrap:anywhere}.echo-element{color:#a9e4e7;font:13px/1.4 Arial,sans-serif}.element-guide{min-width:0;max-width:100%}.element-table-scroll{max-width:100%;overflow-x:auto;margin-top:10px;padding-bottom:6px;overscroll-behavior-x:contain}.element-table-scroll:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.element-table{border-collapse:collapse;min-width:520px;width:100%;font:12px/1.35 Arial,sans-serif}.element-table caption{text-align:left;margin-bottom:8px;color:#d2e2eb}.element-table th,.element-table td{padding:7px 5px;border:1px solid #46536b;text-align:center}.element-table th{color:#e5eff8;background:#17283a;font-weight:700}.element-table th[scope=row]{text-align:left}.element-table td[data-effectiveness=strong]{color:#a4eac2;background:#173b36}.element-table td[data-effectiveness=weak]{color:#ffd0a3;background:#3b2c25}.element-guide[data-active=false] .element-table{opacity:.75}.element-table th[scope=row],.element-table thead th:first-child{position:sticky;left:0;z-index:1}.location-portal-dialog{width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;background:#102a2d;color:#edf3db;border:1px solid #829581;padding:24px}.location-portal-dialog::backdrop{background:#081719b8}.location-portal-dialog div{display:flex;gap:12px;flex-wrap:wrap}.location-portal-dialog button{min-height:44px;padding:10px 18px}.location-portal-dialog p{line-height:1.5}
