.pm3-shell{--ambient-glow:rgba(255,255,255,.82);--ambient-soft:rgba(255,230,135,.66)}
.pm3-shell[data-chapter="snow"]{--ambient-glow:rgba(247,253,255,.92);--ambient-soft:rgba(164,225,255,.72)}
.pm3-shell[data-chapter="volcano"]{--ambient-glow:rgba(255,225,178,.88);--ambient-soft:rgba(255,139,86,.72)}

/* Ambient field lives behind the actual game UI. Six compositor-only particles are
   enough to keep the otherwise static desktop background alive without touching Canvas. */
.pm3-ambient-field{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;contain:layout paint;}
.pm3-ambient-field i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:999px;background:var(--ambient-glow);box-shadow:0 0 10px var(--ambient-soft);opacity:0;will-change:transform,opacity;animation:pm3-ambient-drift var(--d) linear var(--delay) infinite;}
.pm3-ambient-field i:nth-child(2n){border-radius:38% 62% 55% 45%;transform:rotate(28deg)}
.pm3-shell[data-chapter="volcano"] .pm3-ambient-field i{border-radius:50% 50% 46% 54%;}

/* One-time entrance gives the screen a game-like arrival rather than a hard static paint. */
.pm3-shell.pm3-ambient-ready .pm3-topline{animation:pm3-enter-top .46s cubic-bezier(.16,.9,.24,1) both}
.pm3-shell.pm3-ambient-ready .pm3-chapter-pill{animation:pm3-enter-down .42s .05s cubic-bezier(.16,.9,.24,1) both}
.pm3-shell.pm3-ambient-ready .pm3-hud{animation:pm3-enter-down .48s .09s cubic-bezier(.16,.9,.24,1) both}
.pm3-shell.pm3-ambient-ready .pm3-board-wrap{animation:pm3-enter-board .56s .14s cubic-bezier(.16,.9,.24,1) both}
.pm3-shell.pm3-ambient-ready .pm3-combo-row{animation:pm3-enter-down .42s .20s cubic-bezier(.16,.9,.24,1) both}
.pm3-shell.pm3-ambient-ready .pm3-boosters{animation:pm3-enter-down .44s .24s cubic-bezier(.16,.9,.24,1) both}
.pm3-shell.pm3-ambient-ready .pm3-booster-help{animation:pm3-enter-down .4s .28s cubic-bezier(.16,.9,.24,1) both}

/* Persistent idle life. Amplitudes are deliberately small so the board remains readable. */
.pm3-brand{animation:pm3-brand-float 3.6s ease-in-out infinite;will-change:transform}
.pm3-hud-card.target img{animation:pm3-target-bob 2.8s ease-in-out infinite;will-change:transform}
.pm3-chapter-pill{position:relative;overflow:hidden}
.pm3-chapter-pill:after{content:"";position:absolute;top:-20%;bottom:-20%;width:22%;left:-35%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);transform:skewX(-18deg);animation:pm3-pill-sheen 4.6s ease-in-out infinite;will-change:transform}

.pm3-board-wrap{overflow:hidden;isolation:isolate}
.pm3-board-wrap:after{content:"";position:absolute;inset:4px;z-index:3;border-radius:24px;pointer-events:none;background:linear-gradient(112deg,transparent 0 42%,rgba(255,255,255,.05) 46%,rgba(255,255,255,.20) 50%,rgba(255,255,255,.05) 54%,transparent 58%);transform:translate3d(-125%,0,0);animation:pm3-board-sheen 7.2s ease-in-out 1.2s infinite;will-change:transform}

.pm3-combo-track:after{content:"";position:absolute;inset:-2px auto -2px -30%;width:24%;z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);animation:pm3-combo-sheen 3.8s ease-in-out infinite;will-change:transform}
.pm3-combo-row>strong{animation:pm3-ready-breathe 2.2s ease-in-out infinite}

.pm3-booster-art{animation:pm3-booster-breathe 3.2s ease-in-out infinite;will-change:transform}
.pm3-booster:nth-child(2) .pm3-booster-art{animation-delay:.45s}
.pm3-booster:nth-child(3) .pm3-booster-art{animation-delay:.9s}
.pm3-booster-art svg{transform-origin:50% 50%;animation:pm3-icon-nudge 5.4s ease-in-out infinite;will-change:transform}
.pm3-booster:nth-child(2) .pm3-booster-art svg{animation-delay:.55s}
.pm3-booster:nth-child(3) .pm3-booster-art svg{animation-delay:1.1s}
@media(hover:hover) and (pointer:fine){
  .pm3-booster:not(:disabled):hover{transform:translateY(-3px) scale(1.018);filter:saturate(1.06) brightness(1.02)}
  .pm3-icon-button:hover{transform:translateY(-2px) scale(1.04)}
}

.pm3-shell.pm3-ambient-paused .pm3-ambient-field i,
.pm3-shell.pm3-ambient-paused .pm3-brand,
.pm3-shell.pm3-ambient-paused .pm3-hud-card.target img,
.pm3-shell.pm3-ambient-paused .pm3-chapter-pill:after,
.pm3-shell.pm3-ambient-paused .pm3-board-wrap:after,
.pm3-shell.pm3-ambient-paused .pm3-combo-track:after,
.pm3-shell.pm3-ambient-paused .pm3-combo-row>strong,
.pm3-shell.pm3-ambient-paused .pm3-booster-art,
.pm3-shell.pm3-ambient-paused .pm3-booster-art svg{animation-play-state:paused!important}

@keyframes pm3-enter-top{from{opacity:0;transform:translate3d(0,-14px,0) scale(.98)}to{opacity:1;transform:none}}
@keyframes pm3-enter-down{from{opacity:0;transform:translate3d(0,12px,0) scale(.985)}to{opacity:1;transform:none}}
@keyframes pm3-enter-board{0%{opacity:0;transform:translate3d(0,16px,0) scale(.965)}72%{opacity:1;transform:translate3d(0,-2px,0) scale(1.008)}100%{opacity:1;transform:none}}
@keyframes pm3-brand-float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-2px,0)}}
@keyframes pm3-target-bob{0%,100%{transform:translate3d(0,0,0) rotate(-1deg)}50%{transform:translate3d(0,-3px,0) rotate(1deg)}}
@keyframes pm3-pill-sheen{0%,64%{transform:translate3d(0,0,0) skewX(-18deg);opacity:0}70%{opacity:.85}86%{transform:translate3d(610%,0,0) skewX(-18deg);opacity:.62}100%{transform:translate3d(610%,0,0) skewX(-18deg);opacity:0}}
@keyframes pm3-board-sheen{0%,68%{transform:translate3d(-125%,0,0);opacity:0}72%{opacity:.5}88%{transform:translate3d(125%,0,0);opacity:.35}100%{transform:translate3d(125%,0,0);opacity:0}}
@keyframes pm3-combo-sheen{0%,50%{transform:translate3d(0,0,0) skewX(-18deg);opacity:0}58%{opacity:.72}80%{transform:translate3d(560%,0,0) skewX(-18deg);opacity:.35}100%{transform:translate3d(560%,0,0) skewX(-18deg);opacity:0}}
@keyframes pm3-ready-breathe{0%,100%{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.035)}}
@keyframes pm3-booster-breathe{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(0,-1px,0) scale(1.035)}}
@keyframes pm3-icon-nudge{0%,72%,100%{transform:rotate(0deg) scale(1)}78%{transform:rotate(-5deg) scale(1.06)}84%{transform:rotate(4deg) scale(1.06)}90%{transform:rotate(0deg) scale(1)}}
@keyframes pm3-ambient-drift{0%{opacity:0;transform:translate3d(0,18px,0) scale(.72)}12%{opacity:.55}56%{opacity:.82}88%{opacity:.35}100%{opacity:0;transform:translate3d(var(--dx),var(--rise),0) scale(1.08)}}

@media(max-width:480px){
  .pm3-ambient-field i:nth-child(n+5){display:none}
  .pm3-board-wrap:after{opacity:.7}
}
@media(prefers-reduced-motion:reduce){
  .pm3-shell *,.pm3-shell:before,.pm3-shell:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  .pm3-ambient-field{display:none!important}
  .pm3-board-wrap:after,.pm3-chapter-pill:after,.pm3-combo-track:after{display:none!important}
}
