.gyro-card-art{position:relative;display:grid;place-items:center;width:116px;height:90px;border:2px solid #a77de0;border-radius:22px;transform:rotate(-12deg);background:#231b3c;box-shadow:0 6px 0 #100b20}.gyro-card-art i{width:35px;height:35px;border-radius:50%;background:#51d9ef;box-shadow:0 0 22px #51d9ef77}
.mobile-shell.gyro-shell{display:flex;flex-direction:column;gap:14px;width:min(100%,440px);height:100dvh;min-height:0;margin:0 auto;padding:12px 16px max(12px,env(safe-area-inset-bottom));border:0;background:transparent;box-shadow:none}
.gyro-shell .game-header{margin:0;min-height:40px}.gyro-shell .tiny-label{display:none}
.gyro-controls{display:flex;gap:10px;margin-top:auto}.gyro-controls>button{display:flex;align-items:center;justify-content:center;flex:1;gap:8px;min-height:50px;padding:12px 8px;margin:0;font-size:15px;border-radius:14px}
.gyro-controls.aim-intro-controls{display:grid;grid-template-columns:1fr;gap:12px}
.aim-preview-score{position:absolute;top:12px;right:14px;z-index:5;display:flex;align-items:baseline;gap:4px;pointer-events:none;color:#b8f1ff;text-shadow:0 2px 5px #121024;font-variant-numeric:tabular-nums}.aim-preview-score strong{font-size:25px}.aim-preview-score small{font-size:14px}
.aim-target{position:absolute;left:50%;top:50%;width:100px;height:100px;transform:translate(-50%,-50%);border:2px solid #b390cf;border-radius:50%;background:#38253e;box-shadow:0 0 24px #9b63cf28;pointer-events:none}
.aim-zones{position:absolute;inset:-2px;border-radius:50%;overflow:hidden;pointer-events:none}.aim-zones>i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid #c8a2e1;border-radius:50%;width:calc(var(--zone-size,100px)*.75);height:calc(var(--zone-size,100px)*.75);background:#543451}
.aim-zones>i:nth-child(2){width:calc(var(--zone-size,100px)*.5);height:calc(var(--zone-size,100px)*.5);background:#294e63;border-color:#83d4e4}.aim-zones>i:nth-child(3){width:calc(var(--zone-size,100px)*.25);height:calc(var(--zone-size,100px)*.25);background:#ca83bc;border-color:#ffc4e9}
.aim-charge{position:absolute;left:-8px;top:-8px;width:calc(100% + 16px);height:calc(100% + 16px);overflow:visible;transform:rotate(-90deg);pointer-events:none}.aim-charge circle{fill:none;stroke-width:2.8;vector-effect:non-scaling-stroke}.aim-charge-track{stroke:#9b7cb538}.aim-charge-fill{stroke:var(--aim-focus-color,#a8efff);stroke-linecap:round;opacity:0;transition:stroke .14s}
.aim-cursor{position:absolute;z-index:4;left:50%;top:50%;width:20px;height:20px;border:1px solid #a6f3ff;border-radius:50%;transform:translate(-50%,-50%);background:#0d253f44;box-shadow:0 0 14px #51d9ef45;pointer-events:none}
.aim-cursor:before,.aim-cursor:after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#e0faff}.aim-cursor:before{width:28px;height:2px}.aim-cursor:after{width:2px;height:28px}
.aim-intro-art>.aim-cursor{left:50%;top:50%}.aim-instruction{margin:0;text-align:center;color:#dac5e9;font-size:16px;line-height:1.7}
.aim-status{font-size:14px;line-height:1.5;margin:0;color:#d3b9e3;text-align:center}
.aim-hud{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:10px;min-height:38px;padding:0 2px;font-variant-numeric:tabular-nums}.aim-time{font-size:27px;font-weight:850;color:#f0ddff}.aim-time small,.aim-score small{font-size:14px;font-weight:650;margin-left:4px;color:#c3a6d5}.aim-score{text-align:center;font-size:25px;color:#b8f1ff}.aim-hit-count{text-align:right;color:#d4bcdf;font-size:14px}
.aim-board{position:relative;flex:1;min-height:180px;overflow:hidden;border:1px solid #715381;border-radius:20px;background:radial-gradient(ellipse at 50% 40%,#302142,#121024 85%);touch-action:none}
.aim-grid{position:absolute;inset:0;background:linear-gradient(#8f69ad0b 1px,transparent 1px) 50% 50%/28px 28px,linear-gradient(90deg,#8f69ad0b 1px,transparent 1px) 50% 50%/28px 28px}
.aim-board>.aim-status{position:absolute;left:12px;right:12px;bottom:12px;z-index:5;background:#1c152fe6;padding:8px;border-radius:10px}
.aim-board[data-fresh="false"]>.aim-cursor,.aim-intro-art[data-fresh="false"]>.aim-cursor{opacity:.3}.aim-points{position:absolute;z-index:6;inset:0;display:grid;place-items:center;color:#fceeff;font-size:23px;font-weight:900;line-height:1;text-shadow:0 2px 6px #160c24}
.aim-target.is-hit{border-color:#ccf5ff;box-shadow:0 0 30px #51d9ef66}.aim-target.is-hit .aim-zones{opacity:.32}.aim-target.is-miss{opacity:.5}.aim-target.is-miss .aim-points{color:#ffbadb}
@media(max-height:640px){.mobile-shell.gyro-shell{padding:8px 12px;gap:10px}.gyro-controls.aim-intro-controls{gap:10px}.aim-instruction{font-size:14px}}
.aim-zones>i{transition:background .14s,border-color .14s,box-shadow .14s}.aim-target[data-focus-zone="1"]{background:#50344f;border-color:#d7b0f2}.aim-target[data-focus-zone="2"] .aim-zones>i:first-child{background:#7a4b79;border-color:#e0b2fc;box-shadow:inset 0 0 0 1px #e0b2fc,0 0 14px #c394e766}.aim-target[data-focus-zone="3"] .aim-zones>i:nth-child(2){background:#3e8295;border-color:#b5f6ff;box-shadow:inset 0 0 0 1px #b5f6ff,0 0 14px #72e3f266}.aim-target[data-focus-zone="4"] .aim-zones>i:nth-child(3){background:#ee9cd5;border-color:#ffe0f6;box-shadow:0 0 14px #ffafe288}.aim-cursor.is-locking{border-color:var(--aim-focus-color,#a6f3ff);box-shadow:0 0 17px var(--aim-focus-glow,#51d9ef55)}
@media(prefers-reduced-motion:reduce){.aim-target,.aim-cursor{box-shadow:none}.aim-zones>i,.aim-charge-fill{transition:none}}
.aim-target{transition:border-color .16s,box-shadow .16s,opacity .065s;box-shadow:0 0 calc(12px + 25px * var(--focus,0)) #a57de455}.aim-target.is-retiring{opacity:0}
.aim-target.is-charging{border-color:var(--aim-focus-color,#b9f3ff)}.aim-cursor.is-locking{background:var(--aim-focus-glow,#51d9ef33);border-color:var(--aim-focus-color,#e1fbff);box-shadow:0 0 18px var(--aim-focus-glow,#51d9ef88);transition:background .14s,border-color .14s,box-shadow .14s}
.aim-target.is-spawning{animation:aim-spawn .25s cubic-bezier(.2,.8,.3,1)}
.aim-target.is-hit .aim-points{animation:aim-score-pop .36s ease-out both}.aim-target.is-hit[data-perfect="true"]{box-shadow:0 0 14px #e6beff,0 0 42px #51d9ef99}
.aim-board.is-urgent{border-color:#ce83b4;box-shadow:inset 0 0 35px #a14d7c19;transition:border-color .3s,box-shadow .3s}.aim-board.is-urgent~.gyro-controls{--urgent:1}
@keyframes aim-spawn{from{opacity:.2;scale:.82}to{opacity:1;scale:1}}@keyframes aim-score-pop{0%{scale:.7;opacity:0}45%{scale:1.2;opacity:1}100%{scale:1;opacity:1}}
@media(prefers-reduced-motion:reduce){.aim-target.is-spawning,.aim-target.is-hit .aim-points{animation:none}.aim-target,.aim-cursor,.aim-board{transition:none}}
