/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.block{display:block}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--bg-deep:#050508;--bg-panel:#0c0e14;--bg-elevated:#12151f;--border-dim:#ffffff14;--border-glow:#00fff040;--text-primary:#e8ecf4;--text-muted:#6b7289;--cyan:#00fff0;--magenta:#f0a;--laser-green:#39ff14;--p1-color:#00fff0;--p2-color:#f0a;--font-display:"Orbitron", system-ui, sans-serif;--font-body:"Rajdhani", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg-deep);min-height:100vh;color:var(--text-primary);font-family:var(--font-body);margin:0}body{background:radial-gradient(ellipse 80% 50% at 50% -20%, #00fff014, transparent), radial-gradient(ellipse 60% 40% at 100% 100%, #ff00aa0f, transparent), var(--bg-deep);overflow-x:hidden}.menu-screen{justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative}.menu-bg-grid{background-image:linear-gradient(#00fff008 1px,#0000 1px),linear-gradient(90deg,#00fff008 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 80%);mask-image:radial-gradient(#000 30%,#0000 80%)}.menu-content{text-align:center;max-width:520px;position:relative}.game-title{font-family:var(--font-display);letter-spacing:.15em;margin:0 0 1rem;font-size:clamp(2.5rem,8vw,4.5rem);font-weight:800;line-height:1}.title-battle{color:var(--text-primary);text-shadow:0 0 30px #00fff066;display:block}.title-lazer{color:var(--cyan);text-shadow:0 0 40px #00fff099;display:block}.menu-tagline{color:var(--text-muted);margin-bottom:2.5rem;font-size:1.15rem;line-height:1.5}.menu-buttons{flex-direction:column;gap:.75rem;display:flex}.menu-btn{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border-dim);background:var(--bg-elevated);color:var(--text-primary);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:.6rem;padding:.85rem 1.5rem;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.menu-btn:hover{border-color:var(--cyan);box-shadow:0 0 20px #00fff026}.menu-btn-primary{background:linear-gradient(135deg,#00fff026,#ff00aa1a);border-color:#00fff066}.menu-info{color:var(--text-muted);justify-content:center;align-items:center;gap:.4rem;margin-top:2rem;font-size:.8rem;display:flex}.menu-info code{color:var(--cyan);font-size:.75rem}.menu-screen-landscape{height:100dvh;min-height:100dvh;max-height:100dvh;padding:max(.35rem, env(safe-area-inset-top,.35rem)) max(.75rem, env(safe-area-inset-right,.75rem)) max(.35rem, env(safe-area-inset-bottom,.35rem)) max(.75rem, env(safe-area-inset-left,.75rem));overflow:hidden}.menu-screen-landscape .menu-content{flex-direction:column;justify-content:center;max-width:min(520px,96vw);max-height:100%;display:flex}.menu-screen-landscape .game-title{margin-bottom:.25rem;font-size:clamp(1.35rem,7vh,2.25rem)}.menu-screen-landscape .menu-tagline{margin-bottom:.65rem;font-size:clamp(.62rem,2.6vh,.78rem);line-height:1.3}.menu-screen-landscape .menu-buttons{gap:.35rem}.menu-screen-landscape .menu-btn{letter-spacing:.06em;min-height:34px;padding:.42rem .85rem;font-size:clamp(.58rem,2.4vh,.68rem)}.menu-screen-landscape .menu-btn svg{width:16px;height:16px}.menu-screen-landscape .menu-info{margin-top:.55rem;font-size:clamp(.52rem,2.2vh,.62rem);line-height:1.25}.menu-screen-landscape .lobby-title{margin-bottom:.25rem;font-size:clamp(.85rem,3.5vh,1rem)}.menu-screen-landscape .lobby-title svg{width:16px;height:16px}.menu-screen-landscape .field-label{margin-bottom:.2rem;font-size:.58rem}.menu-screen-landscape .field-input{min-height:36px;margin-bottom:.45rem;padding:.42rem .65rem;font-size:16px}.menu-screen-landscape .room-code-input{font-size:1.1rem}.menu-screen-landscape .lobby-error{margin-bottom:.45rem;padding:.4rem .55rem;font-size:.62rem}.menu-screen-landscape .menu-toggle{padding:.15rem 0;font-size:.62rem}.menu-screen-landscape .room-code-display{margin:.35rem 0}.menu-screen-landscape .waiting-hint{margin:.35rem 0;font-size:.62rem}.menu-screen-landscape .menu-setup-modal{max-height:calc(100dvh - .75rem);padding:.55rem .65rem;overflow:hidden}.menu-screen-landscape .menu-setup-modal h3{margin-bottom:.25rem;font-size:.72rem}.menu-screen-landscape .menu-setup-desc{margin-bottom:.45rem;font-size:.58rem;line-height:1.3}.menu-screen-landscape .menu-setup-actions{gap:.3rem}.menu-screen-landscape .menu-setup-actions .menu-btn{min-height:32px}.rotate-device-overlay{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050508f0;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.rotate-device-panel{text-align:center;max-width:280px}.rotate-device-icon-wrap{color:var(--cyan);justify-content:center;margin-bottom:1rem;animation:2.4s ease-in-out infinite rotate-device-hint;display:flex}.rotate-device-title{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);margin:0 0 .5rem;font-size:1rem}.rotate-device-desc{color:var(--text-muted);margin:0;font-size:.85rem;line-height:1.45}@keyframes rotate-device-hint{0%,to{transform:rotate(0)}35%{transform:rotate(-90deg)}65%{transform:rotate(-90deg)}}.game-layout{flex-direction:column;gap:.5rem;min-height:100vh;padding:.5rem;display:flex}.game-header{background:var(--bg-panel);border:1px solid var(--border-dim);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 1rem;display:flex}.header-title{font-family:var(--font-display);letter-spacing:.12em;color:var(--cyan);margin:0;font-size:1rem;font-weight:700}.header-mode{color:var(--text-muted);letter-spacing:.05em;font-size:.75rem}.header-center{flex-direction:column;flex:1;align-items:center;min-width:200px;display:flex}.turn-indicator{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;font-size:.8rem;font-weight:600}.turn-p1{color:var(--p1-color)}.turn-p2{color:var(--p2-color)}.game-message{color:var(--text-muted);margin-top:.15rem;font-size:.8rem}.header-right{align-items:center;gap:.75rem;display:flex}.deck-count{color:var(--text-muted);font-size:.8rem}.deck-count-mobile{display:none}.deck-count-part{white-space:nowrap}.icon-btn{border:1px solid var(--border-dim);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;padding:.35rem;transition:all .2s;display:flex}.icon-btn:hover{color:var(--cyan);border-color:var(--cyan)}.board{flex:1;justify-content:center;gap:.35rem;min-height:280px;padding:.25rem 0;display:flex;overflow-x:auto}.planet-lane{border:1px solid var(--border-dim);background:#0c0e1499;border-radius:6px;flex-direction:column;flex:1;align-items:center;min-width:100px;max-width:120px;padding:.25rem;transition:border-color .3s;display:flex;position:relative;overflow:hidden}.planet-owned-p1{border-color:#00fff059;box-shadow:inset 0 0 20px #00fff00d}.planet-owned-p2{border-color:#ff00aa59;box-shadow:inset 0 0 20px #ff00aa0d}.planet-capturing{z-index:10}.slot-row{border-radius:4px;justify-content:center;gap:3px;width:100%;min-height:62px;padding:3px;display:flex}.slot-row-opponent{margin-bottom:.25rem}.slot-row-player{margin-top:.25rem}.slot-row-active{background:#00fff00f;outline:1px dashed #00fff04d}.card-slot{width:42px;height:58px}.card-slot-empty{justify-content:center;align-items:center;display:flex}.slot-row-wide .card-slot,.slot-row-wide .card-slot-empty{width:36px;height:52px}.slot-row-wide .slot-placeholder{width:32px;height:48px}.planet-lane-gravity-well{min-width:118px}.slot-placeholder{border:1px dashed #ffffff1a;border-radius:4px;width:38px;height:54px}.planet-core{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.15rem;padding:.35rem 0;display:flex}.planet-orb{background:radial-gradient(circle at 35% 35%,#00fff033,#0000 70%);border:1px solid #00fff04d;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 0 12px #00fff026}.planet-owned-p2 .planet-orb{background:radial-gradient(circle at 35% 35%,#f0a3,#0000 70%);border-color:#ff00aa4d;box-shadow:0 0 12px #ff00aa26}.planet-crosshair{color:var(--cyan);opacity:.7}.planet-lock-icon{color:var(--laser-green)}.planet-name{font-family:var(--font-display);letter-spacing:.05em;text-align:center;color:var(--text-primary);font-size:.5rem;font-weight:600;line-height:1.2}.planet-index{color:var(--text-muted);letter-spacing:.1em;font-size:.55rem}.formation-badge{letter-spacing:.08em;text-transform:uppercase;font-size:.5rem;font-weight:700}.claim-btn{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--laser-green);cursor:pointer;background:#39ff141a;border:1px solid #39ff1466;border-radius:3px;margin-top:.2rem;padding:.2rem .4rem;font-size:.45rem;font-weight:600;transition:all .2s}.claim-btn:hover{background:#39ff1433;box-shadow:0 0 10px #39ff1433}.capture-label{font-family:var(--font-display);letter-spacing:.1em;font-size:.45rem;font-weight:700}.capture-p1{color:var(--p1-color)}.capture-p2{color:var(--p2-color)}.card-face{background:var(--bg-elevated);border:1.5px solid var(--suit-border,var(--border-dim));width:56px;height:80px;box-shadow:0 0 8px var(--suit-glow,transparent), inset 0 0 12px var(--suit-bg,transparent);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;transition:transform .15s,box-shadow .15s;display:flex;position:relative}.card-compact{width:40px;height:56px}.card-compact .card-center-value{font-size:1.1rem}.card-compact .card-value{font-size:.65rem}.card-compact .card-suit-label{font-size:.35rem}.card-face:hover:not(.card-disabled){box-shadow:0 4px 16px var(--suit-glow,#00fff033);transform:translateY(-3px)}.card-dragging{box-shadow:0 8px 24px var(--suit-glow,#00fff04d);z-index:100;transform:rotate(3deg)scale(1.05)}.card-disabled{opacity:.5;cursor:not-allowed}.card-corner{flex-direction:column;align-items:center;gap:1px;line-height:1;display:flex;position:absolute}.card-corner-tl{top:4px;left:4px}.card-corner-br{bottom:4px;right:4px;transform:rotate(180deg)}.card-value{font-family:var(--font-display);color:var(--suit-color,var(--text-primary));font-size:.85rem;font-weight:700}.card-center-value{font-family:var(--font-display);color:var(--suit-color,var(--text-primary));text-shadow:0 0 10px var(--suit-glow,transparent);font-size:1.6rem;font-weight:800}.card-suit-dot{background:var(--suit-color,var(--cyan));width:6px;height:6px;box-shadow:0 0 6px var(--suit-glow,transparent);border-radius:50%}.card-suit-label{letter-spacing:.05em;color:var(--suit-color,var(--text-muted));opacity:.8;text-transform:uppercase;font-size:.4rem;position:absolute;bottom:3px}.card-back{cursor:default;background:linear-gradient(135deg,#0a1628,#1a0a28);border-color:#00fff04d}.card-back-pattern{background:repeating-linear-gradient(45deg,#0000,#0000 4px,#00fff008 4px 8px);border:1px solid #00fff026;border-radius:3px;position:absolute;inset:4px}.card-back-logo{font-family:var(--font-display);color:var(--cyan);letter-spacing:.1em;text-shadow:0 0 8px #00fff080;font-size:.7rem;font-weight:800}.tactic-icon{color:var(--magenta);margin-bottom:2px}.tactic-label{text-align:center;padding:0 2px;line-height:1.1;font-size:.45rem!important}.hand-panel{background:var(--bg-panel);border:1px solid var(--border-dim);border-radius:6px;padding:.5rem 1rem;transition:border-color .3s}.hand-active{border-color:#00fff04d;box-shadow:0 0 20px #00fff00d}.hand-inactive{opacity:.7}.hand-header{justify-content:space-between;margin-bottom:.4rem;display:flex}.hand-label{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:600}.hand-count{color:var(--text-muted);font-size:.75rem}.hand-cards{align-items:center;gap:.5rem;min-height:90px;padding:.25rem 0;display:flex;overflow-x:auto}.hand-drag-over{background:#00fff00a;border-radius:4px}.hand-card-wrapper{flex-shrink:0}.hand-empty{color:var(--text-muted);font-size:.85rem;font-style:italic}.capture-overlay{pointer-events:none;z-index:20;border-radius:6px;position:absolute;inset:0;overflow:hidden}.laser-beam{opacity:0;background:linear-gradient(90deg,#0000,currentColor,#0000);width:100%;height:2px;animation:.8s ease-out forwards laser-sweep;position:absolute}.laser-beam-1{color:var(--cyan);animation-delay:0s;top:20%}.laser-beam-2{color:var(--magenta);animation-delay:.1s;top:50%}.laser-beam-3{color:var(--laser-green);animation-delay:.2s;top:80%}@keyframes laser-sweep{0%{opacity:0;transform:scaleX(0)}30%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}.laser-ring{border:2px solid var(--cyan);opacity:0;border-radius:50%;animation:.8s ease-out .15s forwards ring-pulse;position:absolute;inset:10%}.capture-p2 .laser-ring{border-color:var(--magenta)}@keyframes ring-pulse{0%{opacity:0;transform:scale(.5)}40%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.2)}}.capture-flash{opacity:0;background:radial-gradient(circle,#00fff04d,#0000 70%);animation:.5s ease-out .3s forwards flash;position:absolute;inset:0}.capture-p2 .capture-flash{background:radial-gradient(circle,#ff00aa4d,#0000 70%)}@keyframes flash{0%{opacity:0}50%{opacity:1}to{opacity:0}}.capture-text{font-family:var(--font-display);letter-spacing:.15em;color:var(--laser-green);text-shadow:0 0 10px #39ff14cc;opacity:0;white-space:nowrap;font-size:.5rem;font-weight:800;animation:.6s ease-out .4s forwards text-appear;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes text-appear{0%{opacity:0;transform:translate(-50%,-50%)scale(.8)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.cheat-toggle{z-index:70;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;background:var(--bg-elevated);color:var(--cyan);cursor:pointer;border:1px solid #00fff04d;border-radius:4px;align-items:center;gap:.4rem;padding:.6rem 1rem;font-size:.7rem;font-weight:600;transition:all .2s;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 4px 20px #0006}.cheat-toggle:hover{box-shadow:0 0 20px #00fff033}.cheat-toggle-hint{border-color:#00fff0bf;animation:1.6s ease-in-out infinite cheat-hint-pulse;box-shadow:0 0 24px #00fff059}@keyframes cheat-hint-pulse{0%,to{transform:scale(1);box-shadow:0 0 16px #00fff040}50%{transform:scale(1.04);box-shadow:0 0 28px #00fff073}}.cheat-sheet{background:var(--bg-panel);border-left:1px solid var(--border-glow);z-index:65;pointer-events:none;flex-direction:column;width:320px;max-width:90vw;height:100dvh;padding:1rem 1.25rem;transition:transform .3s;display:flex;position:fixed;top:0;right:0;overflow:hidden;transform:translate(100%);box-shadow:-8px 0 30px #00000080}.cheat-sheet-open{pointer-events:auto;transform:translate(0)}.cheat-backdrop{z-index:62;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;appearance:none;background:#00000080;border:none;margin:0;padding:0;position:fixed;inset:0}.cheat-header{color:var(--cyan);flex-shrink:0;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.cheat-sheet-scroll{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding-right:.15rem;overflow-y:auto}.cheat-sheet-primary{flex-shrink:0}.cheat-sheet-tactics{border-top:1px solid var(--border-dim);margin-top:.65rem;padding-top:.65rem}.cheat-tactics-scroll-hint{display:none}.cheat-rules-tactics{padding-right:0}.cheat-rules-core ul:last-child{margin-bottom:0}.cheat-close-btn{min-width:36px;min-height:36px;color:var(--cyan);cursor:pointer;background:#00fff014;border:1px solid #00fff059;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:.25rem;display:flex}.cheat-toggle-open{z-index:70}.cheat-header h2{font-family:var(--font-display);letter-spacing:.08em;margin:0;font-size:1rem;font-weight:700}.cheat-subtitle{color:var(--text-muted);margin:0 0 .75rem;font-size:.85rem;line-height:1.4}.formation-list{margin:0 0 .75rem;padding:0;list-style:none}.formation-item{border-bottom:1px solid var(--border-dim);align-items:flex-start;gap:.75rem;padding:.65rem 0;display:flex;position:relative}.formation-rank{font-family:var(--font-display);min-width:24px;font-size:1.2rem;font-weight:800}.formation-info{flex-direction:column;flex:1;gap:.15rem;display:flex}.formation-name{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;font-weight:700}.formation-desc{color:var(--text-muted);font-size:.8rem;line-height:1.3}.formation-arrow{color:var(--text-muted);opacity:.4;position:absolute;bottom:-7px;right:0}.cheat-rules h3{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--magenta);margin:0 0 .4rem;font-size:.75rem;font-weight:600}.cheat-rules ul{color:var(--text-muted);margin:0 0 1rem;padding-left:1.2rem;font-size:.85rem;line-height:1.5}.cheat-rules strong{color:var(--text-primary)}.game-over-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#050508d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.game-over-panel{text-align:center;background:var(--bg-panel);border:1px solid var(--border-glow);border-radius:8px;max-width:400px;padding:2.5rem;box-shadow:0 0 40px #00fff01a}.game-over-panel h2{font-family:var(--font-display);letter-spacing:.1em;color:var(--cyan);margin:0 0 .75rem;font-size:1.5rem}.game-over-panel p{color:var(--text-muted);margin-bottom:1.5rem}.lobby-content{width:100%;max-width:420px}.lobby-title{font-family:var(--font-display);letter-spacing:.1em;color:var(--cyan);justify-content:center;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:1.25rem;display:flex}.field-label{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.35rem;font-size:.75rem;display:block}.field-input{width:100%;font-family:var(--font-body);background:var(--bg-elevated);border:1px solid var(--border-dim);color:var(--text-primary);border-radius:4px;outline:none;margin-bottom:1rem;padding:.65rem .85rem;font-size:1rem;transition:border-color .2s}.field-input:focus{border-color:var(--cyan);box-shadow:0 0 12px #00fff01a}.room-code-input{font-family:var(--font-display);letter-spacing:.25em;text-align:center;text-transform:uppercase;font-size:1.4rem}.menu-btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.menu-btn-ghost:hover{color:var(--text-primary);border-color:var(--border-dim);box-shadow:none}.lobby-error{color:#ff6b8a;text-align:left;background:#ff2d551f;border:1px solid #ff2d5566;border-radius:4px;margin-bottom:1rem;padding:.65rem .85rem;font-size:.85rem}.lobby-warn{color:#ffe600;background:#ffe60014;border-color:#ffe60059;align-items:flex-start;gap:.5rem;display:flex}.room-code-display{background:var(--bg-elevated);border:1px solid #00fff04d;border-radius:6px;justify-content:center;align-items:center;gap:.75rem;margin:1.5rem 0;padding:1rem;display:flex}.room-code-value{font-family:var(--font-display);letter-spacing:.3em;color:var(--cyan);text-shadow:0 0 20px #00fff066;font-size:2rem;font-weight:800}.copy-btn{border:1px solid var(--border-dim);color:var(--cyan);cursor:pointer;background:0 0;border-radius:4px;padding:.4rem;transition:all .2s;display:flex}.copy-btn:hover{border-color:var(--cyan);box-shadow:0 0 10px #00fff026}.waiting-hint{color:var(--text-muted);justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.9rem;display:flex}.room-code-badge{font-family:var(--font-display);letter-spacing:.1em;color:var(--magenta);border:1px solid #ff00aa4d;border-radius:3px;padding:.2rem .5rem;font-size:.65rem}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hand-cards-hidden{pointer-events:none}.game-layout-mobile{height:100dvh;max-height:100dvh;padding:.25rem;padding-bottom:env(safe-area-inset-bottom,.25rem);gap:.25rem;overflow:hidden}.game-layout-mobile .game-header{flex-shrink:0;gap:.25rem;padding:.35rem .5rem}.game-layout-mobile .header-title{font-size:.75rem}.game-layout-mobile .header-mode{display:none}.game-layout-mobile .header-center{flex:1;min-width:0}.game-layout-mobile .turn-indicator{font-size:.7rem}.game-layout-mobile .game-message{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.65rem;overflow:hidden}.game-layout-mobile .header-left{flex-direction:column;flex-shrink:0;align-items:flex-start;gap:.05rem;min-width:0}.game-layout-mobile .deck-count-mobile{font-size:.6rem;line-height:1.15;display:block}.game-layout-mobile .header-right{gap:.35rem;padding-right:.15rem}.game-layout-mobile .deck-count{font-size:.65rem}.game-layout-mobile .room-code-badge{padding:.15rem .35rem;font-size:.55rem}.board-wrap{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.board-scroll-hint,.board-scroll-btn{display:none}.hand-panel-compact{flex-shrink:0;padding:.3rem .6rem!important}.hand-panel-compact .hand-header{margin-bottom:0}.hand-panel-mine{flex-shrink:0}.hand-hint{color:var(--cyan);letter-spacing:.04em;text-align:center;margin:0 0 .35rem;font-size:.7rem}.hand-card-selected .card-face{outline:2px solid var(--cyan);outline-offset:2px;transform:translateY(-4px);box-shadow:0 0 16px #00fff066}.hand-cards-mini{gap:.25rem!important;min-height:auto!important;padding:.15rem 0!important}.hand-more{color:var(--text-muted);align-self:center;font-size:.65rem}.slot-row-deploy-target{cursor:pointer;touch-action:manipulation;border-radius:4px;outline:2px dashed #00fff080;min-height:44px;background:#00fff01f!important}.planet-lane-deployable{cursor:pointer;touch-action:manipulation;z-index:2;border-color:#00fff073;position:relative;box-shadow:0 0 12px #00fff026}.planet-deploy-overlay{z-index:12;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin:0;padding:0;position:absolute;inset:0}.game-layout-mobile.game-deploy-mode .board{touch-action:none}.online-play-error{z-index:250;padding:.55rem .85rem;padding-top:max(.55rem, env(safe-area-inset-top));color:#fff;background:#a02020f5;justify-content:space-between;align-items:center;gap:.75rem;font-size:.85rem;line-height:1.3;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 12px #00000059}.online-play-error-dismiss{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff73;border-radius:4px;flex-shrink:0;padding:.2rem .55rem;font-size:.75rem}.game-layout-mobile .card-face:not(.card-compact){width:76px;height:107px}.game-layout-mobile .hand-cards .card-center-value,.game-layout-mobile .planet-lane .card-center-value{font-size:1.9rem}.game-layout-mobile .hand-cards .card-value,.game-layout-mobile .planet-lane .card-value{font-size:1rem}.game-layout-mobile .hand-cards{min-height:auto}.hand-panel-touch{padding:.2rem .4rem;padding-bottom:calc(.15rem + env(safe-area-inset-bottom,0px))}.hand-header-touch{align-items:center;gap:.35rem;margin-bottom:.12rem}.hand-header-touch .hand-label{font-size:.6rem}.hand-header-touch .hand-count{flex-shrink:0;font-size:.6rem}.hand-hint-inline{color:var(--cyan);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;min-width:0;margin-left:auto;font-size:.55rem;overflow:hidden}.game-layout-mobile .hand-panel-touch .hand-cards{align-items:flex-end;gap:.35rem;padding:0}.game-layout-mobile .board-wrap{flex:1 1 0;min-height:0}.game-layout-mobile .hand-panel-mine{flex-shrink:0}.cheat-toggle-mobile{padding:.45rem .65rem;font-size:.6rem;top:.5rem;bottom:auto;right:.5rem}.game-layout-landscape .cheat-toggle-mobile{top:auto;right:auto;bottom:max(.35rem, env(safe-area-inset-bottom));left:max(.35rem, env(safe-area-inset-left))}.cheat-toggle-mobile span{display:none}@media (width<=768px){html,body,#root{height:100dvh;overflow:hidden}.game-layout{height:100dvh;max-height:100dvh;overflow:hidden}.game-layout-mobile .hand-panel-mine{border-radius:6px 6px 0 0;padding:0}.game-layout-mobile .hand-card-wrapper{scroll-snap-align:start}.game-layout-mobile .board-wrap{flex:1 1 0;min-height:0}.game-layout-mobile .hand-panel-touch .hand-cards{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}.board-wrap{flex:1;min-height:0}.board-scroll-hint{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;flex-shrink:0;justify-content:center;align-items:center;gap:.35rem;padding:.15rem 0;font-size:.6rem;display:flex}.board-scroll-btn{z-index:4;border:1px solid var(--border-dim);width:28px;height:48px;color:var(--cyan);cursor:pointer;background:#0c0e14d9;border-radius:4px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.board-scroll-left{left:0}.board-scroll-right{right:0}.board{-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;flex:1;justify-content:flex-start;align-items:stretch;gap:.4rem;min-height:0;padding:.15rem 1.75rem;scroll-padding:0 .5rem;overflow:auto hidden}.planet-lane{scroll-snap-align:center;isolation:isolate;flex:0 0 58px;min-width:58px;max-width:58px;padding:.1rem;overflow:hidden}.planet-lane-gravity-well{flex:0 0 66px;min-width:66px;max-width:66px}.slot-row{justify-content:center;align-items:center;gap:0;width:100%;height:40px;min-height:40px;padding:0;display:flex;position:relative}.slot-row-opponent{margin-bottom:.15rem}.slot-row-player{margin-top:.15rem}.slot-row .card-slot,.slot-row .card-slot-empty{flex-shrink:0;width:24px;height:34px;margin-left:-7px;position:relative}.slot-row .card-slot:first-child,.slot-row .card-slot-empty:first-child{z-index:1;margin-left:0;transform:rotate(-5deg)}.slot-row .card-slot:nth-child(2),.slot-row .card-slot-empty:nth-child(2){z-index:2;transform:translateY(-2px)}.slot-row .card-slot:nth-child(3),.slot-row .card-slot-empty:nth-child(3){z-index:3;transform:rotate(5deg)}.slot-row-wide .card-slot,.slot-row-wide .card-slot-empty{width:20px;height:30px;margin-left:-8px}.slot-row-wide .card-slot:first-child,.slot-row-wide .card-slot-empty:first-child{margin-left:0;transform:rotate(-6deg)}.slot-row-wide .card-slot:nth-child(2),.slot-row-wide .card-slot-empty:nth-child(2){transform:translateY(-2px)rotate(-2deg)}.slot-row-wide .card-slot:nth-child(3),.slot-row-wide .card-slot-empty:nth-child(3){transform:translateY(-1px)rotate(2deg)}.slot-row-wide .card-slot:nth-child(4),.slot-row-wide .card-slot-empty:nth-child(4){z-index:4;transform:rotate(6deg)}.slot-row-wide .slot-placeholder{width:18px;height:26px}.slot-row-wide .card-compact{width:20px!important;height:30px!important}.slot-row-opponent .card-slot:nth-child(2),.slot-row-opponent .card-slot-empty:nth-child(2){transform:translateY(2px)}.slot-placeholder{width:22px;height:30px}.card-compact{width:24px!important;height:34px!important}.planet-lane .card-compact .card-center-value{font-size:.8rem}.planet-lane .card-compact .card-corner,.planet-lane .card-compact .card-suit-label{display:none}.planet-lane .card-compact .card-value{font-size:.55rem}.slot-row-deploy-target{height:44px;min-height:44px}.planet-orb{width:28px;height:28px}.planet-crosshair,.planet-lock-icon{width:14px;height:14px}.planet-name{display:none}.planet-index{font-size:.5rem}.formation-badge{font-size:.4rem}.claim-btn{min-width:44px;min-height:28px;padding:.35rem .5rem;font-size:.5rem}.capture-label{font-size:.4rem}.planet-core{gap:.1rem;padding:.2rem 0}.menu-screen{min-height:100dvh;padding:1rem}.menu-btn{min-height:48px;font-size:.8rem}.field-input{min-height:48px;font-size:16px}.cheat-sheet{width:100%;max-width:100%;padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top,0px))}.game-over-panel{margin:1rem;padding:1.5rem}}.game-layout-landscape{height:100dvh;max-height:100dvh;padding:.15rem;padding-left:max(.15rem, env(safe-area-inset-left));padding-right:max(.15rem, env(safe-area-inset-right));gap:.15rem;overflow:hidden}.game-layout-landscape .game-header{flex-shrink:0;padding:.2rem .35rem}.game-layout-landscape .header-title{font-size:.65rem}.game-layout-landscape .deck-count-mobile{font-size:.52rem}.game-layout-landscape .header-right{gap:.25rem}.game-layout-landscape .turn-indicator{font-size:.65rem}.game-layout-landscape .game-message{display:none}.game-layout-landscape .board-scroll-hint,.game-layout-landscape .board-scroll-btn{display:none!important}.game-layout-landscape .board-wrap{flex:1;min-height:0}.game-layout-landscape .board{scroll-snap-type:none;flex:1;grid-template-columns:repeat(9,minmax(0,1fr));align-items:stretch;gap:.1rem;width:100%;min-height:0;display:grid;padding:0!important;overflow:hidden!important}.game-layout-landscape .planet-lane{width:100%;padding:.08rem;flex:none!important;min-width:0!important;max-width:none!important}.game-layout-landscape .slot-row{height:30px;min-height:30px}.game-layout-landscape .slot-row .card-slot,.game-layout-landscape .slot-row .card-slot-empty{width:18px;height:26px;margin-left:-4px}.game-layout-landscape .slot-placeholder{width:16px;height:24px}.game-layout-landscape .planet-lane .card-compact,.game-layout-landscape .hand-cards .card-compact{width:18px!important;height:26px!important}.game-layout-landscape .planet-lane .card-compact .card-center-value{font-size:.6rem}.game-layout-landscape .planet-core{gap:.05rem;padding:.08rem 0}.game-layout-landscape .planet-orb{width:18px;height:18px}.game-layout-landscape .planet-crosshair,.game-layout-landscape .planet-lock-icon{width:11px;height:11px}.game-layout-landscape .planet-index{font-size:.4rem}.game-layout-landscape .formation-badge{text-align:center;font-size:.32rem;line-height:1.1}.game-layout-landscape .claim-btn{min-width:auto;min-height:auto;padding:.15rem .2rem;font-size:.32rem}.game-layout-landscape .capture-label{font-size:.32rem}.game-layout-landscape .slot-row-deploy-target{height:32px;min-height:32px}.game-layout-landscape .slot-row-wide .card-slot,.game-layout-landscape .slot-row-wide .card-slot-empty{width:15px;height:22px;margin-left:-5px}.game-layout-landscape .slot-row-wide .card-compact{width:15px!important;height:22px!important}.game-layout-landscape .hand-panel-mine{flex-shrink:0}.game-layout-landscape .hand-panel-touch{padding:.1rem .25rem;padding-bottom:max(.1rem, env(safe-area-inset-bottom))}.game-layout-landscape .hand-header-touch{margin-bottom:.06rem}.game-layout-landscape .hand-header-touch .hand-label,.game-layout-landscape .hand-header-touch .hand-count{font-size:.52rem}.game-layout-landscape .hand-hint-inline{font-size:.48rem}.game-layout-landscape .hand-cards{justify-content:center;min-height:auto}.game-layout-landscape .card-face:not(.card-compact){width:60px;height:85px}.game-layout-landscape .hand-cards .card-center-value,.game-layout-landscape .planet-lane .card-center-value{font-size:1.55rem}.game-layout-landscape .hand-hint{display:none}.cheat-sheet-landscape{left:50%;right:auto;top:max(.2rem, env(safe-area-inset-top,.2rem));width:min(96vw,720px);height:calc(100dvh - max(.4rem, env(safe-area-inset-top,.2rem)) - max(.2rem, env(safe-area-inset-bottom,.2rem)));max-height:calc(100dvh - max(.4rem, env(safe-area-inset-top,.2rem)) - max(.2rem, env(safe-area-inset-bottom,.2rem)));border:1px solid var(--border-glow);border-left:1px solid var(--border-glow);pointer-events:none;border-radius:8px;flex-direction:column;padding:.35rem .5rem;transition:transform .25s,opacity .25s;display:flex;overflow:hidden;transform:translate(-50%,-108%)}.cheat-sheet-landscape.cheat-sheet-open{pointer-events:auto;transform:translate(-50%)}.cheat-sheet-landscape .cheat-header{margin-bottom:.15rem}.cheat-sheet-landscape .cheat-header h2{font-size:.78rem}.cheat-sheet-landscape .cheat-sheet-scroll{padding-right:.1rem}.cheat-sheet-landscape .formation-list{grid-template-columns:1fr 1fr;gap:0 .45rem;margin:0 0 .35rem;display:grid}.cheat-sheet-landscape .formation-item{border-bottom:none;padding:.12rem 0}.cheat-sheet-landscape .formation-item:nth-child(5){grid-column:1/-1}.cheat-sheet-landscape .formation-rank{min-width:14px;font-size:.78rem}.cheat-sheet-landscape .formation-name{font-size:.62rem}.cheat-sheet-landscape .formation-desc{font-size:.54rem;line-height:1.2}.cheat-sheet-landscape .cheat-rules-core{grid-template-columns:1fr 1fr;column-gap:.45rem;margin-bottom:.15rem;display:grid}.cheat-sheet-landscape .cheat-sheet-tactics{margin-top:.35rem;padding-top:.35rem}.cheat-sheet-landscape .cheat-rules-tactics h3{margin:0 0 .1rem;font-size:.58rem}.cheat-sheet-landscape .cheat-rules-tactics>ul:first-of-type{grid-template-columns:1fr 1fr;column-gap:.45rem;margin-bottom:.35rem;display:grid}.cheat-sheet-landscape .tactic-cheat-list{grid-template-columns:1fr 1fr;gap:0 .45rem;display:grid}.cheat-sheet-landscape .tactic-cheat-list li{margin-bottom:.3rem;padding-bottom:.25rem}.cheat-sheet-landscape .tactic-cheat-desc{margin:.08rem 0 0;font-size:.5rem;line-height:1.25}.cheat-sheet-landscape .cheat-rules h3{margin:0 0 .1rem;font-size:.58rem}.cheat-sheet-landscape .cheat-rules ul{margin:0 0 .25rem;padding-left:.7rem;font-size:.52rem;line-height:1.25}.cheat-sheet-landscape .cheat-rules ul:last-child{margin-bottom:0}.cheat-sheet-landscape .tactic-cheat-cat{font-size:.48rem}.game-layout-desktop{min-height:100vh;max-height:100dvh}.game-layout-desktop .board-wrap{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.game-layout-desktop .board{scroll-snap-type:none;flex:1;grid-template-columns:repeat(9,minmax(0,1fr));align-items:stretch;gap:clamp(.12rem,.35vw,.45rem);width:100%;min-height:0;padding:.2rem .1rem;display:grid;overflow:hidden!important}.game-layout-desktop .planet-lane{justify-content:center;width:100%;height:100%;padding:clamp(.15rem,.25vw,.35rem) clamp(.08rem,.15vw,.2rem);flex:none!important;min-width:0!important;max-width:none!important}.game-layout-desktop .planet-lane-gravity-well{min-width:0!important;max-width:none!important}.game-layout-desktop .slot-row{justify-content:center;align-self:center;align-items:center;gap:0;width:100%;min-height:0;padding:2px}.game-layout-desktop .slot-row-opponent{margin-bottom:.08rem}.game-layout-desktop .slot-row-player{margin-top:.08rem}.game-layout-desktop .slot-row-wide{min-height:0}.game-layout-desktop .card-slot,.game-layout-desktop .card-slot-empty{box-sizing:border-box;flex-shrink:0;justify-content:center;align-items:center;width:clamp(32px,3.4vw,50px);height:clamp(46px,4.8vw,68px);display:flex;overflow:hidden}.game-layout-desktop .card-slot .card-face{box-sizing:border-box;max-width:100%;max-height:100%;width:100%!important;height:100%!important}.game-layout-desktop .slot-placeholder{box-sizing:border-box;width:100%;height:100%}.game-layout-desktop .slot-row:not(.slot-row-wide) .card-slot+.card-slot,.game-layout-desktop .slot-row:not(.slot-row-wide) .card-slot-empty+.card-slot,.game-layout-desktop .slot-row:not(.slot-row-wide) .card-slot+.card-slot-empty{margin-left:clamp(-7px,-.6vw,-4px)}.game-layout-desktop .slot-row-wide .card-slot,.game-layout-desktop .slot-row-wide .card-slot-empty{width:clamp(24px,2.2vw,36px);height:clamp(36px,3.2vw,52px);margin-left:clamp(-5px,-.45vw,-3px)}.game-layout-desktop .slot-row-wide .card-slot:first-child,.game-layout-desktop .slot-row-wide .card-slot-empty:first-child{margin-left:0}.game-layout-desktop .slot-row-wide .card-face{width:100%!important;height:100%!important}.game-layout-desktop .slot-row .card-center-only .card-center-value{font-size:clamp(.95rem,1.25vw,1.35rem)}.game-layout-desktop .slot-row-wide .card-center-only .card-center-value{font-size:clamp(.78rem,1vw,1.1rem)}.game-layout-desktop .planet-core{flex:none;gap:.18rem;width:100%;padding:.18rem 0}.game-layout-desktop .planet-orb{width:clamp(32px,3.2vw,44px);height:clamp(32px,3.2vw,44px)}.game-layout-desktop .planet-name{font-size:clamp(.64rem,.82vw,.82rem);line-height:1.15}.game-layout-desktop .planet-index{font-size:clamp(.6rem,.72vw,.74rem);font-weight:600}.game-layout-desktop .formation-badge{font-size:clamp(.54rem,.68vw,.68rem)}.game-layout-desktop .claim-btn{padding:.14rem .35rem;font-size:clamp(.52rem,.62vw,.62rem)}.game-layout-desktop .env-tactic-badge{font-size:clamp(.48rem,.58vw,.58rem)}.game-layout-desktop .slot-row-deploy-target{min-height:0}.game-layout-desktop .hand-panel-mine{flex-shrink:0}.game-layout-desktop .hand-tactic-rails-stack{gap:.4rem}.game-layout-desktop .hand-tactic-rail{width:2.5rem;min-width:2.5rem;padding:.3rem .2rem}.game-layout-desktop .hand-tactic-rail-count{font-size:1.05rem}.game-layout-desktop .hand-cards{justify-content:flex-start;gap:.5rem;min-height:88px}@media (width<=900px){.game-layout-mobile .board{justify-content:flex-start}.game-layout-mobile .planet-lane{min-width:88px}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .board{justify-content:flex-start;overflow-x:auto}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .planet-lane{flex:none;min-width:168px;max-width:184px}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .planet-lane-gravity-well{min-width:200px;max-width:216px}}@media (width>=769px){.game-layout:not(.game-layout-mobile){gap:.65rem;max-width:1680px;margin:0 auto;padding:.65rem 1rem}.game-layout-desktop{gap:.5rem;width:100%;max-width:none;padding:.5rem .75rem}.game-layout:not(.game-layout-mobile) .game-header{padding:.6rem 1.15rem}.game-layout:not(.game-layout-mobile) .board-wrap{flex-direction:column;flex:1;min-height:0;display:flex}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .board{align-items:stretch;gap:.55rem;min-height:340px;padding:.35rem .25rem}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .planet-lane{min-width:188px;max-width:204px;padding:.35rem .3rem}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .planet-lane-gravity-well{min-width:224px;max-width:240px}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .slot-row{gap:5px;min-height:88px;padding:4px}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .slot-row-opponent{margin-bottom:.35rem}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .slot-row-player{margin-top:.35rem}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .card-slot,.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .card-slot-empty{width:56px;height:80px}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .slot-placeholder{width:52px;height:76px}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .slot-row-wide{min-height:76px}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .slot-row-wide .card-slot,.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .slot-row-wide .card-slot-empty{width:50px;height:70px}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .slot-row-wide .slot-placeholder{width:46px;height:66px}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .slot-row-wide .card-face{width:50px;height:70px}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .planet-core{gap:.2rem;padding:.4rem 0}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .planet-orb{width:42px;height:42px}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .planet-name{font-size:.58rem}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .formation-badge{font-size:.48rem}.game-layout:not(.game-layout-mobile) .hand-panel{padding:.65rem 1.15rem}.game-layout:not(.game-layout-mobile) .hand-panel-mine{margin-top:.15rem}.game-layout:not(.game-layout-mobile) .hand-cards{justify-content:center;gap:.65rem;min-height:96px}.game-layout:not(.game-layout-mobile) .hand-tactic-rail{width:2.35rem;padding:.25rem .2rem}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .slot-row .card-center-only .card-center-value{font-size:1.35rem}.game-layout:not(.game-layout-mobile):not(.game-layout-desktop) .slot-row-wide .card-center-only .card-center-value{font-size:1.15rem}.hand-card-guile,.sabotage-card-pickable,.defector-card-pickable,.redeploy-card-pickable{cursor:pointer}.game-layout:not(.game-layout-mobile) .hand-tactic-rail-count{font-size:1.15rem}}@media (width<=600px){.game-header{flex-wrap:nowrap}.header-left,.header-right{flex-shrink:0}}.hand-cards-row{align-items:stretch;gap:.25rem;width:100%;min-width:0;display:flex}.hand-cards-row-tactics .hand-cards{flex:1;min-width:0}.hand-tactic-rails-stack{flex-direction:column;flex-shrink:0;align-self:center;gap:.35rem;display:flex}.hand-tactic-rail{border:1px solid var(--border-dim);text-align:center;background:#080a10d9;border-radius:4px;flex-direction:column;flex-shrink:0;justify-content:center;align-self:center;align-items:center;gap:.1rem;width:2.1rem;padding:.2rem .15rem;display:flex}.hand-tactic-rail-left{border-color:#00fff040}.hand-tactic-rail-right{border-color:#ff00c840}.hand-tactic-rail-warn{background:#38bdf814;border-color:#38bdf880}.hand-tactic-rail-title{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:.45rem;font-weight:600;line-height:1.1}.hand-tactic-rail-count{font-family:var(--font-display);color:var(--cyan);font-size:1.1rem;font-weight:800;line-height:1}.hand-tactic-rail-right .hand-tactic-rail-count{color:var(--magenta)}.hand-tactic-rail-sub{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.38rem;line-height:1}.hand-tactic-rail-alert{color:#38bdf8;text-transform:uppercase;flex-direction:column;align-items:center;gap:.05rem;margin-top:.15rem;font-size:.38rem;font-weight:600;line-height:1;display:flex}.game-layout-mobile .hand-tactic-rail{width:1.85rem}.game-layout-mobile .hand-tactic-rail-count{font-size:.95rem}.game-layout-landscape .hand-cards-row-tactics .hand-cards{flex:1;order:1;min-width:0}.game-layout-landscape .hand-cards-row-tactics .hand-tactic-rails-stack{order:2}.game-layout-landscape .hand-cards-row-tactics{align-items:center;gap:.3rem}.game-layout-landscape .hand-tactic-rail{gap:.12rem;width:2.55rem;min-width:2.55rem;padding:.22rem .18rem}.game-layout-landscape .hand-tactic-rail-title{font-size:.42rem}.game-layout-landscape .hand-tactic-rail-count{font-size:.95rem}.game-layout-landscape .hand-tactic-rail-sub{letter-spacing:.02em;white-space:nowrap;font-size:.36rem}.draw-chooser{bottom:max(.5rem, env(safe-area-inset-bottom));z-index:45;background:var(--bg-panel);border:1px solid var(--border-glow);border-radius:8px;max-width:96vw;padding:.6rem .75rem;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #00000080}.draw-chooser-title{text-align:center;color:var(--cyan);margin:0 0 .5rem;font-size:.75rem}.draw-chooser-buttons{gap:.5rem;display:flex}.draw-chooser-btn{min-width:100px;color:var(--cyan);cursor:pointer;font-family:var(--font-display);background:#00fff00f;border:1px solid #00fff04d;border-radius:6px;flex-direction:column;align-items:center;gap:.2rem;padding:.5rem .75rem;font-size:.65rem;display:flex}.draw-chooser-btn:disabled{opacity:.35;cursor:not-allowed}.draw-chooser-tactics{color:var(--magenta);background:#ff00c80f;border-color:#ff00c859}.draw-chooser-label{letter-spacing:.06em;font-weight:600}.draw-chooser-count{opacity:.8;font-size:.55rem}.tactic-modal-overlay{z-index:80;background:#050508bf;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.tactic-modal{background:var(--bg-panel);border:1px solid var(--border-glow);border-radius:8px;width:100%;max-width:400px;max-height:80dvh;padding:1rem;overflow-y:auto}.tactic-modal h3{font-family:var(--font-display);color:var(--cyan);margin:0 0 .5rem;font-size:.85rem}.rules-intro-overlay{z-index:90;background:#050508e0;justify-content:center;align-items:center;padding:.75rem;display:flex;position:fixed;inset:0}.rules-intro-modal{background:var(--bg-panel);border:1px solid var(--border-glow);border-radius:8px;flex-direction:column;width:100%;max-width:520px;max-height:min(88dvh,540px);padding:1rem 1.1rem;display:flex;overflow:hidden;box-shadow:0 12px 48px #0000008c}.rules-intro-header{color:var(--cyan);flex-shrink:0;align-items:center;gap:.45rem;margin-bottom:.45rem;display:flex}.rules-intro-header h2{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.92rem}.rules-intro-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.rules-intro-lead{color:var(--text-muted);margin:0 0 .55rem;font-size:.82rem;line-height:1.35}.rules-intro-grid{grid-template-columns:1fr 1fr;gap:.45rem .75rem;margin-bottom:.55rem;display:grid}.rules-intro-list{color:var(--text-primary);margin:0;padding-left:1rem;font-size:.78rem;line-height:1.35}.rules-intro-list li{margin-bottom:.3rem}.rules-intro-list li:last-child{margin-bottom:0}.rules-intro-win{align-items:flex-start;gap:.3rem;margin-left:-1rem;list-style:none;display:flex}.rules-intro-inline-icon{color:#ffe600;flex-shrink:0;margin-top:.12rem}.rules-intro-list-secondary{padding-left:1rem}.rules-intro-cheat-hint{color:var(--text-primary);background:#ffe60012;border:1px solid #ffe60047;border-radius:4px;align-items:flex-start;gap:.45rem;margin:0;padding:.5rem .6rem;font-size:.76rem;line-height:1.35;display:flex}.rules-intro-cheat-icon{color:#ffe600;flex-shrink:0;margin-top:.08rem}.rules-intro-actions{border-top:1px solid var(--border-dim);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:.45rem;margin-top:.65rem;padding-top:.55rem;display:flex}.rules-intro-actions .menu-btn{flex:auto;justify-content:center;min-width:7rem}.rules-intro-modal-compact{max-width:min(96vw,480px);max-height:calc(100dvh - 1rem);padding:.65rem .75rem}.rules-intro-modal-compact .rules-intro-header h2{font-size:.78rem}.rules-intro-modal-compact .rules-intro-lead,.rules-intro-modal-compact .rules-intro-list,.rules-intro-modal-compact .rules-intro-cheat-hint{font-size:.7rem;line-height:1.3}.rules-intro-modal-compact .rules-intro-grid{grid-template-columns:1fr;gap:.25rem;margin-bottom:.4rem}.rules-intro-modal-compact .rules-intro-actions{margin-top:.45rem;padding-top:.45rem}.rules-intro-modal-compact .rules-intro-actions .menu-btn{min-width:5.5rem;padding:.45rem .55rem;font-size:.62rem}.rules-intro-modal-landscape{max-width:min(96vw,640px);max-height:calc(100dvh - .5rem);padding:.45rem .65rem}.rules-intro-modal-landscape .rules-intro-body{overflow:hidden}.rules-intro-modal-landscape .rules-intro-grid{grid-template-columns:1fr 1fr;gap:.2rem .55rem;margin-bottom:.35rem}.rules-intro-modal-landscape .rules-intro-header{margin-bottom:.25rem}.rules-intro-modal-landscape .rules-intro-header h2{font-size:.68rem}.rules-intro-modal-landscape .rules-intro-lead{margin-bottom:.3rem;font-size:.64rem}.rules-intro-modal-landscape .rules-intro-list,.rules-intro-modal-landscape .rules-intro-cheat-hint{font-size:.62rem;line-height:1.25}.rules-intro-modal-landscape .rules-intro-list li{margin-bottom:.15rem}.rules-intro-modal-landscape .rules-intro-cheat-hint{padding:.35rem .45rem}.rules-intro-modal-landscape .rules-intro-actions{margin-top:.35rem;padding-top:.35rem}.rules-intro-modal-landscape .rules-intro-actions .menu-btn{min-width:5rem;padding:.35rem .5rem;font-size:.58rem}@media (width<=520px){.rules-intro-grid{grid-template-columns:1fr}}.game-layout-landscape .tactic-play-overlay{align-items:center;padding:.25rem}.game-layout-landscape .tactic-play-modal{max-height:calc(100dvh - .5rem);padding:.4rem .55rem;overflow:hidden}.game-layout-landscape .tactic-play-modal h3{margin-bottom:.2rem;font-size:.62rem}.tactic-modal-card-preview{flex-shrink:0;justify-content:center;display:flex}.modal-card-preview{border:1.5px solid var(--suit-border,var(--border-dim));background:var(--bg-elevated);width:52px;height:72px;box-shadow:0 0 8px var(--suit-glow,transparent), inset 0 0 12px var(--suit-bg,transparent);-webkit-user-select:none;user-select:none;border-radius:5px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.modal-card-preview-troop{background:var(--bg-elevated)}.modal-card-preview-value{font-family:var(--font-display);color:var(--suit-color,var(--text-primary));text-shadow:0 0 8px var(--suit-glow,transparent);font-size:1.3rem;font-weight:800;line-height:1}.modal-card-preview-value-wide{letter-spacing:-.04em;font-size:1.05rem}.modal-card-preview-tactic{background:linear-gradient(145deg,#1a1c28 0%,#12141c 100%);border-color:#ff00c859;gap:.15rem;padding:.2rem .1rem}.modal-card-preview-tactic-morale{border-color:#00fff066}.modal-card-preview-tactic-leader{background:linear-gradient(145deg,#221e14 0%,#14141c 100%);border-color:#ffd7508c}.modal-card-preview-tactic-environment{border-color:#b478ff73}.modal-card-preview-tactic-guile{border-color:#38bdf88c}.modal-card-preview-tactic-badge{opacity:.6;color:var(--magenta);position:absolute;top:3px;right:3px}.modal-card-preview-tactic-icon{color:var(--text-primary);flex-shrink:0}.modal-card-preview-tactic-label{font-family:var(--font-display);text-align:center;color:var(--text-primary);padding:0 .1rem;font-size:.34rem;line-height:1.1}.scout-return-pick .modal-card-preview{cursor:pointer}.game-layout-landscape .modal-card-preview{width:48px;height:66px}.game-layout-landscape .modal-card-preview-value{font-size:1.15rem}.game-layout-landscape .modal-card-preview-value-wide{font-size:.92rem}.game-layout-landscape .modal-card-preview-tactic-icon{width:14px;height:14px}.game-layout-landscape .modal-card-preview-tactic-label{font-size:.3rem}.tactic-target-list{flex-direction:column;gap:.35rem;display:flex}.tactic-target-btn{text-align:left;border:1px solid var(--border-dim);color:var(--text-primary);cursor:pointer;background:#00fff00f;border-radius:4px;padding:.5rem .65rem;font-size:.75rem}.tactic-target-discard{color:var(--magenta);border-color:#ff00c84d}.card-tactic{background:linear-gradient(145deg,#1a1c28 0%,#12141c 100%);border-color:#ff00c859!important}.card-tactic-morale{border-color:#00fff066!important}.card-tactic-leader{background:linear-gradient(145deg,#221e14 0%,#14141c 100%);border-color:#ffd7508c!important}.card-tactic-environment{border-color:#b478ff73!important}.card-tactic-guile{border-color:#38bdf88c!important}.card-tactic-blocked{opacity:.45;filter:grayscale(.5)}.hand-card-tactic-blocked{cursor:not-allowed}.tactic-badge{opacity:.6;position:absolute;top:3px;right:3px}.env-tactic-badge{text-align:center;border-radius:2px;padding:.1rem .2rem;font-size:.38rem;line-height:1.1}.env-tactic-mine{color:var(--cyan);border:1px solid #00fff04d}.env-tactic-opp{color:var(--magenta);border:1px solid #ff00c84d}.menu-toggle{color:var(--text-muted);cursor:pointer;align-items:center;gap:.5rem;padding:.35rem 0;font-size:.8rem;display:flex}.menu-toggle input{width:18px;height:18px;accent-color:var(--cyan)}.menu-setup-modal{max-width:360px}.menu-setup-desc{color:var(--text-muted);margin:0 0 1rem;font-size:.8rem;line-height:1.45}.menu-setup-actions{flex-direction:column;gap:.5rem;display:flex}.menu-setup-actions .menu-btn{justify-content:center;width:100%}.scout-modal-desc{color:var(--text-muted);margin:0 0 .75rem;font-size:.8rem;line-height:1.45}.scout-return-modal{max-width:400px}.scout-return-body{flex-direction:column;gap:.65rem;display:flex}.scout-return-cards{flex-flow:wrap;justify-content:center;gap:.65rem;display:flex}.scout-return-pick{background:var(--bg-elevated);border:2px solid var(--border-dim);cursor:pointer;border-radius:6px;justify-content:center;padding:.35rem;transition:border-color .15s,box-shadow .15s;display:flex}.scout-return-pick:hover{border-color:var(--border-glow)}.scout-keep-selected{box-shadow:0 0 8px #38bdf859;border-color:var(--cyan)!important}.scout-return-confirm{flex-shrink:0;justify-content:center;width:100%}.game-layout-landscape .scout-return-overlay{align-items:center}.game-layout-landscape .scout-return-modal{max-width:min(98vw,520px)}.game-layout-landscape .scout-modal-desc{margin-bottom:.3rem;font-size:.52rem;line-height:1.25}.game-layout-landscape .scout-return-body{gap:.3rem}.game-layout-landscape .scout-return-cards{flex-wrap:nowrap;gap:.35rem}.game-layout-landscape .scout-return-pick{flex:1;min-width:0;padding:.25rem}.game-layout-landscape .scout-return-confirm{min-height:1.4rem;padding:.22rem .35rem;font-size:.5rem}.game-layout-landscape .scout-draw-modal{max-width:min(92vw,380px)}.game-layout-landscape .scout-draw-modal .scout-modal-desc{margin-bottom:.35rem;font-size:.52rem;line-height:1.25}.game-layout-landscape .scout-draw-modal .draw-chooser-buttons{flex-direction:row;gap:.35rem}.game-layout-landscape .scout-draw-modal .draw-chooser-btn{gap:.2rem;padding:.35rem .45rem;font-size:.55rem}.game-layout-landscape .scout-draw-modal .draw-chooser-btn svg{width:14px;height:14px}.game-layout-landscape .scout-draw-modal .draw-chooser-label{font-size:.55rem}.game-layout-landscape .scout-draw-modal .draw-chooser-count{font-size:.48rem}.redeploy-banner{color:var(--text-primary);background:#38bdf81f;border:1px solid #38bdf866;border-radius:6px;flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;margin-bottom:.25rem;padding:.35rem .5rem;font-size:.72rem;display:flex}.redeploy-discard-btn{color:#faa;cursor:pointer;background:#ff505026;border:1px solid #ff505066;border-radius:4px;padding:.25rem .5rem;font-size:.65rem}.redeploy-card-pickable{cursor:pointer;outline-offset:2px;border-radius:4px;outline:2px solid #38bdf8b3;animation:1.4s ease-in-out infinite redeploy-pulse}.redeploy-card-source{outline:2px solid var(--cyan);outline-offset:2px;border-radius:4px}.planet-lane-redeploy-target{outline-offset:1px;cursor:pointer;background:#38bdf814;border-radius:6px;outline:2px solid #38bdf899}.planet-lane-redeploy-source{opacity:.92}@keyframes redeploy-pulse{0%,to{outline-color:#38bdf873}50%{outline-color:#38bdf8f2}}.redeploy-confirm-overlay{z-index:90}.redeploy-confirm-modal{text-align:center;max-width:340px}.redeploy-confirm-body{flex-direction:column;align-items:center;display:flex}.redeploy-confirm-copy{width:100%}.redeploy-confirm-card{flex-direction:column;align-items:center;gap:.35rem;margin-bottom:.65rem;display:flex}.redeploy-confirm-card-label{color:var(--text-muted);font-size:.8rem}.redeploy-confirm-prompt{color:var(--text-primary);margin:0 0 .85rem;font-size:.8rem;line-height:1.45}.redeploy-confirm-actions{flex-direction:column;gap:.45rem;display:flex}.redeploy-confirm-actions .menu-btn{justify-content:center;width:100%}.redeploy-confirm-discard{background:#ff505033;border-color:#ff505080}.game-layout-landscape .redeploy-confirm-modal{max-width:min(96vw,400px)}.game-layout-landscape .redeploy-confirm-body{text-align:left;flex-direction:row;align-items:center;gap:.45rem}.game-layout-landscape .redeploy-confirm-card{flex-shrink:0;gap:0;margin-bottom:0}.game-layout-landscape .redeploy-confirm-card-label{display:none}.game-layout-landscape .redeploy-confirm-copy{flex:1;min-width:0}.game-layout-landscape .redeploy-confirm-prompt{margin:0 0 .35rem;font-size:.56rem;line-height:1.3}.game-layout-landscape .redeploy-confirm-actions{flex-direction:row;gap:.3rem}.game-layout-landscape .redeploy-confirm-actions .menu-btn{letter-spacing:0;flex:1;width:auto;min-height:1.45rem;padding:.22rem .3rem;font-size:.5rem;line-height:1.15}.game-layout-landscape .redeploy-banner{margin-bottom:.15rem;padding:.2rem .35rem;font-size:.58rem}.game-layout-landscape .redeploy-discard-btn{padding:.15rem .35rem;font-size:.55rem}.sabotage-banner{color:var(--text-primary);background:#ff50501a;border:1px solid #ff505059;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:.25rem;padding:.35rem .5rem;font-size:.72rem;display:flex}.sabotage-card-pickable{cursor:pointer;outline-offset:2px;border-radius:4px;outline:2px solid #ff50508c;animation:1.4s ease-in-out infinite sabotage-pulse}.sabotage-card-source{outline-offset:2px;border-radius:4px;outline:2px solid #ff5050f2}@keyframes sabotage-pulse{0%,to{outline-color:#ff505066}50%{outline-color:#ff5050e6}}.sabotage-confirm-overlay{z-index:90}.sabotage-confirm-modal{text-align:center;max-width:340px}.sabotage-confirm-body{flex-direction:column;align-items:center;display:flex}.sabotage-confirm-copy{width:100%}.sabotage-confirm-card{flex-direction:column;align-items:center;gap:.35rem;margin-bottom:.65rem;display:flex}.sabotage-confirm-card-label{color:var(--text-muted);font-size:.8rem}.sabotage-confirm-prompt{color:var(--text-primary);margin:0 0 .85rem;font-size:.8rem;line-height:1.45}.sabotage-confirm-actions{flex-direction:column;gap:.45rem;display:flex}.sabotage-confirm-actions .menu-btn{justify-content:center;width:100%}.sabotage-confirm-yes{background:#ff505033;border-color:#ff505080}.game-layout-landscape .sabotage-confirm-modal{max-width:min(96vw,400px)}.game-layout-landscape .sabotage-confirm-body{text-align:left;flex-direction:row;align-items:center;gap:.45rem}.game-layout-landscape .sabotage-confirm-card{flex-shrink:0;gap:0;width:auto;margin-bottom:0}.game-layout-landscape .sabotage-confirm-card-label{display:none}.game-layout-landscape .sabotage-confirm-copy{flex:1;min-width:0}.game-layout-landscape .sabotage-confirm-prompt{margin:0 0 .35rem;font-size:.56rem;line-height:1.3}.game-layout-landscape .sabotage-confirm-actions{flex-direction:row;gap:.3rem}.game-layout-landscape .sabotage-confirm-actions .menu-btn{letter-spacing:0;flex:1;width:auto;min-height:1.45rem;padding:.22rem .3rem;font-size:.5rem;line-height:1.15}.game-layout-landscape .sabotage-banner{margin-bottom:.15rem;padding:.2rem .35rem;font-size:.58rem}.defector-banner{color:var(--text-primary);background:#bf5fff1a;border:1px solid #bf5fff59;border-radius:6px;flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;margin-bottom:.25rem;padding:.35rem .5rem;font-size:.72rem;display:flex}.defector-card-pickable{cursor:pointer;outline-offset:2px;border-radius:4px;outline:2px solid #bf5fff8c;animation:1.4s ease-in-out infinite defector-pulse}.defector-card-source{outline-offset:2px;border-radius:4px;outline:2px solid #bf5ffff2}@keyframes defector-pulse{0%,to{outline-color:#bf5fff66}50%{outline-color:#bf5fffe6}}.planet-lane-defector-target{outline-offset:1px;cursor:pointer;background:#bf5fff14;border-radius:6px;outline:2px solid #bf5fff99}.planet-lane-defector-source{opacity:.92}.defector-confirm-overlay{z-index:90}.defector-confirm-modal{text-align:center;max-width:340px}.defector-confirm-body{flex-direction:column;align-items:center;display:flex}.defector-confirm-copy{width:100%}.defector-confirm-card{flex-direction:column;align-items:center;gap:.35rem;margin-bottom:.65rem;display:flex}.defector-confirm-card-label{color:var(--text-muted);font-size:.8rem}.defector-confirm-prompt{color:var(--text-primary);margin:0 0 .85rem;font-size:.8rem;line-height:1.45}.defector-confirm-actions{flex-direction:column;gap:.45rem;display:flex}.defector-confirm-actions .menu-btn{justify-content:center;width:100%}.defector-confirm-yes{background:#bf5fff2e;border-color:#bf5fff73}.game-layout-landscape .defector-banner{margin-bottom:.15rem;padding:.2rem .35rem;font-size:.58rem}.game-layout-landscape .defector-confirm-modal{max-width:min(96vw,420px)}.game-layout-landscape .defector-confirm-body{text-align:left;flex-direction:row;align-items:center;gap:.45rem}.game-layout-landscape .defector-confirm-card{flex-shrink:0;gap:0;margin-bottom:0}.game-layout-landscape .defector-confirm-card-label{display:none}.game-layout-landscape .defector-confirm-prompt{margin:0 0 .35rem;font-size:.56rem;line-height:1.3}.game-layout-landscape .defector-confirm-actions{flex-direction:row;gap:.3rem}.game-layout-landscape .defector-confirm-actions .menu-btn{flex:1;width:auto;min-height:1.45rem;padding:.22rem .3rem;font-size:.5rem;line-height:1.15}.tactic-opponent-pending{top:max(3.5rem, calc(env(safe-area-inset-top,0px) + 3rem));z-index:45;color:var(--text-primary);pointer-events:none;background:#38bdf81f;border:1px solid #38bdf873;border-radius:6px;align-items:center;gap:.4rem;max-width:min(92vw,420px);padding:.4rem .75rem;font-size:.72rem;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000059}.tactic-opponent-pending-icon{color:#38bdf8;flex-shrink:0}.tactic-play-toast{top:max(3.5rem, calc(env(safe-area-inset-top,0px) + 3rem));z-index:85;width:min(92vw,400px);animation:.35s tactic-toast-in;position:fixed;left:50%;transform:translate(-50%)}.tactic-play-toast-inner{background:#0c0a18f5;border:1px solid #ff00c866;border-radius:8px;align-items:flex-start;gap:.65rem;padding:.75rem 2.25rem .75rem .85rem;display:flex;position:relative;box-shadow:0 8px 32px #0000008c,0 0 24px #ff00c81f}.tactic-play-toast-impact{border-color:#ff50508c;box-shadow:0 8px 32px #0000008c,0 0 28px #ff505033}.tactic-play-toast-icon{color:var(--magenta);flex-shrink:0;margin-top:.1rem}.tactic-play-toast-impact .tactic-play-toast-icon{color:#ff7070}.tactic-play-toast-text{flex-direction:column;gap:.2rem;min-width:0;display:flex}.tactic-play-toast-title{font-family:var(--font-display);letter-spacing:.06em;color:var(--cyan);text-transform:uppercase;font-size:.82rem;font-weight:700}.tactic-play-toast-desc{color:var(--text-primary);font-size:.78rem;line-height:1.4}.tactic-play-toast-sectors{color:var(--text-muted);letter-spacing:.04em;font-size:.65rem}.tactic-play-toast-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.15rem .35rem;font-size:1.25rem;line-height:1;position:absolute;top:.35rem;right:.4rem}.tactic-play-toast-dismiss:hover{color:var(--text-primary)}.planet-lane-tactic-highlight{outline-offset:2px;border-radius:6px;outline:2px solid #ff00c8b3;animation:1.2s ease-in-out infinite tactic-sector-pulse;box-shadow:0 0 16px #ff00c840}@keyframes tactic-toast-in{0%{opacity:0;transform:translate(-50%)translateY(-12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes tactic-sector-pulse{0%,to{outline-color:#ff00c873;box-shadow:0 0 8px #ff00c826}50%{outline-color:#ff00c8d9;box-shadow:0 0 20px #ff00c859}}.game-layout-landscape .tactic-play-toast{top:max(2.25rem, calc(env(safe-area-inset-top,0px) + 1.75rem));width:min(88vw,360px)}.game-layout-landscape .tactic-play-toast-title{font-size:.72rem}.game-layout-landscape .tactic-play-toast-desc{font-size:.68rem}.game-layout-landscape .tactic-opponent-pending{top:max(2.25rem, calc(env(safe-area-inset-top,0px) + 1.75rem));padding:.3rem .55rem;font-size:.62rem}.tactic-cheat-list{margin:0;padding:0;list-style:none}.tactic-cheat-list li{border-bottom:1px solid var(--border-dim);margin-bottom:.65rem;padding-bottom:.5rem}.tactic-cheat-list li:last-child{border-bottom:none;margin-bottom:0}.tactic-cheat-cat{color:var(--magenta);text-transform:uppercase;letter-spacing:.04em;margin-left:.35rem;font-size:.65rem;display:inline-block}.tactic-cheat-desc{color:var(--text-muted);margin:.25rem 0 0;font-size:.75rem;line-height:1.35}.tactic-hold-preview-layer{z-index:120;pointer-events:none;position:fixed;inset:0}.tactic-hold-preview{opacity:0;pointer-events:none;background:#080e18f5;border:1px solid #00fff073;border-radius:8px;width:min(280px,100vw - 20px);max-width:calc(100vw - 20px);padding:.65rem .75rem;transition:opacity .12s;position:fixed;box-shadow:0 8px 32px #0000008c,0 0 24px #00fff01f}.tactic-hold-preview-ready{opacity:1}.tactic-hold-preview-cat{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);margin-bottom:.2rem;font-size:.55rem;font-weight:600;display:block}.tactic-hold-preview-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:.35rem;font-size:.85rem;font-weight:700;line-height:1.2;display:block}.tactic-hold-preview-desc{color:var(--text-muted);margin:0;font-size:.78rem;line-height:1.45}.tactic-hold-preview-hint{letter-spacing:.06em;text-transform:uppercase;color:#00fff08c;margin-top:.45rem;font-size:.55rem;display:block}.game-layout-landscape .tactic-hold-preview{width:min(320px,100vw - 24px);padding:.55rem .65rem}.game-layout-landscape .tactic-hold-preview-title{font-size:.78rem}.game-layout-landscape .tactic-hold-preview-desc{font-size:.72rem;line-height:1.4}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
