.game-feedback{position:fixed;inset:0;z-index:35;pointer-events:none;overflow:hidden;contain:strict}.action-fx{position:absolute;left:var(--fx-x);top:var(--fx-y);width:0;height:0;color:var(--mint)}.fx-upgrade,.fx-agent{color:#93baff}.fx-stage{color:#e2d398}.fx-ring{position:absolute;width:64px;height:64px;border:1px solid currentColor;border-radius:50%;left:-32px;top:-32px;animation:fx-ring .65s ease-out both}.fx-spark{position:absolute;left:-3px;top:-3px;width:5px;height:5px;background:currentColor;border-radius:2px;box-shadow:0 0 7px currentColor;animation:fx-spark .65s ease-out both}.fx-label{position:absolute;left:0;top:-20px;white-space:nowrap;font-size:15px;letter-spacing:-.3px;font-weight:650;padding:7px 13px;border-radius:12px;background:#0b1b26e8;border:1px solid #5e9a8b66;text-shadow:0 0 18px currentColor;animation:fx-label .95s ease-out both}.fx-stage .fx-ring{border-width:2px}.feedback-pulse{animation:fx-panel .8s ease-out}.feedback-pulse .agent-art{animation:fx-agent .8s ease-out}.reactor-rings{opacity:.24;transition:opacity .5s}.chamber.running .reactor-rings{opacity:.6}.chamber.running .reactor-track{animation:fx-reactor 12s linear infinite}.chamber[data-evolution="2"] .reactor-rings,.chamber[data-evolution="3"] .reactor-rings,.chamber[data-evolution="4"] .reactor-rings{opacity:.8}.chamber.boosted{border-color:#579c8f;background:radial-gradient(ellipse at 50% 70%,#38b69a37,transparent 67%),linear-gradient(150deg,#172d3f,#0d1523 60%)}.chamber.boosted .reactor-track{stroke:#c0ffeb;animation-duration:5s}.chamber.running .agent-eye{transform-box:fill-box;transform-origin:center;animation:fx-blink 8s ease-in-out infinite}.mining-card .meter>span{position:relative}.mining-card .meter>span:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#efffffc2,transparent);transform:translateX(-100%)}.mining-active .mining-card .meter>span:after{animation:fx-meter 3.2s linear infinite}.feedback-paused *{animation-play-state:paused!important}.feedback-volume{display:grid;gap:11px;padding:15px 0;border-top:1px solid var(--line);font-size:12px}.feedback-volume label{display:flex;justify-content:space-between;gap:15px}.feedback-volume input{width:100%;accent-color:var(--mint);min-height:28px;margin:0}.feedback-controls{display:flex;align-items:center;justify-content:space-between;gap:14px}.feedback-controls .secondary{width:auto;min-height:40px;padding:10px 15px}.feedback-note{font-size:10px;line-height:1.7;color:var(--muted);margin:12px 0}.feedback-warning{color:#e4c8a3}.sound-setting .switch,.haptics-setting .switch{flex-shrink:0}
@keyframes fx-ring{from{transform:scale(.35);opacity:.8}to{transform:scale(2.3);opacity:0}}@keyframes fx-spark{0%{transform:translate(0,0) scale(.8);opacity:0}15%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(.25);opacity:0}}@keyframes fx-label{0%{transform:translate(-50%,0) scale(.92);opacity:0}15%{opacity:1;transform:translate(-50%,-12px) scale(1)}75%{opacity:1}100%{transform:translate(-50%,-55px);opacity:0}}@keyframes fx-panel{25%{box-shadow:0 0 0 1px #98ffd08c,0 0 35px #86f7ce29}}@keyframes fx-agent{35%{filter:drop-shadow(0 0 18px #86f7ce75)}}@keyframes fx-reactor{to{stroke-dashoffset:-160}}@keyframes fx-blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.16)}}@keyframes fx-meter{to{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.game-feedback{display:none}.reactor-rings{transition:none}}

.haptics-diagnostics{padding:12px 0;color:#a7bcd3;font-size:11px}.haptics-diagnostics summary{cursor:pointer;color:#c3e8ed}.haptics-diagnostics output{display:block;line-height:1.8;color:#d1f6ed;font-variant-numeric:tabular-nums}
