:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17202a;background:#eef3f6;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,#root{min-height:100%}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.55}.appShell{width:min(1440px,100%);min-height:100vh;margin:0 auto;padding:20px}.topBar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #cdd8df}.topBar>div:first-child{min-width:0}.eyebrow{margin:0 0 4px;color:#3f6f85;font-size:.78rem;font-weight:700;letter-spacing:0;text-transform:uppercase}h1,h2,p{margin:0}h1{color:#16232b;font-size:1.7rem;line-height:1.1;letter-spacing:0}h2{color:#1d2c36;font-size:.96rem;line-height:1.2;letter-spacing:0}.connectionPanel{display:flex;align-items:center;gap:10px;min-width:0;color:#526371;font-size:.92rem}.connectionPanel>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connectionPanel button,.primaryButton,.secondaryButton{min-height:36px;border:1px solid #2d667c;border-radius:6px;background:#2d667c;color:#fff;padding:0 14px;font-weight:700}.secondaryButton{border-color:#9db4c0;background:#fff;color:#243743}.connectionPanel button{min-height:34px;border-color:#b9c8d1;background:#fff;color:#30414d}.legalInfoBanner{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:auto;border-top:1px solid #d5e0e6;padding:6px 0 0;color:#687b86;font-size:.72rem;line-height:1.1}.legalInfoBanner nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 12px}.legalInfoBanner a{border-radius:4px;color:#2d667c;font-weight:800;text-decoration:none}.legalInfoBanner a:hover,.legalInfoBanner a:focus-visible{color:#173f50;text-decoration:underline}.legalInfoBanner a[aria-current=page]{color:#17202a}.legalPage{display:grid;gap:16px;width:min(900px,100%);min-height:0;margin:0 auto}.legalPageHeader{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-bottom:1px solid #d5e0e6;padding-bottom:14px}.legalPageHeader h2{color:#16232b;font-size:1.42rem}.legalDocument{display:grid;gap:18px;padding-bottom:24px}.legalDocument section{display:grid;gap:8px;border-top:1px solid #e5edf1;padding-top:14px}.legalDocument p,.legalDocument li{color:#314753;font-size:.95rem;line-height:1.55}.legalDocument ul{display:grid;gap:6px;margin:0;padding-left:20px}.legalDocument code{border:1px solid #d6e3e9;border-radius:4px;background:#f6fafc;color:#18313d;padding:1px 4px;font-size:.9em}.lobbySections{display:grid;gap:18px;width:min(1040px,100%)}.lobbySection{display:grid;gap:8px}.lobbySectionTitle{color:#2f5668;font-size:.9rem;text-transform:uppercase}.lobbyGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,400px));gap:16px;width:100%}.lobbyGrid .panel h3{color:#1d2c36;font-size:.96rem;text-transform:none}.gameLayout{display:grid;grid-template-columns:minmax(230px,280px) minmax(0,1fr);gap:16px;align-items:start}.sidePanel{display:grid;gap:8px}.playArea{display:grid;gap:10px}.tutorialLayout .playArea{grid-template-rows:auto auto minmax(0,1fr)}.mobileThumbZone{display:none}.boardFocusStage{position:relative;display:grid;min-height:0}.boardFocusStage>.boardPanel{grid-area:1 / 1}.topGameStatus{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #b9ccd5;border-radius:8px;background:#fbfdfe;padding:12px 14px;box-shadow:0 12px 28px #25374614}.turnBannerCopy{display:grid;gap:4px;min-width:240px}.topGameStatus h2{color:#16232b;font-size:1.08rem}.phasePrompt{max-width:520px;color:#526b78;font-size:.84rem;font-weight:700;line-height:1.25}.victoryStatus{border-color:#8fc3a7;background:#f3fbf6}.defeatStatus{border-color:#d9aaa4;background:#fff7f5}.statusSummary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:0}.statusSummary div{min-width:116px;border:1px solid #d7e2e8;border-radius:6px;background:#fff;padding:6px 8px}.inviteCodeActions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.inviteCodeLabel{color:#607783;font-size:.66rem;font-weight:800;text-transform:uppercase}.inviteCodeText{min-width:0;color:#172631;font-weight:800;line-height:1;overflow-wrap:anywhere}.topBarInvite{flex:0 1 auto;max-width:min(440px,44vw);flex-wrap:nowrap;overflow:hidden;border:1px solid #cad8df;border-radius:6px;background:#fff;padding:4px 5px 4px 7px}.topBarInvite .inviteCodeText{flex:0 1 auto;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inviteButton{min-height:30px;padding:0 10px;font-size:.78rem;white-space:nowrap}.inviteStatusText{flex-basis:100%;color:#446571;font-size:.72rem;font-weight:800;line-height:1.2}.topBarInvite .inviteStatusText{flex:0 1 120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.postGameActions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.unitActionsPanel,.surveyPanel,.upgradePanel,.engineSummaryPanel{gap:8px}.upgradeChoiceList{display:grid;gap:8px}.upgradeChoice{display:grid;gap:8px;border:1px solid #d7e2e8;border-radius:8px;background:#f8fbfc;padding:9px}.upgradeChoice p{color:#3a4d58;font-size:.82rem;line-height:1.3}.upgradeChoice .secondaryButton{width:100%}.upgradeFocusPanel{position:absolute;z-index:3;top:50%;left:50%;width:min(640px,calc(100% - 32px));max-height:calc(100% - 40px);overflow:auto;transform:translate(-50%,-50%);box-shadow:0 24px 64px #18273138}.upgradeFocusPanel h2{font-size:1.22rem}.upgradeFocusPanel .upgradeChoiceList{grid-template-columns:repeat(3,minmax(0,1fr))}.botActivityPanel,.selectedObjectPanel{gap:8px}.selectedObjectSummary{display:grid;gap:6px}.selectedObjectSummary p{color:#3a4d58;font-size:.88rem;line-height:1.35}.dangerText{color:#8b312b;font-weight:800}.botActionList{display:grid;gap:6px;margin:0;padding:0;list-style:none}.botActionList li{border-left:3px solid #9d4b43;padding-left:8px;color:#334752;font-size:.84rem;line-height:1.3}.botActionList li.majorEvent{border-left-color:#c7962b;color:#202f38;font-weight:800}.actionButtonGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.actionList,.finishAction{display:grid;gap:6px}.finishAction{border-top:1px solid #edf2f4;padding-top:8px}h3{margin:0;color:#425563;font-size:.74rem;line-height:1.2;letter-spacing:0;text-transform:uppercase}.actionButtonRow{display:grid;gap:4px}.actionButtonRow .secondaryButton{width:100%;white-space:normal;padding-block:3px}.targetModeNotice{display:grid;gap:8px;border:1px solid #e4b1a9;border-radius:6px;background:#fff7f5;padding:10px}.targetModeNotice p{color:#8b312b;font-size:.84rem;font-weight:700;line-height:1.3}.targetModeNotice .secondaryButton{border-color:#b84d43;color:#8b312b}.actionReason,.actionReadyText{min-width:0;color:#667986;font-size:.78rem;line-height:1.25}.actionReadyText{color:#2f6e59;font-weight:700}.endTurnBlock{display:grid;gap:6px}.waitingTurnText{border:1px solid #cad6dd;border-radius:8px;background:#fff;color:#667986;padding:12px 14px;font-size:.86rem;font-weight:700}.panel{display:grid;gap:8px;border:1px solid #cad6dd;border-radius:8px;background:#fff;padding:10px;box-shadow:0 14px 32px #25374614}label{display:grid;gap:6px;color:#465763;font-size:.88rem;font-weight:700}input,select{width:100%;min-height:42px;border:1px solid #b7c7d1;border-radius:6px;padding:0 10px;color:#18252d;background:#fbfdfe}.factList{display:grid;gap:5px;margin:0}.factList div{display:grid;grid-template-columns:minmax(72px,.9fr) minmax(0,1.1fr);gap:8px;align-items:baseline}dt{color:#657784;font-size:.74rem;font-weight:700;text-transform:uppercase}dd{min-width:0;margin:0;color:#1f313b;font-size:.88rem;overflow-wrap:anywhere}.quietText{color:#667986;font-size:.92rem}.boardPanel{display:grid;grid-template-rows:auto minmax(0,1fr);align-items:center;justify-items:center;gap:8px;overflow:hidden;min-height:720px;border:1px solid #cad6dd;border-radius:8px;background:#d9e4ea;padding:20px;box-shadow:inset 0 0 0 1px #ffffff73}.boardViewport{position:relative;width:min(100%,900px);height:100%;min-height:0;overflow:hidden;overscroll-behavior:contain;touch-action:none}.boardCanvas{width:100%;height:100%;transform-origin:0 0;will-change:transform}.upgradeFocusBoard{background:#d5e0e5}.upgradeFocusBoard .boardLegend{opacity:.48}.upgradeFocusBoard .boardSvg{opacity:.38;filter:saturate(.55) contrast(.92);pointer-events:none}.upgradeFocusBoard .hexCell{cursor:default}.boardSvg{display:block;width:min(100%,900px);min-width:0;height:auto}.boardLegend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;width:min(100%,900px);color:#30414d;font-size:.76rem;font-weight:700;line-height:1.25}.boardLegend b{color:#172b36}.modeLegend{color:#245d82}.attackLegend{color:#8f2f2a}.hexCell{cursor:pointer;outline:none;touch-action:manipulation}.hexPolygon{fill:#f8fbfc;stroke:#9ab0bc;stroke-width:1.4;transition:fill .12s ease,stroke .12s ease,stroke-width .12s ease}.hexCell:hover .hexPolygon,.hexCell:focus-visible .hexPolygon{fill:#eaf4f8;stroke:#2d667c;stroke-width:2.2}.asteroidTile .hexPolygon{fill:#fbf8ed}.unsurveyedTile .hexPolygon{fill:#edf3f6;stroke:#c9d5dd;stroke-dasharray:3 6}.surveyedEmptyTile .hexPolygon{fill:#f3f8fa;stroke:#c6d5dc}.scanOverlayMode .surveyedEmptyTile .hexPolygon{fill:#e8f4f8;stroke:#7ea5b8}.scanOverlayMode .scanOverlayUnsurveyedTile .hexPolygon{fill:#dce6eb;stroke:#8095a2}.scanTargetMode .hexCell{cursor:crosshair}.scanTargetTile .hexPolygon{stroke:#31739c;stroke-width:2.6}.scanTargetTile:hover .hexPolygon,.scanTargetTile:focus-visible .hexPolygon{stroke:#245d82;stroke-width:3}.readyRoverTile .hexPolygon{fill:#f4fbf7;stroke:#237a59;stroke-width:2.8}.ownRover.ready>circle,.ownRover.ready>rect,.ownRover.ready>polygon{stroke:#dff7e9;stroke-width:3}.activatedRoverTile .hexPolygon{fill:#fff8e7;stroke:#c7962b;stroke-width:2.2}.inactiveOwnRoverTile .hexPolygon{fill:#eef3f5;stroke:#b6c5ce}.inactiveOwnRoverTile .roverToken{opacity:.56}.exhaustedRoverTile .hexPolygon,.activatedRoverTile .hexPolygon{fill:#eef3f5;stroke:#b6c5ce}.exhaustedRoverTile .roverToken,.activatedRoverTile .roverToken{opacity:.58}.legalMoveTile .hexPolygon{stroke:#327d61;stroke-width:2.7}.buildTargetTile .hexPolygon{stroke:#327d61;stroke-dasharray:4 3;stroke-width:2.7}.networkConnectedTile .hexPolygon{fill:#eef9f2;stroke:#327d61;stroke-width:2.6}.networkDisconnectedTile .hexPolygon{fill:#fff8e7;stroke:#c7962b;stroke-dasharray:5 3;stroke-width:2.6}.attackTargetMode .hexPolygon{transition:fill .12s ease,opacity .12s ease,stroke .12s ease,stroke-width .12s ease}.attackCombatRoverTile .hexPolygon{stroke:#c7962b;stroke-width:2.8}.attackTargetTile .hexPolygon{stroke:#b84d43;stroke-width:3}.attackTargetTile:hover .hexPolygon,.attackTargetTile:focus-visible .hexPolygon{stroke:#8f2f2a;stroke-width:3.4}.enemyRoverTile .hexPolygon{fill:#fbf6f5;stroke:#c7aaa4}.dimmedForAttack .hexPolygon,.dimmedForAttack .asteroidBadge,.dimmedForAttack .roverToken{opacity:.38}.selectedTile .hexPolygon{fill:#fff6df;stroke:#c7962b;stroke-width:4.4;filter:drop-shadow(0 0 9px rgb(199 150 43 / 55%))}.selectedTile .roverToken{opacity:1}.coordinate{fill:#788b96;font-size:.58rem;font-weight:700;text-align:center;pointer-events:none;text-anchor:middle}.activatedMarker,.doneMarker{pointer-events:none}.activatedMarker circle:first-child{fill:#fff;stroke:#c7962b;stroke-width:1.5}.activatedMarker circle:last-child{fill:#c7962b;stroke:none}.doneMarker circle{fill:#fff;stroke:#7d909b;stroke-width:1.4}.doneMarker path{fill:none;stroke:#2f596c;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.unsurveyedMarker,.surveyedMarker{pointer-events:none}.unsurveyedMarker text{fill:#8fa1ad;font-size:.92rem;font-weight:900;opacity:.56;text-anchor:middle}.surveyedMarker circle{fill:#fff;stroke:#7ea5b8;stroke-width:1.4}.surveyedMarker path{fill:none;stroke:#31739c;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.asteroidBadge{font-size:.66rem;font-weight:800;pointer-events:none;text-anchor:middle}.asteroidBadge rect{fill:#fff1bd;stroke:#d6b864;stroke-width:1}.asteroidBadge text{fill:#694f13}.objectiveToken{font-size:.64rem;font-weight:900;pointer-events:none;text-anchor:middle}.objectiveToken>ellipse{fill:#263449;stroke:#9fd4e6;stroke-width:2;filter:drop-shadow(0 5px 8px rgb(21 32 40 / 28%))}.objectiveToken>text{fill:#fff;paint-order:stroke;stroke:#263449;stroke-width:1.5px}.objectiveGlyph{fill:none;stroke:#dff8ff;stroke-linecap:round;stroke-width:2}.objectiveCore{fill:#9fd4e6;stroke:none}.structureToken{font-size:.68rem;font-weight:900;pointer-events:none;text-anchor:middle}.structureToken rect{fill:#f6fbff;stroke:#2f596c;stroke-width:1.8;filter:drop-shadow(0 3px 5px rgb(21 32 40 / 18%))}.structureToken text{fill:#1c3644}.structureGlyph{fill:none;stroke:#1c3644;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.structureGlyph circle{fill:#1c3644;stroke:none}.survey_scannerGlyph circle{fill:#1c3644}.structureToken.asteroid_drill rect{fill:#fff0bd;stroke:#b68b1f}.structureToken.survey_scanner rect{fill:#dff2ff;stroke:#31739c}.structureToken.connection_node rect{fill:#e5f6ec;stroke:#327d61}.enemyStructure rect{stroke:#9d4b43}.disconnectedStructure{opacity:.58}.connectedStructure rect{stroke:#327d61}.disconnectedStructure rect{stroke-dasharray:4 3}.depletedAsteroid rect{fill:#eef2f4;stroke:#bdc8ce}.depletedAsteroid text{fill:#667985}.roverToken{font-size:.82rem;font-weight:800;pointer-events:none;text-anchor:middle}.roverToken.operations_hub{font-size:.92rem}.roverToken>circle,.roverToken>rect,.roverToken>polygon{stroke:#fff;stroke-width:2;filter:drop-shadow(0 4px 7px rgb(21 32 40 / 25%))}.roverToken>text{fill:#fff}.unitGlyph{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2}.unitGlyph circle{fill:#fff;stroke:none}.combatRoverGlyph path:first-child{fill:#fff;stroke:none}.stackCountBadge{font-size:.5rem;font-weight:900;pointer-events:none;text-anchor:middle}.stackCountBadge rect{fill:#f9fcfd;stroke:#1d4f67;stroke-width:1.2}.stackCountBadge text{fill:#1d4f67}.ownRover>circle,.ownRover>rect,.ownRover>polygon{fill:#2d667c}.enemyRover>circle,.enemyRover>rect,.enemyRover>polygon{fill:#9d4b43}.enemyRover:not(.operations_hub){opacity:.84}.destroyedRover>circle,.destroyedRover>rect,.destroyedRover>polygon{fill:#7b858b}.healthIndicator{font-size:.46rem;font-weight:900;pointer-events:none;text-anchor:middle}.healthIndicator .healthTrack{fill:#dce6eb;stroke:#fff;stroke-width:1.1}.healthIndicator .healthFill{stroke:none}.roverHealth text,.operations_hubHealth text,.structureHealth text,.objectiveHealth text{fill:#16232b;paint-order:stroke;stroke:#fff;stroke-width:2px}.healthFull .healthFill{fill:#72bf72}.healthDamaged .healthFill{fill:#e0b84f}.healthCritical .healthFill{fill:#d45b4d}.healthDestroyed .healthFill{fill:#a7b0b6}@media(min-width:769px){html,body,#root{height:100%}body{overflow:hidden}.appShell{display:flex;flex-direction:column;height:100vh;min-height:0;padding:14px 16px}.topBar{flex:0 0 auto;margin-bottom:14px;padding-bottom:12px}.gameLayout{flex:1 1 auto;min-height:0;align-items:stretch}.legalPage{flex:1 1 auto;overflow:auto;padding-right:6px}.legalInfoBanner{flex:0 0 auto}.sidePanel{align-content:start;min-height:0;max-height:100%;overflow:auto;padding-right:2px}.playArea{grid-template-rows:auto minmax(0,1fr);min-height:0}.tutorialLayout .playArea{grid-template-rows:auto auto minmax(0,1fr)}.boardPanel{height:100%;min-height:0;padding:12px}.boardSvg{width:100%;max-width:900px;height:100%}}.gameModalOverlay{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#121f287a;padding:20px}.gameModalCard{display:grid;gap:14px;width:min(520px,100%);max-height:min(720px,calc(100dvh - 40px));overflow:auto;border:1px solid #9fb7c4;border-radius:8px;background:#fbfdfe;color:#17202a;padding:18px;box-shadow:0 28px 80px #0d192157}.gameModalCard:focus{outline:3px solid rgb(49 115 156 / 28%);outline-offset:3px}.gameModalHeader h2{color:#16232b;font-size:1.22rem}.gameModalBody{display:grid;gap:12px}.gameModalBody p,.gameModalBody li{color:#314753;font-size:.92rem;line-height:1.45}.gameModalActions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;border-top:1px solid #e4edf1;padding-top:12px}.gameToast{position:fixed;z-index:35;right:20px;bottom:20px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;width:min(420px,calc(100vw - 40px));border:1px solid #b44e48;border-radius:8px;background:#fff8f6;color:#842c28;padding:12px 14px;box-shadow:0 16px 40px #381d1929}.gameToast p{margin:0;font-size:.88rem;font-weight:700;line-height:1.35}.gameToast-info{border-color:#8fb5c4;background:#f6fbfd;color:#23485a}.gameToast-warning{border-color:#d6b864;background:#fff9e7;color:#6d5116}.tutorialPopup{border-color:#8fb5c4}.tutorialBanner{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #99bdac;border-radius:8px;background:#f4fbf7;padding:10px 12px;box-shadow:0 12px 28px #264c3a1a}.tutorialBanner h2{margin-bottom:3px;color:#173d32;font-size:.98rem}.tutorialBanner p{color:#2f5b4c;font-size:.86rem;font-weight:700;line-height:1.3}.tutorialBannerActions,.tutorialControlRow{display:flex;flex-wrap:wrap;gap:8px}.tutorialControlRow{display:grid;grid-template-columns:1fr}.tutorialActionsPanel{gap:9px}.tutorialHighlightTile .hexPolygon{stroke:#1f8a63;stroke-width:4;filter:drop-shadow(0 0 10px rgb(31 138 99 / 62%))}.tutorialGlow{box-shadow:0 0 0 3px #3589623d,0 10px 24px #1f493329;animation:tutorialGlowPulse .9s ease-out 1}.tutorialBannerPulse{animation:tutorialBannerPulse .76s ease-out 1}.guideModal{width:min(980px,100%)}.guideContent{display:grid;gap:18px}.guideSection{display:grid;gap:10px}.guideTermGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.guideTerm{display:grid;grid-template-columns:68px minmax(0,1fr);gap:10px;align-items:center;min-height:84px;border:1px solid #d6e2e8;border-radius:8px;background:#fff;padding:8px}.guideTerm h4{margin:0 0 3px;color:#1c3644;font-size:.9rem}.guideTerm p{font-size:.82rem;line-height:1.35}.guideVisualSvg,.guideCardVisual{width:66px;height:66px}.guideVisualSvg{display:block;overflow:visible}.guideCardVisual{display:grid;place-items:center;border:2px solid #2d667c;border-radius:7px;background:linear-gradient(180deg,#f8fbfc,#dff2ff);color:#1d4f67;font-weight:900}.guideColumns{grid-template-columns:repeat(2,minmax(0,1fr))}.guideRuleSection{display:grid;align-content:start;gap:7px;border-top:1px solid #e4edf1;padding-top:10px}.guideRuleSection ul{display:grid;gap:5px;margin:0;padding-left:18px}@keyframes tutorialBannerPulse{0%{box-shadow:0 0 #307a5966;transform:translateY(-2px)}to{box-shadow:0 12px 28px #264c3a1a;transform:translateY(0)}}@keyframes tutorialGlowPulse{0%{box-shadow:0 0 #3589626b}to{box-shadow:0 0 0 3px #3589623d,0 10px 24px #1f493329}}@media(max-width:768px){html,body,#root{height:100%;min-height:100%}body{overflow:hidden;background:#e7eff3}.appShell{display:flex;flex-direction:column;width:100%;height:100dvh;min-height:0;overflow:hidden;padding:0}.legalRoute,.inLobby{padding:12px}.legalRoute,.inLobby{overflow:auto}.inLobby{min-height:100dvh}.inLobby .lobbySections{flex:1 0 auto}.legalRoute .topBar,.inLobby .topBar,.inLobby .connectionPanel{align-items:flex-start;flex-direction:column}.legalRoute .topBar,.inLobby .topBar{margin-bottom:12px;padding-bottom:12px}.legalPageHeader{align-items:flex-start;flex-direction:column}.legalInfoBanner{flex-direction:row;flex-wrap:wrap;gap:4px 8px;margin-top:auto;padding:5px 0 calc(5px + env(safe-area-inset-bottom));text-align:center}.inLobby .legalInfoBanner nav{display:none}.inGame .topBar{align-items:center;gap:8px;margin:0;border-bottom:1px solid #c8d6de;background:#f7fbfd;padding:6px 10px}.inGame .topBar .eyebrow{display:none}.inGame .topBar h1{font-size:.96rem}.inGame .connectionPanel{flex:1 1 auto;flex-wrap:wrap;flex-direction:row;align-items:center;justify-content:flex-end;margin-left:auto;font-size:.76rem}.inGame .connectionPanel>span{flex:1 1 100%;text-align:right}.inGame .connectionPanel button{min-height:30px;padding:0 10px;font-size:.76rem}.topBarInvite{max-width:min(240px,100%);padding:3px 4px 3px 6px}.topBarInvite .inviteCodeLabel{display:none}.topBarInvite .inviteCodeText{max-width:76px}.topBarInvite .inviteStatusText{max-width:82px}.lobbyGrid{grid-template-columns:1fr;gap:12px;width:100%}.lobbyGrid .panel{padding:12px}.lobbyGrid .primaryButton,.lobbyGrid input,.lobbyGrid select{min-height:46px}.gameLayout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:0;flex:1 1 auto;height:auto;min-height:0;overflow:hidden;align-items:stretch}.desktopSidePanel{display:none}.mobileThumbZone{position:relative;z-index:5;bottom:0;display:grid;gap:5px;max-height:24dvh;min-height:0;overflow:hidden;overscroll-behavior:contain;border-top:1px solid #b8c9d3;background:#f5f9fb;padding:6px 8px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -8px 22px #1c2d3924}.playArea{grid-template-rows:auto minmax(0,1fr);gap:0;min-height:0;overflow:hidden}.tutorialLayout .playArea{grid-template-rows:minmax(0,1fr)}.tutorialLayout .topGameStatus,.tutorialLayout .tutorialBanner{display:none}.tutorialLayout .mobileThumbZone{max-height:26dvh}.topGameStatus{position:relative;z-index:2;align-items:flex-start;flex-direction:column;gap:5px;border-right:0;border-left:0;border-radius:0;padding:5px 8px;box-shadow:none}.topGameStatus h2{font-size:.9rem;line-height:1.15}.phasePrompt{display:none;max-width:none;overflow:hidden;color:#4d6572;font-size:.74rem;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:1}.statusSummary,.postGameActions{justify-content:flex-start}.statusSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:4px}.statusSummary div{min-width:0;border:1px solid #d7e2e8;border-radius:6px;background:#fff;padding:4px 5px}dt{font-size:.58rem}dd{font-size:.7rem;line-height:1.15}.boardFocusStage{min-height:0;overflow:hidden}.boardPanel{justify-items:center;height:100%;min-height:0;border-right:0;border-left:0;border-radius:0;padding:4px;touch-action:none}.boardLegend{max-height:24px;overflow:hidden;gap:3px 7px;font-size:.58rem}.boardViewport{width:100%;height:100%}.boardSvg{width:100%;height:100%;max-height:100%}.mobilePrimaryControls{display:grid;gap:5px}.mobilePrimaryHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:28px;border:1px solid #c7d7df;border-radius:8px;background:#eaf3f7;padding:4px 7px}.mobilePrimaryHeader span{color:#617684;font-size:.58rem;font-weight:800;text-transform:uppercase}.mobilePrimaryHeader strong{min-width:0;color:#172b36;font-size:.76rem;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.mobilePrimaryControls .panel,.mobilePassBar{border-color:#b9ccd5;border-radius:8px;box-shadow:none;padding:5px}.mobilePassBar .primaryButton,.mobilePrimaryControls .secondaryButton,.mobilePrimaryControls .primaryButton{min-height:34px;padding:0 5px;font-size:.72rem}.mobilePassBar .primaryButton{font-size:.82rem}.mobilePrimaryControls .actionList,.mobilePrimaryControls .finishAction{gap:4px}.mobilePrimaryControls .actionList{grid-template-columns:repeat(4,minmax(0,1fr))}.mobilePrimaryControls .finishAction{border-top:0;padding-top:0}.mobilePrimaryControls .roverActionsPanel{gap:4px}.mobilePrimaryControls .roverActionsPanel h2,.mobilePrimaryControls .roverActionInstruction{display:none}.mobilePrimaryControls .actionButtonRow .secondaryButton{min-height:32px;padding:0 3px;font-size:.64rem;line-height:1.05}.mobilePassBar .actionReason,.mobileActionHint{display:none}.mobileWaitingTurn{border-radius:8px;box-shadow:none}.mobileDrawerStack{display:none}.mobileDrawer{overflow:hidden;border:1px solid #c7d7df;border-radius:8px;background:#fff}.mobileDrawerSummary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;padding:0 10px;color:#223743;cursor:pointer;font-weight:800;list-style:none;touch-action:manipulation}.mobileDrawerSummary::-webkit-details-marker{display:none}.mobileDrawerSummary:after{content:"Open";color:#617684;font-size:.68rem;text-transform:uppercase}.mobileDrawer[open] .mobileDrawerSummary:after{content:"Close"}.mobileDrawerSummary small{margin-left:auto;color:#617684;font-size:.7rem;font-weight:800}.mobileDrawerBody{display:grid;gap:8px;max-height:22dvh;overflow:auto;border-top:1px solid #edf2f4;padding:9px 10px 10px}.mobileDrawerBody .panel{border:0;border-radius:0;background:transparent;padding:0;box-shadow:none}.mobileDrawerBody .panel+.panel{border-top:1px solid #edf2f4;padding-top:9px}.upgradeFocusPanel{top:16px;left:16px;width:calc(100% - 32px);max-height:calc(100% - 32px);transform:none}.upgradeFocusPanel .upgradeChoiceList{grid-template-columns:1fr}.gameModalOverlay{align-items:end;padding:10px}.gameModalCard{width:100%;max-height:calc(100dvh - 20px);padding:14px}.gameModalActions{justify-content:stretch}.gameModalActions .primaryButton,.gameModalActions .secondaryButton{flex:1 1 140px;min-height:44px}.tutorialBanner{align-items:stretch;flex-direction:column;margin:0;border-right:0;border-left:0;border-radius:0}.tutorialBannerActions{display:grid;grid-template-columns:1fr}.tutorialActionsPanel{gap:5px}.tutorialActionsPanel h2{font-size:.86rem}.tutorialActionsPanel .quietText{display:-webkit-box;overflow:hidden;font-size:.76rem;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:2}.tutorialControlRow{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.tutorialActionsPanel .primaryButton,.tutorialControlRow .secondaryButton{min-height:32px;padding:0 5px;font-size:.7rem;line-height:1.05}.guideTermGrid,.guideColumns{grid-template-columns:1fr}.guideTerm{grid-template-columns:58px minmax(0,1fr);min-height:76px}.guideVisualSvg,.guideCardVisual{width:56px;height:56px}.gameToast{right:10px;bottom:calc(24dvh + 12px);left:10px;grid-template-columns:1fr;width:auto;padding:10px 12px;font-size:.84rem}}
