:root{color:#f7fbff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#050913;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{overscroll-behavior:none;width:100%;height:100%;margin:0;overflow:hidden}button,input{font:inherit}button{color:#fff;cursor:pointer;background:#182741db;border:1px solid #ffffff38;border-radius:999px;padding:10px 14px;font-weight:700}button:hover{background:#2e7d57eb}button:disabled{cursor:not-allowed;opacity:.48}input{color:#fff;background:#030811b8;border:1px solid #ffffff2e;border-radius:12px;min-width:0;padding:10px 12px}.entry-overlay{z-index:100;background:radial-gradient(circle,#182741f5,#050913fa);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.entry-button{text-align:center;border-radius:22px;gap:8px;min-width:min(280px,100vw - 48px);padding:18px 22px;display:grid}.entry-button b{font-size:22px}.entry-button span{color:#b7c6da;font-size:13px}.game-canvas{touch-action:none;width:100vw;height:100dvh;display:block;position:fixed;inset:0}.game-overlay{pointer-events:none;position:fixed;inset:0}.panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#040a16a8;border:1px solid #ffffff29;border-radius:18px;box-shadow:0 20px 60px #00000040}.lobby{z-index:20;pointer-events:auto;width:min(680px,100vw - 24px);padding:18px;position:fixed;top:18px;left:50%;transform:translate(-50%)}.app-menu{z-index:40;pointer-events:none;justify-items:end;gap:8px;display:grid;position:fixed;top:14px;right:14px}.app-menu-toggle{pointer-events:auto;min-width:74px;padding:9px 14px}.app-menu-drawer{pointer-events:auto;width:min(360px,100vw - 28px);max-height:calc(100dvh - 82px);padding:14px;display:none;overflow:auto}.app-menu.open .app-menu-drawer{gap:12px;display:grid}.app-menu-title{color:#b2ebf2;font-size:14px;font-weight:900}.app-menu-section{gap:10px;display:grid}.app-menu-drawer .lobby,.app-menu-drawer .roster,.app-menu-drawer .settings-panel,.app-menu-drawer .debug-panel{pointer-events:auto;width:auto;min-width:0;max-width:none;position:static;inset:auto;transform:none}.app-menu-drawer .lobby{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;text-align:left;background:0 0;border:0;padding:0}.app-menu-drawer .lobby.connected{width:auto;padding:0}.app-menu-drawer .settings-panel{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-top:1px solid #ffffff1f;flex-wrap:wrap;gap:6px;padding:8px 0 0;display:flex}.menu-actions{gap:8px;display:grid}.menu-actions:empty{display:none}.menu-actions-title{color:#ffe082;font-size:13px;font-weight:900}.app-menu-drawer .debug-panel{color:#b2ebf2;background:#0207105c}.lobby.connected{text-align:center;width:auto;min-width:220px;padding:10px 14px}.lobby.connected h1,.lobby.connected p,.lobby.connected label:not(.map-upload),.lobby.connected .room-actions,.lobby.connected .help{display:none}.lobby h1{margin:0 0 6px;font-size:clamp(24px,4vw,42px)}.lobby p,.help,#room-status{color:#b7c6da}.lobby label{gap:6px;margin-top:12px;display:grid}.room-actions{grid-template-columns:auto 1fr auto;gap:8px;margin:12px 0;display:grid}.hud{pointer-events:auto;min-width:260px;max-width:min(560px,100vw - 28px);padding:12px 14px;font-size:14px;line-height:1.5;position:absolute;top:14px;left:14px}body:not([data-phase=play]) .hud{display:none}.hud-toggle{float:right;padding:5px 9px;font-size:12px}.hud-content{min-width:0}.hud.collapsed{width:280px;min-width:0}.hud.clickable{outline:1px solid #b2ebf238}.compact-hud{gap:4px;padding-top:2px;display:grid}.compact-hud-title,.compact-hud-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.compact-hud-title b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.compact-hud-row b{font-size:12px}.compact-hud span{color:#d7e7ff;flex:none;font-size:12px;font-weight:800}.roster{min-width:190px;padding:12px 14px;font-size:14px;line-height:1.5;position:absolute;top:14px;right:14px}.settings-panel{pointer-events:auto;gap:6px;padding:8px;display:flex;position:absolute;top:120px;right:14px}.settings-panel button{padding:7px 10px;font-size:12px}.debug-panel{color:#b2ebf2;pointer-events:none;min-width:140px;padding:10px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:absolute;bottom:14px;left:14px}.hero-picker{pointer-events:auto;width:min(920px,100vw - 24px);max-width:min(920px,100vw - 24px);position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.hero-select-panel{grid-template-columns:1.25fr 1.1fr .95fr;align-items:stretch;gap:10px;display:grid}.hero-list{gap:8px;display:grid}.hero-card{text-align:left;background:#0c1524d1;border-width:2px;border-radius:16px}.hero-card span{color:#b7c6da;margin-top:3px;font-size:12px;font-weight:500;display:block}.hero-card.selected{background:#2e7d57e6;box-shadow:0 0 24px #69f0ae47}.hero-pager{color:#d7e7ff;justify-content:center;align-items:center;gap:10px;font-size:12px;font-weight:800;display:flex}.hero-pager button{padding:6px 10px}.hero-detail,.squad-panel{padding:12px;line-height:1.45}.hero-detail{gap:8px;display:grid}.hero-detail-title{text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:800;overflow:hidden}.hero-stats,.hero-note,.hero-role{color:#b7c6da;text-overflow:ellipsis;font-size:13px;overflow:hidden}.hero-role,.hero-stats{white-space:nowrap}.hero-note{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.hero-attrs{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;display:grid}.hero-attrs span{color:#b7c6da;background:#ffffff14;border-radius:10px;place-items:center;padding:4px 2px;font-size:11px;display:grid}.hero-attrs b{color:#fff;font-size:14px}.hero-skill-row{color:#dce8f6;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;font-size:12px;display:grid}.hero-skill-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hero-skill-row em{color:#b7c6da;white-space:nowrap;font-style:normal}.squad-row{color:#d7e7ff;justify-content:space-between;gap:12px;margin-top:8px;display:flex}.squad-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.squad-row span:first-child{flex:auto}.squad-row span:last-child{text-align:right;flex:0 36%}.squad-row.empty{color:#8293aa}.squad-actions{grid-template-columns:1fr;gap:8px;margin-top:10px;display:grid}.start-button{background:#2e7d57f5}.voice-toggle{margin-top:10px}.toast{color:#d7e7ff;text-align:center;background:#0000005c;border-radius:999px;max-width:min(680px,100vw - 28px);padding:10px 14px;position:absolute;top:124px;left:50%;transform:translate(-50%)}.results{color:#ffe082;margin-top:8px}.results button{margin-top:8px}.mission-line{margin-top:6px;font-weight:800}.objective-hint{color:#b2ebf2;margin:5px 0}.nav-hint{color:#69f0ae;margin:4px 0 6px;font-weight:800}.bar{background:#ffffff1f;border-radius:999px;height:8px;margin:4px 0 7px;overflow:hidden}.bar i{border-radius:inherit;background:linear-gradient(90deg,#40c4ff,#69f0ae);height:100%;display:block}.bar.hp i{background:linear-gradient(90deg,#ff5252,#ffd54f)}.bar.mp i{background:linear-gradient(90deg,#7c4dff,#40c4ff)}.skill-cooldowns{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:7px 0;display:grid}.skill-chip{background:#02071080;border:1px solid #ffffff24;border-radius:10px;min-width:0;padding:5px 7px;position:relative;overflow:hidden}.skill-chip span,.skill-chip b{z-index:1;position:relative}.skill-chip span{color:#dce8f6;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;display:block;overflow:hidden}.skill-chip b{color:#b7c6da;font-size:11px}.skill-chip i{background:#80d8ff;border-radius:999px;height:3px;position:absolute;inset:auto auto 0 0}.skill-chip.special i{background:#ff80ab}.skill-chip.ready{border-color:#69f0ae73}.skill-chip.ready b{color:#69f0ae}.control-hint{color:#9fb2ca;margin:-2px 0 6px;font-size:12px}.gamepad-hint{color:#b2ebf2;margin:-3px 0 6px;font-size:12px;font-weight:800}.danger-text{color:#ff8a80;margin:4px 0;font-weight:800}.touch-pad,.action-pad{pointer-events:auto;position:absolute;bottom:18px}body:not([data-phase=play]) .touch-pad,body:not([data-phase=play]) .action-pad{display:none}.touch-pad{width:132px;height:132px;left:18px}.action-pad button{border-radius:16px;width:100%;height:100%;padding:0}.joystick-base{touch-action:none;background:radial-gradient(circle,#80d8ff33,#1827418a 46%,#0308116b 100%);border:1px solid #ffffff2e;border-radius:50%;width:100%;height:100%;position:relative;box-shadow:inset 0 0 24px #0000003d,0 18px 44px #00000047}.joystick-base:before,.joystick-base:after{content:"";background:#ffffff2e;position:absolute}.joystick-base:before{height:1px;top:50%;left:18px;right:18px}.joystick-base:after{width:1px;top:18px;bottom:18px;left:50%}.joystick-knob{background:linear-gradient(145deg,#69f0aee0,#40c4ffd6);border:1px solid #ffffff42;border-radius:50%;width:58px;height:58px;position:absolute;top:50%;left:50%;transform:translate(0)translate(-50%,-50%);box-shadow:0 10px 26px #00000057}.action-pad{gap:10px;display:flex;right:18px}.action-pad button{border-radius:50%;width:72px;height:72px}@media (width<=720px),(height<=520px){.lobby{padding:12px;top:8px}.room-actions{grid-template-columns:1fr}.hud{width:min(36vw,320px);min-width:0;max-width:none;padding:6px 8px;font-size:11px;top:8px;left:8px;right:auto}.hud.collapsed{cursor:pointer;width:min(34vw,190px);padding:6px 8px;right:auto}.hud.collapsed .compact-hud{gap:1px}.hud.collapsed .bar{height:4px;margin:1px 0 3px}.compact-hud-title b,.compact-hud span,.compact-hud-row b{font-size:10px}.roster{display:none}.toast{top:150px}.hero-picker{bottom:auto}:is(.hero-picker:has(.hero-select-panel.landscape),.hero-picker:has(.hero-select-panel.portrait)){flex-direction:column;gap:8px;width:auto;max-width:none;display:flex;inset:52px 8px 8px;transform:none}.hero-select-panel.landscape,.hero-select-panel.portrait{touch-action:pan-y;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}.hero-select-panel.landscape{grid-template-rows:78px minmax(0,1fr);grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:8px;display:grid}.hero-select-panel.landscape .hero-grid-section{grid-area:1/1/3}.hero-select-panel.landscape .team-strip-section{grid-area:1/2}.hero-select-panel.landscape .hero-detail-section{grid-area:2/2}.hero-select-panel.portrait{grid-template-rows:minmax(0,auto) minmax(0,auto) minmax(0,1fr);grid-template-columns:1fr;gap:8px;display:grid}.hero-grid-section,.team-strip-section,.hero-detail-section{background:#040a16eb;border:1px solid #ffffff24;border-radius:14px;min-width:0;min-height:0;padding:8px 10px;line-height:1.45}.hero-grid-section{grid-template-rows:auto minmax(0,1fr) auto;gap:6px;display:grid;position:relative}.team-strip-section{grid-template-rows:auto minmax(0,1fr);gap:6px;display:grid}.hero-detail-section{touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;gap:8px;padding:10px 12px;line-height:1.5;display:flex;overflow-y:auto}.hero-detail-section .hero-detail-title{margin:0;padding:0;font-size:18px;line-height:1.25}.hero-detail-section .hero-role{margin:0;padding:0;line-height:1.35}.hero-detail-section .hero-stats,.hero-detail-section .hero-skill-row,.hero-detail-section .hero-note{margin:0;padding:0;line-height:1.4}.hero-detail-section .hero-attrs{gap:6px;margin:2px 0}.section-header{color:#b2ebf2;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;font-weight:800;display:flex}.section-header em{color:#b7c6da;font-size:11px;font-style:normal;font-weight:700}.hero-select-panel.landscape .hero-list,.hero-select-panel.portrait .hero-list{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-height:0;display:grid}.hero-select-panel.portrait .hero-list{height:min(34vh,280px);min-height:180px}.hero-select-panel.portrait .team-slots{min-height:140px;max-height:22vh}.hero-select-panel.portrait .hero-detail-section{min-height:220px}.hero-card.compact{text-align:center;background:#0c1524db;border-width:2px;border-radius:14px;grid-template-rows:auto auto;align-content:center;justify-items:center;gap:4px;min-height:0;padding:6px;display:grid}.hero-card.compact.selected{background:#2e7d57e0;box-shadow:0 0 18px #69f0ae52}.hero-card.compact.placeholder{cursor:default;pointer-events:none;background:#080e1c66;border-style:dashed;border-color:#ffffff1f}.hero-card.compact .hero-card-avatar{color:#fff;background:#ffffff2e;border-radius:50%;place-items:center;width:clamp(28px,8vh,44px);height:clamp(28px,8vh,44px);font-size:clamp(13px,3.4vh,18px);font-style:normal;font-weight:900;display:grid}.hero-card.compact span{color:#f3f7ff;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:0;font-size:11px;font-weight:700;display:block;overflow:hidden}.hero-card.compact.selected span{color:#fff}.hero-pager.inline{color:#d7e7ff;justify-content:center;align-items:center;gap:8px;height:22px;font-size:11px;font-weight:700;display:flex}.hero-pager.inline button{color:#d7e7ff;border-radius:11px;width:24px;height:22px;padding:0;font-size:12px;font-weight:800}.hero-pager-side{z-index:2;background:#081224eb;border-radius:50%;width:30px;height:30px;padding:0;font-size:14px;font-weight:900;position:absolute;top:50%;transform:translateY(-50%)}.hero-pager-side.prev{left:6px}.hero-pager-side.next{right:6px}.team-slots{gap:4px;min-height:0;display:grid}.team-slots.landscape{grid-template-rows:minmax(0,1fr);grid-template-columns:repeat(4,minmax(0,1fr))}.team-slots.portrait{grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:1fr}.team-slot{color:#8293aa;background:#ffffff0d;border:1px solid #ffffff24;border-radius:10px;align-items:center;min-width:0;padding:6px 8px;font-size:11px;display:grid}.team-slots.landscape .team-slot{grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);gap:0 6px}.team-slots.landscape .team-slot .slot-status{grid-row:1/3}.team-slots.landscape .team-slot .slot-hero{grid-area:2/2}.team-slots.portrait .team-slot{grid-template-columns:auto minmax(0,1fr) auto;column-gap:10px}.team-slot.filled{color:#f0f6ff;background:#ffffff1a}.team-slot.ready{color:#fff;background:#2e7d5773;border-color:#69f0ae8c}.team-slot .slot-status{text-align:center;font-size:13px;font-weight:900}.team-slot.ready .slot-status{color:#69f0ae}.team-slot .slot-name,.team-slot .slot-hero{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.team-slot .slot-name{font-weight:700}.team-slot .slot-hero{color:#d7e7ffc7;font-size:10px}.team-slots.portrait .team-slot .slot-hero{text-align:right;font-size:11px}.hero-detail-section .hero-detail-title{font-size:18px}.hero-detail-section .hero-role,.hero-detail-section .hero-stats,.hero-detail-section .hero-note{font-size:11px}.hero-detail-section .hero-attrs span{padding:4px 2px;font-size:10px}.hero-detail-section .hero-attrs b{font-size:14px}.hero-detail-section .hero-skill-row{font-size:11px}.hero-action-bar{flex:none;grid-template-columns:1fr 1fr;gap:8px;display:grid}.action-button{border-width:2px;border-radius:22px;padding:12px 16px;font-size:16px;font-weight:900}.action-button.ready-button{color:#fff;background:#2e7d57f5;border-color:#69f0aeb3}.action-button.ready-button.cancel{background:#8c3c3ceb;border-color:#ff8a80b3}.action-button.start-action{color:#0f1928;background:#ffd54ff5;border-color:#ffe082d9}.action-button.start-action:disabled{color:#ffffff8c;background:#303848b8;border-color:#ffffff2e}.settings-panel{top:auto;bottom:98px;right:10px}.app-menu{top:8px;right:8px}.app-menu-drawer .roster{display:block}.app-menu-drawer .settings-panel{position:static;bottom:auto;right:auto}.touch-pad{width:96px;height:96px;bottom:10px;left:12px}.joystick-knob{width:42px;height:42px}.action-pad{gap:8px;bottom:12px;right:12px}.action-pad button{width:52px;height:52px;font-size:13px}}
