body.pulse-page { margin:0; --game-canvas-size:min(92vw, 600px); --pulse-ratio:1; --game-radius:20px; --pulse-biome-glow:#52e4ff; --pulse-biome-sky:#061525; --pulse-biome-ground:#0a2940; background-color:var(--pulse-biome-sky); background-image:radial-gradient(circle at 44% 30%,color-mix(in srgb,var(--pulse-biome-glow) 30%,transparent) 0,transparent 42%),radial-gradient(circle at 80% 75%,color-mix(in srgb,var(--pulse-biome-ground) 72%,transparent) 0,transparent 50%),linear-gradient(145deg,var(--pulse-biome-sky),color-mix(in srgb,var(--pulse-biome-sky) 72%,#02040a));background-attachment:fixed;transition:background-color .8s linear; }
body.pulse-page.pulse-playing { overflow:hidden; overscroll-behavior:none; }
body.pulse-page h2 { font-family:"Zen Dots",sans-serif; margin-top:30px; letter-spacing:.14em; text-align:center; color:#e8fbff; text-shadow:0 0 10px #1ed7ff,0 0 26px #5667ff; }
.pulse-wrapper { position:relative;width:var(--game-canvas-size)!important;height:var(--game-canvas-size)!important;max-width:600px!important;aspect-ratio:var(--pulse-ratio);overflow:hidden;background:#050b15;border:1px solid rgba(82,228,255,.75);box-shadow:0 0 0 1px rgba(185,133,255,.28),0 0 30px rgba(30,215,255,.22),0 30px 80px rgba(0,0,0,.65);touch-action:pan-y;user-select:none;-webkit-user-select:none; }
.pulse-wrapper::after { content:"";position:absolute;inset:0;z-index:4;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.13),inset 0 -55px 80px rgba(0,0,0,.13); }
.pulse-page .game-stage{position:relative;isolation:isolate}.pulse-page .game-stage::before{content:"";position:absolute;inset:7%;z-index:-1;border-radius:var(--game-radius);background:#fff;opacity:0;pointer-events:none;filter:blur(34px);transform:scale(.94)}
.pulse-page .game-stage.pulse-break-flash::before{animation:pulse-break-backdrop .24s ease-out}.pulse-page .game-stage.pulse-fall-flash::before{animation:pulse-fall-backdrop .5s ease-in-out}
@keyframes pulse-break-backdrop{0%{opacity:0;transform:scale(.94)}18%{opacity:1;transform:scale(1.04)}100%{opacity:0;transform:scale(1.13)}}
@keyframes pulse-fall-backdrop{0%,100%{opacity:0;transform:scale(.96)}50%{opacity:.92;transform:scale(1.06)}}
#game.pulse-canvas-host,#game.pulse-canvas-host canvas { display:block;width:100%!important;height:100%!important;border-radius:var(--game-radius)!important;touch-action:pan-y; }
body.pulse-page.pulse-playing .pulse-wrapper,body.pulse-page.pulse-playing #game,body.pulse-page.pulse-playing canvas { touch-action:none; }
.pulse-page .music-toggle { display:inline-flex;align-items:center;gap:.5rem;margin:14px 0 4px;padding:.6rem .9rem;border:1px solid rgba(82,228,255,.62);border-radius:999px;background:linear-gradient(135deg,rgba(8,45,70,.72),rgba(50,25,85,.62));color:#fff;font:700 .82rem/1 system-ui,sans-serif;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.2);transition:transform .18s ease,border-color .18s ease; }
.pulse-page .music-toggle:hover { transform:translateY(-1px);border-color:#9af3ff; }
.pulse-page .hud{background:transparent}
@media (min-width:980px){body.pulse-page{--game-canvas-size:600px}.pulse-page .game-main{grid-template-columns:600px minmax(280px,360px)}}
@media (prefers-reduced-motion:reduce){.pulse-wrapper{box-shadow:none}.pulse-page .game-stage::before{transform:none!important}}
@media (pointer:coarse),(max-width:720px){body.pulse-page{background-attachment:scroll}.pulse-wrapper{box-shadow:0 16px 44px rgba(0,0,0,.55)}.pulse-wrapper::after{box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}}

/* Tempest flashes expand outside the canvas without adding a costly DOM animation. */
body.pulse-page{--pulse-lightning:0}.pulse-wrapper{box-shadow:0 0 0 1px rgba(185,133,255,.28),0 0 30px rgba(30,215,255,.22),0 30px 80px rgba(0,0,0,.65),0 0 calc(20px + 90px * var(--pulse-lightning)) rgba(210,195,255,var(--pulse-lightning));transition:box-shadow .08s linear}
@media (pointer:coarse),(max-width:720px){.pulse-wrapper{box-shadow:0 16px 44px rgba(0,0,0,.55),0 0 calc(12px + 52px * var(--pulse-lightning)) rgba(210,195,255,var(--pulse-lightning))}}
