:root{color-scheme:dark;background:#0d0c0b;color:#e7e2d4;font-family:monospace}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:radial-gradient(ellipse at 48% 42%,#29251f 0,#171511 44%,#080807 100%)}body::after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.095;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h220v220H0z'/%3E%3C/svg%3E")}#machine{height:100svh;width:100%;display:grid;place-items:center;isolation:isolate;overflow:hidden;touch-action:manipulation}.mechanism{position:relative;width:min(96vw,110svh,1100px);aspect-ratio:1.2;transform-origin:54% 38%}.weapon{position:absolute;inset:3% 0 auto;height:54%;filter:drop-shadow(0 18px 8px #0009);transform:rotate(-4deg);transform-origin:54% 50%}.weapon svg{width:100%;height:100%;overflow:visible}#loaded-disk,#eject-spark{opacity:0}#drive-led{animation:standby 2.6s ease-in-out infinite}#ak-bolt{transform-box:fill-box;transform-origin:center}.disks{position:absolute;inset:0;pointer-events:none}.disk{position:absolute;bottom:3%;width:27%;aspect-ratio:720/740;display:block;pointer-events:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation;outline:none;transform:rotate(var(--tilt));filter:drop-shadow(7px 18px 3px #000c);transition:transform 130ms,filter 130ms,opacity 120ms}.disk img{display:block;width:100%;height:100%;user-select:none;-webkit-user-drag:none}.disk-wut{left:18%;--tilt:-9deg}.disk-satis{right:16%;--tilt:8deg}.disk:focus-visible{outline:2px solid #c6b47b;outline-offset:8px}.disk:focus-visible,.disk:active{transform:translateY(-12px) scale(1.04) rotate(var(--tilt));filter:drop-shadow(10px 30px 2px #000e)}.disk::after{content:"";position:absolute;left:28%;top:6%;width:44%;height:25%;background:linear-gradient(110deg,transparent 20%,#fff8 48%,transparent 73%);opacity:0;pointer-events:none}.disk:focus-visible::after,.disk:active::after{animation:shine 250ms linear}@media(hover:hover){.disk:hover{transform:translateY(-12px) scale(1.04) rotate(var(--tilt));filter:drop-shadow(10px 30px 2px #000e)}.disk:hover::after{animation:shine 250ms linear}}
#machine:not([data-phase="idle"]) .disk{pointer-events:none}#machine:not([data-phase="idle"]) .disk:not(.selected){opacity:0;transform:translateY(40px) rotate(var(--tilt))}#machine[data-phase="idle"] .disk{opacity:1}#machine .disk.selected{animation:rock-lock 350ms cubic-bezier(.55,.05,.9,.7) forwards;transition:none}#machine[data-phase="locked"] .selected,#machine[data-phase="racking"] .selected,#machine[data-phase="firing"] .selected{visibility:hidden}#machine[data-phase="locked"] #loaded-disk,#machine[data-phase="racking"] #loaded-disk,#machine[data-phase="firing"] #loaded-disk{opacity:1}#machine[data-phase="locked"] .weapon{animation:recoil 100ms ease-out}#machine[data-phase="racking"] #ak-bolt{animation:rack 150ms linear}#machine[data-phase="racking"] #eject-spark{animation:spark 90ms linear;fill:var(--spark,#bb362a)}#machine[data-phase="racking"] #drive-led,#machine[data-phase="firing"] #drive-led{animation:none;fill:#9ef23e;filter:drop-shadow(0 0 4px #9ef23e)}#machine[data-phase="firing"] .mechanism{animation:fire-zoom 250ms cubic-bezier(.75,0,1,.4) forwards}#machine[data-phase="firing"]::after{content:"";position:absolute;inset:0;background:#e9e4d7;opacity:0;animation:fire-flash 34ms 230ms steps(1) 1;pointer-events:none}.machine-error{position:fixed;inset:auto 20px max(50px,env(safe-area-inset-bottom));margin:auto;max-width:520px;background:#171511ed;border:1px solid #6f6550;padding:18px;text-align:center;z-index:5}.machine-error[hidden]{display:none}.machine-error p{font-size:14px;line-height:1.5}.machine-error button{background:transparent;color:inherit;border:1px solid #6f6550;padding:12px 18px;margin:4px;cursor:pointer;min-height:44px}.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
@keyframes standby{0%,100%{opacity:.35}50%{opacity:1;filter:drop-shadow(0 0 3px #ed492c)}}@keyframes shine{0%,100%{opacity:0}45%{opacity:.7}}@keyframes rock-lock{0%{transform:rotate(var(--tilt))}65%{transform:translate(calc(var(--dx)*.9),calc(var(--dy)*.85)) scale(calc(var(--scale)*1.15)) rotate(-18deg)}100%{transform:translate(var(--dx),var(--dy)) scale(var(--scale)) rotate(-4deg);opacity:1}}@keyframes recoil{0%{transform:rotate(-4deg) translateY(0)}35%{transform:rotate(-4deg) translateY(-6px)}100%{transform:rotate(-4deg) translateY(0)}}@keyframes rack{0%,100%{transform:translateX(0)}45%{transform:translateX(-25px)}}@keyframes spark{0%{opacity:0}25%{opacity:1}100%{opacity:0}}@keyframes fire-zoom{0%{transform:scale(1)}100%{transform:scale(12)}}@keyframes fire-flash{0%{opacity:.85}50%{opacity:0}75%{opacity:.6}100%{opacity:0}}
@media(orientation:portrait){.mechanism{width:100vw;transform:translateY(-5svh)}.disk{width:34%;bottom:-8%}.disk-wut{left:12%}.disk-satis{right:10%}}
@media(prefers-reduced-motion:reduce){*,*::after{animation:none!important;transition:none!important}#machine .disk.selected{opacity:0}#machine[data-phase="firing"] .mechanism{opacity:0}}

.machine-title{position:absolute;top:max(22px,3svh);left:50%;transform:translateX(-50%);width:min(42vw,370px);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.machine-title img{width:100%;height:auto}.machine-title span{font-size:clamp(9px,1vw,13px);font-weight:900;letter-spacing:.65em;padding-left:.65em;color:#a99e86}.legal-switch{position:fixed;left:max(16px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));display:flex;gap:16px}.legal-switch button{border:0;background:transparent;color:#a79c87;font:11px monospace;padding:10px 2px;min-height:44px;cursor:pointer}.legal-popover{color:#ddd7c8;background:#15130f;border:1px solid #5b5141;width:min(90vw,600px);max-height:82svh;overflow:auto;padding:28px;line-height:1.65;font:14px/1.65 monospace}.legal-popover::backdrop{background:#000c}.legal-popover h1{font-size:22px}.legal-popover h2{font-size:15px;margin-top:24px}.legal-close{float:right;background:transparent;border:0;color:inherit;font-size:26px;min-width:44px;min-height:44px;cursor:pointer}.legal-page{height:auto;min-height:100svh;overflow:auto}.legal-document{width:min(100% - 40px,650px);margin:50px auto;font:14px/1.65 monospace}.legal-document a{color:#c8b793}.legal-document h1{margin-top:40px}.legal-document h2{font-size:16px;margin-top:28px}
@media(orientation:landscape) and (max-height:600px){.machine-title{width:min(23vw,240px);top:max(10px,env(safe-area-inset-top))}.mechanism{width:min(92vw,115svh);transform:translateY(3svh)}}
@media(orientation:portrait){.machine-title{width:70vw;top:max(36px,8svh)}}
