:root{color:#27351f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--panel:#fff7dddb;--panel-solid:#fff7dd;--line:#435b3138;--text:#26351e;--text-dim:#657150;--leaf:#4f9b4d;--water:#3f9fc9;--bloom:#d86d91;--sun:#d98c2f;--soil:#8d5f35;background:#cfe8ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.towerDisplay{color:#edf3ef;background:linear-gradient(#101414f5,#2d2a21f0),linear-gradient(120deg,#52664e47,#0000 40%),#171817;width:100vw;height:100vh;position:relative;overflow:hidden}.towerStage{position:absolute;inset:0 clamp(300px,20vw,390px);overflow:hidden}.towerCityCanvas{width:100%;height:100%;display:block}.towerHud{top:max(18px, env(safe-area-inset-top));left:max(18px, env(safe-area-inset-left));right:max(18px, env(safe-area-inset-right));z-index:2;pointer-events:none;justify-content:space-between;align-items:center;gap:14px;display:flex;position:absolute}.towerBrand,.towerHudStats,.towerFeaturetteHud,.towerDisplayPanel,.towerWeatherPanel,.towerQr{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#121615c7;border:1px solid #ddd6ae2e;border-radius:8px;box-shadow:0 22px 80px #0000003d}.towerBrand{align-items:center;gap:12px;padding:12px 14px;display:flex}.towerBrand svg{color:#d6ae52;width:26px;height:26px}.towerBrand h1,.towerBrand p,.towerWeatherPanel header,.towerWeatherPanel strong,.towerWeatherPanel span{margin:0}.towerBrand h1{font-size:clamp(1.1rem,1.5vw,1.55rem);line-height:1}.towerBrand p{color:#aeb8aa;text-transform:uppercase;margin-top:5px;font-size:.76rem;line-height:1}.towerHudStats{color:#dfe8dc;flex-wrap:wrap;gap:8px;padding:10px;font-size:.82rem;display:flex}.towerHudStats span{white-space:nowrap}.towerFeaturetteHud{left:50%;bottom:max(18px, env(safe-area-inset-bottom));z-index:2;pointer-events:none;justify-items:center;gap:2px;min-width:210px;padding:10px 14px;display:grid;position:absolute;transform:translate(-50%)}.towerFeaturetteHud span{color:#d6ae52;text-transform:uppercase;font-size:.68rem;font-weight:900}.towerFeaturetteHud strong{color:#fffcef;font-size:1.06rem;line-height:1}.towerFeaturetteHud small{color:#aeb8aa;font-weight:800}.towerDisplayPanel{z-index:3;align-content:start;gap:12px;width:clamp(260px,18vw,370px);padding:14px;display:grid;position:absolute;top:18px;bottom:18px;overflow:hidden}.towerLeftPanel{left:18px}.towerRightPanel{right:18px}.towerPanelHeader,.towerRemotePanelTitle{color:#d6ae52;letter-spacing:0;text-transform:uppercase;align-items:center;gap:8px;font-size:.78rem;font-weight:800;display:flex}.towerPanelHeader svg,.towerRemotePanelTitle svg{width:16px;height:16px}.towerLeaderboard,.towerActivityList,.towerPhonebookMini{gap:8px;display:grid}.towerLeaderboard article,.towerPhonebookMini article{background:#edf3ef0f;border:1px solid #ddd6ae1f;border-radius:8px;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:8px 10px;display:grid}.towerLeaderboard article.empty{opacity:.72}.towerLeaderboard span{color:#141716;background:#d6ae52;border-radius:999px;place-items:center;width:24px;height:24px;font-size:.74rem;font-weight:900;display:grid}.towerLeaderboard strong,.towerLeaderboard small,.towerPhonebookMini strong,.towerPhonebookMini span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.towerLeaderboard strong,.towerPhonebookMini strong{color:#f5f0dd;font-size:.9rem}.towerLeaderboard small,.towerPhonebookMini span{color:#aeb8aa;font-size:.74rem}.towerLeaderboard b{color:#86b95f;font-size:.88rem}.towerWeatherPanel{gap:12px;padding:14px;display:grid}.towerWeatherPanel header,.towerWeatherPanel div{justify-content:space-between;align-items:center;gap:10px;display:flex}.towerWeatherPanel header{color:#d6ae52;text-transform:uppercase}.towerWeatherPanel header svg{width:20px;height:20px}.towerWeatherPanel strong{color:#f5f0dd;text-transform:capitalize;font-size:1.45rem}.towerWeatherPanel span{color:#aeb8aa;font-size:.82rem}.towerForecastNowNext{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.towerForecastNowNext article{background:#edf3ef0d;border:1px solid #ddd6ae1a;border-radius:8px;gap:3px;min-width:0;padding:9px 10px;display:grid}.towerForecastNowNext span,.towerForecastNowNext small{color:#aeb8aa;text-transform:uppercase;font-size:.68rem;font-weight:800}.towerForecastNowNext strong{color:#f5f0dd;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;font-size:1rem;overflow:hidden}.towerQr{color:#dfe8dc;justify-items:center;gap:8px;padding:14px 12px;text-decoration:none;display:grid}.towerQr img{border-radius:6px;width:min(190px,100%);height:auto}.towerQr>svg{width:150px;height:150px}.towerQr span{text-transform:uppercase;align-items:center;gap:5px;font-size:.72rem;font-weight:800;display:inline-flex}.towerQr small{overflow-wrap:anywhere;color:#aeb8aa;text-align:center;max-width:100%;font-size:.72rem;font-weight:800;line-height:1.25}.towerActivityList span{color:#dfe8dc;background:#edf3ef0f;border-left:3px solid #6fb7d7;border-radius:6px;padding:8px 10px;font-size:.78rem;line-height:1.35}.towerActivityList span.collapse{border-color:#ee503c}.towerActivityList span.weather{border-color:#d6ae52}.towerActivityList span.claim{border-color:#86b95f}.towerPhonebookMini article{grid-template-columns:minmax(0,1fr);min-height:40px}.towerRemote{min-height:100dvh;padding:max(18px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));color:#18201c;background:linear-gradient(#edf3eff5,#dad7c6f5),linear-gradient(135deg,#6fb7d747,#0000 45%),#edf3ef;align-content:start;gap:14px;display:grid;overflow:auto}.towerLogin,.towerRemoteHeader,.towerRemoteStats,.towerRemotePanel,.towerRemoteFooter,.towerPreviewPanel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffcefd1;border:1px solid #222d2824;border-radius:8px;box-shadow:0 18px 60px #2120181f}.towerLogin{align-content:center;place-self:center;gap:14px;width:min(100%,460px);min-height:100dvh;padding:24px;display:grid}.towerLogin svg{color:#b67245;width:44px;height:44px}.towerLogin h1,.towerLogin p,.towerRemoteHeader h1,.towerRemoteHeader p,.towerRemotePanel h2,.towerRemotePanel p{margin:0}.towerLogin h1{font-size:2rem;line-height:1}.towerLogin p,.towerRemoteHeader p,.towerRemotePanel p{color:#65706b;line-height:1.35}.towerLogin form{gap:10px;display:grid}.towerLogin input,.towerRemotePanel select{color:#18201c;min-height:48px;font:inherit;background:#fffcef;border:1px solid #222d282e;border-radius:8px;padding:0 14px}.towerLogin button,.towerRemote button{color:#17201b;cursor:pointer;background:#fffcef;border:1px solid #222d2824;border-radius:8px;min-height:44px}.towerLogin button,.towerClaimPanel button{color:#fffcef;background:#2f5f52;font-weight:800}.towerRemote button:disabled{cursor:not-allowed;opacity:.48}.towerRemoteHeader{justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.towerRemoteHeader h1{font-size:1.25rem}.towerRemoteHeader svg{color:#b67245;width:26px;height:26px}.towerRemoteStats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px;display:grid}.towerRemoteStats article,.towerPlotStats article,.towerRubbleStats article{background:#18201c0f;border-radius:8px;gap:2px;min-width:0;padding:10px;display:grid}.towerRemoteStats span,.towerPlotStats span,.towerRubbleStats span{color:#65706b;text-transform:uppercase;font-size:.68rem;font-weight:800}.towerRemoteStats strong,.towerPlotStats strong,.towerRubbleStats strong{color:#18201c;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1.02rem;overflow:hidden}.towerRemotePanel{gap:12px;padding:14px;display:grid}.towerClaimPanel{grid-template-columns:minmax(0,1fr) auto;align-items:center}.towerClaimPanel button,.towerRemoteFooter button{align-items:center;gap:7px;padding:0 13px;display:inline-flex}.towerClaimPanel button svg,.towerRemoteFooter button svg{width:17px;height:17px}.towerEditorShell{grid-template-columns:minmax(280px,.86fr) minmax(320px,1.14fr);gap:14px;display:grid}.towerPreviewPanel{min-height:420px;display:grid;overflow:hidden}.towerPreviewPanel .towerCityCanvas{min-height:320px}.towerPlotStats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px;display:grid}.towerEditorPanel{align-content:start}.towerEditorHeader,.towerFloorStepper,.towerWeatherToolbar,.towerWeatherToolbar span,.towerWeatherToolbar div,.towerRemoteFooter,.towerRemotePanelTitle{align-items:center;display:flex}.towerEditorHeader{justify-content:space-between;gap:12px}.towerEditorHeader span{color:#65706b;text-transform:uppercase;font-size:.72rem;font-weight:800}.towerEditorHeader h2{margin:2px 0 0;font-size:1.35rem}.towerFloorStepper{gap:8px}.towerFloorStepper button{width:42px;min-height:42px;font-size:1.2rem;font-weight:900}.towerFloorStepper strong{background:#18201c14;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-width:72px;min-height:42px;display:inline-flex}.towerFloorStepper svg{width:16px;height:16px}.towerPlotTabs{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.towerPlotTabs button{flex:none;padding:0 12px}.towerPlotTabs button.active,.towerCategoryTabs button.active,.towerSegment button.active,.towerSwatches button.active,.towerWeatherToolbar button.active{background:#2f5f5229;border-color:#2f5f5294}.towerEditorToolbar{gap:10px;display:grid}.towerSegment,.towerSwatches{flex-wrap:wrap;gap:8px;display:flex}.towerSegment button,.towerSwatches button,.towerWeatherToolbar button{text-transform:capitalize;justify-content:center;align-items:center;gap:6px;min-width:46px;padding:0 11px;font-size:.84rem;font-weight:800;display:inline-flex}.towerSegment svg,.towerWeatherToolbar svg{width:17px;height:17px}.towerSwatches button{background:linear-gradient(#ffffff29, #00000014), var(--swatch);width:42px;padding:0}.towerSwatches svg{width:0;height:0}.towerWeatherToolbar{background:#18201c0f;border-radius:8px;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px}.towerWeatherToolbar>span{color:#2f5f52;text-transform:uppercase;gap:6px;font-size:.78rem;font-weight:900}.towerWeatherToolbar div{flex-wrap:wrap;gap:6px}.towerWeatherToolbar button{min-height:38px}.towerWeatherToolbar small{color:#65706b;text-transform:uppercase;font-weight:700}.towerLayerGrid{aspect-ratio:1;background-color:#18201c0f;background-image:linear-gradient(90deg,#18201c1a 1px,#0000 1px),linear-gradient(#18201c1a 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:10% 10%;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border-radius:8px;grid-template-columns:repeat(10,minmax(0,1fr));justify-self:center;gap:4px;width:min(100%,560px);padding:6px;display:grid}.towerLayerGrid button{aspect-ratio:1;border-radius:5px;place-items:center;min-width:0;min-height:0;padding:0;font-size:clamp(.68rem,2vw,1rem);font-weight:900;display:grid}.towerLayerGrid button.empty{background:#fffcef8c;border:1px dashed #18201c2e}.towerLayerGrid button.occupied{color:#fffcef;background:linear-gradient(rgba(238, 80, 60, calc(var(--stress) * .78)), rgba(238, 80, 60, calc(var(--stress) * .78))), linear-gradient(135deg, #ffffff38, #00000024), var(--block-color);border:1px solid #18201c3d;box-shadow:inset 0 -4px #00000029}.towerLayerGrid button.slab{box-shadow:inset 0 -8px #0003,inset 0 8px #ffffff24}.towerLayerGrid button.brace{background:linear-gradient(135deg, transparent 42%, #fffcef9e 44%, transparent 50%), linear-gradient(rgba(238, 80, 60, calc(var(--stress) * .78)), rgba(238, 80, 60, calc(var(--stress) * .78))), var(--block-color)}.towerBookPanel{align-content:start}.towerRemoteLeaderboard,.towerPhonebook,.towerRubbleList{gap:8px;display:grid}.towerRemoteLeaderboard article,.towerPhonebook article,.towerRubbleList button{background:#18201c0d;border:1px solid #222d281a;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;min-height:48px;padding:9px 10px;display:grid}.towerRemoteLeaderboard span,.towerPhonebook span,.towerRubbleList span{color:#65706b;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;overflow:hidden}.towerRemoteLeaderboard strong,.towerPhonebook strong,.towerRubbleList strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.towerRemoteLeaderboard b{color:#2f5f52}.towerRubblePanel{justify-items:start}.towerRubblePanel>svg,.towerEmptyPlotPanel>svg{color:#b67245;width:34px;height:34px}.towerRubbleStats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;display:grid}.towerRemoteFooter{justify-content:space-between;gap:12px;padding:12px 14px}.towerRemoteFooter span{color:#65706b;font-size:.84rem;font-weight:800}@media (width<=1100px){.towerDisplayPanel{width:clamp(220px,24vw,300px)}.towerStage{inset:0 clamp(250px,24vw,320px)}}@media (width<=840px){.towerDisplayPanel{display:none}.towerStage{inset:0}.towerHud{flex-direction:column;align-items:flex-start}.towerEditorShell{grid-template-columns:1fr}.towerPreviewPanel{min-height:320px}.towerRemoteStats,.towerPlotStats,.towerRubbleStats{grid-template-columns:repeat(2,minmax(0,1fr))}.towerClaimPanel{grid-template-columns:1fr}.towerLayerGrid{gap:3px;width:100%}}.towerRemoteLoginMode{min-height:100dvh}.towerRemoteBuildMode{height:100dvh;padding:max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));background:linear-gradient(#edf3eff2,#d7dcd2f0),linear-gradient(135deg,#6fb7d72e,#0000 48%),#edf3ef;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.towerRemoteCityMode{grid-template-rows:auto minmax(0,1fr);height:100dvh;min-height:0;overflow:hidden}.towerRemoteCityMode .towerRemotePage,.towerRemoteCityMode .towerCityRemotePanel{min-height:0}.towerRemoteNav{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.towerRemoteNav button{color:#33413b;align-items:center;gap:6px;min-height:38px;padding:0 10px;font-size:.78rem;font-weight:850;display:inline-flex}.towerRemoteNav button.active{color:#14382f;background:#2f5f5229;border-color:#2f5f5294}.towerRemoteNav svg{width:16px;height:16px}.towerBuildViewport{background:radial-gradient(circle at 50% 18%,#fffceff5,#dfe8dcdb 52%),#dfe8dc;border:1px solid #222d282e;border-radius:8px;min-height:0;display:block;position:relative;overflow:hidden;box-shadow:0 18px 60px #21201824}.towerBuildPage{grid-template-rows:auto minmax(0,1fr);gap:8px;min-height:0;display:grid}.towerBuildControlStrip{background:#fffcef;border:1px solid #222d2838;border-radius:8px;grid-template-rows:36px 42px;gap:6px;padding:6px;display:grid;overflow:hidden;box-shadow:0 14px 40px #21201829}.towerBuildControlRow{scrollbar-width:thin;align-items:center;gap:6px;min-width:0;display:flex;overflow:auto hidden}.towerBuildPrimaryRow{padding-bottom:1px}.towerBuildSubRow{padding-top:1px}.towerBuildPlotBadge{flex:none;gap:1px;min-width:96px;padding:2px 7px;display:grid}.towerBuildPlotBadge span{color:#65706b;text-transform:uppercase;font-size:.58rem;font-weight:850}.towerBuildPlotBadge strong{color:#18201c;font-size:.94rem;line-height:1}.towerBuildControlStrip article{background:#18201c14;border-radius:8px;flex:none;gap:1px;min-width:58px;padding:5px 7px;display:grid}.towerBuildControlStrip article span{color:#65706b;text-transform:uppercase;font-size:.58rem;font-weight:850}.towerBuildControlStrip article strong{color:#18201c;font-size:.84rem;line-height:1}.towerCategoryTabs,.towerSubControls{align-items:center;gap:6px;min-width:max-content;display:flex}.towerCategoryTabs button{justify-content:center;align-items:center;gap:5px;min-height:34px;padding:0 9px;font-size:.78rem;font-weight:850;display:inline-flex}.towerCategoryTabs svg{width:16px;height:16px}.towerFeaturetteButton{color:#fffcef;background:#2f5f52;flex:none;justify-content:center;align-items:center;gap:5px;min-height:34px;padding:0 10px;font-size:.78rem;font-weight:900;display:inline-flex}.towerFeaturetteButton svg{width:16px;height:16px}.towerBuildControlStrip .towerSaveState{flex:none;min-height:34px;margin-left:0;padding:0 10px;font-size:.76rem}.towerBuildControlStrip .towerPlotTabs,.towerBuildControlStrip .towerSegment,.towerBuildControlStrip .towerSwatches,.towerBuildControlStrip .towerWeatherToolbar,.towerBuildControlStrip .towerPlotStats{flex:none}.towerBuildControlStrip .towerSegment,.towerBuildControlStrip .towerSwatches,.towerBuildControlStrip .towerWeatherToolbar div{flex-wrap:nowrap}.towerBuildControlStrip .towerSegment button,.towerBuildControlStrip .towerSwatches button,.towerBuildControlStrip .towerWeatherToolbar button{min-height:34px}.towerBuildControlStrip .towerSegment button,.towerBuildControlStrip .towerWeatherToolbar button{padding:0 9px;font-size:.76rem}.towerBuildControlStrip .towerSwatches button{width:34px;min-width:34px}.towerBuildControlStrip .towerWeatherToolbar{flex-wrap:nowrap;gap:6px;min-height:40px;padding:4px 6px}.towerBuildControlStrip .towerWeatherToolbar small{display:none}.towerBuildControlStrip .towerPlotStats{grid-template-columns:none;gap:6px;padding:0;display:flex}.towerCityRemoteScene{background:radial-gradient(circle at 50% 20%,#6fb7d729,#10161aeb 58%),#10161a;border:1px solid #222d2824;border-radius:8px;min-height:0;position:relative;overflow:hidden;box-shadow:0 18px 60px #21201824}.towerCityRemoteScene .towerCityCanvas{height:100%}.towerCityRemotePanel{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0}.towerCityRemoteHeader{background:#18201c0f;border:1px solid #222d281f;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px;display:flex}.towerCityRemoteHeader>div{align-items:center;gap:8px;min-width:0;display:flex}.towerCityRemoteHeader>div:first-child{gap:2px;display:grid}.towerCityRemoteHeader span{color:#65706b;text-transform:uppercase;font-size:.64rem;font-weight:900}.towerCityRemoteHeader strong{color:#18201c;font-size:1.05rem;line-height:1}.towerPlotEditorCanvas{touch-action:none;width:100%;height:100%;display:block}.towerRadialMenu{left:var(--radial-x);top:var(--radial-y);z-index:6;color:#18201c;width:1px;height:1px;position:absolute}.towerRadialMenu button{color:#18201c;text-transform:capitalize;background:#fffcef;border:1px solid #222d2833;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:54px;height:54px;padding:0;font-size:.58rem;font-weight:900;display:inline-flex;position:absolute;top:0;left:0;box-shadow:0 10px 28px #1417163d}.towerRadialMenu button.active{color:#fffcef;background:#2f5f52;border-color:#2f5f52b3}.towerRadialMenu svg{width:17px;height:17px}.towerRadialCenter{pointer-events:none;transform:translate(-50%,-50%);color:#fffcef!important;background:#18201c!important;width:62px!important;height:62px!important;font-size:.64rem!important}.towerRadialSubButton{width:58px!important;height:58px!important}.towerRadialSwatch{background:linear-gradient(#ffffff29, #0000001a), var(--swatch)!important;border:2px solid #fffcefdb!important;width:34px!important;height:34px!important}.towerRadialSwatch.active{border-color:#18201c!important;box-shadow:0 0 0 4px #d6ae528a,0 10px 28px #1417163d!important}.towerBuildTopBar,.towerBuildControls{z-index:2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffcefd6;border:1px solid #222d281f;border-radius:8px;position:absolute;box-shadow:0 16px 44px #21201824}.towerBuildTopBar{align-items:center;gap:8px;min-height:58px;padding:8px;display:flex;top:12px;left:12px;right:12px}.towerBuildTopBar>div{gap:2px;min-width:120px;padding:4px 8px;display:grid}.towerBuildTopBar>div span{color:#65706b;text-transform:uppercase;font-size:.68rem;font-weight:850}.towerBuildTopBar>div strong{color:#18201c;font-size:1.2rem;line-height:1}.towerBuildTopBar article{min-width:82px;box-shadow:none;background:#18201c0f;border-radius:8px;gap:2px;padding:6px 8px;display:grid}.towerBuildTopBar article span{color:#65706b;text-transform:uppercase;font-size:.66rem;font-weight:850}.towerBuildTopBar article strong{color:#18201c;line-height:1}.towerSaveState{color:#2f5f52;background:#2f5f521f;border-radius:8px;justify-content:center;align-items:center;min-height:36px;margin-left:auto;padding:0 12px;font-size:.82rem;font-weight:900;display:inline-flex}.towerSaveState.saving{color:#6a5320;background:#d6ae522e}.towerSaveState.error{color:#8d2d23;background:#ee503c29}.towerBuildControls{gap:10px;width:min(540px,100% - 24px);max-height:min(46dvh,430px);padding:12px;display:grid;bottom:12px;right:12px;overflow:auto}.towerBuildControls .towerPlotStats{padding:0}.towerRemotePage{align-content:start;gap:14px;display:grid}.towerEmptyList{background:#18201c0d;border:1px solid #222d281a;border-radius:8px;gap:6px;padding:14px;display:grid}.towerEmptyList svg{color:#2f5f52;width:24px;height:24px}.towerBuildEmpty{background:#fffcefd1;border:1px solid #222d2824;border-radius:8px;align-content:center;place-items:center;gap:14px;min-height:0;display:grid}.towerBuildEmpty>svg{color:#b67245;width:40px;height:40px}.towerBuildEmpty h2{margin:0}.towerBuildEmpty button{color:#fffcef;background:#2f5f52;align-items:center;gap:7px;padding:0 14px;font-weight:850;display:inline-flex}.towerBuildEmpty button svg{width:17px;height:17px}@media (width<=840px){.towerRemoteBuildMode{padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));gap:8px}.towerRemoteBuildMode .towerRemoteHeader{gap:8px;padding:10px}.towerRemoteNav{justify-content:stretch;width:100%}.towerRemoteNav button{flex:1 1 0;padding:0 6px}.towerBuildTopBar{flex-wrap:wrap;align-items:stretch}.towerBuildTopBar article{flex:72px;min-width:0}.towerSaveState{flex:100%;margin-left:0}.towerBuildControls{width:auto;max-height:44dvh;padding:10px;bottom:8px;left:8px;right:8px}.towerCityRemoteHeader{flex-direction:column;align-items:stretch}.towerCityRemoteHeader>div:last-child{flex-wrap:wrap}}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0}body{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.displayShell{background:#cfe8ff;width:100vw;height:100vh;position:relative;overflow:hidden}.sceneHost{position:absolute;inset:0}.sceneHost canvas{width:100%;height:100%;display:block}.gardenHud{z-index:2;top:max(18px, env(safe-area-inset-top));left:max(18px, env(safe-area-inset-left));max-width:min(780px,100vw - 36px);color:var(--text);pointer-events:none;align-items:center;gap:10px;display:flex;position:absolute}.gardenBrand,.gardenReadout,.gardenQr{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fff7ddc2;border-radius:8px;box-shadow:0 18px 60px #4d371b1f}.gardenBrand{align-items:center;gap:10px;padding:10px 12px;display:flex}.gardenBrand svg{color:var(--leaf);flex:none}.gardenBrand h1,.gardenBrand p{margin:0}.gardenBrand h1{font-size:clamp(1rem,1.7vw,1.42rem);line-height:1}.gardenBrand p{color:var(--text-dim);text-transform:uppercase;margin-top:4px;font-size:.72rem;line-height:1}.gardenReadout{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:10px;padding:9px 11px;font-size:.8rem;line-height:1;display:flex}.gardenReadout span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.gardenReadout svg{width:14px;height:14px;color:var(--leaf)}.gardenQr{right:max(18px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));z-index:2;width:90px;color:var(--text-dim);justify-items:center;gap:6px;padding:8px;text-decoration:none;display:grid;position:absolute}.gardenQr img{border-radius:6px;width:72px;height:72px}.gardenQr span{text-transform:uppercase;align-items:center;gap:4px;font-size:.68rem;line-height:1;display:inline-flex}.gardenQr svg{width:14px;height:14px}.remoteShell{min-height:100dvh;padding:max(18px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));color:var(--text);background:linear-gradient(#cfe8ffe6,#fff7dddb 42%),linear-gradient(140deg,#4f9b4d38,#0000 38%),#fff7dd;align-content:start;gap:14px;display:grid;overflow:auto}.remoteHeader,.remoteStats,.remotePanel,.remoteFooter{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:8px;box-shadow:0 18px 60px #4d371b1f}.remoteHeader{justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.remoteHeader h1,.remoteHeader p,.remotePanel h2{margin:0}.remoteHeader p{color:var(--text-dim);text-transform:uppercase;font-size:.78rem}.remoteHeader h1{margin-top:2px;font-size:1.45rem}.linkLight{color:var(--text-dim);flex:none;align-items:center;gap:7px;font-size:.8rem;display:inline-flex}.linkLight span{background:#c55a45;border-radius:999px;width:9px;height:9px}.linkLight.online span{background:var(--leaf)}.remoteStats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px;display:grid}.statPill{background:#ffffff5c;border:1px solid #435b3129;border-radius:8px;grid-template-rows:auto auto;grid-template-columns:auto auto;align-items:center;column-gap:8px;min-width:0;padding:8px 10px;display:grid}.statPill svg{color:var(--leaf);grid-row:1/3}.statPill span{color:var(--text-dim);text-transform:uppercase;font-size:.68rem;line-height:1}.statPill strong{overflow-wrap:anywhere;color:var(--text);font-size:.95rem;line-height:1.15}.remotePanel{gap:14px;padding:16px;display:grid}.remotePanel h2{color:var(--text-dim);text-transform:uppercase;font-size:.78rem}.meter{gap:7px;display:grid}.meterLabel{color:var(--text-dim);text-transform:uppercase;justify-content:space-between;gap:14px;font-size:.78rem;display:flex}.meterLabel strong{color:var(--text)}.meterTrack{background:#435b311a;border:1px solid #435b3129;border-radius:999px;height:9px;overflow:hidden}.meterFill{border-radius:inherit;background:var(--leaf);height:100%;transition:width .16s linear}.meterFill.teal{background:var(--leaf)}.meterFill.amber{background:var(--sun)}.meterFill.violet{background:var(--bloom)}.meterFill.red{background:#c55a45}.segmentGroup{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.segmentGroup button,.upgradeGrid button,.remoteActions button,.remoteFooter button{border:1px solid var(--line);min-height:46px;color:var(--text);background:#ffffff6b;border-radius:8px;justify-content:center;align-items:center;gap:8px;display:inline-flex}.segmentGroup button.active,.segmentGroup button:active{background:#4f9b4d2e;border-color:#4f9b4db8}.remoteActions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.remoteActions button{min-height:72px;font-weight:800}.remoteActions svg,.upgradeGrid svg,.remoteFooter svg{width:18px;height:18px}.primaryAction{background:#3f9fc933!important;border-color:#3f9fc9a6!important}.dangerAction.active,.dangerAction:active{background:#d98c2f33!important;border-color:#d98c2fc7!important}.upgradeGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.upgradeGrid button{text-align:left;grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;justify-content:stretch;min-height:74px;padding:12px;display:grid}.upgradeGrid button svg{color:var(--soil);grid-row:1/3}.upgradeGrid button span,.upgradeGrid button strong,.upgradeGrid button small{min-width:0}.upgradeGrid button strong{text-align:right}.upgradeGrid button small{color:var(--text-dim);grid-column:2/4}.upgradeGrid button:disabled{opacity:.48}.recentEvents ol{gap:8px;margin:0;padding:0;list-style:none;display:grid}.recentEvents li{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.recentEvents li.leaf{color:var(--leaf)}.recentEvents li.water{color:var(--water)}.recentEvents li.bloom{color:var(--bloom)}.recentEvents li.sun{color:var(--sun)}.remoteFooter{color:var(--text-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.remoteFooter span{align-items:center;gap:6px;display:inline-flex}.remoteFooter button{min-height:38px;padding:0 12px}@media (width<=680px){body{overflow:auto}.gardenHud{right:max(18px, env(safe-area-inset-right));flex-direction:column;align-items:flex-start}.gardenReadout{max-width:100%}.gardenQr{width:76px}.gardenQr img{width:58px;height:58px}}@media (aspect-ratio>=21/9){.gardenHud{max-width:min(920px,60vw)}}.gameIndex{color:#ebe7da;background:linear-gradient(140deg,#be5a402e,#0000 34%),linear-gradient(40deg,#507a9638,#0000 42%),#181916;min-height:100dvh;padding:clamp(22px,4vw,56px);overflow:auto}.gameIndexHeader{max-width:920px;margin:0 auto 24px}.gameIndexHeader p,.gameIndexHeader h1,.gameIndexCard h2,.gameIndexCard p{margin:0}.gameIndexHeader p{color:#b9b19f;text-transform:uppercase;font-size:.84rem}.gameIndexHeader h1{margin-top:6px;font-size:clamp(2rem,6vw,4.8rem);line-height:.95}.gameIndexGrid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px;max-width:920px;margin:0 auto;display:grid}.gameIndexCard{background:#ffffff0f;border:1px solid #ebe7da29;border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:14px;padding:18px;display:grid}.gameIndexIcon{color:#e0b15d;background:#ffffff1a;border-radius:8px;place-items:center;width:42px;height:42px;display:grid}.gameIndexCard span{color:#e0b15d;text-transform:uppercase;font-size:.72rem}.gameIndexCard h2{margin-top:4px;font-size:1.28rem}.gameIndexCard p{color:#c9c1af;margin-top:8px;line-height:1.45}.gameIndexActions{grid-column:1/-1;gap:10px;display:flex}.gameIndexActions a{color:#ebe7da;background:#ffffff14;border:1px solid #ebe7da33;border-radius:8px;justify-content:center;align-items:center;min-height:38px;padding:0 14px;text-decoration:none;display:inline-flex}.apartmentScreen{color:#eee7d8;background:linear-gradient(#16191cc7,#16191c33 38%),linear-gradient(90deg,#1f2a31,#282018 52%,#19252b);place-items:center;width:100vw;height:100vh;display:grid;position:relative;overflow:hidden}.apartmentSkylineScreen{background:radial-gradient(circle at 50% 18%,#e0b15d1f,#0000 28%),linear-gradient(#13181beb,#0d1012f5),linear-gradient(90deg,#1f2a31,#282018 52%,#19252b);grid-template-columns:minmax(0,1fr)}.apartmentStage{isolation:isolate;background:radial-gradient(circle at 50% 38%,#c4a76c14,#0000 38%),linear-gradient(#1f2a3159,#090c0e2e);width:min(100vw,177.778vh);height:min(100vh,56.25vw);position:relative;overflow:hidden}.apartmentBuildingCanvas{z-index:1;width:100%;height:100%;display:block;position:absolute;inset:0}.apartmentSidePanel{display:none}.apartmentGrid{isolation:isolate;background:linear-gradient(90deg,#ffffff0a 1px,#0000 1px),linear-gradient(#ffffff08 1px,#0000 1px),#121212;border:1px solid #eee7d81f;display:grid;overflow:hidden;box-shadow:0 30px 100px #00000061,inset 0 0 0 8px #0003}.apartmentUnit{perspective:760px;min-width:0;min-height:0;transform-style:preserve-3d;background:#211d1a;border:1px solid #eee7d821;position:relative;overflow:hidden}.apartmentUnit.occupied:before{z-index:82;content:"";pointer-events:none;border:5px solid #251e18b8;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #eee7d81f,inset 0 16px 22px #0003}.apartmentUnit.forRent{perspective:none;transform-style:flat;background:#4c514a;border-color:#0c0c0c57}.apartmentUnit.expanded{z-index:2;border-color:#e0b15d75;box-shadow:inset 0 0 0 2px #00000038,0 10px 36px #0000003d}.roomSubdivision{z-index:1;pointer-events:none;display:grid;position:absolute;inset:0}.roomSubdivision span{border-bottom:1px solid #eee7d81a;border-right:1px solid #eee7d81a}.roomShell{transform-style:preserve-3d;position:absolute;inset:0;overflow:hidden}.roomBack{z-index:1;background:linear-gradient(90deg,#ffffff0f 1px,#0000 1px) 0 0/28px 28px,linear-gradient(#ffffff0a 1px,#0000 1px) 0 0/28px 28px,linear-gradient(#5b554d,#413b34);border:1px solid #0000002e;position:absolute;inset:7% 10% 38%;box-shadow:inset 0 -20px 40px #00000029}.roomLeftWall,.roomRightWall{z-index:2;background:linear-gradient(#eee7d833,#0000002e);border:1px solid #00000021;width:14%;position:absolute;top:7%;bottom:27%}.roomLeftWall{clip-path:polygon(100% 0,100% 100%,0 82%,0 14%);left:0}.roomRightWall{clip-path:polygon(0 0,100% 14%,100% 82%,0 100%);right:0}.roomFloor{z-index:12;clip-path:polygon(7% 0,93% 0,100% 100%,0 100%);background:linear-gradient(90deg,#00000029 1px,#0000 1px) 0 0/28px 100%,linear-gradient(#ffffff14 1px,#0000 1px) 0 0/100% 24px,linear-gradient(135deg,#987a58,#504031 70%);height:50%;position:absolute;bottom:2%;left:6%;right:6%;box-shadow:inset 0 24px 42px #ffffff14,inset 0 -22px 44px #00000042}.floorBoards{opacity:.38;background:linear-gradient(110deg,#ffffff1f,#0000 32%);position:absolute;inset:0}.vacantFacade{z-index:3;background:linear-gradient(90deg,#ffffff17 1px,#0000 1px) 0 0/46px 24px,linear-gradient(#0000002b 1px,#0000 1px) 0 0/46px 24px,linear-gradient(160deg,#686d63,#44483f 72%);position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 18px 32px #ffffff14,inset 0 -24px 48px #0000003d}.vacantFacade:before,.vacantFacade:after{content:"";pointer-events:none;position:absolute;inset:0}.vacantFacade:before{opacity:.34;background:repeating-linear-gradient(#0000 0 22px,#1919168c 23px 24px),repeating-linear-gradient(90deg,#0000 0 43px,#ffffff29 44px 46px)}.vacantFacade:after{background:linear-gradient(#ffffff1c,#0000 22%),linear-gradient(90deg,#00000038,#0000 14% 86%,#0000002e);border:4px solid #26221c9e}.facadeWindows{z-index:2;gap:clamp(5px, calc(var(--apartment-cell-size,120px) * .05), 14px);grid-template-columns:repeat(auto-fit,minmax(26px,1fr));align-items:center;display:grid;position:absolute;top:17%;left:12%;right:12%}.facadeWindow{width:min(100%,52px);height:clamp(28px, calc(var(--apartment-cell-size,120px) * .34), 58px);background:linear-gradient(90deg,#0000 46%,#251e189e 47% 53%,#0000 54%),linear-gradient(#0000 47%,#251e189e 48% 54%,#0000 55%),linear-gradient(145deg,#bfd4d2,#5d7f83 72%);border:3px solid #251e18c7;border-radius:2px 2px 0 0;justify-self:center;display:block;position:relative;box-shadow:inset 0 0 0 2px #ffffff24,0 8px #221c165c}.facadeWindow:after{content:"";background:#ffffff47;border-radius:999px;width:35%;height:44%;position:absolute;top:3px;right:5px}.facadeVent{z-index:2;width:clamp(22px, calc(var(--apartment-cell-size,120px) * .22), 42px);background:repeating-linear-gradient(90deg,#24241f 0 3px,#8c8c80 3px 6px);border:2px solid #251e1894;height:11px;position:absolute;bottom:17%;right:12%;box-shadow:0 5px #221c1642}.rentPlacard{z-index:4;color:#332818;background:#f3e2b5;border:1px solid #3a2c1b57;border-radius:3px;justify-items:center;gap:2px;min-width:min(64px,100% - 28px);padding:6px 7px 5px;display:grid;position:absolute;bottom:13%;left:50%;transform:translate(-50%)rotate(-2deg);box-shadow:0 8px 14px #271c1047}.rentPlacard:before{content:"";background:#963b32;border-radius:999px;width:8px;height:8px;position:absolute;top:3px;left:50%;transform:translate(-50%)}.rentPlacard strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding-top:4px;font-size:clamp(.48rem,.62vw,.68rem);line-height:1;overflow:hidden}.rentPlacard span{color:#5f4b2e;text-transform:uppercase;font-size:clamp(.39rem,.5vw,.54rem);line-height:1}.apartmentUnit.nerd .roomBack{background:linear-gradient(#26354c,#171e2b)}.apartmentUnit.botanist .roomBack{background:linear-gradient(#436448,#243d2b)}.apartmentUnit.maker .roomBack{background:linear-gradient(#5b5144,#302b25)}.apartmentUnit.artist .roomBack{background:linear-gradient(#664156,#382536)}.apartmentUnit.courier .roomBack{background:linear-gradient(#5c4c33,#30271c)}.window{background:#d8e8ef;border:2px solid #ffffff52;width:24%;height:25%;position:absolute;top:12%;right:10%;box-shadow:inset 0 0 0 2px #1e373c33}.poster{background:#ddd2bd;border:2px solid #ffffff38;width:18%;height:25%;position:absolute;top:16%;left:12%}.poster.terminal{background:repeating-linear-gradient(#53e08f 0 3px,#142718 3px 8px)}.poster.fern{background:radial-gradient(circle at 50% 70%,#61c16a 0 22%,#e8dec7 23%)}.poster.band{background:linear-gradient(135deg,#e66d7c,#26243e)}.poster.city{background:linear-gradient(#9fd3df 0 45%,#4b4c57 46%)}.poster.sunset{background:linear-gradient(#f0a85f,#51364e)}.roomLabel,.roomMeters{z-index:3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#121212a3;border-radius:6px;align-items:center;gap:6px;padding:4px 6px;display:flex;position:absolute}.roomLabel{flex-direction:column;align-items:flex-start;top:7px;left:7px}.roomLabel strong{max-width:min(160px, calc(var(--apartment-cell-size,120px) * 1.5));color:#fff8e7;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.56rem,.72vw,.76rem);line-height:1;overflow:hidden}.roomLabel span,.roomMeters span{color:#c7bdab;text-transform:uppercase;font-size:clamp(.46rem,.58vw,.62rem);line-height:1}.roomMeters{flex-wrap:wrap;justify-content:flex-end;max-width:min(190px,100% - 14px);bottom:7px;right:7px}.roomProps{pointer-events:none;position:absolute}.propBack{z-index:18}.propFront{z-index:70}.nerdProps{gap:4px;display:flex;bottom:38%;right:12%}.nerdProps span{background:repeating-linear-gradient(#1b1f28 0 8px,#5ee081 8px 10px);border-radius:3px;width:14px;height:54px}.nerdDesk{background:#7a6044;border-radius:4px 4px 0 0;width:54px;height:22px;bottom:12%;left:13%;box-shadow:0 14px #35291e}.nerdDesk span:first-child{background:#18242d;border-radius:2px;width:20px;height:15px;position:absolute;bottom:20px;right:8px;box-shadow:inset 0 0 0 3px #61d68e}.nerdDesk span:last-child{background:#d0bc82;border-radius:999px;width:12px;height:12px;position:absolute;bottom:20px;left:8px}.plantProps{align-items:end;gap:5px;display:flex;bottom:36%;right:9%}.plantProps span{background:#61c16a;border-radius:999px 999px 0 0;width:10px;height:34px}.planterBoxes{gap:6px;display:flex;bottom:11%;right:12%}.planterBoxes span{background:linear-gradient(#74bd71 0 45%,#6d5135 46%);border-radius:4px 4px 2px 2px;width:24px;height:16px;box-shadow:0 8px #00000029}.makerShelf{background:linear-gradient(#0000 46%,#85643f 47% 54%,#0000 55%),linear-gradient(90deg,#6e7680 0 28%,#0000 29% 36%,#c09a60 37% 68%,#0000 69%),#3d332b;border-radius:4px;width:58px;height:44px;bottom:40%;right:10%}.makerShelf span{background:#2c241f;width:6px;height:10px;position:absolute;bottom:-9px}.makerShelf span:first-child{left:8px}.makerShelf span:last-child{right:8px}.makerProps{background:#b98b55;width:54px;height:28px;bottom:12%;right:14%}.makerProps span,.artistProps span,.courierProps span{display:block;position:absolute}.makerProps span:first-child{background:#65717b;width:12px;height:24px;bottom:22px;right:4px}.makerProps span:last-child{background:#5b4633;width:40px;height:12px;bottom:-12px;left:7px}.artistProps{width:58px;height:42px;bottom:38%;right:13%}.artistProps span{background:#df7d96;border-radius:4px}.artistProps span:first-child{width:34px;height:26px}.artistProps span:nth-child(2){background:#dcb85f;width:20px;height:34px;right:0}.artistProps span:nth-child(3){background:#6ca6ba;width:26px;height:12px;bottom:0;left:18px}.easelProp{width:36px;height:54px;bottom:12%;right:16%}.easelProp span:first-child{background:linear-gradient(135deg,#e66d7c,#6ca6ba);border:3px solid #dcb85f;width:22px;height:28px;position:absolute;top:3px;left:8px}.easelProp span:last-child{border-left:4px solid #2a211d;border-right:4px solid #2a211d;width:24px;height:32px;position:absolute;bottom:0;left:6px;transform:perspective(40px)rotateX(14deg)}.courierLockers{gap:4px;display:flex;bottom:38%;right:10%}.courierLockers span{background:linear-gradient(#0000 22%,#0003 23% 25%,#0000 26%),#5b6370;border-radius:4px;width:22px;height:48px}.courierProps{gap:5px;display:flex;bottom:11%;right:12%}.courierProps span{background:#c79a50;border-radius:3px;width:18px;height:28px;position:static}.stickResident{width:clamp(16px, calc(var(--apartment-cell-size,120px) * .11), 28px);height:clamp(30px, calc(var(--apartment-cell-size,120px) * .21), 52px);transform:translate(-50%, -100%) scale(var(--resident-scale,1));transform-origin:50% 100%;transition:left .26s linear,top .26s linear;animation:.72s ease-in-out infinite walkBob;position:absolute}.stickResident .head,.stickResident .body,.stickResident .arms,.stickResident .legs{background:#151515;display:block;position:absolute;left:50%;transform:translate(-50%)}.stickResident .shadow{background:#00000038;border-radius:999px;width:94%;height:12%;display:block;position:absolute;bottom:-3px;left:50%;transform:translate(-50%)}.stickResident .head{border-radius:999px;width:50%;height:27%;top:0}.stickResident .body{border-radius:999px;width:14%;height:40%;top:27%}.stickResident .arms{transform-origin:50%;border-radius:999px;width:92%;height:6%;animation:.72s ease-in-out infinite walkArms;top:41%}.stickResident .legs{clip-path:polygon(42% 0,48% 0,42% 100%,24% 100%,40% 0,58% 0,76% 100%,58% 100%);border-radius:0 0 8px 8px;width:79%;height:31%;animation:.72s ease-in-out infinite walkLegs;top:65%}@keyframes walkBob{50%{margin-top:-2px}}@keyframes walkArms{50%{transform:translate(-50%)rotate(10deg)}}@keyframes walkLegs{50%{transform:translate(-50%)scaleX(.72)}}.mailPulse{z-index:4;background:#e0b15d;border-radius:999px;width:10px;height:10px;animation:1.8s infinite mailPulse;position:absolute;top:14px;right:14px;box-shadow:0 0 #e0b15dcc}@keyframes mailPulse{70%{box-shadow:0 0 0 12px #e0b15d00}}.apartmentDisplayHud,.apartmentTicker,.buildingBoard{z-index:8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#161616b8;border:1px solid #eee7d824;border-radius:8px;position:absolute;box-shadow:0 18px 60px #0003}.apartmentDisplayHud{top:max(14px, env(safe-area-inset-top));left:max(14px, env(safe-area-inset-left));align-items:center;gap:10px;padding:10px 12px;display:flex}.apartmentDisplayHud>div{align-items:center;gap:9px;display:flex}.apartmentDisplayHud h1,.apartmentDisplayHud p{margin:0}.apartmentDisplayHud h1{font-size:clamp(1rem,1.6vw,1.35rem);line-height:1}.apartmentDisplayHud p,.apartmentDisplayHud span{color:#c7bdab;text-transform:uppercase;font-size:.72rem}.apartmentTicker{right:268px;bottom:max(16px, env(safe-area-inset-bottom));left:max(14px, env(safe-area-inset-left));align-items:center;gap:14px;min-height:38px;padding:0 12px;display:flex;overflow:hidden}.apartmentTicker span{color:#d8d0bf;flex:none;font-size:.78rem}.apartmentTicker .rent{color:#df8b74}.apartmentTicker .trade{color:#86c4d8}.apartmentTicker .build{color:#e0b15d}.apartmentTicker .social{color:#c9a2d2}.apartmentTicker .work{color:#95cf8d}.stageBoard{right:max(14px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));z-index:9;position:absolute}.buildingBoard{right:max(14px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));color:#352612;-webkit-backdrop-filter:none;backdrop-filter:none;background:radial-gradient(circle at 10% 18%,#ffffff47 0 2px,#0000 3px),radial-gradient(circle at 86% 12%,#ffffff38 0 2px,#0000 3px),linear-gradient(135deg,#a8783f,#81562e 72%);gap:8px;width:236px;min-height:174px;padding:10px;display:grid;box-shadow:0 18px 60px #0000004d,inset 0 0 0 5px #46271257}.stageBoard .buildingBoard,.apartmentSidePanel .buildingBoard{position:relative;bottom:auto;right:auto}.apartmentSidePanel .buildingBoard{width:100%;min-height:0}.sidePanelHeader{color:#e0b15d;letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:8px;font-size:.72rem;display:flex}.sidePanelHeader svg{width:16px;height:16px}.displayMarketList,.displayResidentList,.displayActivityList{gap:9px;min-width:0;display:grid}.displayMarketLine,.displayResident{background:#ffffff0e;border:1px solid #eee7d81c;border-radius:8px;gap:6px;min-width:0;padding:9px;display:grid}.displayMarketLine header,.displayMarketLine footer,.displayResident{min-width:0}.displayMarketLine header,.displayMarketLine footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.displayMarketLine span,.displayMarketLine footer,.displayResident small,.displayActivityList span{color:#c7bdab;text-overflow:ellipsis;font-size:.7rem;line-height:1.25;overflow:hidden}.displayMarketLine strong,.displayResident strong{color:#fff8e7;font-size:.86rem}.displaySparkline{height:26px}.displaySparkline polyline{stroke-width:2.6px}.displayResident{border-left:3px solid #e0b15db8}.displayResident.nerd{border-left-color:#63d889}.displayResident.botanist{border-left-color:#74bd71}.displayResident.maker{border-left-color:#d0b06a}.displayResident.artist{border-left-color:#df7d96}.displayResident.courier{border-left-color:#c79a50}.displayActivityList span{border-left:2px solid #e0b15d6b;padding-left:8px}.displayActivityList .rent{border-left-color:#df8b74}.displayActivityList .trade{border-left-color:#86c4d8}.displayActivityList .build{border-left-color:#e0b15d}.displayActivityList .social{border-left-color:#c9a2d2}.displayActivityList .work{border-left-color:#95cf8d}.buildingBoard header{color:#f3e5c1;text-transform:uppercase;align-items:center;gap:6px;font-size:.68rem;display:flex}.boardBody{grid-template-columns:minmax(0,1fr) 82px;gap:7px;display:grid}.boardNotes{gap:7px;display:grid}.boardNote{background:#f0dc96;border-radius:2px;align-content:start;gap:2px;min-height:42px;padding:11px 8px 7px;display:grid;position:relative;overflow:hidden;transform:rotate(-1.5deg);box-shadow:0 4px 8px #361f0e38}.boardNote:nth-child(2){background:#d8efba;transform:rotate(1.2deg)}.boardNote:nth-child(3){background:#f0c7a4;transform:rotate(-.6deg)}.boardNote:nth-child(4){background:#c6e0ee;transform:rotate(1.8deg)}.boardNote svg{color:#9b2f30;width:12px;height:12px;position:absolute;top:2px;left:50%;transform:translate(-50%)}.boardNote strong{text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.6rem;line-height:1;overflow:hidden}.boardNote p{color:#473418;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.62rem;line-height:1.12;display:-webkit-box;overflow:hidden}.boardQrPaper{color:#2d251d;background:#f8f1dc;border-radius:3px;align-self:start;justify-items:center;gap:4px;padding:10px 6px 6px;text-decoration:none;display:grid;position:relative;transform:rotate(2deg);box-shadow:0 5px 11px #361f0e47}.paperPin{background:#9b2f30;border-radius:999px;width:9px;height:9px;position:absolute;top:3px;left:50%;transform:translate(-50%);box-shadow:0 1px #ffffff6b}.boardQrPaper img,.boardQrPaper>svg{border-radius:3px;width:62px;height:62px}.boardQrPaper span:last-child{text-transform:uppercase;align-items:center;gap:4px;font-size:.6rem;display:inline-flex}.apartmentRemote{min-height:100dvh;padding:max(18px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));color:#eee7d8;background:linear-gradient(#2e3840f5,#231e19f0),linear-gradient(140deg,#e0b15d29,#0000 34%),#24211d;align-content:start;gap:14px;display:grid;overflow:auto}.apartmentLogin,.apartmentRemote .remotePanel,.apartmentRemoteHeader,.apartmentStats,.apartmentFooter{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff12;border:1px solid #eee7d824;border-radius:8px;box-shadow:0 18px 60px #0000002e}.apartmentLogin{justify-self:center;gap:14px;width:min(100%,420px);margin-top:14vh;padding:24px;display:grid}.apartmentLogin h1,.apartmentLogin p,.apartmentRemote .remotePanel h2,.apartmentControlPanel p{margin:0}.apartmentLogin svg{color:#e0b15d}.apartmentLogin h1{font-size:2rem}.apartmentLogin p,.apartmentControlPanel p{color:#c7bdab}.apartmentLogin form,.visitorPanel,.apartmentControlPanel{gap:12px;display:grid}.apartmentLogin input,.apartmentRemote input,.apartmentRemote select,.apartmentRemote textarea{color:#eee7d8;width:100%;font:inherit;background:#00000038;border:1px solid #eee7d82e;border-radius:8px;padding:12px}.apartmentRemote textarea{resize:vertical;min-height:86px}.apartmentRemote button,.apartmentLogin button{color:#eee7d8;background:#ffffff14;border:1px solid #eee7d82e;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;display:inline-flex}.apartmentRemote button:disabled{opacity:.45}.apartmentStats{grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:8px;padding:8px;display:grid}.apartmentStat{background:#00000029;border:1px solid #eee7d81f;border-radius:8px;gap:2px;padding:10px;display:grid}.apartmentStat span{color:#c7bdab;text-transform:uppercase;font-size:.68rem}.apartmentStat strong{font-size:1.05rem}.roleGrid{gap:10px;display:grid}.roleCard{text-align:left;justify-content:stretch;gap:10px;padding:12px;display:grid}.roleCard.active,.apartmentRemote button.active{background:#e0b15d2e;border-color:#e0b15dc2}.roleCard header,.roleDetailPanel header,.debtPanel header,.resourceTrade header{justify-content:space-between;align-items:center;gap:10px;display:flex}.roleCard header svg{color:#e0b15d;width:16px;height:16px}.roleMarketPreview{gap:8px;display:grid}.roleMiniMarket{grid-template-columns:42px minmax(0,1fr) 46px;align-items:center;gap:7px;display:grid}.roleGrid span,.roleMiniMarket span,.roleMiniMarket strong,.roleMarketRow span,.resourceTrade small,.debtPanel span,.roleDetailPanel p{color:#c7bdab;font-size:.82rem;line-height:1.35}.roleMiniMarket strong{color:#eee7d8;text-align:right;font-size:.74rem}.marketSparkline{width:100%;height:30px;overflow:visible}.marketSparkline polyline{fill:none;stroke:var(--spark-color,#e0b15d);stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.roleDetailPanel{gap:12px;display:grid}.roleDetailPanel header{align-items:start}.roleDetailPanel header>svg{color:#e0b15d;width:22px;height:22px}.roleDetailPanel header div{gap:2px;display:grid}.roleDetailPanel header p,.roleDetailPanel h2,.roleDetailPanel h3,.debtPanel h2{margin:0}.roleDetailPanel header p{color:#c7bdab;text-transform:uppercase;font-size:.68rem}.roleMarketRows,.roleTraitGrid{gap:8px;display:grid}.roleMarketRow{background:#00000024;border:1px solid #eee7d81a;border-radius:8px;grid-template-columns:minmax(0,1.1fr) minmax(86px,.9fr) 58px;align-items:center;gap:9px;padding:8px;display:grid}.roleMarketRow div,.roleTraitGrid section,.debtPanel,.debtSummary{gap:5px;display:grid}.roleMarketRow>strong{text-align:right}.roleTraitGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.roleTraitGrid section{background:#0000001f;border:1px solid #eee7d81a;border-radius:8px;padding:9px}.roleTraitGrid span{color:#c7bdab;font-size:.72rem;line-height:1.3}.debtPanel header svg{color:#e0b15d}.debtSummary{background:#00000024;border:1px solid #eee7d81a;border-radius:8px;padding:10px}.debtSummary strong{font-size:1.45rem}.apartmentActionGrid,.posterGrid,.expansionGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.expansionPanel{gap:12px;display:grid}.expansionSummary{flex-wrap:wrap;gap:8px;display:flex}.expansionSummary span{color:#c7bdab;text-transform:uppercase;background:#00000024;border:1px solid #eee7d81f;border-radius:999px;padding:5px 9px;font-size:.72rem}.expansionOption{text-align:left;justify-content:flex-start;min-height:96px;padding:10px}.expansionOption span{gap:4px;min-width:0;display:grid}.expansionOption small{color:#c7bdab;font-size:.68rem;line-height:1.25}.posterGrid .active{background:#e0b15d2e;border-color:#e0b15dc2}.resourceGrid{gap:10px;display:grid}.resourceTrade{background:#00000024;border:1px solid #eee7d81f;border-radius:8px;gap:8px;padding:10px;display:grid}.resourceTrade div{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.resourceTrade header span{color:#e0b15d;font-size:.78rem;font-weight:700}.apartmentUpgradeList{gap:10px;display:grid}.apartmentUpgradeList button{text-align:left;justify-content:flex-start;min-height:58px;padding:10px}.apartmentUpgradeList span{gap:3px;display:grid}.apartmentUpgradeList small{color:#c7bdab}@media (width<=760px){.apartmentDisplayHud{right:max(14px, env(safe-area-inset-right));flex-wrap:wrap}.apartmentTicker{display:none}.buildingBoard{width:164px;min-height:126px}.boardBody{grid-template-columns:1fr 64px}.boardNote:nth-child(n+3){display:none}.boardQrPaper img,.boardQrPaper>svg{width:48px;height:48px}}@media (aspect-ratio>=17/9){.apartmentSkylineScreen{grid-template-columns:minmax(220px,1fr) minmax(0,calc(177.778vh - 56.8889px)) minmax(220px,1fr);gap:clamp(10px,1.1vw,18px);padding:16px}.apartmentStage{border:1px solid #eee7d81a;width:min(177.778vh - 56.8889px,70vw);height:min(100vh - 32px,39.375vw);box-shadow:0 30px 100px #00000061}.apartmentSidePanel{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#12141494;border:1px solid #eee7d81f;border-radius:8px;align-content:start;align-self:stretch;gap:12px;width:min(100%,360px);max-height:calc(100vh - 32px);padding:12px;display:grid;overflow:hidden;box-shadow:0 18px 60px #0003}.marketSidePanel{justify-self:end}.communitySidePanel{justify-self:start}.stageBoard{display:none}.apartmentTicker{right:max(14px, env(safe-area-inset-right))}}.exchangeScreen{--exchange-bg:#11161a;--exchange-panel:#1b2226e6;--exchange-line:#e0cc9f2e;--exchange-text:#f4ead6;--exchange-dim:#a9b0aa;--exchange-green:#75d18b;--exchange-red:#e06b62;--exchange-amber:#e2bd69;width:100vw;height:100vh;color:var(--exchange-text);background:linear-gradient(#121618c2,#121618f5),repeating-linear-gradient(90deg,#e2bd690a 0 1px,#0000 1px 80px),linear-gradient(135deg,#16282a 0%,#11161a 42%,#231a20 100%);grid-template-rows:auto minmax(0,1fr);gap:clamp(10px,1vw,16px);padding:clamp(12px,1.2vw,20px);display:grid;overflow:hidden}.exchangeHeader{grid-template-columns:minmax(260px,auto) minmax(0,1fr);align-items:stretch;gap:clamp(10px,1vw,16px);display:grid}.exchangeHeader>div:first-child,.exchangeIndexBar,.exchangePanel,.exchangeQrBoard{border:1px solid var(--exchange-line);background:var(--exchange-panel);border-radius:8px;box-shadow:0 20px 80px #00000038}.exchangeHeader>div:first-child{align-items:center;gap:12px;min-width:0;padding:12px 14px;display:flex}.exchangeHeader svg{color:var(--exchange-amber);flex:none}.exchangeHeader h1,.exchangeHeader p,.exchangePanelTitle{margin:0}.exchangeHeader h1{font-size:clamp(1.25rem,1.8vw,2.05rem);line-height:1}.exchangeHeader p{color:var(--exchange-dim);text-transform:uppercase;margin-top:5px;font-size:.74rem;line-height:1}.exchangeIndexBar{grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.exchangeIndexBar article{background:#ffffff06;gap:3px;min-width:0;padding:10px 12px;display:grid}.exchangeIndexBar span,.exchangeIndexBar small,.commodityMeta,.tradeTape time,.companyBoard small,.reserveBoard footer{color:var(--exchange-dim);text-transform:uppercase;font-size:.66rem;line-height:1}.exchangeIndexBar strong{font-size:clamp(1rem,1.5vw,1.5rem);line-height:1}.exchangeIndexBar .up,.commodityCard .up{color:var(--exchange-green)}.exchangeIndexBar .down,.commodityCard .down{color:var(--exchange-red)}.exchangeGrid{grid-template-rows:minmax(0,1fr) minmax(190px,.48fr);grid-template-columns:minmax(500px,2.1fr) minmax(280px,.85fr) minmax(260px,.8fr);gap:clamp(10px,1vw,16px);min-height:0;display:grid}.exchangePanel{grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;padding:12px;display:grid}.exchangePanelTitle{color:var(--exchange-dim);text-transform:uppercase;align-items:center;gap:7px;padding-bottom:10px;font-size:.72rem;line-height:1;display:inline-flex}.exchangePanelTitle svg{width:15px;height:15px;color:var(--exchange-amber)}.exchangeMarketBoard{grid-row:1/3}.commodityGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-auto-rows:minmax(116px,1fr);gap:8px;min-height:0;display:grid}.commodityCard{border:1px solid #f4ead61a;border-left:3px solid var(--resource-color,var(--exchange-amber));background:linear-gradient(#ffffff0b,#ffffff04),#171e22;border-radius:8px;align-content:space-between;gap:7px;min-width:0;padding:10px;display:grid}.commodityCard header,.commodityCard footer,.reserveBoard header,.companyBoard article,.tradeTape article,.resourceControl header,.resourceControlStats{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.commodityCard header span{color:var(--resource-color,var(--exchange-amber));text-transform:uppercase;font-size:.76rem;font-weight:800;line-height:1}.commodityCard header strong{font-size:clamp(1.05rem,1.35vw,1.55rem);line-height:1}.exchangeSparkline{width:100%;height:36px;overflow:visible}.exchangeSparkline polyline{fill:none;stroke:var(--spark-color,var(--exchange-amber));stroke-linecap:round;stroke-linejoin:round;stroke-width:2.25px;vector-effect:non-scaling-stroke}.commodityCard footer small{align-items:center;gap:2px;font-size:.72rem;display:inline-flex}.commodityCard footer svg{width:13px;height:13px}.commodityMeta{justify-content:space-between;gap:8px;display:flex}.exchangeTapePanel{grid-area:1/2}.tradeTape{align-content:start;gap:6px;min-height:0;display:grid;overflow:hidden}.tradeTape article{background:#ffffff09;border:1px solid #f4ead614;border-radius:7px;padding:7px 8px}.tradeTape article.buy,.tradeTape article.auto-buy{border-left:3px solid #72c9d4}.tradeTape article.sell,.tradeTape article.auto-sell{border-left:3px solid var(--exchange-green)}.tradeTape article.debt{border-left:3px solid var(--exchange-red)}.tradeTape article.upgrade{border-left:3px solid #cda3ff}.tradeTape span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;line-height:1.15;overflow:hidden}.tradeTape strong{color:var(--exchange-amber);flex:none;font-size:.78rem}.exchangeReservePanel{grid-area:1/3}.reserveBoard{align-content:start;gap:12px;display:grid}.reserveBoard article{gap:8px;display:grid}.reserveBoard strong{color:var(--exchange-amber)}.reserveMeter{background:#f4ead61a;border-radius:999px;height:10px;overflow:hidden}.reserveMeter span{width:var(--meter-fill,0%);border-radius:inherit;background:var(--resource-color,var(--exchange-amber));height:100%;display:block}.exchangeLeadersPanel{grid-area:2/2}.companyBoard{align-content:start;gap:7px;min-height:0;display:grid}.companyBoard article{background:#ffffff09;border:1px solid #f4ead614;border-radius:7px;grid-template-columns:20px minmax(0,1fr) auto auto;padding:8px;display:grid}.companyBoard article>span{color:var(--exchange-amber);font-weight:800}.companyBoard strong,.companyBoard small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.companyBoard em{color:var(--exchange-green);font-style:normal;font-weight:800}.exchangeHeatPanel{grid-area:2/3;grid-template-rows:auto minmax(0,1fr) auto}.heatBoard{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;min-height:0;display:grid}.heatBoard article{background:linear-gradient(180deg, color-mix(in srgb, var(--resource-color,var(--exchange-amber)) var(--heat), transparent), #ffffff06), #172026;border:1px solid #f4ead61a;border-radius:7px;align-content:center;gap:5px;min-width:0;padding:8px;display:grid}.heatBoard span{color:var(--resource-color,var(--exchange-amber));text-transform:uppercase;font-size:.68rem;font-weight:800}.heatBoard strong{overflow-wrap:anywhere;font-size:.94rem}.exchangeQrBoard{width:100%;box-shadow:none;grid-template-columns:auto 1fr;align-items:center;gap:8px;margin-top:8px;padding:8px;display:grid}.exchangeQrBoard header,.exchangeQrBoard a,.exchangeQrBoard a span{align-items:center;gap:6px;display:inline-flex}.exchangeQrBoard header{color:var(--exchange-dim);text-transform:uppercase;font-size:.68rem}.exchangeQrBoard a{color:var(--exchange-text);justify-content:flex-end;justify-items:center;gap:8px;text-decoration:none;display:inline-flex}.exchangeQrBoard img{border-radius:6px;width:58px;height:58px}.exchangeQrBoard a span{color:var(--exchange-dim);text-transform:uppercase;margin-top:0;font-size:.68rem;line-height:1}.marketRemote{min-height:100dvh;padding:max(18px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));color:#f4ead6;background:linear-gradient(#121618db,#231a20f5),linear-gradient(135deg,#72c9d438,#0000 36%),#11161a;align-content:start;gap:14px;display:grid;overflow:auto}.phoneRemote{min-height:100dvh;padding-bottom:calc(94px + env(safe-area-inset-bottom))}.marketRemote .remotePanel,.marketRemote .remoteStats,.marketRemote .remoteFooter,.marketRemoteHeader,.marketLogin{color:#f4ead6;background:#1b2226eb;border-color:#e0cc9f33}.marketRemote .remotePanel h2,.marketRemoteHeader span,.marketRemote .remoteFooter,.marketRemote .apartmentStat span,.resourceControlStats,.charterMarkets,.marketCompanyPanel p{color:#a9b0aa}.marketRemoteHeader>div{align-items:center;gap:10px;display:flex}.phoneBackLink{color:#f4ead6;background:#ffffff0f;border:1px solid #e0cc9f2e;border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;text-decoration:none;display:inline-flex}.marketRemoteHeader svg,.marketLogin svg{color:#e2bd69}.marketStats{grid-template-columns:repeat(4,minmax(0,1fr))}.phoneStats{gap:10px}.marketClaimPanel input,.resourceControl input,.marketLogin input{color:#f4ead6;background:#0000002e;border:1px solid #e0cc9f38;border-radius:8px;width:100%;min-width:0}.charterGrid{gap:10px;display:grid}.charterGrid button{color:#f4ead6;text-align:left;background:#ffffff09;border:1px solid #e0cc9f29;border-radius:8px;gap:8px;padding:12px;display:grid}.charterGrid button.active,.focusGrid button.active,.resourceControl{background:#e2bd6914;border-color:#e2bd6980}.charterGrid span{color:#a9b0aa;font-size:.82rem;line-height:1.3}.charterMarkets{flex-wrap:wrap;gap:6px;display:flex}.charterMarkets span{background:#ffffff0f;border-radius:999px;padding:4px 6px;font-size:.68rem}.marketActionGrid,.focusGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.marketActionGrid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.marketActionGrid button,.focusGrid button,.automationSave,.marketClaimPanel>button,.phonePrimaryAction{color:#f4ead6;touch-action:manipulation;background:#ffffff0f;border:1px solid #e0cc9f33;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-width:0;min-height:54px;padding:12px 14px;text-decoration:none;display:inline-flex}.marketActionGrid button.active,.phoneAutomationGrid button.active{background:#75d18b24;border-color:#75d18b80}.marketActionGrid button:disabled,.phoneAutomationGrid button:disabled,.automationSave:disabled{cursor:not-allowed;color:#f4ead67a;background:#ffffff06;border-color:#e0cc9f1a}.marketActionGrid svg,.automationSave svg,.marketClaimPanel>button svg{color:#e2bd69;width:16px;height:16px}.focusGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.focusGrid button span,.resourceControl header span{background:var(--resource-color,#e2bd69);border-radius:999px;width:10px;height:10px}.marketResourceControls{gap:12px;display:grid}.resourceControl{border:1px solid #e0cc9f2e;border-radius:8px;gap:11px;padding:12px;display:grid}.resourceControl header>div{align-items:center;gap:8px;min-width:0;display:inline-flex}.resourceControl header em{color:#75d18b;font-style:normal;font-weight:800}.resourceControlStats span{align-items:center;gap:5px;font-size:.74rem;display:inline-flex}.resourceControlStats svg{width:14px;height:14px}.automationGrid{grid-template-columns:minmax(0,1fr) 92px 82px;align-items:end;gap:8px;display:grid}.automationGrid label{color:#a9b0aa;text-transform:uppercase;gap:5px;font-size:.68rem;display:grid}.automationGrid label:has(input[type=checkbox]){text-transform:none;grid-template-columns:auto 1fr;align-self:center;align-items:center}.automationGrid input[type=checkbox]{width:18px;height:18px}.automationGrid input[type=number]{padding:8px}.automationSave{width:100%}.phonePanel{gap:14px;padding:16px}.phonePanelHeading{align-items:center;gap:8px;display:flex}.phonePanelHeading h2{margin:0}.phonePanelHeading svg{color:#e2bd69;width:17px;height:17px}.phoneLoop,.phoneInfoStack{gap:8px;display:grid}.phoneLoop span,.phoneInfoStack span{color:#d9d0be;background:#ffffff0a;border:1px solid #e0cc9f1f;border-radius:8px;padding:9px 10px;font-size:.86rem;line-height:1.25}.phoneRouteGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.phoneRouteCard,.phoneResourceHero,.phoneMarketCard,.automationSummaryCard,.productionPhoneCard>a{color:#f4ead6;text-decoration:none}.phoneRouteCard{background:#1b2226eb;border:1px solid #e0cc9f33;border-radius:8px;place-items:center;gap:7px;min-height:76px;display:grid}.phoneRouteCard svg,.phoneBottomNav svg{color:#e2bd69;width:20px;height:20px}.phoneResourceHero,.automationSummaryCard,.productionPhoneCard>a{background:#ffffff0a;border:1px solid #e0cc9f29;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:12px;display:grid}.phoneResourceHero strong,.automationSummaryCard strong,.productionPhoneCard strong,.phoneMarketCard strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.phoneResourceHero span,.automationSummaryCard span,.productionPhoneCard span{color:#a9b0aa;font-size:.82rem}.phoneResourceHero em,.automationSummaryCard em,.productionPhoneCard em{color:#75d18b;font-style:normal;font-weight:800}.phoneMarketList{gap:10px;display:grid}.phoneMarketCard{background:#ffffff0a;border:1px solid #e0cc9f29;border-radius:8px;gap:8px;padding:12px;display:grid}.phoneMarketCard header,.phoneMarketCard footer,.phoneResourceHeader{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.phoneMarketCard header>div{align-items:center;gap:8px;min-width:0;display:inline-flex}.phoneMarketCard em,.phoneResourceHeader strong{color:#75d18b;font-style:normal;font-weight:800}.phoneMarketCard footer{color:#a9b0aa;text-transform:uppercase;font-size:.72rem}.phoneSparkline{width:100%;height:46px}.phoneSparkline polyline{fill:none;stroke:var(--spark-color,#e2bd69);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5px;vector-effect:non-scaling-stroke}.resourceDot{background:var(--resource-color,#e2bd69);width:13px;height:13px;box-shadow:0 0 16px color-mix(in srgb, var(--resource-color,#e2bd69) 45%, transparent);border-radius:999px;flex:none;display:inline-block}.phoneResourceHeader{background:#1b2226eb;border:1px solid #e0cc9f33;border-radius:8px;padding:14px 16px}.phoneResourceHeader h1{margin:0;font-size:1.35rem;line-height:1}.phoneResourceHeader span{color:#a9b0aa;text-transform:uppercase;font-size:.72rem}.phoneMetricGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.productionPhoneCard{background:#ffffff0a;border:1px solid #e0cc9f29;border-radius:8px;gap:10px;padding:10px;display:grid}.productionQuote{background:#00000029;border-radius:8px;gap:8px;padding:10px;display:grid}.productionQuote>div:not(.resourceCostList){justify-content:space-between;align-items:center;gap:10px;display:flex}.productionQuote span,.productionQuote small,.resourceCostList{color:#a9b0aa;font-size:.75rem}.productionQuote strong{color:#f4ead6}.resourceCostList{flex-wrap:wrap;gap:6px;display:flex}.resourceCostList span{background:#ffffff0f;border-radius:999px;padding:5px 7px}.resourceCostList span.missing{color:#e06b62;background:#e06b621f}.resourceCostList span.ready{color:#75d18b;background:#75d18b1f}.upgradeInputActions{gap:8px;display:grid}.upgradeInputActions article{background:#ffffff09;border:1px solid #e0cc9f24;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:64px;padding:10px;display:grid}.upgradeInputActions article.missing{border-color:#e06b6257}.upgradeInputActions article.ready{border-color:#75d18b3d}.upgradeInputActions article>div{grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:8px;display:grid}.upgradeInputActions .resourceDot{grid-row:1/3}.upgradeInputActions span{text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.upgradeInputActions small{color:#a9b0aa;font-size:.72rem}.upgradeInputActions button{color:#f4ead6;background:#ffffff0f;border:1px solid #e0cc9f38;border-radius:8px;min-height:48px;padding:10px 12px}.phoneAutomationGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.phoneAutomationGrid button,.phoneNumberField{color:#f4ead6;background:#ffffff0d;border:1px solid #e0cc9f2e;border-radius:8px;min-height:58px}.phoneNumberField{gap:5px;padding:8px 10px;display:grid}.phoneNumberField span{color:#a9b0aa;text-transform:uppercase;font-size:.68rem}.phoneNumberField input{color:#f4ead6;width:100%;font:inherit;background:0 0;border:0;padding:0;font-size:1.05rem}.phoneBottomNav{right:max(10px, env(safe-area-inset-right));bottom:max(10px, env(safe-area-inset-bottom));left:max(10px, env(safe-area-inset-left));z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#11161af0;border:1px solid #e0cc9f2e;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px;display:grid;position:fixed;box-shadow:0 18px 60px #0000005c}.phoneBottomNav a{color:#a9b0aa;border-radius:7px;place-items:center;gap:3px;min-height:52px;font-size:.68rem;text-decoration:none;display:grid}.phoneBottomNav a.active{color:#f4ead6;background:#e2bd6924}.phoneFooter{margin-bottom:4px}.towerAdmin{color:#17201c;background:#eef1ec;min-height:100vh;padding:24px}.towerAdminHeader,.towerAdminStatus,.towerAdminSummary article,.towerAdminPanel{background:#ffffffd1;border:1px solid #17201c1f;box-shadow:0 14px 32px #2a312b14}.towerAdminHeader{border-radius:8px;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;display:flex}.towerAdminHeader span,.towerAdminSummary span,.towerAdminForm label span,.towerAdminGameList>span,.towerAdminPlayerRow span,.towerAdminPlayerRow small{color:#607066;text-transform:uppercase;letter-spacing:0;font-size:.78rem;font-weight:800}.towerAdminHeader h1,.towerAdminPanelTitle h2{letter-spacing:0;margin:0}.towerAdminHeader h1{font-size:clamp(1.7rem,3vw,3rem)}.towerAdminHeader nav,.towerAdminStatus,.towerAdminActions,.towerAdminPanelTitle,.towerAdminDerived{align-items:center;gap:10px;display:flex}.towerAdminHeader a,.towerAdmin button{color:#17201c;cursor:pointer;background:#f8faf7;border:1px solid #17201c29;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 12px;font-weight:800;text-decoration:none;display:inline-flex}.towerAdmin button:disabled{cursor:not-allowed;opacity:.58}.towerAdminStatus{color:#405047;border-radius:8px;justify-content:space-between;margin:14px 0;padding:10px 12px 10px 16px}.towerAdminAuth{background:#ffffffd1;border:1px solid #17201c1f;border-radius:8px;margin-bottom:14px;padding:12px 16px;box-shadow:0 14px 32px #2a312b14}.towerAdminAuth label{gap:7px;display:grid}.towerAdminAuth span{color:#607066;text-transform:uppercase;letter-spacing:0;font-size:.78rem;font-weight:800}.towerAdminAuth input{color:#17201c;min-height:40px;font:inherit;background:#fff;border:1px solid #17201c2e;border-radius:8px;padding:0 10px;font-weight:750}.towerAdminSummary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.towerAdminSummary article{border-radius:8px;padding:16px}.towerAdminSummary strong{letter-spacing:0;margin-top:6px;font-size:2rem;display:block}.towerAdminGrid{grid-template-columns:minmax(360px,1.1fr) minmax(280px,.7fr);align-items:start;gap:14px;display:grid}.towerAdminPanel{border-radius:8px;padding:16px}.towerAdminPlayers{grid-column:1/-1}.towerAdminPanelTitle{margin-bottom:14px}.towerAdminPanelTitle h2{font-size:1rem}.towerAdminForm{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.towerAdminForm label{gap:7px;display:grid}.towerAdminForm input,.towerAdminForm select{color:#17201c;width:100%;min-height:40px;font:inherit;background:#fff;border:1px solid #17201c2e;border-radius:8px;padding:0 10px;font-weight:750}.towerAdminDerived,.towerAdminPrimary{grid-column:1/-1}.towerAdminDerived{color:#315c4d;background:#edf5f1;border-radius:8px;min-height:40px;padding:0 12px;font-weight:850}.towerAdmin .towerAdminPrimary{color:#fff;background:#24594a}.towerAdminActions{align-items:stretch}.towerAdminActions button{flex:1}.towerAdminActions .danger,.towerAdminPlayerRow button{color:#922f35;background:#fff5f3;border-color:#9e373747}.towerAdminGameList{gap:9px;margin-top:16px;display:grid}.towerAdminGameList article,.towerAdminPlayerRow,.towerAdminEmpty{background:#fbfcfa;border:1px solid #17201c1a;border-radius:8px;padding:12px}.towerAdminGameList strong,.towerAdminGameList small{display:block}.towerAdminGameList small{color:#607066;margin-top:4px}.towerAdminPlayerRow{grid-template-columns:minmax(180px,1fr) minmax(150px,auto) auto;align-items:center;gap:12px;margin-top:9px;display:grid}.towerAdminPlayerRow strong,.towerAdminPlayerRow span{display:block}.towerAdminPlayerRow span{text-transform:none;margin-top:4px}.towerAdminEmpty{color:#607066}@media (width<=1180px){.exchangeScreen{overflow:auto}.exchangeGrid,.exchangeHeader{grid-template-columns:1fr}.exchangeMarketBoard,.exchangeTapePanel,.exchangeReservePanel,.exchangeLeadersPanel,.exchangeHeatPanel{grid-area:auto}.exchangeIndexBar{grid-template-columns:repeat(2,minmax(0,1fr))}.exchangeQrBoard{width:auto}}@media (aspect-ratio>=21/9){.exchangeGrid{grid-template-rows:minmax(0,1fr) minmax(210px,.44fr);grid-template-columns:minmax(640px,1.5fr) minmax(320px,.72fr) minmax(320px,.72fr) minmax(300px,.62fr)}.exchangeMarketBoard{grid-area:1/1/3}.exchangeTapePanel{grid-area:1/2/3}.exchangeReservePanel{grid-area:1/3}.exchangeLeadersPanel{grid-area:2/3}.exchangeHeatPanel{grid-area:1/4/3}}@media (width<=560px){.marketStats,.marketActionGrid.compact,.focusGrid,.automationGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.automationGrid label:has(input[type=checkbox]){grid-column:1/-1}.phoneRouteGrid{grid-template-columns:1fr}.marketRemoteHeader h1{font-size:1.15rem}.towerAdmin{padding:12px}.towerAdminHeader,.towerAdminStatus,.towerAdminHeader nav{display:grid}.towerAdminSummary,.towerAdminGrid,.towerAdminForm,.towerAdminPlayerRow{grid-template-columns:1fr}.towerAdminActions{flex-direction:column}}
