.map-tools{position:absolute;top:55px;left:20px;display:flex;align-items:center;gap:5px;z-index:3;background:#101f2ce8;border:1px solid #ffffff16;border-radius:8px;padding:4px;box-shadow:0 3px 12px #0002}
.map-tools button{padding:4px 9px;min-height:28px;font-size:12px}.map-tools span{font-size:10px;color:#95aebb;min-width:33px;text-align:center}
.detailed-map{touch-action:pan-y}.detailed-map[viewBox]:active{cursor:grab}.map-leader{fill:none;stroke:#afc5cf;stroke-width:.7;stroke-opacity:.7;pointer-events:none}
.detailed-map .territory{fill-opacity:1;stroke-width:.65;vector-effect:non-scaling-stroke}.detailed-map .territory.region-held{stroke-width:1.2}.detailed-map .territory.selected{stroke:#ffedb8;stroke-width:2;filter:drop-shadow(0 0 2px #f5d88888)}
.detailed-map .counter text{font-size:10px}.detailed-map .counter .map-label{font-size:9px;font-weight:600;stroke-width:3px}.detailed-map .counter.active circle{stroke:#fff0b8;stroke-width:2.5}
.detailed-map .inset.active{stroke:#e4c38a;stroke-opacity:.9}.island-kicker{fill:#8fa9ba;font-size:7px;letter-spacing:1.3px;pointer-events:none}.map-compass{fill:none;stroke:#9cb6bc;stroke-opacity:.5;stroke-width:.9}.map-compass text{fill:#adc3cb;stroke:none;font-size:9px}.map-scale{fill:#7f9aa8;font-size:8px;letter-spacing:1px;pointer-events:none}
.report-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:23px 0 17px}.report-metrics>div{padding:15px 10px;background:#223745;border:1px solid #ffffff0d;border-radius:9px}.report-metrics b{display:block;font-size:28px;color:#e7c88f;font-weight:500;font-variant-numeric:tabular-nums}.report-metrics span{display:block;font-size:11px;color:#9fb8c5;margin-top:5px}.report-position{border-bottom:1px solid #ffffff12;padding-bottom:16px;font-size:12px}.report-events p{font-size:13px;line-height:1.85}.report-events strong{color:#d7c18f;font-weight:500}.report-detail{margin-top:20px;border-top:1px solid #ffffff12;padding-top:15px}.report-detail summary{cursor:pointer;font-size:12px;color:#adc4d0}.report-detail p{font-size:11px;line-height:1.9}.turn-animation-dialog{text-align:center;overflow:hidden}.turn-animation-dialog h2{color:#e9cf9d}.turn-animation-dialog p{font-size:13px}.turn-puffs{width:100%;display:block;max-height:300px}.toy-bomb{animation:toy-drop 1.35s both;animation-delay:var(--delay);transform-box:fill-box;transform-origin:center}.puff-cloud{animation:cloud-pop 1.5s both;animation-delay:var(--delay);transform-box:fill-box;transform-origin:center}.turn-animation-dialog button{margin:10px 0 4px}
@keyframes toy-drop{0%{opacity:0;transform:translateY(-70px) rotate(-20deg)}15%{opacity:1}44%{opacity:1;transform:translateY(42px) rotate(12deg)}48%,100%{opacity:0;transform:translateY(44px) scale(.5)}}
@keyframes cloud-pop{0%,40%{opacity:0;transform:scale(.1)}53%{opacity:1;transform:scale(1.18)}67%{opacity:1;transform:scale(.95)}85%{opacity:1;transform:scale(1.04)}100%{opacity:0;transform:translateY(-12px) scale(1.15)}}
@media(max-width:650px){.map-tools{top:48px;left:14px;padding:3px}.map-tools button{font-size:11px;padding:3px 7px}.map-tools span{font-size:9px}.detailed-map{margin-top:68px}.report-metrics{grid-template-columns:repeat(3,1fr);gap:7px}.report-metrics>div{padding:12px 9px}.report-metrics b{font-size:24px}.turn-puffs{min-height:180px}.report-events p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.toy-bomb,.puff-cloud{animation:none!important}.toy-bomb{display:none}.puff-cloud{opacity:1}}
@media(max-width:650px){.layout{align-items:stretch}.layout>.panel{width:100%}}
.game-logo{width:52px;height:52px;object-fit:contain;flex:none;filter:drop-shadow(0 2px 9px #f9d94420)}
.turn-animation-dialog{background:radial-gradient(ellipse at 50% 60%,#2a4355,#142330 75%)}
.toy-bomb{animation:polished-drop 2s both;animation-delay:var(--delay);transform-box:view-box;transform-origin:0 0}
.puff-cloud{animation:polished-puff 2s both;animation-delay:var(--delay);transform-box:view-box;transform-origin:0 0}
.impact-flash{animation:impact-flash 2s both;animation-delay:var(--delay);transform-origin:0 0}
.impact-ring{animation:impact-ring 2s both;animation-delay:var(--delay);transform-origin:0 0}
.burst-particle{animation:burst-particle 2s both;animation-delay:var(--delay)}
.smoke-wisp{animation:smoke-wisp 2s both;animation-delay:var(--delay);--drift:-20px}.wisp-right{--drift:20px}
.impact-shadow{animation:impact-shadow 2s both;animation-delay:var(--delay);transform-origin:0 0}
@keyframes polished-drop{0%{opacity:0;transform:translate(-28px,-155px) rotate(-30deg)}8%{opacity:1}34%{opacity:1;transform:translate(0,-12px) rotate(8deg) scale(1)}38%{opacity:1;transform:translate(0,2px) scale(1.16,.8)}42%,100%{opacity:0;transform:scale(.4)}}
@keyframes impact-flash{0%,35%{opacity:0;transform:scale(.1)}40%{opacity:1;transform:scale(1.2)}50%,100%{opacity:0;transform:scale(1.5)}}
@keyframes impact-ring{0%,37%{opacity:0;transform:scale(.2)}42%{opacity:.8}65%,100%{opacity:0;transform:scale(2.6,.7)}}
@keyframes polished-puff{0%,39%{opacity:0;transform:scale(.15)}49%{opacity:1;transform:scale(1.15)}60%{opacity:1;transform:translateY(-3px) scale(.98)}77%{opacity:1;transform:translateY(-12px) scale(1.06)}100%{opacity:0;transform:translateY(-35px) scale(1.15)}}
@keyframes burst-particle{0%,38%{opacity:0;transform:translate(0,0) scale(.1)}44%{opacity:1}75%,100%{opacity:0;transform:translate(var(--px),var(--py)) rotate(100deg) scale(.6)}}
@keyframes smoke-wisp{0%,44%{opacity:0;transform:translate(0,0) scale(.3)}55%{opacity:.5}95%,100%{opacity:0;transform:translate(var(--drift),-40px) scale(1.6)}}
@keyframes impact-shadow{0%{opacity:.1;transform:scale(.5)}35%{opacity:.4;transform:scale(1)}60%,100%{opacity:0;transform:scale(1.4)}}
@media(max-width:650px){.game-logo{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){.impact-flash,.impact-ring,.burst-particle,.smoke-wisp{display:none}}
