.destruction-invite{padding:35px 0 55px;background:#dce6ed;text-align:center;border-top:1px solid #b6c7d2}.destruction-invite p{font:800 clamp(22px,3vw,34px)/1.2 Manrope,sans-serif;color:#152c3c;margin:0 0 15px}.destruction-invite button{border:1px solid #ad4932;background:#b64b32;color:white;border-radius:7px;padding:14px 22px;font:800 15px Manrope,sans-serif;cursor:pointer}.destruction-invite button:hover{background:#963820}.destruction-invite button:focus-visible,.destruction-toolbar button:focus-visible{outline:3px solid #175ac6;outline-offset:3px}
.destruction-toolbar[hidden],.destruction-canvas[hidden],.destruction-launcher[hidden]{display:none!important}.destruction-toolbar{position:fixed;z-index:99999;right:16px;bottom:17px;max-width:calc(100vw - 180px);display:flex;align-items:center;gap:9px;padding:9px;background:#152c3c;color:white;border:1px solid #91a5b3;border-radius:11px;box-shadow:0 12px 35px #07152066;font:700 12px Manrope,sans-serif}.destruction-instruction{white-space:nowrap;margin:0 4px}.destruction-weapons{display:flex;gap:5px;flex-wrap:wrap}.destruction-toolbar button{border:1px solid #6a8294;border-radius:6px;background:#24435a;color:white;padding:9px 10px;cursor:pointer;font:inherit;white-space:nowrap}.destruction-toolbar button[aria-pressed="true"]{background:#e9f1fa;color:#152c3c}.destruction-toolbar .destruction-exit{background:#a94331;border-color:#a94331}.destruction-canvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:99997;pointer-events:none}.destruction-launcher{position:fixed;z-index:99998;left:18px;bottom:18px;width:120px;height:98px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:linear-gradient(145deg,#2e4e62,#10293a);border:2px solid #91a9b8;border-radius:18px 38px 12px 12px;box-shadow:0 10px 26px #091b2d77;color:white;pointer-events:auto;touch-action:none;cursor:grab;user-select:none;transform-origin:35% 70%}.destruction-launcher.dragging{cursor:grabbing;box-shadow:0 16px 35px #091b2dbb;border-color:#f8d06e}.destruction-drag-hint{font:700 8px/1 Manrope,sans-serif;color:#bfd3e1;letter-spacing:.08em}.destruction-gun-art{display:block;width:108px;height:56px;filter:drop-shadow(0 4px 2px #071a2d);transform-origin:center;transition:transform .24s ease}.destruction-gun-art svg{display:block;width:100%;height:100%}.destruction-launcher[data-facing="left"] .destruction-gun-art{transform:scaleX(-1)}.destruction-launcher.firing .destruction-gun-art{animation:gun-kick .16s ease-out}@keyframes gun-kick{50%{translate:-5px 0}}.destruction-launcher-name{font:800 9px/1.2 Manrope,sans-serif;letter-spacing:.08em}body.destruction-active main,body.destruction-active header{cursor:crosshair}body.destruction-active main{touch-action:none}body.destruction-active .destruction-hit{pointer-events:none!important}.destruction-hit{animation:destruction-fall .68s ease-in forwards;transform-origin:50% 50%}.destruction-hit[data-effect="ice"]{animation:destruction-freeze .72s ease-in forwards}.destruction-hit[data-effect="fire"]{animation:destruction-burn .85s ease-in forwards}@keyframes destruction-fall{to{opacity:0;filter:blur(6px);transform:translateY(55px) rotate(8deg) scale(.82)}}@keyframes destruction-freeze{45%{filter:brightness(1.5) saturate(.35) drop-shadow(0 0 15px #55d8ff)}to{opacity:0;filter:blur(8px) brightness(1.7);transform:scale(.88)}}@keyframes destruction-burn{40%{filter:sepia(1) saturate(4) hue-rotate(-35deg) brightness(1.3)}to{opacity:0;filter:brightness(.2) blur(8px);transform:translateY(28px) scale(.9)}}@media(max-width:950px){.destruction-toolbar{max-width:calc(100vw - 160px);flex-direction:column;align-items:flex-end}.destruction-instruction{display:none}.destruction-weapons{justify-content:flex-end}}@media(max-width:620px){.destruction-toolbar{right:7px;bottom:8px;max-width:calc(100vw - 106px);gap:4px;padding:6px}.destruction-toolbar button{padding:7px;font-size:10px}.destruction-weapons{gap:3px}.destruction-launcher{left:7px;bottom:8px;width:88px;height:82px}.destruction-gun-art{width:80px;height:46px}.destruction-launcher-name{font-size:7px}}
/* The weapon is a movable illustrated sprite with no surrounding card. */
.destruction-launcher,.destruction-launcher.dragging{width:150px;height:86px;gap:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none;filter:drop-shadow(0 5px 3px #081c2d80)}
.destruction-gun-art{width:150px;height:86px;filter:none}.destruction-gun-art svg{width:100%;height:100%}
.destruction-launcher-name,.destruction-drag-hint{display:none}
.destruction-launcher:focus-visible{outline:2px dashed #175ac6;outline-offset:3px}
@media(max-width:620px){.destruction-launcher,.destruction-launcher.dragging{width:105px;height:68px}.destruction-gun-art{width:105px;height:68px}}
/* Impact visuals play before the exact hit spot disappears. */
.destruction-impact{position:fixed;z-index:99998;pointer-events:none;width:var(--impact-size);height:var(--impact-size);transform:translate(-50%,-50%);border-radius:50%;isolation:isolate}
.destruction-impact-fire{background:radial-gradient(circle,#2a241f88 0 24%,#db441faa 45%,#ff9d2aab 62%,transparent 78%);box-shadow:0 0 21px #f5682688;animation:burn-away .78s ease-out forwards}
.destruction-impact-fire::before{content:'';position:absolute;inset:-15%;background:conic-gradient(from 15deg,transparent 0 12%,#ffcf53 16%,transparent 25%,#ed592b 39%,transparent 50%,#ffb547 65%,transparent 77%,#f56a2c 86%,transparent);filter:blur(3px);border-radius:45%;animation:flame-flicker .2s infinite alternate}
@keyframes flame-flicker{to{transform:rotate(17deg) scale(1.22,.85);opacity:.7}}
@keyframes burn-away{0%{opacity:.9;transform:translate(-50%,-50%) scale(.45)}45%{opacity:1;transform:translate(-50%,-50%) scale(1.3)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.6);filter:blur(8px)}}
.destruction-impact-ice{background:repeating-conic-gradient(from 15deg,#d7fbffbb 0 7deg,transparent 7deg 37deg),radial-gradient(circle,#dfffffee,#72dbff9a 55%,transparent 74%);border:2px solid #baf4ff;box-shadow:0 0 22px #65d7ff;animation:freeze-away .86s ease-out forwards}
.destruction-impact-ice::after{content:'✳';display:grid;place-items:center;width:100%;height:100%;font-size:calc(var(--impact-size) * .65);color:#f0ffff;text-shadow:0 0 8px #42bfef}
@keyframes freeze-away{0%{opacity:0;transform:translate(-50%,-50%) scale(.45)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}75%{opacity:.85;filter:brightness(1.35)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.45);filter:blur(7px)}}
.destruction-impact-shot,.destruction-impact-machine,.destruction-impact-rocket{background:radial-gradient(circle,#fff8deee 0 8%,#b5bdc499 14%,transparent 55%);animation:shatter-flash .45s ease-out forwards}
.destruction-impact-rocket{box-shadow:0 0 35px #fa7f3980}
.destruction-impact i{position:absolute;width:25%;height:25%;background:var(--tile-color);border:1px solid #728593;box-shadow:0 2px 4px #172c3c88;clip-path:polygon(0 0,100% 13%,69% 100%,19% 78%);animation:shard-fall .88s cubic-bezier(.18,.55,.45,1) forwards}
.destruction-impact i:nth-child(3n){clip-path:polygon(20% 0,100% 32%,61% 100%,0 79%)}
.destruction-impact i:nth-child(4n){clip-path:polygon(0 29%,78% 0,100% 85%,31% 100%)}
@keyframes shatter-flash{0%{opacity:1;transform:translate(-50%,-50%) scale(.4)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}
@keyframes shard-fall{0%{opacity:1;transform:translate(0,0) rotate(0)}35%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--turn))}}
@media(prefers-reduced-motion:reduce){.destruction-impact,.destruction-impact i,.destruction-impact::before{animation-duration:.2s!important}}
.destruction-impact-shot,.destruction-impact-machine,.destruction-impact-rocket{background:none;animation:none;box-shadow:none}
.destruction-impact-shot::before,.destruction-impact-machine::before,.destruction-impact-rocket::before{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,#fff8deee 0 8%,#b5bdc499 14%,transparent 55%);animation:shatter-flash .45s ease-out forwards}
.destruction-impact-rocket::before{box-shadow:0 0 35px #fa7f3980}
/* Trails and muzzle flashes paint over the barrel tip without blocking controls. */
.destruction-canvas{z-index:99999}
.destruction-gun-art{transition:none}
.destruction-gun-art{transform-origin:39% 65%;transform:rotate(var(--aim-angle,0rad)) scaleX(1);transition:transform .1s ease-out}
.destruction-launcher[data-facing="left"] .destruction-gun-art{transform:rotate(var(--aim-angle,0rad)) scaleX(-1)}
.destruction-launcher.firing .destruction-gun-art{animation:gun-glint .15s ease-out}
@keyframes gun-glint{50%{filter:brightness(1.35)}}
/* Fire chars the exact hit spot while tongues of flame and soot rise from it. */
.destruction-impact-fire{overflow:visible;background:radial-gradient(ellipse at 50% 55%,#171b1de6 0 23%,#3c3027d9 38%,#e9551c9c 60%,transparent 76%);box-shadow:0 0 19px #fa642777;animation:fire-scorch 1.25s ease-out forwards}
.destruction-impact-fire::before{inset:15%;background:radial-gradient(circle,#ffdf72 0 20%,#f37421 47%,transparent 75%);filter:blur(4px);animation:ember-pulse .22s ease-in-out infinite alternate}
.destruction-impact-fire .destruction-flame{position:absolute;z-index:2;left:calc(50% + var(--offset));bottom:42%;width:22px;height:55px;border-radius:65% 15% 65% 35%;transform-origin:50% 100%;background:radial-gradient(ellipse at 52% 84%,#fff6b7 0 12%,#ffcf45 25%,#ff7620 58%,#9f2b19 82%,transparent 95%);filter:drop-shadow(0 0 6px #fc8025);animation:flame-rise .65s ease-in-out var(--delay) infinite alternate}
.destruction-impact-fire .destruction-flame:nth-child(even){height:42px;width:18px;opacity:.88}
.destruction-impact-fire .destruction-smoke{position:absolute;z-index:3;left:50%;top:5%;width:34px;height:38px;border-radius:50%;background:radial-gradient(ellipse,#15191af5 5%,#292d30cf 48%,transparent 78%);filter:blur(3px);opacity:0;animation:smoke-rise 1.35s ease-out var(--delay) both}
@keyframes fire-scorch{0%{opacity:0;transform:translate(-50%,-50%) scale(.45)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}70%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}100%{opacity:0;transform:translate(-50%,-50%) scale(.85)}}
@keyframes ember-pulse{to{opacity:.65;transform:scale(1.2)}}
@keyframes flame-rise{0%{transform:translate(-50%,3px) rotate(-8deg) scale(.72,.78)}100%{transform:translate(-50%,-17px) rotate(9deg) scale(1.08,1.25)}}
@keyframes smoke-rise{0%{opacity:0;transform:translate(-50%,12px) scale(.45)}18%{opacity:.95}65%{opacity:.72}100%{opacity:0;transform:translate(calc(-50% + var(--drift)),-130px) scale(2.6)}}
.destruction-impact-fire{animation-duration:1.95s}
.destruction-impact-fire::after{content:'';position:absolute;inset:7%;border-radius:42% 58% 49% 51%;background:radial-gradient(circle at 18% 70%,#ffdc66 0 2px,transparent 4px),radial-gradient(circle at 75% 24%,#ff9d29 0 3px,transparent 6px),radial-gradient(circle at 82% 76%,#e34b1d 0 2px,transparent 5px),radial-gradient(circle at 36% 15%,#ffd466 0 2px,transparent 5px);filter:drop-shadow(0 0 5px #fa752d);animation:ember-pulse .35s ease-in-out infinite alternate;pointer-events:none}
@media(prefers-reduced-motion:reduce){.destruction-impact-fire .destruction-flame,.destruction-impact-fire .destruction-smoke,.destruction-impact-fire::before{animation-duration:.2s!important;animation-iteration-count:1!important}}

.gravity-controls{display:flex;gap:5px;flex-wrap:wrap}.gravity-controls button[aria-pressed="true"]{background:#e9f1fa;color:#152c3c}.gravity-moon main,.gravity-moon header{cursor:default;touch-action:auto}.gravity-sun main,.gravity-sun header{cursor:default;touch-action:auto}.gravity-moon.destruction-active main,.gravity-moon.destruction-active header,.gravity-sun.destruction-active main,.gravity-sun.destruction-active header{cursor:default;touch-action:auto}
@media(max-width:950px){.gravity-controls{justify-content:flex-end}}
@media(max-width:620px){.gravity-controls{gap:3px}.gravity-controls button{padding:7px;font-size:10px}}
