.tower-game { gap:18px; }
.games-hub[data-active-game="tower"] .game-panel[hidden] { display:none!important; }
.tower-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.tower-heading h2 { margin:0; font-size:28px; line-height:1.15; letter-spacing:-.8px; }
.tower-eyebrow { margin:0 0 7px; color:var(--lavender); font-size:9px; font-weight:700; letter-spacing:1.4px; }
.tower-heading-mark { display:grid; place-items:center; width:48px; height:48px; border:1px solid var(--line); border-radius:14px; background:var(--raised); color:var(--accent); font-size:27px; }
.tower-layout { display:grid; grid-template-columns:minmax(170px,.8fr) minmax(0,1.6fr); align-items:start; gap:18px; }
.tower-controls { display:grid; gap:15px; min-width:0; }
.tower-summary { display:grid; gap:5px; padding:15px; border:1px solid var(--line); border-radius:14px; background:var(--raised); }
.tower-summary span { color:var(--muted); font-size:11px; line-height:1.5; }
.tower-summary strong { color:var(--ink); font-size:25px; line-height:1.25; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.tower-summary-primary strong { color:var(--positive); }
.tower-progress { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.tower-progress strong { color:var(--ink); font-variant-numeric:tabular-nums; }
.tower-wager-label { display:grid; gap:9px; min-width:0; color:var(--ink); font-size:11px; font-weight:700; }
.tower-wager-label input { width:100%; min-width:0; min-height:46px; font-size:16px; }
.tower-stake-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.tower-stake-shortcuts button { min-width:0; min-height:44px; padding:8px 5px; border:1px solid var(--line); border-radius:10px; background:var(--raised); color:var(--ink); font-size:12px; font-weight:700; }
.tower-controls>.button { width:100%; min-height:48px; padding:12px; font-size:13px; }
.tower-controls button:disabled { opacity:.45; cursor:default; }
.tower-controls .tower-cashout { border-color:var(--positive); background:var(--positive); color:#062519; }
.tower-board { position:relative; display:grid; gap:7px; min-width:0; padding:15px 12px; border:1px solid var(--line); border-radius:18px; background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 5%,var(--surface)),var(--surface)); }
.tower-floor { display:grid; grid-template-columns:23px repeat(3,minmax(0,1fr)) 52px; align-items:center; gap:7px; min-width:0; }
.tower-floor-number { color:var(--muted); font-size:11px; font-weight:700; text-align:center; font-variant-numeric:tabular-nums; }
.tower-floor-multiplier { color:var(--muted); font-size:11px; font-weight:700; text-align:end; font-variant-numeric:tabular-nums; white-space:nowrap; }
.tower-tile { display:grid; place-items:center; min-width:0; min-height:45px; padding:6px 2px; border:1px solid var(--line); border-radius:9px; background:var(--raised); color:var(--muted); font-size:21px; font-weight:800; line-height:1; touch-action:manipulation; transition:border-color .15s,background .15s,transform .15s; }
.tower-tile:disabled { cursor:default; }
.tower-floor.is-next .tower-tile { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 9%,var(--raised)); color:var(--accent); }
.tower-floor.is-next .tower-floor-number,.tower-floor.is-next .tower-floor-multiplier { color:var(--accent); }
.tower-floor.is-complete .tower-floor-multiplier { color:var(--positive); }
.tower-tile.is-safe { border-color:var(--positive); background:color-mix(in srgb,var(--positive) 16%,var(--surface)); color:var(--positive); }
.tower-tile.is-trap { border-color:var(--danger); background:color-mix(in srgb,var(--danger) 17%,var(--surface)); color:var(--danger); }
.tower-tile.is-pending { border-color:var(--accent); color:var(--accent); animation:tower-pending .8s ease-in-out infinite alternate; }
.tower-tile.is-revealed { animation:tower-reveal .22s ease-out; }
.tower-board.is-loss { border-color:color-mix(in srgb,var(--danger) 65%,var(--line)); }
.tower-board.is-win { border-color:color-mix(in srgb,var(--positive) 65%,var(--line)); }
.tower-result { min-height:40px; margin:0; color:var(--muted); font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.tower-result.is-error,.tower-result.is-loss { color:var(--danger); }
.tower-result.is-win { color:var(--positive); }
.tower-hint,.tower-rules { margin:0; color:var(--muted); font-size:12px; line-height:1.65; }
.tower-rules { font-size:11px; }
.tower-game button:focus-visible,.tower-game input:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
@media(hover:hover) { .tower-floor.is-next .tower-tile:not(:disabled):hover { transform:translateY(-2px); background:color-mix(in srgb,var(--accent) 18%,var(--raised)); } }
@keyframes tower-pending { to { opacity:.5; } }
@keyframes tower-reveal { from { transform:scale(.9); opacity:.5; } to { transform:scale(1); opacity:1; } }
@media(max-width:640px) { .tower-layout { grid-template-columns:minmax(0,1fr); gap:16px; } .tower-board { grid-row:1; } .tower-controls { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .tower-controls>.tower-wager-label,.tower-controls>.tower-stake-shortcuts,.tower-controls>.button,.tower-controls>.tower-progress { grid-column:1/-1; } .tower-heading h2 { font-size:25px; } .tower-summary { padding:12px; } .tower-summary strong { font-size:23px; } .tower-board { padding:13px 10px; } .tower-tile { min-height:44px; } }
@media(max-width:360px) { .tower-floor { grid-template-columns:19px repeat(3,minmax(0,1fr)) 46px; gap:5px; } .tower-board { padding:12px 8px; gap:6px; } .tower-floor-multiplier { font-size:10px; } .tower-summary strong { font-size:21px; } }
@media(prefers-reduced-motion:reduce) { .tower-tile,.tower-tile.is-revealed,.tower-tile.is-pending { animation:none; transition:none; } }
.tower-game[data-reduced-motion="true"] .tower-tile { animation:none; transition:none; }
