/* The approved victory-pose game-over scene uses the game's own title artwork. */
.game-over-scene{position:fixed;inset:0;z-index:45;overflow:hidden;background:#211f35;color:#f6d7a6}
.game-over-scene.hidden{display:none}
#game-over-art{display:block;width:100%;height:100%;image-rendering:pixelated}
.game-over-content{position:absolute;left:max(6%,env(safe-area-inset-left,0px));top:max(9%,env(safe-area-inset-top,0px));width:max-content;max-width:38%}
.game-over-content h1{margin:0 0 18px;font:bold clamp(48px,5.7vw,128px)/.88 var(--serif);letter-spacing:-2px;text-shadow:0 3px 0 #342435,0 6px 20px #19152280}
.game-over-content h1 span{display:block;color:#efac73;margin-top:8px}
#game-over-new-run{width:100%;min-width:220px;min-height:48px;padding:12px 22px;font:bold clamp(16px,1.5vw,26px) var(--serif);border-radius:10px;background:#e9a45f;border:1px solid #f2bc7e;color:#302532;white-space:normal}
.game-over-links{display:flex;justify-content:space-between;gap:14px;margin-top:8px}
.game-over-links .quiet{min-height:44px;padding:8px 2px;color:#e4cfbb;font-size:12px;text-shadow:0 1px 3px #211923}
.game-over-scene>#sound{position:absolute;right:max(12px,env(safe-area-inset-right,0px));top:max(10px,env(safe-area-inset-top,0px));z-index:1;min-height:44px;padding:9px 12px;border:1px solid #796472;border-radius:8px;background:#292330e8;color:#f0e7d7}
.game-over .header,.game-over .sidebar,.game-over .hud,.game-over .farm-top,.game-over .wave-strip,.game-over .control-note{visibility:hidden}
.game-over .game-stage>:not(#game-over-scene):not(#result-dialog):not(#toast){visibility:hidden}
.game-over .game-stage #toast{position:fixed;z-index:60;bottom:max(18px,env(safe-area-inset-bottom,0px))}
.game-over .game-stage #result-dialog[open]{position:fixed;inset:12px;width:min(500px,calc(100% - 24px));max-height:calc(100dvh - 24px);margin:auto;overflow:auto}
@media(orientation:portrait){
 .game-over-content{top:max(12%,calc(env(safe-area-inset-top,0px) + 60px));left:8%;max-width:84%;width:84%;text-align:center}
 .game-over-content h1{font-size:clamp(64px,16vw,100px);margin-bottom:18px}
 #game-over-new-run{width:auto;min-width:230px;max-width:100%;font-size:20px}
 .game-over-links{max-width:250px;margin:4px auto 0}
}
@media(orientation:landscape) and (max-height:520px){
 .game-over-content{top:13%;left:max(6%,env(safe-area-inset-left,0px));max-width:36%}
 .game-over-content h1{font-size:clamp(40px,8vh,58px);margin-bottom:12px}
 #game-over-new-run{font-size:16px;min-width:180px;padding:9px 12px}
 .game-over-links{gap:10px;margin-top:0}.game-over-links .quiet{font-size:11px}
}

/* Run flow overlays and the shared, bounded deck layout. */
.night-resolve{position:absolute;inset:0;z-index:40;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 35%,#52415beb,#201d2af5 70%);color:#f7e5c6;text-align:center;pointer-events:auto}
.night-resolve.hidden{display:none}.resolve-content{width:min(650px,94%);padding:18px}
.resolve-content>small{font:600 11px var(--sans);letter-spacing:2px;color:#c5b0d0}.resolve-content h2{font-size:36px;margin:10px 0 24px}
.resolve-factors{display:flex;justify-content:center;align-items:center;gap:32px;height:95px;transition:transform .65s,opacity .65s}
.resolve-factors>div{display:grid;gap:10px;transition:transform .65s}.resolve-factors small,.resolve-total small,.resolve-bank small{display:block;font:600 10px var(--sans);letter-spacing:2px;color:#c4adc9}
.resolve-factors strong{font:700 clamp(24px,4vw,46px) var(--sans);font-variant-numeric:tabular-nums;color:#e9d393}.resolve-factors>div:last-child strong{color:#cba9ed}.resolve-factors>b{font-size:32px;color:#a48fba}
.resolve-total{height:85px;opacity:0;transform:scale(.7);transition:opacity .4s,transform .5s}.resolve-total strong{display:block;margin-top:6px;font:700 clamp(30px,5vw,58px) var(--sans);color:#f9d99b;font-variant-numeric:tabular-nums}
.resolve-bank{margin:14px auto 0;padding:18px;border-top:1px solid #75607c;max-width:380px;opacity:0;transform:translateY(20px);transition:opacity .5s,transform .5s}
.resolve-bank strong{display:block;font:700 clamp(24px,4vw,44px) var(--sans);margin:8px;color:#c8d79f;font-variant-numeric:tabular-nums}.resolve-bank span{color:#f1cc8e;font-size:14px}.resolve-content>p{height:20px;font-size:12px;color:#c9b8d0}
.night-resolve[data-stage=multiply] .resolve-factors,.night-resolve[data-stage=bank] .resolve-factors,.night-resolve[data-stage=done] .resolve-factors{transform:translateY(42px) scale(.35);opacity:0}
.night-resolve[data-stage=multiply] .resolve-factors>div:first-child{transform:translateX(55px)}.night-resolve[data-stage=multiply] .resolve-factors>div:last-child{transform:translateX(-55px)}
.night-resolve:not([data-stage=factors]) .resolve-total{opacity:1;transform:translateY(-42px) scale(1)}
.night-resolve[data-stage=bank] .resolve-bank,.night-resolve[data-stage=done] .resolve-bank{opacity:1;transform:translateY(-30px)}
.resolving #plant-hud,.resolving #touch-controls,.resolving .game-toolbar{visibility:hidden}
.spawn-countdown .night-progress-track,.spawn-countdown .night-progress-moon{display:none}.spawn-countdown strong{flex:1;text-align:center;color:#e8d29d}
.plant-hud .build-heading,#plot-actions{display:none!important}.plant-hud .build-card{touch-action:manipulation}
.prep-lobby{position:fixed;inset:48px 12px 12px;max-width:1400px;margin:0 auto;padding:18px;overflow:hidden;border:1px solid #8b7287;border-radius:14px;background:linear-gradient(135deg,#332c40,#211e2a);color:#eee0c8;z-index:40}
.prep-content{max-width:1250px;height:100%;margin:0 auto;display:flex;flex-direction:column;gap:14px;min-height:0}
.shop-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}.shop-heading small{font-size:10px;letter-spacing:2px;color:#c9ad90}.shop-heading h2{font-size:26px;margin:3px 0}.shop-heading p{font-size:12px;margin:0;color:#c9b7d2}.shop-heading>strong{font-size:13px;color:#e7d099;text-align:right}
.shop-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;border:0;padding:8px 0 0;flex:none;color:#c4b5cd}.shop-footer .supplies{display:flex;gap:6px}.shop-footer .hud-button,.shop-footer .button{padding:10px;font-size:11px;white-space:nowrap}.shop-footer small{font-size:10px}.prep-lobby .hud-button{background:#403347;color:#ebdec8;border:1px solid #806a82}
.deck-board{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;width:100%}.prep-content>.deck-board{flex:1;justify-content:center}
.deck-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.deck-section{min-width:0;padding:12px;border:1px solid #695773;border-radius:10px;background:#18162255;display:flex;flex-direction:column;gap:7px}
.deck-heading{display:flex;align-items:baseline;justify-content:space-between;gap:5px}.deck-heading h3,.prep-lobby .deck-heading h3{color:#efdfbb;font:600 16px var(--sans);margin:0}.deck-heading small{color:#b6a3c4;font-size:9px;text-align:right}
.deck-slots{display:grid;grid-template-columns:repeat(var(--slots),minmax(0,1fr));gap:4px}.deck-slot{min-width:0;border:1px dashed #9a809f;border-radius:7px;background:#61507033;min-height:62px;display:flex;position:relative}.deck-slot.wildcard-slot{margin-left:5px;border-color:#d7b271}.deck-slot.wildcard-slot:before{position:absolute;left:-5px;top:0;bottom:0;content:'';border-left:1px solid #ac9673}
.empty-slot{width:100%;padding:0;min-width:0;min-height:100%;background:transparent;color:#ae94bd;border:0;font-size:18px}.locked-slot .empty-slot{font-size:9px;color:#86768f;opacity:1}.available-label{font-size:8px;letter-spacing:1px;color:#9d8bab;margin:0}
.deck-available{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:62px;align-content:start;gap:4px;min-height:62px;border-radius:5px}.deck-magic .deck-available{grid-template-columns:repeat(7,minmax(0,1fr))}
.deck-card{position:relative;min-width:0;width:100%;height:62px;min-height:0;margin:0;padding:4px 2px;border:1px solid #90779c;border-radius:6px;background:linear-gradient(145deg,#51405f,#2d2739);color:#f3e5cf;box-shadow:0 2px 0 #131019;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;touch-action:none;user-select:none;cursor:grab;overflow:hidden}
.deck-card canvas{width:27px;height:24px;object-fit:contain;flex:none}.card-symbol{font-size:23px;line-height:25px}.card-name{font:500 8px/1.1 var(--sans);max-width:100%;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-count{position:absolute;top:1px;right:2px;border-radius:3px;background:#211928e8;padding:1px 2px;font:700 9px var(--sans);color:#f5d59d}.card-price{font:600 9px var(--sans);color:#eacc90}.in-team{border-color:#779d79}.deck-slot .deck-card{height:100%;min-height:62px;border-color:#b6b486}.deck-pending{opacity:.8}.deck-pending .deck-card{cursor:wait}
.empty-deck{grid-column:1/-1;align-self:center;text-align:center;color:#93839f;font-size:10px}.deck-offers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:auto}.deck-offers .deck-card{height:80px}.shop-action{border:1px dashed #8d7699;background:#3b3046;color:#dcc4eb;padding:6px;border-radius:7px;font-size:10px;min-width:0}.shop-action:disabled,.deck-card:disabled{opacity:.4;cursor:default}.deck-magic .shop-action{grid-column:1/-1;height:80px}
.card-detail{flex:none;min-height:40px;color:#d0bed9;font:11px/1.35 var(--sans);padding:8px 10px;background:#17151e66;border-radius:7px;display:flex;align-items:center}.drop-hover{outline:2px solid #dfc18a!important;background:#79674255!important}.card-picked{outline:2px solid #dfc18a}.drag-origin{opacity:.3}.card-ghost{position:fixed;z-index:10000;pointer-events:none;transform:translate(-50%,-50%) rotate(-4deg);opacity:.95;box-shadow:0 6px 20px #0008}
.game-stage .loadout-dialog[open]{position:fixed;inset:60px 16px auto;width:min(1100px,calc(100% - 32px));max-height:calc(100dvh - 80px);margin:auto;padding:20px;overflow:visible;background:#2c2637;border:1px solid #967b9e;border-radius:12px}.loadout-dialog>h2{font-size:25px;margin:0 0 18px}.loadout-dialog .menu-close{top:8px;right:8px}.loadout-dialog .deck-board{gap:12px}
.game-stage .charms-panel{width:min(1100px,calc(100% - 20px));max-height:none;overflow:visible}.charms-panel>h2,.charms-panel>#charm-intro,.charms-panel>.charm-footer{display:none}.charms-panel .deck-card{cursor:default}.charms-panel .panel-eyebrow{margin:0 0 12px}
.preparing .sidebar,.preparing .game-toolbar{visibility:hidden}.preparing #charm-menu{display:none!important}
@media(max-width:700px){
 .prep-lobby{inset:36px 4px 4px;padding:9px;border-radius:9px}.prep-content{gap:8px}.shop-heading h2{font-size:20px}.shop-heading small{font-size:8px}.shop-heading p{font-size:10px}.shop-heading>strong{font-size:10px;max-width:115px}
 .deck-columns{grid-template-columns:1fr;gap:7px}.deck-section{padding:7px;gap:4px}.deck-heading h3,.prep-lobby .deck-heading h3{font-size:12px}.deck-heading small{font-size:8px}.deck-slots,.deck-available{gap:3px}.deck-slot,.deck-slot .deck-card{min-height:40px}.deck-card{height:40px;padding:2px;gap:1px;flex-direction:row;flex-wrap:wrap;align-content:center}.deck-card canvas{width:22px;height:20px}.card-symbol{font-size:19px;line-height:20px}.card-name{font-size:7px;flex:1 0 50%;min-width:0}.deck-available{grid-auto-rows:35px;min-height:35px}.deck-available .deck-card{height:35px}.deck-available .card-symbol{font-size:17px}.deck-available .deck-card canvas{width:19px;height:17px}.deck-available .card-name{font-size:7px}.deck-offers .deck-card,.deck-magic .shop-action{height:40px}.card-price{font-size:8px}.available-label{font-size:7px}.deck-offers{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.shop-action{font-size:9px;padding:4px}
 .card-detail{font-size:9px;line-height:1.25;min-height:34px;padding:5px 7px}.deck-board{gap:6px}.shop-footer{flex-wrap:wrap;padding:0;gap:5px}.shop-footer .supplies{flex:1}.shop-footer small{font-size:8px}.shop-footer .hud-button,.shop-footer .button{font-size:9px;padding:7px}.shop-footer #prep-start{width:100%;justify-content:center}.prep-content>.deck-board{justify-content:center}
 .game-stage .loadout-dialog[open]{inset:38px 6px auto;width:calc(100% - 12px);max-height:calc(100dvh - 44px);padding:12px}.loadout-dialog>h2{font-size:20px;margin:0 0 10px}.loadout-dialog .deck-board{gap:6px}.game-stage .charms-panel{padding:12px}.charms-panel .panel-eyebrow{font-size:9px;margin-bottom:8px}
 .resolve-content h2{font-size:26px}.resolve-factors{gap:18px}.resolve-content{padding:10px}.resolve-content>small{font-size:9px}
}
@media(max-height:740px) and (max-width:700px){
 .prep-content{gap:5px}.deck-section{padding:5px;gap:3px}.deck-columns{gap:4px}.deck-card,.deck-slot .deck-card{height:33px;min-height:33px}.deck-slot{min-height:33px}.deck-available{grid-auto-rows:28px;min-height:28px}.deck-available .deck-card{height:28px}.deck-offers .deck-card,.deck-magic .shop-action{height:34px}.deck-card canvas{width:17px;height:16px}.card-symbol{font-size:16px;line-height:16px}.deck-available .card-symbol{font-size:15px}.deck-available .deck-card canvas{width:15px;height:14px}.card-detail{font-size:8px;min-height:30px}.shop-heading h2{font-size:17px}.shop-footer .hud-button,.shop-footer .button{padding:6px}.available-label{font-size:6px}.deck-heading h3,.prep-lobby .deck-heading h3{font-size:11px}
}
@media(orientation:landscape) and (max-height:520px){
 .prep-lobby{inset:5px;padding:8px}.prep-content{gap:5px}.shop-heading h2{font-size:16px;display:inline;margin-right:6px}.shop-heading>div{display:flex;align-items:baseline;gap:6px}.shop-heading p{font-size:10px}.shop-heading small{font-size:8px}.shop-heading>strong{font-size:10px}.deck-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.deck-section{padding:6px;gap:4px}.deck-heading h3,.prep-lobby .deck-heading h3{font-size:12px}.deck-heading small{font-size:7px}.deck-slot,.deck-slot .deck-card{min-height:38px}.deck-card{height:38px;gap:1px;padding:2px}.deck-card canvas{width:18px;height:16px}.card-symbol{font-size:17px;line-height:17px}.card-name{font-size:7px}.card-count{font-size:7px}.available-label{font-size:6px}.deck-available{grid-auto-rows:38px;min-height:38px;gap:3px}.deck-offers .deck-card,.deck-magic .shop-action{height:45px}.shop-action{font-size:9px;padding:3px}.card-price{font-size:8px}.deck-board{gap:4px}.card-detail{font-size:9px;min-height:28px;padding:4px 7px}.shop-footer{padding:0;flex-wrap:nowrap}.shop-footer .hud-button,.shop-footer .button{font-size:9px;padding:6px}.shop-footer #prep-start{width:auto}.shop-footer small{font-size:9px}.prep-content>.deck-board{justify-content:center}
 .game-stage .loadout-dialog[open]{inset:8px;width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:10px}.loadout-dialog>h2{font-size:17px;margin:0 0 8px}.loadout-dialog .deck-board{gap:4px}.resolve-content h2{font-size:22px;margin:5px}.resolve-factors{height:68px}.resolve-total{height:50px}.resolve-bank{padding:8px;margin-top:6px}.resolve-bank strong{font-size:24px}.resolve-content>p{margin:0;height:14px}.resolve-factors strong{font-size:24px}.resolve-total strong{font-size:32px}.resolve-bank small,.resolve-factors small,.resolve-total small{font-size:8px}
}
@media(prefers-reduced-motion:reduce){.resolve-factors,.resolve-factors>div,.resolve-total,.resolve-bank{transition:none}}

/* Do not let flex shrinking overlap the heading, card rows, or footer. */
.deck-columns{flex:none}.deck-section>*{flex-shrink:0}.deck-board{flex-shrink:0}
.card-detail{height:44px;min-height:44px}
.deck-available .deck-card{min-height:0}
.shop-window-controls{display:flex;gap:3px;align-self:flex-start}.shop-window-controls .hud-button{padding:2px;width:25px;height:25px;font:18px var(--sans)}

/* The title is an illustration, with gameplay controls appearing only in a run. */
.title-scene{position:absolute;inset:0;z-index:2;overflow:hidden;background:#292536;pointer-events:none}
.title-scene.hidden{display:none}.title-scene canvas{display:block;width:100%;height:100%;object-fit:cover;image-rendering:pixelated}
.title-scene>#sound{position:absolute;top:12px;right:12px;z-index:3;pointer-events:auto;background:#292330e8;border:1px solid #796472;border-radius:7px;padding:9px 12px;color:#f0e7d7}
.shop-window-controls>#sound{width:28px;min-height:28px;padding:2px;font-size:17px}.shop-window-controls>#sound span{display:none}
.title-wordmark{position:absolute;left:6%;top:7%;color:#f6d7a6;text-shadow:0 3px 0 #342435,0 6px 20px #19152280}
.title-wordmark small{font:9px var(--mono);letter-spacing:2px;color:#d4b7ad}.title-wordmark h1{font:bold clamp(40px,5vw,70px)/.9 var(--serif);letter-spacing:-2px;margin:15px 0}.title-wordmark h1 span{display:block;color:#efac73;margin-left:24px;margin-top:8px}
.title-screen .hud,.title-screen .farm-top,.title-screen .wave-strip,.title-screen .control-note,.title-screen .game-toolbar,.title-screen #plant-hud,.title-screen #touch-controls,.title-screen .engine-loading,.title-screen .welcome-art{display:none!important}
.title-screen #farm,.title-screen #gdx-host{visibility:hidden}.title-screen .farm-frame{border:1px solid #655168;border-radius:12px}.title-screen .game-stage{border-radius:11px}
.title-screen #begin-night{display:flex;width:100%;justify-content:center;margin-top:16px;padding:13px;background:#efac73;color:#302532;border-color:#efac73;font-weight:600}.title-screen #begin-night.hidden{display:none}
@media(max-width:900px){
 .title-wordmark{left:6%;top:7%}.title-wordmark h1{font-size:42px;margin-top:10px}.title-wordmark small{font-size:7px;letter-spacing:1.3px}
 .title-screen .sidebar:has(#welcome:not(.hidden)){flex:0 0 auto;max-height:none}.title-screen .sidebar #welcome{padding:8px 10px}.title-screen .join-panel .panel-eyebrow{font-size:8px}.title-screen .join-panel .button{margin:4px 0;padding:8px}.title-screen .join-panel input{padding:7px}.title-screen .skin-picker{margin:4px 0}.title-screen .skin{padding:6px}
 .title-screen #begin-night{margin:8px 0 2px;padding:11px;font-size:12px}
}
@media(orientation:landscape) and (max-height:600px){
 .title-screen .sidebar:has(#welcome:not(.hidden)){flex:0 0 230px;max-height:100%;overflow:auto}.title-wordmark{top:6%;left:5%}.title-wordmark h1{font-size:36px}.title-wordmark small{font-size:6px}
 .title-screen .sidebar #welcome{padding:6px 8px}.title-screen .join-panel label{margin:2px 0}.title-screen .join-panel .button{padding:6px}.title-screen .join-panel input{padding:5px}.title-screen .skin{padding:5px}
}
.preparing .farm-top,.preparing .hud,.preparing .wave-strip{visibility:hidden}
@media(max-width:700px) and (orientation:portrait){
 .prep-content>.deck-board{flex:none;justify-content:flex-start;margin:auto 0}
 .prep-content{gap:5px}.shop-heading h2{font-size:18px}.shop-heading p{font-size:9px}.shop-heading>strong{font-size:9px}.shop-heading small{font-size:7px}
 .deck-section{padding:5px;gap:3px}.deck-columns{gap:5px}.deck-heading{height:15px}.deck-heading h3,.prep-lobby .deck-heading h3{font-size:11px}.deck-heading small{font-size:7px}
 .deck-card,.deck-slot .deck-card{height:34px;min-height:34px}.deck-slot{min-height:34px}.deck-available{grid-auto-rows:32px;min-height:32px}.deck-available .deck-card{height:32px}.deck-offers .deck-card,.deck-magic .shop-action{height:34px}.available-label{font-size:6px;line-height:8px;height:8px}
 .deck-card canvas{width:18px;height:16px}.card-symbol{font-size:16px;line-height:17px}.card-detail{font-size:8px;line-height:1.2;min-height:32px;padding:4px 6px}.shop-footer .hud-button,.shop-footer .button{padding:6px;font-size:9px}.shop-footer{gap:4px}
}
@media(max-height:700px) and (max-width:700px) and (orientation:portrait){
 .prep-lobby{inset:4px;padding:6px}.preparing .header{visibility:hidden}.prep-content{gap:3px}.deck-section{padding:4px;gap:2px}.deck-columns{gap:3px}.deck-heading{height:13px}.deck-heading h3,.prep-lobby .deck-heading h3{font-size:10px}.deck-heading small{font-size:6px}
 .deck-card,.deck-slot .deck-card{height:29px;min-height:29px}.deck-slot{min-height:29px}.deck-available{grid-auto-rows:27px;min-height:27px}.deck-available .deck-card{height:27px}.deck-offers .deck-card,.deck-magic .shop-action{height:29px}.deck-card canvas,.deck-available .deck-card canvas{width:14px;height:13px}.card-symbol,.deck-available .card-symbol{font-size:14px;line-height:15px}.available-label{font-size:6px;height:7px;line-height:7px}.card-detail{min-height:29px;font-size:8px}.deck-board{gap:3px}.shop-heading h2{font-size:16px;margin:1px 0}.shop-heading p{font-size:9px}.shop-footer .hud-button,.shop-footer .button{padding:5px;font-size:8px}
}

/* Compact run chrome leaves the farm most of the viewport. */
.shop-status{display:flex;flex-direction:column;gap:3px;min-width:0}
.player-names{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.player-name{position:absolute;font:600 12px/16px var(--sans);color:#fff2cf;white-space:nowrap;padding:1px 5px;border-radius:4px;background:#201a29c9;text-shadow:0 1px 1px #000}
.title-screen .player-names,.preparing .player-names,.resolving .player-names{display:none}
.deck-heading .plant-upgrades{flex:none;margin-left:auto;padding:3px 6px;font-size:9px;min-height:22px}
.deck-plants .deck-heading{height:auto;min-height:22px;align-items:center}
.deck-magic .deck-available{grid-template-columns:repeat(8,minmax(0,1fr))}
#plant-upgrades-dialog{width:min(700px,94vw);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
#farm-capacity-upgrade{display:flex;align-items:center;gap:16px;padding:14px;margin-top:15px;border:1px solid #bb9564;border-radius:8px;background:#3b3041}
#farm-capacity-upgrade>div{flex:1;min-width:0}#farm-capacity-upgrade strong{display:block;font-size:14px;color:#ffe1ab}#farm-capacity-upgrade small{display:block;font-size:12px;color:#cebbd3;margin-top:5px;line-height:1.4}#farm-capacity-upgrade button{flex:none;min-height:44px;white-space:normal}
@media(max-width:520px){#farm-capacity-upgrade{align-items:stretch;flex-direction:column;gap:12px}#farm-capacity-upgrade button{width:100%}}
#plant-upgrade-list{display:grid;gap:8px;margin-top:15px}.plant-upgrade-row{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #67516c;border-radius:7px;background:#352b40}.plant-upgrade-row>div{flex:1;min-width:0}.plant-upgrade-row strong{display:block;font-size:13px}.plant-upgrade-row small{display:block;font-size:11px;color:#cebbd3;margin-top:5px;line-height:1.4}.plant-upgrade-row button{flex:none}
#prep-ready-status{color:#e9ca91}
.shop-footer #prep-ready[aria-pressed=true]{background:#a8bb8b;border-color:#a8bb8b;color:#242b20}
#home-screen-help{font-size:11px;margin-left:auto;margin-right:10px}
#home-screen-dialog{max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
.play-column:is(:fullscreen,.fullscreen-mode){padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}
.standalone-app.playing .header{display:none}
.seed-icon,#seeds,.build-card .cost{color:#d898ff}.seed-icon{text-shadow:0 0 8px #b052ff99}
.playing .header{height:34px;min-height:34px;margin-bottom:4px}.playing .brand{font-size:20px;gap:7px}.playing .brand-icon{width:23px;height:23px;font-size:20px}.playing .brand small{display:none}
.hud{height:36px;padding:3px 0;grid-template-columns:1fr 1.25fr 1fr}.hud-item{gap:6px;padding:0 10px;min-width:0}.hud-icon{font-size:19px}.hud-item strong{font-size:17px;margin:0}.hud-item small{font-size:8px;letter-spacing:.3px}.hud-item:not(.farmer)>div{display:flex;align-items:center;gap:8px;min-width:0}.hud .shared-tag{display:none}.sleep-track{height:4px;margin-top:3px}
.farm-top{min-height:32px;padding:3px 7px;gap:6px;flex-wrap:nowrap}.farm-top .night-progress{height:24px;flex:1 1 140px;min-width:90px;padding:2px 7px}.farm-top .mission{flex:0 0 82px;width:82px}.farm-top .mission .health-line{font-size:9px}.farm-top .farm-health-hud{padding:0 6px}.farm-top .farm-health-hud strong{font-size:10px}.farm-top #open-charms,.farm-top #fullscreen{height:26px;font-size:10px;padding:3px 6px}.farm-top #settings-toggle{width:28px;min-width:28px;height:26px;font-size:17px}.wave-strip{padding:5px 12px}
.cannon-rotation{position:absolute;z-index:9;width:64px;height:64px;transform:translate(-50%,-50%);border:1px dashed #ffdfaab8;border-radius:50%;color:#ffe2a0;background:#30283522;pointer-events:none}.cannon-rotation span{position:absolute;top:-15px;left:21px;font:26px/1 var(--sans);text-shadow:0 1px 4px #17111c}.cannon-rotation i{position:absolute;inset:0;transform:rotate(var(--cannon-angle))}.cannon-rotation i:after{content:'';position:absolute;right:-5px;top:27px;border-left:9px solid #ffe2a0;border-top:4px solid transparent;border-bottom:4px solid transparent}
@media(max-width:900px), (pointer:coarse) and (max-height:600px){
 .playing .header{height:26px;min-height:26px;margin:0}.playing .brand{font-size:16px}.playing .brand-icon{width:18px;height:18px;font-size:16px}.playing .header #help{font-size:9px;padding:4px}
 .hud{height:32px;padding:2px 0}.hud-item{padding:0 5px;gap:3px}.hud-item:not(.farmer)>div{display:block}.hud-item strong{font-size:13px;line-height:14px}.hud-item small{font-size:6px;letter-spacing:0}.hud-icon{font-size:14px}.sleep-track{height:3px;margin-top:3px}
 .farm-top{display:grid;grid-template-columns:minmax(76px,1fr) 62px 52px 56px 28px 28px;min-height:30px;padding:2px 4px;gap:3px}.farm-top .night-progress{order:0;width:100%;min-width:0;height:24px;padding:2px 5px;font-size:8px;gap:3px}.night-progress-moon{display:none}.night-progress-track{height:7px}.night-progress-flag,#night-progress-marker{font-size:12px}.night-progress-flag{top:-4px}
 .farm-top .mission{width:auto;min-width:0}.farm-top .mission .health-line{font-size:8px;gap:2px}.farm-top .spirit-track{height:3px;margin-top:2px}.farm-top .farm-health-hud{padding:0 3px}.farm-top .farm-health-hud strong{font-size:8px;white-space:nowrap}.farm-top #open-charms{padding:2px;font-size:8px;gap:1px}.farm-top #charm-count{font-size:7px;padding:0}.farm-top #fullscreen{width:28px;padding:0;font-size:17px}.farm-top #settings-toggle{font-size:16px}
}

/* Purchasable team slots remain visible together, including large loadouts. */
.deck-offers.plant-offers{grid-template-columns:repeat(4,minmax(0,1fr))}.buy-plant-slot{line-height:1.25}
.shop-footer .supplies{gap:4px}.shop-footer #buy-repair{white-space:normal;max-width:160px}
.plant-hud,.plant-hud.expanded-plants{width:max-content;max-width:calc(100% - 32px);padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.plant-hud .build-grid,.plant-hud.expanded-plants .build-grid{display:flex!important;flex-wrap:nowrap;gap:6px;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;touch-action:pan-x;scrollbar-width:thin;scrollbar-color:#b59bc4 transparent;scroll-snap-type:x proximity}
.plant-hud .build-card,.plant-hud.expanded-plants .build-card{flex:0 0 52px;width:52px;height:81px;min-height:81px;padding:0;border:0;border-radius:2px;background:none;box-shadow:none;touch-action:pan-x;scroll-snap-align:start}
.plant-hud .build-card:not(:disabled):hover{outline:1px solid #f3deb6;outline-offset:-1px}
.plant-hud .build-card:focus-visible{outline:2px solid #efab73;outline-offset:-2px}
.plant-hud .build-card .key{display:block;position:absolute;z-index:1;top:5px;left:6px;padding:0;border:0;background:none;color:#fff0cf;font:700 11px/1 var(--mono);text-shadow:0 1px 2px #251533}
.plant-hud .build-card .cost{position:absolute;z-index:1;right:5px;bottom:6px;margin:0;color:#fff0cf;font:700 9px/1 var(--mono);white-space:nowrap;text-shadow:0 1px 2px #251533}
@media(max-width:900px), (pointer:coarse) and (max-height:600px){
 .plant-hud,.plant-hud.expanded-plants{max-width:min(280px,calc(100% - 110px))}
 .plant-hud .build-grid,.plant-hud.expanded-plants .build-grid{gap:3px}
 .plant-hud .build-card,.plant-hud.expanded-plants .build-card{flex-basis:44px;width:44px;height:58px;min-height:58px}
 .plant-hud .build-card .key{top:4px;left:7px;font-size:9px}
 .plant-hud .build-card .cost{right:7px;bottom:4px;font-size:8px}
 .shop-footer .supplies{flex-wrap:wrap}.shop-footer #buy-repair{max-width:none}
}

@media(max-width:700px) and (orientation:portrait){
 .shop-footer .supplies{flex:1 0 100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.shop-footer .supplies .hud-button{padding:5px 3px;white-space:normal;font-size:8px}.shop-footer #prep-start{width:auto;flex:1;max-width:58%;margin-left:auto}.shop-footer small{flex:none}
 .deck-plants.expanded-team .deck-slot,.deck-plants.expanded-team .deck-slot .deck-card{min-height:26px;height:26px}.deck-plants.expanded-team .deck-slot .deck-card canvas{width:15px;height:14px}.deck-plants.expanded-team .deck-slot .card-name{font-size:6px}
}
@media(orientation:landscape) and (max-height:520px){
 .deck-plants.expanded-team .deck-slot,.deck-plants.expanded-team .deck-slot .deck-card{height:28px;min-height:28px}.deck-plants.expanded-team .deck-slot .deck-card canvas{width:15px;height:14px}.deck-plants.expanded-team .deck-slot .card-name{font-size:6px}
 .shop-footer .supplies{flex-wrap:nowrap}.shop-footer .supplies .hud-button{font-size:8px;padding:5px}
}
@media(max-height:700px) and (max-width:700px) and (orientation:portrait){
 .prep-lobby .deck-section{gap:1px}.prep-lobby .card-detail{height:29px;min-height:29px}
}
@media(max-width:900px), (pointer:coarse) and (max-height:600px){
 .prep-lobby{inset:max(4px,env(safe-area-inset-top,0px)) max(4px,env(safe-area-inset-right,0px)) max(4px,env(safe-area-inset-bottom,0px)) max(4px,env(safe-area-inset-left,0px))}
 #home-screen-help{font-size:9px;padding:4px;margin-right:6px}
 .shop-status{gap:2px;flex:1;min-width:0}
 .shop-footer #prep-ready,.shop-footer #prep-start{flex:none;max-width:none;width:auto;min-height:36px;margin-left:auto;justify-content:center}
}
/* Keep confirmation reachable when Safari's bars leave too little room for all cards. */
@media(max-height:700px) and (max-width:700px) and (orientation:portrait){
 .prep-lobby .deck-available{grid-auto-rows:24px;min-height:24px}.prep-lobby .deck-available .deck-card{height:24px}
 .prep-lobby .card-detail{height:24px;min-height:24px}
 .shop-footer #prep-ready,.shop-footer #prep-start{min-height:32px}
}
@media(max-width:700px) and (orientation:portrait) and (max-height:620px), (orientation:landscape) and (max-height:350px){
 .prep-content>.deck-board{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;justify-content:flex-start;margin:0}
}

/* Card faces keep their portrait proportions and original pixel edges. */
.card-art,.vote-art{display:block;object-fit:contain;image-rendering:pixelated;pointer-events:none;user-select:none}
.deck-card.illustrated-card{height:90px;padding:0 1px 2px;border:0;border-radius:3px;background:transparent;box-shadow:none;flex-direction:column;flex-wrap:nowrap;gap:3px;overflow:visible}
.illustrated-card .card-art{width:100%;height:0;min-height:0;flex:1 1 0;filter:drop-shadow(0 2px 1px #100c1b99)}
.illustrated-card .card-name{flex:0 0 auto;min-height:9px;max-width:100%;font-size:8px;line-height:1.1;color:#efddff}
.illustrated-card .card-price{flex:none;line-height:11px;padding:1px 5px;border-radius:3px;background:#21192be6}
.illustrated-card .card-count{z-index:1;top:0;right:0}
.deck-magic .deck-slot,.deck-cats .deck-slot{min-height:90px}
.deck-slot .illustrated-card{height:100%;min-height:90px}
.deck-magic .deck-available,.deck-cats .deck-available{grid-auto-rows:80px;min-height:80px}
.deck-cats .deck-available{grid-template-columns:repeat(7,minmax(0,1fr))}
.deck-available .illustrated-card{height:80px}
.deck-offers .illustrated-card{height:140px}
.deck-magic .magic-pack{height:140px;display:flex;justify-content:center;align-items:center;gap:12px}
.magic-pack .card-art{width:52px;height:81px;flex:none}
.illustrated-card:focus-visible,.magic-pack:focus-visible{outline:2px solid #f0d492;outline-offset:2px}
.illustrated-card.card-picked{background:#76529933;outline-offset:1px}
.illustrated-card.card-ghost{background:#271c39e8;box-shadow:0 6px 20px #0008}
#vote-panel .vote-art{width:100%;height:113px;margin:0 auto 6px}
.sprite-card-art{position:relative}
.sprite-card-art .card-template-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.sprite-card-art .card-inset,.plant-hud .build-card .card-inset,.deck-card.illustrated-card .sprite-card-art .card-inset{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:85%;height:76%;margin:0;object-fit:contain;image-rendering:pixelated;filter:none}
.plant-hud .build-card>.sprite-card-art{width:100%;height:100%;margin:0}
.plant-upgrade-row>.sprite-card-art{flex:0 0 40px;width:40px;height:62px}
.deck-plants{--plant-card-height:62px;--plant-slot-height:62px;--plant-available-height:62px;--plant-offer-height:80px}
.deck-plants .deck-card.illustrated-card{height:var(--plant-card-height)}
.deck-plants .deck-slot .deck-card.illustrated-card{height:var(--plant-slot-height);min-height:var(--plant-slot-height)}
.deck-plants .deck-available .deck-card.illustrated-card{height:var(--plant-available-height)}
.deck-plants .deck-offers .deck-card.illustrated-card{height:var(--plant-offer-height)}
.deck-plants .in-team .card-name{color:#c5dba4}
@media(max-width:900px), (pointer:coarse) and (max-height:600px){
 .plant-upgrade-row>.sprite-card-art{flex-basis:32px;width:32px;height:50px}
}
@media(max-width:700px) and (orientation:portrait){
 .deck-plants{--plant-card-height:34px;--plant-slot-height:34px;--plant-available-height:32px;--plant-offer-height:34px}
 .deck-plants.expanded-team{--plant-slot-height:26px}
 .deck-magic .deck-slot,.deck-cats .deck-slot,.deck-slot .illustrated-card{min-height:42px;height:42px}
 .deck-card.illustrated-card{height:42px;gap:1px;padding:0 1px}
 .deck-magic .deck-available,.deck-cats .deck-available{grid-auto-rows:34px;min-height:34px}
 .deck-available .illustrated-card{height:34px}
 .illustrated-card .card-name{font-size:6px;min-height:7px;line-height:1.1}
 .deck-offers .illustrated-card,.deck-magic .magic-pack{height:48px}
 .illustrated-card .card-price{font-size:8px;line-height:9px;padding:0 3px}
 .magic-pack .card-art{width:24px;height:37px}
 #vote-panel .vote-art{height:68px;margin-bottom:3px}
}
@media(max-height:700px) and (max-width:700px) and (orientation:portrait){
 .deck-plants{--plant-card-height:29px;--plant-slot-height:29px;--plant-available-height:24px;--plant-offer-height:29px}
 .deck-magic .deck-slot,.deck-cats .deck-slot,.deck-slot .illustrated-card{min-height:34px;height:34px}
 .deck-card.illustrated-card{height:34px}
 .prep-lobby .deck-magic .deck-available,.prep-lobby .deck-cats .deck-available{grid-auto-rows:27px;min-height:27px}
 .prep-lobby .deck-available .illustrated-card{height:27px}
 .deck-offers .illustrated-card,.deck-magic .magic-pack{height:34px}
 .magic-pack .card-art{width:18px;height:28px}
}
@media(orientation:landscape) and (max-height:520px){
 .deck-plants{--plant-card-height:38px;--plant-slot-height:38px;--plant-available-height:38px;--plant-offer-height:45px}
 .deck-plants.expanded-team{--plant-slot-height:28px}
 .deck-magic .deck-slot,.deck-cats .deck-slot,.deck-slot .illustrated-card{min-height:44px;height:44px}
 .deck-card.illustrated-card{height:44px;gap:1px}
 .deck-magic .deck-available,.deck-cats .deck-available{grid-auto-rows:38px;min-height:38px}
 .deck-available .illustrated-card{height:38px}
 .illustrated-card .card-name{font-size:6px;min-height:7px}
 .deck-offers .illustrated-card,.deck-magic .magic-pack{height:64px}
 .illustrated-card .card-price{font-size:8px;line-height:9px;padding:0 3px}
 .magic-pack .card-art{width:30px;height:47px}
 #vote-panel .vote-art{height:48px}
}

#result-dialog :is(#continue-unranked,#retry-new-run):not(.hidden){display:block;width:100%;margin:10px 0 0;min-height:44px;background:#3a3043;border:1px solid #92798f;color:#f0e7d7}

.game-stage #result-dialog[open]{z-index:45}
@media(max-width:600px),(orientation:landscape) and (max-height:600px){
 #result-dialog.score-miss #result-icon{display:none}
 #result-dialog.score-miss #result-title{font-size:22px;margin:8px 0}
 #result-dialog.score-miss #result-description{font-size:12px;line-height:1.4;margin:8px 0}
 #result-dialog.score-miss .result-score{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px;margin:10px 0}
 #result-dialog.score-miss .result-score strong{font-size:24px;margin:0}
 #result-dialog.score-miss .result-score span,#result-dialog.score-miss #contributions:empty{display:none}
 #result-dialog.score-miss .button{font-size:12px;min-height:44px;padding:9px}
}
