/* KH-04.3: motion layers preserve the accepted hero's layout and copy. */
.hero .hero-depth{position:absolute;inset:0;pointer-events:none;transform-origin:24% 60%}
.hero .hero-entry,.hero .hero-idle{position:absolute;inset:0;transform-origin:50% 80%}
.hero .room-light{background:none}
.hero .room-breath{position:absolute;inset:0;background:radial-gradient(ellipse,#a30720b0,transparent 61%)}
.hero .portal-pulse-window{display:none;position:absolute;inset:-1px;border-radius:inherit}
.hero .portal-pulse{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;stroke-dasharray:24 76;stroke-dashoffset:0}
.hero .portal-pulse path{stroke-linecap:round}
.hero .pulse-halo{stroke:#ff253b;stroke-width:3.2;opacity:.2}
.hero .pulse-core{stroke:#ffc19b;stroke-width:.7;opacity:.9}
.hero .portal-back .portal-pulse-window{opacity:.55}
.hero .mascot-light-mask{display:none;position:absolute;inset:0;overflow:hidden;mask:url('assets/mascot.webp') center bottom/contain no-repeat;-webkit-mask:url('assets/mascot.webp') center bottom/contain no-repeat;mix-blend-mode:screen}
.hero .mascot-glint{position:absolute;inset:0;background:linear-gradient(112deg,transparent 31%,#a8291422 41%,#ffdaa870 49%,#fff4d56b 52%,#f56b2720 60%,transparent 70%);opacity:0}
.hero[data-hero-motion=running] .portal-pulse-window,.hero[data-hero-motion=paused] .portal-pulse-window,.hero[data-hero-motion=running] .mascot-light-mask,.hero[data-hero-motion=paused] .mascot-light-mask{display:block}
.hero[data-hero-motion=running] .hero-idle,.hero[data-hero-motion=running] .room-breath,.hero[data-hero-motion=running] .mascot-glint{will-change:transform,opacity}
@media(prefers-reduced-motion:reduce){.hero .portal-pulse-window,.hero .mascot-light-mask{display:none!important}.hero .hero-idle,.hero .portal-pulse,.hero .room-breath,.hero .mascot-glint{will-change:auto!important}}
