:root{--red:#fa3d36;--lime:#d8ff3e;--ink:#f4f3ee}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#080a09;color:var(--ink);font-family:"Arial Narrow","Noto Sans TC",Arial,sans-serif}button{color:inherit;font:inherit}.arcade{min-height:100dvh;overflow:hidden;position:relative;background:radial-gradient(circle at 50% 52%,#293029 0,#111411 43%,#070908 76%)}.mini-bar{height:54px;position:relative;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(14px,3vw,42px);background:#0b0d0cdd;border-bottom:1px solid #242824}.mini-brand{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:950;letter-spacing:.12em}.mini-brand span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--red);font-size:21px;box-shadow:0 0 20px #fa3d3655}.mini-actions{display:flex;gap:8px}.mini-actions button{height:34px;padding:0 13px;border:1px solid #353a35;border-radius:5px;background:#171a17;cursor:pointer;font-size:11px;font-weight:800}.mini-actions button:first-child{width:34px;padding:0;font-size:18px}.target-stage{min-height:calc(100dvh - 54px);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 14px 74px}.target-glow{position:absolute;width:min(82vh,88vw);aspect-ratio:1;border-radius:50%;background:#d8ff3e20;filter:blur(70px)}.giant-target{position:relative;z-index:2;width:min(calc(100dvh - 142px),94vw);max-width:900px;aspect-ratio:1;padding:0;border-radius:50%;border:clamp(8px,1.2vw,16px) solid #181b18;cursor:crosshair;background:url('people-dartboard.png') center/cover no-repeat;box-shadow:0 0 0 3px #4b5048,0 24px 70px #000e;will-change:transform;touch-action:manipulation}.giant-target.is-spinning{animation:spin 4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.impact{position:absolute;width:30px;height:30px;transform:translate(-50%,-50%);z-index:5}.impact:before,.impact:after{content:"";position:absolute;left:13px;top:13px;width:4px;height:48px;background:#fff;transform-origin:top;box-shadow:0 0 8px #fff}.impact:after{transform:rotate(90deg)}.impact i{position:absolute;left:9px;top:9px;width:12px;height:12px;border-radius:50%;background:var(--lime);box-shadow:0 0 18px var(--lime)}.control-dock{position:absolute;z-index:8;bottom:18px;display:flex;align-items:center;gap:16px;padding:7px;border:1px solid #363a35;border-radius:8px;background:#111411e8;box-shadow:0 14px 38px #000a;backdrop-filter:blur(12px)}.spin-button{min-width:220px;height:45px;border:0;border-radius:4px;background:var(--red);cursor:pointer;font-weight:950;letter-spacing:.08em}.spin-button.active{background:#272b27;color:var(--lime)}.control-dock>span{min-width:150px;padding-right:14px;color:#b8bcb5;font-size:12px;font-weight:800}.celebration{position:fixed;inset:0;z-index:50;pointer-events:none;overflow:hidden;background:#0002}.celebration[hidden]{display:none}.confetti{position:absolute;inset:0}.confetti i{position:absolute;top:-8vh;width:10px;height:18px;border-radius:2px;background:var(--color);box-shadow:0 0 8px var(--color);animation:fall var(--duration) var(--delay) cubic-bezier(.15,.65,.35,1) both}.confetti i:nth-child(3n){width:15px;height:8px;border-radius:50%}.celebration strong{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);font-size:clamp(58px,11vw,145px);font-weight:950;text-shadow:0 0 14px var(--red),0 0 40px var(--red);animation:win 1.9s .15s both}@keyframes fall{0%{opacity:0;transform:translate3d(0,-8vh,0) rotate(0)}8%{opacity:1}100%{opacity:1;transform:translate3d(var(--drift),115vh,0) rotate(var(--rotate))}}@keyframes win{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}18%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.15)}}button:focus-visible{outline:3px solid var(--lime);outline-offset:4px}@media(max-width:640px){.target-stage{padding:8px 6px 82px}.giant-target{width:min(calc(100dvh - 155px),96vw)}.control-dock{bottom:16px;flex-direction:column;gap:3px;width:calc(100% - 24px)}.spin-button{width:100%;min-width:0}.control-dock>span{min-width:0;padding:4px 6px 6px;text-align:center}.celebration strong{font-size:60px}}
