.game-hammer{isolation:isolate;position:relative;overflow:hidden;background:#f1f0e3;color:#233e34;min-height:0;display:grid;place-items:stretch;border-radius:24px}
.game-hammer .hm-arena{position:relative;display:block;width:100%;height:100%;min-height:0;appearance:none;border:0;padding:0;background:transparent;cursor:crosshair;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;overflow:hidden;border-radius:inherit}
.game-hammer .hm-arena:focus-visible{outline:3px solid #233e34;outline-offset:-7px}
.game-hammer .hm-grid{position:absolute;inset:0;opacity:.27;background-image:radial-gradient(#8b9780 1px,transparent 1px);background-size:22px 22px;mask-image:radial-gradient(ellipse,#000 30%,transparent 72%)}
.game-hammer .hm-orbit{position:absolute;left:50%;top:48%;width:310px;height:310px;border:1px solid #8d9b732b;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.game-hammer .hm-orbit:before,.game-hammer .hm-orbit:after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:#8b9b6d;left:50%;top:-3px}
.game-hammer .hm-orbit:after{top:auto;bottom:-3px;background:#f37c5c}
.game-hammer .hm-orbit-a{animation:hm-orbit 5s linear infinite}
.game-hammer .hm-orbit-b{width:264px;height:264px;border-style:dashed;animation:hm-orbit 3.4s linear infinite reverse;opacity:.65}
.game-hammer .hm-floor{position:absolute;width:230px;height:27px;border-radius:50%;background:#233e3418;left:50%;top:calc(50% + 106px);transform:translateX(-50%)}
.game-hammer .hm-core{display:block;position:absolute;width:240px;height:220px;left:calc(50% - 120px);top:calc(50% - 105px);transform-origin:50% 87%;z-index:3;pointer-events:none}
.game-hammer .hm-core>svg{display:block;width:100%;height:100%;overflow:visible}
.game-hammer .hm-nameplate{position:absolute;left:27%;top:49%;width:46%;height:32px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#233e34;border-top:1px solid #dded9f40;border-radius:3px;color:var(--hm-label-accent,#dded9f);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1;white-space:nowrap;pointer-events:none}
.game-hammer .hm-model{font-size:13px;letter-spacing:-.35px;font-weight:750}
.game-hammer .hm-vendor{font-size:10px;letter-spacing:-.2px;color:#f6f3e9}
.game-hammer .hm-fractures{position:absolute;inset:0;pointer-events:none;opacity:.9}
.game-hammer .hm-crack{opacity:0}
.game-hammer[data-hm-damage="1"] .hm-crack-a,.game-hammer[data-hm-damage="2"] .hm-crack-a,.game-hammer[data-hm-damage="2"] .hm-crack-b,.game-hammer[data-hm-damage="3"] .hm-crack:not(.hm-crack-d),.game-hammer[data-hm-damage="4"] .hm-crack{opacity:1}
.game-hammer .hm-tool{display:block;position:absolute;width:93px;height:127px;left:calc(50% + 72px);top:calc(50% - 141px);transform:rotate(12deg);transform-origin:65% 90%;z-index:7;pointer-events:none}
.game-hammer .hm-tool svg{width:100%;height:100%;filter:drop-shadow(3px 3px 0 #233e3420)}
.game-hammer .hm-impact{position:absolute;left:calc(50% - 52px);top:calc(50% - 63px);width:104px;height:104px;border:5px solid #f37c5c;border-radius:50%;z-index:6;opacity:0;pointer-events:none}
.game-hammer.hm-hit .hm-impact{animation:hm-impact .28s ease-out forwards}
.game-hammer .hm-piece{position:absolute;left:calc(50% - 8px);top:50%;width:20px;height:11px;border:2px solid #233e34;background:#f37c5c;z-index:5;pointer-events:none;border-radius:3px;box-shadow:2px 3px 0 #233e3415}
.game-hammer .hm-piece-1{width:12px;height:16px;background:#dded9f;border-radius:2px}
.game-hammer .hm-piece-2{width:11px;height:11px;background:#c0c6b5;border-radius:50%;border-width:3px}
.game-hammer .hm-combo{position:absolute;bottom:21px;left:50%;transform:translateX(-50%);display:flex;gap:7px;pointer-events:none}
.game-hammer .hm-combo i{width:16px;height:5px;border-radius:3px;background:#233e3427;transition:background .15s,transform .15s}
.game-hammer .hm-combo .hm-used{background:#233e34;transform:scale(1.2)}
.game-hammer.hm-broken .hm-core{filter:saturate(.25)}
.game-hammer.hm-broken .core-flow,.game-hammer.hm-broken .core-sweep{animation:none}
.game-hammer.hm-broken .hm-orbit{animation-play-state:paused;opacity:.2}


.game-hammer.hm-reduced .hm-orbit{animation:none}
.game-hammer.hm-reduced.hm-hit .hm-impact{animation:none;opacity:0}
.game-hammer.hm-reduced .hm-combo i{transition:none}
@keyframes hm-impact{0%{opacity:.8;transform:scale(.3)}100%{opacity:0;transform:scale(1.55)}}
@keyframes hm-orbit{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@media(max-width:420px){.game-hammer .hm-core{width:216px;height:198px;left:calc(50% - 108px);top:calc(50% - 94px)}.game-hammer .hm-tool{width:80px;height:109px;left:calc(50% + 60px);top:calc(50% - 127px)}.game-hammer .hm-floor{width:205px;top:calc(50% + 99px)}.game-hammer .hm-orbit-a{width:274px;height:274px}.game-hammer .hm-orbit-b{width:236px;height:236px}}
@media(prefers-reduced-motion:reduce){.game-hammer .hm-orbit{animation:none}.game-hammer.hm-hit .hm-impact{animation:none;opacity:0}.game-hammer .hm-combo i{transition:none}}

.game-hammer .hm-core>svg:first-child>g:first-child>rect:first-of-type{fill:var(--hm-shell,#f37c5c)}
.game-hammer[data-hm-shape="armored"] .hm-core>svg:first-child>g:first-child>rect:first-of-type{rx:8px;stroke-width:7px}
.game-hammer[data-hm-shape="wide"] .hm-core>svg:first-child{transform:scale(1.12,.92);transform-origin:50% 85%}
.game-hammer .hm-piece-3{width:24px;height:8px;background:#233e34;border-color:#dded9f;border-width:1px}
.game-hammer .hm-combo .hm-used:nth-child(n+4){background:#f37c5c;transform:scaleY(1.6)}
.game-hammer .hm-core:after{content:"";position:absolute;inset:12px 12px 8px;border:4px solid #829a62;border-radius:44%;opacity:0;transform:scale(.85);pointer-events:none}
.game-hammer.hm-charging .hm-core:after{opacity:calc(var(--hm-charge,0)*.8);transform:scale(calc(.86 + var(--hm-charge,0)*.2));border-width:calc(2px + var(--hm-charge,0)*4px)}
.game-hammer.hm-charging .hm-tool{transform:rotate(calc(12deg + var(--hm-charge,0)*31deg)) translateY(calc(var(--hm-charge,0)*-9px))}
.game-hammer.hm-broken .hm-fractures{opacity:1;filter:drop-shadow(2px 1px 0 #f6f3e9)}
.game-hammer.hm-reduced .hm-core:after{transform:none}
@media(prefers-reduced-motion:reduce){.game-hammer .hm-core:after{transform:none}}
