/* INKRUSH visual candidate. Original ink-port art; geometry/input/save contracts
   remain owned by the existing game. No fake rewards or notification badges. */
:root{--ui-paper:#f5f0dc;--ui-card:#fffbee;--ui-text:#293f35;--ui-muted:#54664f;--ui-line:#8b9d78;--ui-primary:#c5e876;--ui-primary-edge:#6e9446;--ui-secondary:#d6c3e8;--ui-secondary-edge:#88719f;--ui-danger:#df957c;--ui-danger-edge:#95604e;--ui-disabled:#d7d8c9;--ui-shadow:0 4px 0 #203c2e30;--ui-radius:14px;--ui-touch:44px;--ui-space:8px}
.icon.icon-item{fill:none;stroke:none;overflow:visible;filter:none}
button,summary,a,input{touch-action:manipulation}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #796296;outline-offset:3px}
.harbor-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:38% center;opacity:.82;pointer-events:none;z-index:0}
.command-deck .crew-station{border:2px solid #7d9a6d;box-shadow:inset 0 2px 0 #bed49a66,0 5px 0 #0f231b;isolation:isolate;background:#365c4b}
.command-deck .crew-station:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#1b382220 20%,#1b30256b 68%);z-index:0;pointer-events:none}
.command-deck .station-heading,.command-deck .crew-portrait,.command-deck .station-slots,.command-deck .voyage-strip{z-index:1}
.command-deck .station-heading{padding:0 2px;text-shadow:0 1px 3px #162d24}
.command-deck .station-ring{border:0;box-shadow:none;background:none}
.command-deck .station-ring:after{background:#506d4d;border-color:#ceda9c;border-bottom-color:#6b8a50;box-shadow:0 7px 0 #213c2c,0 13px 0 #122c2355}
.command-deck .station-character{filter:drop-shadow(0 7px 1px #132f3060)}
.command-deck .equipment-slot{border-width:2px;border-bottom-width:4px;border-radius:13px;background:linear-gradient(#344b36f2,#1b3227f2);box-shadow:inset 0 1px 0 #c6dda44d,0 2px 4px #16312466}
.command-deck .slot-art{border:0;background:radial-gradient(ellipse at center,#afce6c44,transparent 75%);box-shadow:none}
.command-deck .slot-art>.icon{width:44px;height:44px;filter:none}
.command-deck .violet-slot{background:linear-gradient(#564764f2,#302a3bf2)}
.command-deck .sand-slot{background:linear-gradient(#61583cf2,#383426f2)}
.command-deck .deck-resources>button{border-width:2px;border-radius:12px;background:linear-gradient(#324a3a,#142c23);box-shadow:inset 0 2px 0 #8da87935,0 3px 0 #0c2119}
.command-deck .resource-icon .icon{width:34px;height:34px}.command-deck .deck-resources b{font-size:19px;text-shadow:0 2px 0 #0f251c}
.command-deck .deck-dock{border-width:2px;background:linear-gradient(#34503b,#142d23)}
.command-deck .deck-dock .icon{width:29px;height:29px}.command-deck .deck-dock button.active{box-shadow:inset 0 2px 0 #effdc3,0 3px 0 #5a8134}
.command-deck .deck-shortcuts button>span{background:none;border:0;transform:none;width:43px;height:43px}.command-deck .deck-shortcuts .icon{width:40px;height:40px}
.command-deck .home-actions .primary-button{border-color:#e1f8a5;border-bottom-color:#819b46;box-shadow:inset 0 2px 0 #f4ffd2,0 5px 0 #65823b,0 8px 12px #0a1e1c66;background:linear-gradient(#daef8f,#b6d862)}
.command-deck .mode-buttons button.selected{box-shadow:inset 0 2px 0 #e4d7f1,0 2px 0 #75658d}
.modal-card,.game-panel{background:var(--ui-paper);border:2px solid var(--ui-line);border-bottom:5px solid #6d845c;border-radius:18px;box-shadow:inset 0 0 0 4px #fffbea88,0 10px 30px #132c244d;color:var(--ui-text)}
.harbor-scene .modal-card{background:var(--ui-paper);border:2px solid var(--ui-line);border-bottom:5px solid #60774e;box-shadow:inset 0 0 0 4px #fffbea88,0 9px 0 #0b211755,0 20px 70px #0b211788}
.modal-heading h2,.game-panel>h2{padding:12px 16px;background:linear-gradient(#426757,#294d42);border:1px solid #1c3f33;border-bottom:4px solid #193d30;border-radius:10px;color:#fbf7de;text-shadow:0 2px 0 #233e31;font-weight:850;font-size:24px;letter-spacing:.2px;box-shadow:inset 0 2px 0 #8cad7966}
.modal-heading .eyebrow,.game-panel>.panel-kicker{font-size:10px;letter-spacing:1px;color:var(--ui-muted)}
.modal-heading p,.panel-subtitle,.journal-instruction,.harbor-explainer,.guide-list p,.fine-print,.save-note,.loadout-card>p,.loadout-card>small,.upgrade-copy small,.upgrade-copy p,.camp-card p,.recast-card p{color:var(--ui-muted)}
.loadout-card,.aspect-card,.supply-card,.research-card,.keepsake-card,.recast-card,.recipe-card,.study-card,.achievement-card,.encounter-card{background:var(--ui-card);border-color:#aab58e;border-bottom-width:4px;box-shadow:inset 0 1px 0 #fffef5;border-radius:13px}
.loadout-card.selected,.aspect-card.selected,.supply-card.selected{background:#e7edca;border-color:#70954b;box-shadow:inset 0 0 0 2px #bbd989}
.loadout-card-art{height:74px;width:86px;background:radial-gradient(#c7d9a5,transparent 70%);padding:5px;border-radius:13px}
.loadout-card-art>.icon{width:66px!important;height:66px!important;margin:0!important}.loadout-card>b{font-size:15px}.loadout-card>p{font-size:12px;line-height:1.65}
.primary-button{background:linear-gradient(#dbe993,#bad765);border:2px solid #6e8943;border-bottom:4px solid #567437;border-radius:11px;box-shadow:inset 0 2px 0 #f3ffd1,0 3px 0 #213f2733;color:#294529}
.secondary-button{background:linear-gradient(#eee3f5,#cfbcdf);border:1px solid #9781aa;border-bottom:3px solid #7f6b90;border-radius:10px;color:#44394f;box-shadow:inset 0 1px 0 #fff5ff}
button:disabled{filter:saturate(.3);opacity:.78;box-shadow:none;cursor:default}.primary-button:disabled,.secondary-button:disabled{background:var(--ui-disabled);border-color:#a1aa96;color:#5e6a58}
.quiet-button{color:#4e604d;min-height:44px}.modal-close{border-radius:11px!important;background:linear-gradient(#eeb09a,#ce8774)!important;border-color:#986253!important;border-bottom-width:3px!important;color:#fff5df!important;box-shadow:inset 0 1px 0 #ffe4bb!important}
.segmented,.harbor-tabs,.recast-tabs,.journal-tabs{background:var(--ui-paper)}
.segmented button,.harbor-tabs button,.recast-tabs button,.journal-tabs button{border:1px solid #9cab88;border-bottom:3px solid #8c9d78;background:linear-gradient(#f3f0dd,#dedfc5);color:#4d604b;min-height:44px;font-weight:750}
.segmented button.active,.harbor-tabs button.active,.recast-tabs button.active,.journal-tabs button.active{background:linear-gradient(#dceba6,#bfd774);border-color:#7f9a51;color:#2c4b30;box-shadow:inset 0 2px 0 #f4ffca}
.journal-tabs button{display:flex;gap:4px;align-items:center;justify-content:center}.journal-tabs .icon{width:21px;height:21px}
.journal-back{position:sticky;bottom:0;z-index:6}.recast-back{border:1px solid #8b76a0;border-bottom:3px solid #74648a;background:#d9c7e7;border-radius:10px;color:#493a57}
/* Decisions are illustrated objects, not a column of identical text buttons. */
.draft-panel .upgrade-card{--card-accent:#b5cf82;position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);align-items:start;padding:14px;gap:12px;border:2px solid #96ab77;border-left:6px solid var(--card-accent);border-bottom:5px solid #83996b;background:var(--ui-card);box-shadow:inset 0 2px 0 #fffef5,0 3px 0 #233a2322;border-radius:14px;overflow:visible}
.draft-panel .upgrade-icon{height:63px;width:56px;background:radial-gradient(#dce9b4,transparent 75%);border:0;border-radius:12px}.draft-panel .upgrade-icon .icon{width:56px;height:56px}
.draft-panel .upgrade-copy{min-width:0;padding-right:0}.draft-panel .upgrade-copy b{font-size:18px;margin:6px 0;color:#2b4935}.draft-panel .upgrade-copy p{font-size:12px;line-height:1.65}.draft-panel .upgrade-copy small{font-size:10px;font-weight:750}
.draft-panel .upgrade-key{position:static;grid-column:1;grid-row:2;align-self:end;justify-self:center;min-width:50px;padding:5px 4px;border:1px solid #8b9d68;border-bottom:3px solid #718550;border-radius:7px;background:#d7e9a1;color:#37502e;font:750 10px/1.4 system-ui;text-align:center}
.draft-panel .upgrade-copy{grid-column:2;grid-row:1/3}.draft-panel .card-contract{font-size:11px;line-height:1.55;border-top:1px solid #b9c9a0;padding-top:7px;gap:5px}.card-contract strong,.card-contract em{font-size:11px}
.draft-panel .blessing-card,.draft-panel .duo-card{--card-accent:#ac8bbf;border-color:#ac98ba;background:#f2eaf6}.draft-panel .forge-card{--card-accent:#b69b66;background:#f5ecd6}.draft-panel .masterwork-card{--card-accent:#dab260;background:#f5edcb}.draft-panel .passive-card{--card-accent:#7fb29a;background:#eaf2e5!important}.draft-panel .pact-card{--card-accent:#9c7db5}.draft-panel .growth-card{--card-accent:#81afa5}
.draft-tools,.pause-footer,.codex-pages{background:#f5f0dcf5;border-color:#adb994}.draft-footnote{color:#54664f}
.camp-panel .camp-card{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:center;background:var(--ui-card);border:2px solid #a6b58c;border-bottom:4px solid #8d9f74;box-shadow:inset 0 2px 0 #fffef4}
.camp-panel .camp-card>span{width:52px;height:56px;background:radial-gradient(#dde7b6,transparent 75%);border-radius:10px;display:grid;place-items:center}.camp-panel .camp-card>span .icon{width:48px;height:48px}.camp-panel .camp-card>div{min-width:0}.camp-card>strong{padding:8px 9px;border:1px solid #bba366;border-bottom:3px solid #a08a54;border-radius:8px;background:#f2dc92;color:#574a2f;font-size:12px;white-space:nowrap}.camp-card.sold>strong{background:#dbe3ca;border-color:#a0af8a;color:#4d6448}
.camp-footer,.clear-footer{position:sticky;bottom:-20px;z-index:7;display:flex;gap:8px;align-items:stretch;margin-top:13px;padding:10px 0 4px;background:#f5f0dcf7;border-top:1px solid #a7b78d}.camp-footer .primary-button,.clear-footer .primary-button{flex:1;min-width:0;min-height:50px;font-size:14px;padding:10px 12px;gap:6px}.camp-footer .secondary-button,.clear-footer .secondary-button{flex:none;min-width:46px;padding:8px;max-width:70px}.camp-footer .icon,.clear-footer .icon{width:24px;height:24px}
.clear-stats{gap:9px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:14px 0}.clear-stats>span{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;border:1px solid #b8ae80;border-bottom:4px solid #a79d70;background:linear-gradient(#fff7d9,#ebe2bc);border-radius:12px;padding:9px 5px 10px;box-shadow:inset 0 1px 0 #fffef2}.clear-stats .icon{width:46px;height:46px;margin-bottom:3px}.clear-stats b{font:850 23px/1.2 ui-rounded,system-ui;color:#3c5138;text-shadow:0 1px 0 #fff7d9}.clear-stats small{font-size:11px;color:#5b674b;margin-top:3px}.clear-emblem{width:64px;height:64px;background:#deedab;border:2px solid #8aa65e;border-bottom:5px solid #6d8b4d}.clear-emblem .icon{width:42px;height:42px}
.route-card{background:#fff8e7;border:2px solid #adb68e;border-bottom:4px solid #8d9d74}.route-card.selected{background:#e7edc7;border-color:#72964d;box-shadow:inset 0 0 0 2px #c3da8d}.route-card .route-art{float:left;width:40px;height:40px;margin:0 8px 4px 0}.route-card b{font-size:16px}.route-card p{color:#53664a;font-size:11px}
.passive-family>summary:before,.blessing-family>summary:before{content:'';width:8px;height:27px;background:var(--family-color,#9bbf90);border-radius:5px;flex:none}.passive-family>summary,.blessing-family>summary{justify-content:flex-start;gap:9px}.passive-family>summary>span,.blessing-family>summary>span{margin-left:auto}.passive-catalog-card h4{font-size:16px}.passive-catalog-card p,.passive-owned-card p{font-size:12px}.passive-catalog-card .card-contract{font-size:11px}.passive-state{border:1px solid #95b387;border-radius:6px;background:#e2efcd;padding:3px 6px}.passive-catalog-card[data-passive-state=dormant] .passive-state{border-color:#b49a72;background:#f0e3c5}.passive-catalog-card[data-passive-state=locked] .passive-state{border-color:#adb6a0;background:#e4e7db;color:#59664e}
.catalog-jump{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}.catalog-jump button{display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid #b1bd94;border-bottom:3px solid #8b9f70;background:#e6edce;border-radius:9px;font-size:11px;font-weight:750;color:#41583a;min-height:44px}.catalog-jump .icon{width:24px;height:24px}.catalog-jump-target{scroll-margin-top:116px}
.blessing-family>summary .icon,.passive-family>summary .icon{width:32px;height:32px;flex:none}
/* Combat skin only: don't move HUD, joysticks, user controls or their hit boxes. */
.hud-top .round-button{border:2px solid #829773;border-bottom:4px solid #506d50;background:linear-gradient(#f3f3d9,#d3e0bd);box-shadow:inset 0 1px 0 #fffde4}.wave-pill,.clock{border:2px solid #8a9c78;border-bottom:4px solid #647d59;background:#f0f2ddea;box-shadow:inset 0 1px 0 #ffffe8}.objective-pill,.world-strip,.boss-hud{border-color:#839876;box-shadow:inset 0 1px 0 #ffffe477,0 3px 0 #34543925}.vitals{border-color:#8da477;background:linear-gradient(#2a4c3eed,#102c24ed)}.vitals>div>div{box-shadow:inset 0 1px 2px #001b15}.vitals i{box-shadow:inset 0 2px 0 #ffffff44}.boss-segment>i{box-shadow:inset 0 2px 0 #ffffff55}.skill-button{box-shadow:inset 0 2px 0 #ffffffaa,0 3px 0 #718958}.skill-button>.icon,.skill-button>span>.icon{width:30px;height:30px}.super-button:before{background:#f7f8dd}.dive-button{background:#e7f2cf;border-color:#6e937d;box-shadow:inset 0 2px 0 #f9ffe7,0 3px 0 #648b73}.dive-button .icon{width:27px;height:27px}
@media(max-width:700px){.modal-heading h2,.game-panel>h2{font-size:21px;padding:10px 13px}.command-deck .slot-art>.icon{width:33px;height:33px}.command-deck .resource-icon .icon{width:28px;height:28px}.command-deck .deck-resources b{font-size:16px}.command-deck .deck-dock .icon{width:26px;height:26px}.command-deck .deck-shortcuts .icon{width:32px;height:32px}.command-deck .deck-shortcuts button>span{width:34px;height:34px}.draft-panel .upgrade-card{grid-template-columns:48px minmax(0,1fr);gap:9px;padding:12px}.draft-panel .upgrade-icon{width:48px;height:54px}.draft-panel .upgrade-icon .icon{width:48px;height:48px}.draft-panel .upgrade-copy b{font-size:16px}.draft-panel .upgrade-key{min-width:43px;font-size:9px}.camp-panel .camp-card,.camp-panel .camp-card.passive-card{grid-template-columns:44px minmax(0,1fr);padding:11px}.camp-panel .camp-card>span{width:44px;height:48px;grid-row:1/3}.camp-panel .camp-card>span .icon{width:44px;height:44px}.camp-panel .camp-card>strong{grid-column:2;justify-self:end;font-size:11px;padding:6px 9px}.camp-footer,.clear-footer{bottom:-16px}.journal-tabs .icon{width:18px;height:18px}.journal-tabs button{gap:3px;font-size:10px}.loadout-card-art{height:67px;width:75px}.loadout-card-art>.icon{width:58px!important;height:58px!important}.clear-stats .icon{width:40px;height:40px}.clear-stats b{font-size:21px}}
@media(max-width:360px){.command-deck .resource-icon .icon{width:25px;height:25px}.command-deck .slot-art>.icon{width:29px;height:29px}.command-deck .deck-resources b{font-size:14px}.journal-tabs .icon{width:16px;height:16px}.journal-tabs button{font-size:9px;gap:2px;padding-left:3px;padding-right:3px}.draft-panel .upgrade-card{grid-template-columns:42px minmax(0,1fr);padding:10px;gap:8px}.draft-panel .upgrade-icon,.draft-panel .upgrade-icon .icon{width:42px;height:46px}.draft-panel .upgrade-copy b{font-size:15px}.draft-panel .upgrade-copy p,.draft-panel .card-contract{font-size:11px}.camp-footer .primary-button,.clear-footer .primary-button{font-size:13px}.clear-stats small{font-size:10px}.catalog-jump button{font-size:10px}.catalog-jump .icon{width:21px;height:21px}}
@media(max-height:640px) and (orientation:portrait){.command-deck .slot-art>.icon{width:29px;height:29px}.command-deck .deck-dock .icon{width:23px;height:23px}.command-deck .resource-icon .icon{width:27px;height:27px}.command-deck{min-height:568px}.harbor-backdrop{object-position:36% center}.clear-emblem{width:50px;height:50px;margin-bottom:7px}.game-panel>.panel-kicker{font-size:9px}.game-panel>h2{margin:7px 0;font-size:20px}.panel-subtitle{margin-bottom:11px}}
@media(max-height:550px) and (orientation:landscape){.draft-panel .upgrade-card{display:flex;flex-direction:column;min-height:0;padding:10px;gap:5px}.draft-panel .upgrade-icon{width:38px;height:38px;float:none}.draft-panel .upgrade-icon .icon{width:38px;height:38px}.draft-panel .upgrade-copy b{font-size:14px}.draft-panel .upgrade-copy p,.draft-panel .card-contract{font-size:11px}.draft-panel .upgrade-key{align-self:flex-end}.camp-panel .camp-card{grid-template-columns:40px minmax(0,1fr);padding:9px}.camp-panel .camp-card>span,.camp-panel .camp-card>span .icon{width:38px;height:40px}.camp-panel .camp-card>strong{grid-column:2;justify-self:end}.clear-emblem{display:none}.clear-stats{margin:10px 0}.clear-stats>span{display:grid;grid-template-columns:36px auto;gap:0 7px;padding:5px}.clear-stats .icon{grid-row:1/3;width:32px;height:32px;margin:0}.clear-stats b{font-size:20px}.clear-stats small{font-size:10px;margin:0}.command-deck .slot-art>.icon{width:30px;height:30px}.command-deck .resource-icon .icon{width:27px;height:27px}.command-deck .deck-shortcuts .icon{width:25px;height:25px}.command-deck .deck-shortcuts button>span{width:27px;height:27px}.catalog-jump-target{scroll-margin-top:60px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Art revision 2: authored raster harbor is decorative; text/buttons remain real. */
.command-deck .harbor-backdrop{opacity:1;object-position:36% 64%}
.command-deck .crew-station:after{background:linear-gradient(90deg,#102d1910 22%,#142b2526 48%,#13251f80 100%)}
.command-deck .station-heading{background:linear-gradient(90deg,#163326b8,transparent);border-radius:5px;padding-left:6px}
.command-deck .station-character{filter:drop-shadow(0 9px 2px #08221bcc)}
.command-deck .station-ring:after{background:radial-gradient(ellipse,#badd7d99,#6e9c5066 45%,transparent 70%);border:0;box-shadow:none;bottom:6%;height:23%}
/* Legacy menus share the same object-art, surface and action language, while
   keeping the legacy client's own catalog, economy and intentional entry flow. */
.client-lobby{background:radial-gradient(ellipse at 20% 0,#345d45,#152f27 70%);color:#eef5dc}.client-lobby .topbar{border-color:#617a50;background:linear-gradient(#2c4938,#163225)}
.client-lobby .wallet>span{padding:7px 11px;background:#132b22;border:1px solid #68835b;border-radius:11px;font-weight:800}.client-lobby .wallet .icon{width:30px;height:30px}
.client-lobby .nav button{border:1px solid #698360;border-bottom:3px solid #243b2d;border-radius:9px;background:linear-gradient(#415c43,#263f30);color:#e3efd3}.client-lobby .nav button.active{background:linear-gradient(#d2e887,#accb63);border-color:#daef9f;color:#2c462c}
.client-lobby .item,.client-lobby .meta-card{background:linear-gradient(#f9f3df,#ece7d0);color:#2d4535;border:2px solid #a4b283;border-bottom:5px solid #71885b;box-shadow:inset 0 2px 0 #fffbed;border-radius:14px}.client-lobby .item p,.client-lobby .meta-card p,.client-lobby .small-label{color:#59694e}.client-lobby .item h3,.client-lobby .meta-card h3{color:#304a34}.client-lobby .item.selected{border-color:#9ac05d;background:#e4edc5;box-shadow:inset 0 0 0 2px #c8dc97}.client-lobby .gun-art>.icon{width:68px;height:68px}.client-lobby .item button,.client-lobby .shop-button{background:linear-gradient(#d5e58f,#b4d16b);border:1px solid #7f9b4d;border-bottom:3px solid #6c8645;border-radius:9px;color:#354b2d;font-weight:750;min-height:44px}.client-lobby .hero{gap:25px;padding:24px 0}.client-lobby .hero-copy h1{font-size:38px;margin:16px 0}.client-lobby .hero-copy p{font-size:13px;line-height:1.7}.client-lobby .hero-note{font-size:11px;line-height:1.6;color:#b3c7a2}.client-lobby .showcase{background:#284b3c;border:2px solid #a4bd79;box-shadow:0 5px 0 #0d271a}.client-lobby .showcase-top,.client-lobby .showcase-bottom{background:#18392adb}.client-lobby .showcase-top,.client-lobby .showcase-bottom p{color:#cedfbb}.client-lobby .help-block{background:#f2edda;border:2px solid #a2b089;border-bottom:4px solid #7d9366;border-radius:13px;padding:17px;color:#304634}.client-lobby .help-block p{color:#586a50;font-size:12px;line-height:1.75}
.client-lobby .primary,.legacy-panel .primary{background:linear-gradient(#d8e992,#b2d265);border:2px solid #6d8c43;border-bottom:4px solid #527338;box-shadow:inset 0 2px 0 #f3ffcb,0 3px 0 #20372933;border-radius:11px;color:#2d4829}
.legacy-panel{color:#304733}.legacy-panel>h2,.legacy-panel .kit-header>h2,.legacy-panel .contract-choice-shell>h2{background:linear-gradient(#486e57,#2a4e3d);border:1px solid #193e2c;border-bottom:4px solid #153925;border-radius:11px;padding:11px 14px;color:#fff7dc!important;text-shadow:0 2px 0 #203b2b;box-shadow:inset 0 2px 0 #8ba97b55}
.battle-root .veil{background:#102a22d9}.battle-root .legacy-panel{border:2px solid #8d9e74;border-bottom:5px solid #647c50;border-radius:17px;padding:16px;background:#f5f0dc;box-shadow:inset 0 0 0 4px #fff8e588,0 15px 45px #071a164d}.legacy-panel p,.legacy-panel .kicker,.legacy-panel .kit-wallet,.legacy-panel .kit-status,.legacy-panel .kit-footnote{color:#54694d!important}.legacy-panel p{font-size:12px!important;line-height:1.65!important}.legacy-panel .sub-btn,.legacy-panel .shop-button,.legacy-panel .text-button{color:#4c3b57;border-color:#9c87ab;background:linear-gradient(#ecdef2,#d1bddf);border-bottom:3px solid #8b759b;border-radius:9px;box-shadow:inset 0 1px 0 #fff6ff;min-height:44px;font-size:12px}.legacy-panel .choice{background:#fff9e7;border:2px solid #9caf7e;border-bottom:5px solid #82996a;color:#344c32}.legacy-panel .choice h3{color:#304a31}.legacy-panel .choice p,.legacy-panel .choice-info{color:#52654a}.legacy-panel .draft-pick .icon{width:48px;height:48px}.legacy-panel .market-card,.legacy-panel .support-card,.legacy-panel .attribute-tile,.legacy-panel .contract-card{background:#fff9e8;border:2px solid #a5b38b;border-bottom:4px solid #8b9e70;border-radius:12px}.legacy-panel .market-card p,.legacy-panel .market-mods{color:#53684b!important}.legacy-panel .market-icon{width:53px;height:53px;background:none}.legacy-panel .market-icon .icon{width:49px;height:49px}.legacy-panel .market-card h3{font-size:14px;color:#2e4b33}.legacy-panel .build-tabs{background:#e7e5ce;border-radius:10px;padding:7px}.legacy-panel .build-tabs button{background:#f7f2de;border:1px solid #a5b48a;border-bottom:3px solid #8d9d73;border-radius:8px;color:#4b6144;min-height:44px}.legacy-panel .build-tabs button.active{background:#cadd91;border-color:#8da950;color:#2f4a31}.legacy-panel .kit-footer{background:#f5f0dc;border-color:#a3b388}.legacy-panel .rarity{font-size:10px;color:#596a4e}.legacy-panel .offer-lock .icon{width:25px;height:25px}
@media(max-width:620px){.client-lobby .hero{padding:16px 0;gap:18px}.client-lobby .hero-copy h1{font-size:31px}.client-lobby .hero-copy p{font-size:12px}.client-lobby .rule-strip{display:none}.client-lobby .record-row{margin-top:17px}.client-lobby .gun-art>.icon{width:55px;height:55px}.battle-root .legacy-panel{padding:12px}.legacy-panel>h2,.legacy-panel .kit-header>h2,.legacy-panel .contract-choice-shell>h2{font-size:21px;padding:9px}.legacy-panel p{font-size:11px!important}.legacy-panel .draft-pick .icon{width:42px;height:42px}.legacy-panel .market-card p{font-size:11px!important}.legacy-panel .market-card h3{font-size:13px}.legacy-panel .market-icon,.legacy-panel .market-icon .icon{width:43px;height:43px}}
/* Real preview repair: grid intrinsic SVG sizing was giving the 179px stage a
   340px avatar. Bind artwork to the real portrait box, not its wide grid cell. */
.command-deck .station-character{display:block;inset:0 0 9%;transform:none}
.command-deck .station-character .crew-art{position:absolute;top:0;left:50%;width:auto;height:100%;max-width:100%;max-height:100%;transform:translateX(-50%) rotate(-5deg);overflow:visible}
/* Real 320px browser QA: summary's native list-item layout stacked every
   object icon. Flex keeps the family symbol/name/disclosure in one row. */
.blessing-family>summary,.passive-family>summary{display:flex;align-items:center;list-style:none;min-height:54px}
.blessing-family>summary::-webkit-details-marker,.passive-family>summary::-webkit-details-marker{display:none}
.blessing-family>summary:after,.passive-family>summary:after{content:'';margin-left:3px;font-size:18px;line-height:1;flex:none;color:#435b3e;transition:transform .15s}
.blessing-family[open]>summary:after,.passive-family[open]>summary:after{transform:rotate(180deg)}
.blessing-family>summary>b,.passive-family>summary>b{min-width:0}
@media(max-width:360px){.harbor-scene .modal-heading h2{font-size:18px;line-height:1.35}.blessing-family>summary,.passive-family>summary{gap:6px}.blessing-family>summary>span,.passive-family>summary>span{font-size:10px}.blessing-family>summary .icon,.passive-family>summary .icon{width:26px;height:26px}}
/* Essential menu labels remain readable at the compact 320 CSS px width.
   Do not apply this type scale to the fixed combat control geometry. */
.command-deck .deck-resources small{font-size:12px;color:#d6e5c8;line-height:1.1}
.command-deck .deck-resources b{white-space:nowrap}
.command-deck .equipment-slot small{font-size:12px;line-height:1.1;color:#d1dfbb;margin-bottom:2px}
.command-deck .equipment-slot b{font-size:13px;line-height:1.2;color:#f8f8e0}
.command-deck .violet-slot small{color:#e3d9ed}.command-deck .sand-slot small{color:#e7dfc4}
.command-deck .deck-dock button{font-size:12px}.command-deck .deck-shortcuts b{font-size:12px}
.command-deck .station-heading small,.command-deck .crew-nameplate>small{font-size:11px;color:#e5edd5}
.command-deck .mode-heading{font-size:12px;color:#d5e4c3}
.command-deck .mode-buttons button{min-height:44px;font-size:12px}
.modal-heading p,.journal-instruction,.guide-list p,.passive-note,.passive-empty,.passive-catalog-status,.loadout-card>p,.research-card p,.recipe-card p,.achievement-card p,.encounter-card p,.passive-catalog-card p,.passive-catalog-card .card-contract,.passive-owned-card p{font-size:13px;line-height:1.65}
.passive-state,.passive-family>summary>span,.blessing-family>summary>span{font-size:12px}
.journal-tabs button{font-size:11px;gap:3px}.journal-tabs .icon{width:18px;height:18px}
@media(max-width:360px){.command-deck .resource-icon .icon{width:22px;height:22px}.command-deck .deck-resources>button{padding:5px;gap:4px}.command-deck .slot-art>.icon{width:27px;height:27px}.command-deck .equipment-slot{grid-template-columns:27px minmax(0,1fr) 8px;gap:4px;min-height:48px}.journal-tabs button{font-size:11px;gap:1px;padding-left:2px;padding-right:2px}.journal-tabs .icon{width:15px;height:15px}.passive-family>summary{flex-wrap:wrap}}
/* 568x320 real-browser defect: legacy min-height:360 hid the bottom dock.
   Remove only the redundant shortcut row; all routes remain in the dock. */
@media(max-height:360px) and (orientation:landscape){.command-deck{min-height:320px;grid-template-rows:44px minmax(0,1fr) 58px;gap:7px 12px}.command-deck .deck-shortcuts{display:none}.command-deck .crew-station{grid-row:2/4;grid-template-rows:20px minmax(0,1fr);padding-bottom:5px}.command-deck .crew-station .voyage-strip{display:none}.command-deck .deck-launch{grid-row:2;align-self:center}.command-deck .deck-dock{grid-row:3}.command-deck .equipment-slot{min-height:48px;grid-template-columns:27px minmax(0,1fr) 8px;gap:4px}.command-deck .station-slots{gap:5px}.command-deck .equipment-slot small{font-size:11px}.command-deck .equipment-slot b{font-size:12px}.command-deck .resource-icon .icon{width:22px;height:22px}.command-deck .deck-resources>button{padding:5px;gap:4px}.command-deck .deck-resources small{font-size:11px}.command-deck .deck-resources b{font-size:13px}.command-deck .deck-resources b em{font-size:10px}.command-deck .deck-dock button{min-height:50px;font-size:11px}}
@media(max-height:550px) and (orientation:landscape){.command-deck .deck-shortcuts b{width:2em;max-width:none;flex:none;line-height:1.2}}
.passive-family>summary{display:grid;grid-template-columns:8px 28px minmax(0,1fr) 16px;gap:2px 7px}
.passive-family>summary:before,.passive-family>summary>.icon{grid-row:1/3}
.passive-family>summary>b{grid-column:3;grid-row:1;font-size:13px}.passive-family>summary>span{grid-column:3;grid-row:2;margin-left:0;text-align:left;font-size:12px}
.passive-family>summary:after{grid-column:4;grid-row:1/3;margin-left:0}
@media(max-width:700px){.journal-tabs button{flex-direction:column;min-height:50px;font-size:12px;gap:2px;padding:4px 2px}.journal-tabs .icon{width:18px;height:18px}}
/* Do not let the pinned close button cover a pinned tab's hit target. */
.harbor-scene .harbor-tabs,.harbor-scene .recast-tabs,.harbor-scene .journal-tabs{top:48px}
.harbor-scene .catalog-jump-target{scroll-margin-top:170px}
/* Legacy 320px real draft: object at left, concise content at right rather
   than a tall icon/title stack; banish stays a separate 44px action. */
.legacy-panel .draft-banish{min-height:44px;font-size:12px;background:#e2e8d1;color:#465b3b;border-top:1px dashed #8fa175;padding:8px}
@media(max-width:620px){.legacy-panel .draft-pick{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:4px 8px;padding:11px;min-height:0;align-content:start}.legacy-panel .draft-pick>.icon{grid-column:1;grid-row:1/4;align-self:center;width:38px;height:38px;margin:0}.legacy-panel .draft-pick>.rarity{grid-column:2;grid-row:1;padding-right:34px;font-size:10px}.legacy-panel .draft-pick>.choice-lv{font-size:10px;top:11px;right:9px;color:#56694c}.legacy-panel .draft-pick>h3{grid-column:2;grid-row:2;margin:0;font-size:15px}.legacy-panel .draft-pick>p{grid-column:2;grid-row:3;margin:0;font-size:12px!important;line-height:1.5!important}.legacy-panel>h2{font-size:19px;margin:10px 0}.legacy-panel .card-choices{margin-top:14px}}
/* Disclosure geometry, not a new font glyph; easier to reproduce in NanoVG. */
.blessing-family>summary:after,.passive-family>summary:after{content:'';width:7px;height:7px;border-right:2px solid #435b3e;border-bottom:2px solid #435b3e;transform:rotate(45deg);margin-top:-3px}
.blessing-family[open]>summary:after,.passive-family[open]>summary:after{transform:rotate(225deg);margin-top:3px}
.legacy-panel .draft-banish{align-self:stretch;width:100%}
.legacy-panel .build-list>span,.legacy-panel .kit-section-title>span,.legacy-panel .kit-section-title small{font-size:12px;color:#52664a}
.legacy-panel .build-list>span{background:#e6ead7;border-color:#aebc98;line-height:1.4}.legacy-panel .build-list>.trait-active{background:#d4e7a4;color:#314c2e;border-color:#8fa864}
@media(max-width:620px){.battle-root .legacy-panel>h2{font-size:19px;line-height:1.3}}
/* Legacy lobby was never dark-theme-safe: its black highlighted word and
   inherited 32px button gaps disappeared/wrapped at320. Preserve live flow. */
.client-lobby .hero h1 span{color:#c8e879;display:block;margin-left:0}.client-lobby .hero h1 span:before{display:none}.client-lobby .hero h1 br{display:none}.client-lobby .hero-copy>p{color:#d0dfc4;font-size:13px}.client-lobby .hero .primary{gap:10px;max-width:340px;width:100%;min-width:0}.client-lobby .hero .primary small{margin:0;font-size:11px;white-space:nowrap;flex:none}.client-lobby .hero .primary .icon{flex:none}.client-lobby .hero .sub-btn{font-size:12px;color:#405739;min-height:48px}.client-lobby .kicker{color:#c1d79b}
@media(max-width:620px){.client-lobby .nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;overflow:visible}.client-lobby .nav button{min-width:0;min-height:44px;font-size:12px;white-space:normal;word-break:break-all;line-height:1.2;padding:5px 10px}.client-lobby .hero-copy h1{font-size:30px;letter-spacing:-1px}.client-lobby .hero .primary{font-size:16px;padding:12px}.client-lobby .hero-note{font-size:12px}.client-lobby .topbar{height:116px}}
@media(max-width:620px){.client-lobby .topbar{height:132px}.client-lobby .nav{margin-top:5px;padding:5px 0}}
.client-lobby .record-row b{color:#d4e9a7}.client-lobby .record-row span,.client-lobby .record-row small{color:#c8d8b7}.client-lobby .page-title h1,.client-lobby .section-head h2{color:#f1f3dc}
@media(max-width:620px){.client-lobby .nav button>span{display:block;width:2em;margin:auto}.client-lobby .nav button{padding:5px 2px}}

.slot-independent:before{content:" · "}
@media(max-width:360px){.draft-panel .slot-independent{display:block}.draft-panel .slot-independent:before{content:none}.draft-panel .upgrade-copy p{font-size:12px}.draft-panel>.panel-subtitle{margin-bottom:12px}.draft-panel>h2{margin:7px 0}}
