
.pulse-game[data-state="idle"] .game-cover{position:relative;display:block;width:min(100%,350px);height:36dvh;max-height:340px;margin:6px auto 28px;isolation:isolate}.game-cover svg{display:block;width:100%;height:100%;overflow:visible}.cover-target{stroke:#b1c4cf;stroke-width:10;opacity:.22}.cover-target-line{stroke:#9fb5c3;stroke-width:1}.cover-pulse{stroke:#f1f6fa;stroke-width:3;transform-origin:160px 160px;filter:drop-shadow(0 0 5px #bed9e899);animation:cover-play 5.5s linear infinite}.cover-center{fill:#d8ebf3;opacity:.65}.cover-wave{stroke:#cbfbff;stroke-width:1.7;transform-origin:160px 160px;opacity:0;filter:drop-shadow(0 0 6px #adf8ff88);animation:cover-hit 5.5s ease-out infinite}.cover-wave-two{animation-name:cover-hit-two;stroke-width:.8}.cover-perfect{position:absolute;left:0;right:0;bottom:-8px;text-align:center;font:500 12px 'Space Grotesk',sans-serif;letter-spacing:.18em;color:#d8faff;opacity:0;text-shadow:0 0 12px #a7edff88;animation:cover-grade 5.5s ease-out infinite;pointer-events:none}
@keyframes cover-play{0%{transform:scale(1.85);opacity:0}9%{transform:scale(1.85);opacity:1}62%{transform:scale(1);opacity:1;stroke-width:3}66%{transform:scale(1);opacity:1;stroke-width:4}78%,100%{transform:scale(1);opacity:0}}
@keyframes cover-hit{0%,61%{transform:scale(1);opacity:0}64%{transform:scale(1);opacity:.9}84%,100%{transform:scale(1.65);opacity:0}}
@keyframes cover-hit-two{0%,65%{transform:scale(1);opacity:0}67%{transform:scale(1);opacity:.65}90%,100%{transform:scale(1.75);opacity:0}}
@keyframes cover-grade{0%,61%{opacity:0;transform:translateY(4px)}67%,79%{opacity:1;transform:translateY(0)}93%,100%{opacity:0;transform:translateY(0)}}
@media(max-width:600px){.pulse-game[data-state="idle"] .game-cover{height:32dvh;max-width:300px;margin:8px auto 32px}.cover-perfect{bottom:-14px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.cover-pulse,.cover-wave,.cover-perfect{animation:none}.cover-pulse{transform:scale(1.4)}.cover-wave,.cover-perfect{display:none}}

/* Proposal only: white-core cyan neon, preserving the existing game geometry. */
.pulse-game{background:radial-gradient(ellipse at 50% 52%,#12313a 0,#101c24 36%,#090f15 78%)}
.pulse-content #pulse-title{width:min(100%,480px);margin-bottom:16px}.pulse-logo{filter:drop-shadow(0 0 12px #38dcff55)}
.cover-target{stroke:#37dbf4;opacity:.17;stroke-width:12}.cover-target-line{stroke:#b9faff;stroke-width:1.4;filter:drop-shadow(0 0 5px #21dfff)}.cover-pulse{stroke:#efffff;filter:drop-shadow(0 0 3px #7bf3ff) drop-shadow(0 0 10px #20dfff);stroke-width:2.7}.cover-wave{stroke:#bdfbff;filter:drop-shadow(0 0 7px #21e1ff)}.cover-center{fill:#edffff;filter:drop-shadow(0 0 5px #21e1ff)}.cover-perfect{color:#e8ffff;text-shadow:0 0 6px #6cf2ff,0 0 20px #19d9ff}
.pulse-start{border:1px solid #a2f7ff;background:#09232b;color:#f0ffff;box-shadow:inset 0 0 12px #1ddcff18,0 0 5px #80efff70,0 0 22px #1ddcff25;letter-spacing:.18em;transition:background .2s,box-shadow .2s}.pulse-start:hover{background:#103743;box-shadow:inset 0 0 14px #1ddcff25,0 0 8px #80efff99,0 0 28px #1ddcff44}
.pulse-help-button,.pulse-retry{border-color:#4f8593;color:#cdeef3}.pulse-close{border-color:#62939d}.pulse-setting{border-color:#436873}.pulse-instruction{color:#b9cbd3}
.pulse-target-line{stroke:#9edfe8}.pulse-orbit{filter:drop-shadow(0 0 5px #57e7ff99)}
@media(max-width:600px){.pulse-content #pulse-title{width:100%}}

/* Carry the cyan light language through gameplay, results and guide. */
#play-dialog{background:#090f15}.pulse-countdown{background:#020b12a8}.pulse-countdown span{color:#f4ffff;text-shadow:0 0 6px #c1fbff,0 0 30px #35dfff88,0 0 70px #16cce733}
.pulse-stats span{color:#8ab8c5}.pulse-stats strong{color:#eaffff;text-shadow:0 0 12px #40dfff50}.pulse-stats{padding-bottom:10px;border-bottom:1px solid #57dff022}
.pulse-target{stroke:#35dff2;opacity:.19}.pulse-target-line{stroke:#b0f5ff;stroke-width:1.25;filter:drop-shadow(0 0 4px #44dfff88)}.pulse-orbit{stroke:#efffff;filter:drop-shadow(0 0 3px #a5faff) drop-shadow(0 0 9px #20dfff99)}.pulse-hint{color:#a5d9e4}.pulse-hint b{color:#f1ffff;text-shadow:0 0 12px #51e9ff77}
.pulse-game[data-hit="great"] .pulse-feedback{color:#aeeeff;text-shadow:0 0 12px #26cbe855}.pulse-game[data-hit="good"] .pulse-feedback{color:#a2bfca}.pulse-game[data-hit="miss"] .pulse-feedback{color:#778e9a}.pulse-precision{color:#9abecb}
.pulse-setting,.pulse-close,.pulse-help-button,.pulse-retry{background:#0c1b23;box-shadow:inset 0 0 8px #28dfff08}.pulse-setting:hover,.pulse-close:hover,.pulse-help-button:hover,.pulse-retry:hover{background:#123440;border-color:#a2f7ff;box-shadow:0 0 12px #26d7f233}.pulse-setting[aria-pressed="false"]{color:#6e8791;border-color:#314852;box-shadow:none}
.pulse-rank-card:not([data-rank="time"]) .rank-portrait{border-radius:50%;background:radial-gradient(circle,#2c75854d 0,#12313a22 58%,transparent 72%);box-shadow:0 0 24px #32d4f00c}.pulse-rank-card:not([data-rank="time"]) .rank-portrait img{filter:drop-shadow(0 0 8px #55e5ff30)}.pulse-rank-card h3{color:#e6ffff;text-shadow:0 0 16px #36dbf255}.pulse-rank-label{color:#8ce3ef;letter-spacing:.28em}.pulse-rank-total{color:#eaffff;text-shadow:0 0 14px #43dbf744}.pulse-game[data-state="finished"] .pulse-feedback{color:#a1f6ff;text-shadow:0 0 8px #20dfff66}.pulse-result{color:#add2dc}
.pulse-help{background:#0c1821;border-color:#437f8e;box-shadow:0 0 32px #27cde51a}.pulse-help::backdrop{background:#02080dc9}.pulse-help-top{background:#0c1821f5;border-bottom-color:#45d7ec30}.pulse-help-top h2{color:#e3feff;text-shadow:0 0 12px #3cdeff88}.pulse-help-body h3{color:#d9faff}.pulse-help-body p{color:#b2c9d2}.help-rank{background:radial-gradient(ellipse at 50% 30%,#1b3944,#101d28);border-color:#51cee43d;box-shadow:inset 0 0 12px #33dfff06}.help-rank:not(.is-locked) h4{color:#d9faff}.help-rank:not(.is-locked) img{filter:drop-shadow(0 0 5px #5bdeff22)}.help-rank.is-locked{background:#04080d;border-color:#28424d;box-shadow:none}.help-rank.is-locked .help-lock svg{stroke:#8dbfc9;fill:#04080d}.help-rank.is-locked h4{color:#718e99}
#play-dialog :focus-visible{outline-color:#a7f7ff}

/* Title only: the Neon Afterglow city fills both desktop and mobile screens. */
.pulse-game[data-state="idle"]{
 background-color:#040c13;
 background-image:linear-gradient(180deg,#02091155 0%,#02091108 38%,#02091122 65%,#02091199 100%),url("assets/audio/pulse-title-city.png");
 background-size:cover;
 background-position:center;
 background-repeat:no-repeat;
 min-height:100dvh;
}
.pulse-game[data-state="idle"] .pulse-logo{filter:drop-shadow(0 2px 9px #020911) drop-shadow(0 0 14px #38dcff77)}
.pulse-game[data-state="idle"] .pulse-start{background:#061923e8;box-shadow:0 0 12px #46dfff55,0 6px 30px #020911cc}
@media(max-width:600px){.pulse-game[data-state="idle"]{background-position:52% center}}

.pulse-setting.pulse-voice{width:44px;border-radius:20px;font:500 11px/1 sans-serif;letter-spacing:.03em;flex-shrink:0}
@media(max-width:380px){.pulse-setting.pulse-voice{width:38px}.pulse-header{column-gap:6px}.pulse-settings{gap:4px}}
