body[data-play-mode=tower] #stage{background:radial-gradient(ellipse at top,#304967,#16293e 70%);padding:20px;border:3px solid #84d3c6}
body[data-play-mode=tower] :is(.stage-bottom,.stage-top,.session-bar,.score-head,#scores,.score-footer){display:none}
body[data-play-mode=tower] #prompt{font-size:clamp(22px,3vw,36px);margin:0 0 14px;color:#fff1bc}
.fort-game{color:#f1f7ff}.fort-top{display:flex;align-items:center;gap:12px;margin:10px 0}.fort-status{flex:1;font-size:clamp(16px,2vw,22px)}.fort-timer{background:#ffd260;color:#222;font-size:23px;border-radius:12px;padding:5px 12px;white-space:nowrap}.fort-timer:empty{display:none}.fort-restart{font-size:12px!important;padding:7px 10px!important;white-space:nowrap;background:#ffffff18!important;color:#e3ecf7!important;border:1px solid #7993ab!important;box-shadow:none!important}
.fort-setup{background:#ffffff12;border-radius:20px;padding:18px;display:flex;gap:12px;flex-wrap:wrap}.fort-setup[hidden],.fort-arena[hidden],.fort-weapon-tooltip[hidden]{display:none}.fort-setup label{display:grid;gap:5px}.fort-setup select,.fort-setup input{min-width:0;width:100%;font:inherit;border:2px solid #cbd7e7;border-radius:10px;padding:9px;color:#21314a;background:#fff}.fort-names{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fort-player-field{display:grid;grid-template-columns:1fr 1fr;border-left:5px solid var(--fort-color);padding-left:8px;gap:8px}
.fort-match-info{margin:0 0 8px;font-size:13px;color:#bcd5e8}.fort-roster{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}.fort-card{flex:1;min-width:115px;background:#101c2c;border:2px solid var(--fort-color);border-radius:14px;padding:8px 12px;display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:center}.fort-card.current{box-shadow:0 0 0 2px var(--fort-color),0 0 16px #ffffff20}.fort-card strong{color:var(--fort-color)}.fort-card span{font-size:13px}.fort-card-coins{color:#ffe28c;font-size:20px;grid-column:2;grid-row:1/3}.fort-card small{font-size:10px;color:#c5d3e4;grid-column:1/-1}
/* One layout for every phase: maps never change size when money arrives. */
.fort-arena{display:flex;flex-direction:column;gap:14px}.fort-boards{order:0;display:grid;grid-template-columns:repeat(var(--fort-count,2),minmax(0,1fr));gap:12px;align-items:start}.fort-tools{order:1;display:flex;justify-content:center;align-items:center;gap:9px;flex-wrap:wrap;min-width:0;margin:0}.fort-panel{position:relative;background:linear-gradient(145deg,#274d46,#1b3338);border:3px solid var(--fort-color);border-radius:18px;padding:10px;box-shadow:0 5px 0 #0b1823}.fort-panel h3{color:var(--fort-color);font-size:16px;margin:0 0 6px;text-align:center}.fort-panel.fallen{filter:grayscale(1);opacity:.6}.fort-map{position:relative;width:100%;max-width:310px;margin:auto}.fort-grid{display:grid;grid-template-columns:20px repeat(6,minmax(0,1fr));gap:3px;align-content:start;width:100%;margin:0}.fort-axis{font-size:12px;align-self:center;text-align:center;color:#e4f7d6}.fort-grid button.fort-cell{aspect-ratio:1;min-height:0;min-width:0;padding:0;border-radius:8px;border:1px solid #568f6b;background:linear-gradient(135deg,#427556,#315b42);position:relative;box-shadow:inset 0 -4px #213e3144;opacity:1}.fort-grid button.fort-cell.path{background:linear-gradient(135deg,#e1c593,#b39468);border-color:#f6dcac}.fort-cell:not(:disabled):hover{background:#9cd883;box-shadow:0 0 0 3px #fff7b1}.fort-piece{font-size:clamp(17px,2.6vw,32px);display:block;filter:drop-shadow(0 3px 1px #17242370)}.fort-cell.tower{background:radial-gradient(#bed9a9,#4b8c70)!important}.fort-cell.firing .fort-piece{animation:fort-fire .25s alternate infinite}.fort-map .fort-battle-layer{pointer-events:none;position:absolute;left:23px;top:20px;width:calc(100% - 23px);height:calc(100% - 20px);overflow:visible;filter:drop-shadow(0 2px 2px #182b2a)}
.fort-tools>button{font-size:14px;padding:10px 14px;border-radius:12px;border:2px solid #e0e9f3;background:#f9edc5;color:#24314b;font-weight:800;cursor:pointer}.fort-tools>button:disabled{opacity:.5}.fort-tools>small{width:100%;text-align:center;color:#ced9e8;font-size:11px;line-height:1.4}
.fort-wallet{display:flex;align-items:center;gap:6px 16px;flex-wrap:wrap;width:100%;padding:8px 14px;background:#3a3426;border:2px solid #f6cc58;border-radius:12px;color:#fff0b5}.fort-wallet strong{font-size:26px}.fort-wallet span{font-size:13px}.fort-wallet small{margin-left:auto;font-size:12px;color:#ffe8a8}.fort-shop{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;width:100%;min-width:0}.fort-shop button.fort-buy{position:relative;display:grid;grid-template-columns:32px 1fr;align-items:center;gap:2px 7px;padding:9px 10px;border:2px solid #7d98b1;border-radius:12px;background:#20364d;color:#eff8ff;box-shadow:none;text-align:left;white-space:normal;cursor:pointer;min-width:0;min-height:66px}.fort-buy .fort-weapon-icon{grid-row:1/3;font-size:29px}.fort-buy strong{font-size:13px;line-height:1.25}.fort-buy .fort-price{font-size:18px;color:#ffe18b}.fort-buy.selected{border-color:#bdff9b!important;background:#2f503e!important;box-shadow:0 0 0 2px #a6ec8b!important}.fort-buy:hover,.fort-buy:focus-visible{border-color:#e8faff;outline:2px solid #d6eafd;outline-offset:2px}.fort-buy.unaffordable{background:#263549;border-color:#576b80;color:#b1c1d0}.fort-buy.unaffordable .fort-price{color:#ceb67e}.fort-buy.unaffordable .fort-weapon-icon{filter:grayscale(.7)}.fort-weapon-tooltip{position:fixed;z-index:10000;width:280px;max-width:calc(100vw - 16px);background:#0d1b2e;border:2px solid #bad6ee;border-radius:14px;padding:14px;color:#f3f9ff;box-shadow:0 9px 30px #0008;pointer-events:none;line-height:1.4}.fort-weapon-tooltip strong{display:block;color:#ffe3a0;font-size:17px}.fort-weapon-tooltip b{display:block;font-size:13px;color:#98d8ff;margin-top:5px}.fort-weapon-tooltip p{font-size:14px;margin:6px 0}.fort-weapon-tooltip small{display:block;font-size:12px;color:#d5e3f0;margin-top:5px}
.fort-wheel-wrap{position:relative;width:124px;height:124px;flex-shrink:0}.fort-wheel{position:absolute;inset:5px;border-radius:50%;border:5px solid #f3e6b5;box-shadow:0 4px 0 #10202e;background:conic-gradient(#ff7c9f 0deg 60deg,#65d9ff 60deg 120deg,#bd9bff 120deg 180deg,#ffd260 180deg 240deg,#87d993 240deg 300deg,#ffab6b 300deg);transition:transform 2.3s cubic-bezier(.12,.8,.18,1)}.fort-wheel span{position:absolute;top:calc(50% - 8px);left:calc(50% - 10px);font-weight:900;color:#21314a;font-size:13px}.fort-pointer{position:absolute;top:-6px;left:51px;color:#fff;font-size:25px;filter:drop-shadow(0 2px 1px #111)}.fort-spin-bank{text-align:center;max-width:210px}.fort-spin-bank strong{font-size:23px;color:#ffe28c}.fort-spin-bank p{margin:5px 0;font-size:14px}.fort-spin-bank small{color:#bdcfe0;font-size:12px}
.fort-config-preview{width:100%;display:flex;align-items:center;gap:18px;background:#173b31;border:1px solid #71a78e;border-radius:15px;padding:13px}.fort-config-preview.frost{background:#25465d;border-color:#9cd8ef}.fort-config-preview.lava{background:#4e2b30;border-color:#ef9379}.fort-config-preview p{margin:4px 0;font-size:13px;line-height:1.4}.fort-config-preview strong{font-size:15px}.fort-mini-map{display:grid;grid-template-columns:repeat(6,17px);gap:2px;flex-shrink:0}.fort-mini-map span{width:17px;height:17px;background:#548768;border-radius:3px;font-size:12px}.fort-mini-map .road{background:#e9c898}.frost .fort-mini-map span{background:#4a869e}.frost .fort-mini-map .road{background:#ddf6fc}.lava .fort-mini-map span{background:#634b50}.lava .fort-mini-map .road{background:#fc9868}
.fort-game[data-theme=frost] .fort-panel{background:linear-gradient(145deg,#30546c,#183949)}.fort-game[data-theme=frost] .fort-cell{background:linear-gradient(135deg,#557e93,#355a70);border-color:#81bbcf}.fort-game[data-theme=frost] .fort-cell.path{background:linear-gradient(135deg,#e4faff,#a9d9ed);border-color:#f3fbff}.fort-game[data-theme=lava] .fort-panel{background:linear-gradient(145deg,#573939,#302c3c)}.fort-game[data-theme=lava] .fort-cell{background:linear-gradient(135deg,#78624e,#51483c);border-color:#a98b6c}.fort-game[data-theme=lava] .fort-cell.path{background:linear-gradient(135deg,#ffc384,#e37b57);border-color:#ffd1a3}
body.projection[data-play-mode=tower] #prompt{display:none}body.projection[data-play-mode=tower] .arena-stamp{margin:0 0 6px;min-height:32px}body.projection[data-play-mode=tower] .fort-map{max-width:min(310px,calc(100svh - 360px))}body.projection[data-play-mode=tower] .fort-top{margin:4px 0 6px}body.projection[data-play-mode=tower] .fort-card small{display:none}body.projection[data-play-mode=tower] .fort-card{padding:6px 10px}body.projection[data-play-mode=tower] .fort-card-coins{grid-row:1/3}body.projection[data-play-mode=tower] .fort-roster{margin:8px 0}body.projection[data-play-mode=tower] .fort-shop-hint{display:none}
@keyframes fort-fire{to{transform:scale(1.17) rotate(-12deg);filter:drop-shadow(0 0 9px #fff)}}
@media(max-width:1000px){.fort-shop{grid-template-columns:repeat(3,minmax(0,1fr))}.fort-boards:has(>.fort-panel:nth-child(3)){grid-template-columns:repeat(2,minmax(0,1fr))}.fort-buy strong{font-size:14px}}
@media(max-width:600px){.fort-names{grid-template-columns:1fr}.fort-player-field{grid-template-columns:1fr}.fort-config-preview{align-items:flex-start;gap:10px}.fort-boards{gap:6px}.fort-panel{padding:5px;border-radius:12px}.fort-panel h3{font-size:13px}.fort-grid{gap:2px;grid-template-columns:14px repeat(6,minmax(0,1fr))}.fort-map .fort-battle-layer{left:16px;width:calc(100% - 16px)}.fort-piece{font-size:19px}.fort-shop{grid-template-columns:repeat(2,minmax(0,1fr))}.fort-shop button.fort-buy{padding:8px;grid-template-columns:28px 1fr}.fort-buy .fort-weapon-icon{font-size:25px}.fort-buy strong{font-size:12px}.fort-wallet strong{font-size:24px}.fort-wallet small{margin-left:0}.fort-spin-bank{max-width:140px}.fort-card{min-width:100px;padding:6px;gap:3px}.fort-card-coins{font-size:17px}.fort-top{flex-wrap:wrap}.fort-status{flex-basis:100%}.fort-timer{font-size:20px}}
@media(prefers-reduced-motion:reduce){.fort-wheel{transition-duration:.1s}.fort-cell.firing .fort-piece{animation:none}}
body.projection[data-play-mode=tower] .workspace{padding:10px 20px}body.projection[data-play-mode=tower] .workspace>:is(.section-top,.title-row,.tabs){display:none}body.projection[data-play-mode=tower] #stage{padding:14px}body.projection[data-play-mode=tower] .arena-stamp{display:none}body.projection[data-play-mode=tower] .fort-tools{gap:6px}body.projection[data-play-mode=tower] .fort-top{padding-right:0;margin-top:34px}body.projection[data-play-mode=tower] .fort-status{font-size:18px}body.projection[data-play-mode=tower] .fort-map{max-width:min(310px,calc(100svh - 400px))}
.fort-level{position:absolute;bottom:1px;right:2px;background:#102338;color:#ffe28b;font-size:10px;font-weight:900;padding:1px 4px;border-radius:4px;border:1px solid #ffe28b}.fort-upgrade-dialog{max-width:min(420px,calc(100vw - 30px));border:3px solid #ffd76c;border-radius:20px;background:#172d44;color:#edf6ff;padding:24px;box-shadow:0 20px 70px #0009}.fort-upgrade-dialog::backdrop{background:#071322b8}.fort-upgrade-dialog h3{margin:0 0 10px;font-size:22px;color:#ffe69a}.fort-upgrade-bank{font-size:20px;font-weight:bold}.fort-upgrade-price{color:#ffe69a;font-size:21px;font-weight:bold}.fort-upgrade-stats{display:grid;grid-template-columns:1fr auto;gap:8px 20px;margin:15px 0;background:#ffffff0d;padding:14px;border-radius:12px}.fort-upgrade-stats strong{color:#b3f4b1}.fort-upgrade-dialog small{display:block;font-size:12px;line-height:1.5;margin:12px 0}.fort-upgrade-dialog button{display:block;width:100%;margin-top:9px;background:#ffe28b;color:#1e2c40}.fort-upgrade-dialog button:disabled{opacity:.4;cursor:default}
.fort-grid button.fort-cell.fort-tower-level-2{background:radial-gradient(#b5faff,#377b9b)!important;border:2px solid #94efff;box-shadow:inset 0 0 10px #92edff,0 0 6px #88edff}.fort-grid button.fort-cell.fort-tower-level-3{background:radial-gradient(#fff0a1,#b17a37)!important;border:2px solid #ffe080;box-shadow:inset 0 0 12px #fff2b2,0 0 10px #ffd36a}.fort-tower-level-2 .fort-piece{transform:scale(1.1);filter:drop-shadow(0 0 4px #65e7ff)}.fort-tower-level-3 .fort-piece{transform:scale(1.2);filter:drop-shadow(0 0 6px #ffdd68)}.fort-upgrade-crest{position:absolute;top:1px;left:3px;color:#adf4ff;font-size:13px;text-shadow:0 0 5px #2caaff}.fort-tower-level-3 .fort-upgrade-crest{color:#ffe579;font-size:17px}.fort-shot-level-2{filter:drop-shadow(0 0 5px #70e7ff)}.fort-shot-level-3{filter:drop-shadow(0 0 8px #ffd56a)}
.fort-enemy-preview{width:100%;text-align:center;font-size:12px;line-height:1.5;color:#c9dfef;margin:2px 0 0}
