/* Catalogues remain keyboard-reachable; desktop scroll regions chain to the page. */
.accordion-scroll{max-height:min(68svh,660px);overflow:auto;overscroll-behavior-y:auto;scrollbar-width:thin;scrollbar-color:#c6ac77 #24443d;padding:3px 2px 12px;min-width:0;scroll-padding:12px;}
.tab-scroll{max-height:min(58svh,580px);overflow:auto;overscroll-behavior-y:auto;scrollbar-width:thin;scrollbar-color:#d2b87b #24443d;scroll-padding:12px;min-width:0;padding-right:8px;}
.accordion-scroll:focus-visible,.tab-scroll:focus-visible{outline:2px solid #efd188;outline-offset:2px;border-radius:7px}
#neighbourhood-hub>.accordion-scroll{max-height:min(78svh,780px)}
#neighbourhood-hub .journey-tabs{position:sticky;top:0;z-index:14;background:#23453d}
.skin-chooser>.accordion-scroll{max-height:min(60svh,580px);padding:12px 4px}
.skin-chooser .skin-grid{max-height:none;overflow:visible}
.skin-selection-glint rect{stroke-width:2.5;stroke-dasharray:19 81;filter:drop-shadow(0 0 2px #fff1a3);animation:skin-perimeter-glint 6s linear infinite;will-change:stroke-dashoffset}
#stall-extension .furnishing-art{scale:.7344}.piece-drag-preview .furnishing-art{scale:.7344!important}
.bbl-intro{grid-template-rows:auto}.bbl-intro>div:first-child{grid-row:1}
.bbl-intro .intro-note p{text-align:right}
.bbl-intro h1{position:relative;display:table;padding:15px 16px;background:linear-gradient(135deg,#a82f3d,#c74b4d 48%,#a52839);border:2px solid #f1ce78;border-radius:9px;color:#ffebad;box-shadow:0 5px 0 #663e39,0 9px 22px #130e1822;isolation:isolate;overflow:hidden;animation:spring-scroll-sway 6s ease-in-out infinite;transform-origin:50% 8%;}
.bbl-intro h1 em{color:#fff3b8}.bbl-intro h1::before{content:'';position:absolute;inset:6px;border:1px solid #e9bb6388;border-radius:4px;z-index:-1}.bbl-intro h1::after{content:'';position:absolute;inset:-20% -80%;background:linear-gradient(115deg,transparent 42%,#fff4b42a 49%,transparent 56%);transform:translateX(-45%);animation:spring-scroll-shine 7s ease-in-out infinite;pointer-events:none;z-index:-1}
@keyframes spring-scroll-sway{0%,100%{rotate:-.6deg}50%{rotate:.6deg}}@keyframes spring-scroll-shine{0%,55%{transform:translateX(-45%)}85%,100%{transform:translateX(45%)}}
.worry-ready-note{margin:8px 0 0;font-size:11px;line-height:1.5;color:#e7d8ac}.work-button:disabled{animation:none!important;opacity:.55;cursor:not-allowed}.work-button:disabled .work-shoe,.work-button:disabled .work-bang,.work-button:disabled .work-stamp{animation:none!important}
#kit-demo,#kit-preview{display:none!important}
#ritual-loot-dialog[data-kind=daily] #loot-close{font-size:15.6px}
#ritual-loot-dialog[data-auspicious=true] .loot-card p{font-size:15.6px}
#ritual-loot-dialog[data-auspicious=true] .loot-card small{font-size:12.5px}
.comic-lucky-glyph{display:block;width:100%;height:100%;overflow:visible}
#ritual-loot-dialog[data-auspicious=true] .auspicious-glyph{width:100px;height:94px;margin:auto;translate:0 -5px}
#result>.auspicious-seal{width:112px;height:106px;line-height:1;padding:0;border:0;background:none;box-shadow:none;rotate:-4deg}
.fortune-slip>span:has(.comic-lucky-glyph){display:block;width:100px;height:94px;margin:auto;line-height:1}
#personal-postcard svg{height:auto;max-height:none}
.master-portrait:has(.player-level-badge:not([hidden])){gap:3px}
.player-level-badge{position:relative;left:-6px;width:44.2px;height:45.5px;flex:none;isolation:isolate;filter:drop-shadow(0 2px 5px #f0c96b55);animation:level-badge-glow 4s ease-in-out infinite}
.player-level-badge svg{display:block;width:100%;height:100%}.player-level-badge::after{content:'';position:absolute;inset:21.4% 23.5% 34.3%;border-radius:50%;background:linear-gradient(120deg,transparent 32%,#fff9d767 49%,transparent 66%);background-size:300% 100%;animation:level-badge-shine 5s ease-in-out infinite;pointer-events:none}.badge-spark{transform-origin:83px 18px;animation:badge-spark-twinkle 3.6s ease-in-out infinite}
.player-level{margin-top:15px;padding:12px;border:1px solid #d9bc73;border-radius:12px;background:#183c33;color:#fff1c7}.player-level>div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px}.player-level b{font-size:15px}.player-level small{font-size:11px;line-height:1.55}.player-level progress{display:block;width:100%;height:8px;margin:9px 0;accent-color:#f5d07a}
#player-level-name{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:3px 8px;border:2px solid #24463d;border-radius:3px;background:hsl(var(--level-label-hue) 72% 78%);color:#163d34;font-weight:800;box-shadow:3px 3px 0 #102e35;rotate:-2deg;overflow-wrap:anywhere}
#player-level-name::before{content:'✦';flex:none}
body[data-focus-input=pointer] :is(button,[role=button]):focus{outline:none!important}
#ritual-loot-dialog[data-kind=result] :is(.loot-icon,.loot-rays){transform:scale(.9)}
@keyframes level-badge-glow{0%,100%{filter:drop-shadow(0 2px 4px #efca7655)}50%{filter:drop-shadow(0 2px 8px #ffe5a8b0)}}@keyframes level-badge-shine{0%,40%{background-position:100% 0}80%,100%{background-position:0 0}}@keyframes badge-spark-twinkle{0%,100%{scale:.8;opacity:.6}50%{scale:1.1;opacity:1}}
#records .record-medal{display:grid;place-items:center;width:40px;height:48px;flex:none}#records .record-medal svg{width:36px;height:43px;overflow:visible}#records .record-row{grid-template-columns:40px minmax(0,1fr) auto;gap:9px}#records .record-row div{min-width:0}#records .record-row b{overflow-wrap:anywhere}
.critical-comic{position:absolute;left:50%;top:8px;translate:-50% 0;z-index:8;pointer-events:none;display:flex;align-items:center;gap:6px;max-width:96%;padding:6px 10px;border:2px solid #ffeb9d;border-radius:14px;background:#683d55;color:#fff4c5;box-shadow:0 3px 0 #2f3542;animation:critical-comic-pop 1.25s cubic-bezier(.18,.7,.27,1) both;white-space:nowrap}.critical-comic b{font-size:30px;line-height:1;font-family:Fredoka,system-ui,sans-serif}.critical-comic span{font-size:11px}.critical-comic i{font-style:normal;color:#ffcf63}.critical-3{background:#b34545;border-color:#fff2b5;border-radius:8px 22px 9px 20px;box-shadow:0 3px 0 #773939,0 0 14px #f1c88166}.critical-3 b{color:#ffe573}.critical-2:after{content:'⌣';position:absolute;right:5px;bottom:-20px;font-size:29px;color:#fff4e4;animation:flying-denture 1s ease-out both}.critical-3:after{content:'👻';position:absolute;right:0;bottom:-32px;font-size:32px;animation:escaping-soul 1s ease-out both}
#paper-doll[data-critical='2'] .paper-cry-face{filter:drop-shadow(0 2px 0 #fff0c6)}#paper-doll[data-critical='3']{filter:drop-shadow(0 0 7px #ffe394b0)}#paper-doll[data-critical='3'] .paper-head{transform-origin:center;}
@keyframes critical-comic-pop{0%{opacity:0;transform:scale(.65) rotate(-9deg)}16%{opacity:1;transform:scale(1.08) rotate(3deg)}30%,77%{opacity:1;transform:scale(1) rotate(-2deg)}100%{opacity:0;transform:translateY(-18px) scale(.95)}}@keyframes flying-denture{from{transform:translateY(10px) rotate(0)}to{transform:translate(50px,40px) rotate(240deg);opacity:0}}@keyframes escaping-soul{from{transform:translateY(20px) rotate(-12deg)}to{transform:translate(14px,-90px) rotate(15deg);opacity:0}}
@media(max-width:360px){.bbl-intro h1{padding:11px 9px;font-size:23px}.player-level-badge{width:37.7px;height:39px}.critical-comic{padding:4px 6px;gap:4px}.critical-comic b{font-size:25px}.critical-comic span{font-size:10px}}
@media(prefers-reduced-motion:reduce){.skin-selection-glint rect,.bbl-intro h1,.bbl-intro h1::after,.player-level-badge,.player-level-badge::after,.badge-spark{animation:none!important}.critical-comic{animation:none}.critical-comic::after{animation:none!important}}
/* The critical caption uses the existing reaction row, leaving the paper unobstructed. */
#hit-feedback:has(.critical-comic){padding:3px 6px;display:flex;align-items:center;justify-content:center}
#hit-feedback .critical-comic{position:relative;inset:auto;translate:none;max-width:100%;min-width:0;padding:1px 6px;gap:6px;border-width:1px;border-radius:7px;white-space:normal;animation:critical-reaction-flash 1.25s ease-out both}
#hit-feedback .critical-comic b{font-size:23px}#hit-feedback .critical-comic span{font-size:11px;line-height:1.2}.critical-comic::after{display:none}
.critical-flying-prop{position:absolute;left:4%;top:25%;font-size:33px;line-height:1;pointer-events:none;z-index:3;filter:drop-shadow(0 2px 2px #17362d55);animation:flying-denture 1.1s ease-out both}.critical-prop-3{left:auto;right:6%;animation:escaping-soul 1.1s ease-out both}
#paper-doll[data-critical='2'] .paper-cry-mouth{transform:scale(1.65,.65)}#paper-doll[data-critical='3'] .paper-cry-mouth{transform:scale(1.1,1.65)}#paper-doll[data-critical='3'] .paper-teardrop{scale:1.6;transform-origin:center}
@keyframes critical-reaction-flash{0%{opacity:.5;scale:.94}14%,75%{opacity:1;scale:1}100%{opacity:.85;scale:1}}
@media(prefers-reduced-motion:reduce){#hit-feedback .critical-comic,.critical-flying-prop{animation:none}}
.play-panel[data-phase=setup] .neon-sign{opacity:.12}
@media(max-width:360px){.fong-intro>.master-portrait{flex-basis:88px}.fong-intro .fong-logo{width:88px;height:99px}.fong-intro>div:last-child{min-width:0;flex:1}.fong-intro h2{font-size:22px;line-height:1.35}.fong-intro>div:last-child>p:last-child{line-height:1.6}}

#phase-beat .beat-telemetry{grid-template-columns:128px minmax(0,1fr);column-gap:8px;align-items:center}
#phase-beat .beat-stats{grid-template-columns:84px 38px;gap:6px;justify-content:start;align-content:center;align-self:center}
#phase-beat .beat-stats>span:has(#live-combo){display:block}
#phase-beat .beat-stats>span:first-child{width:84px;min-width:84px;max-width:84px}
@media(max-width:599px){#phase-beat #live-combo[data-wide=true]{font-size:16px}}
#phase-beat .ultimate-hud{grid-template-columns:minmax(0,1fr) 76px;max-width:230px;justify-self:start}
#phase-beat .ultimate-hud:has(#finisher-launch[hidden]){grid-template-columns:minmax(0,1fr)}
#stall-skit #skit-cast [data-skit-actor]>svg{scale:.8}
#phase-beat #finisher-launch{width:76px}
#phase-beat .ultimate-meter progress{grid-row:auto}
.is-playing #stall-tiger{display:none!important}
#phase-beat .simple-event small{font-size:11.5px}
.stall-showcase{max-height:min(68svh,520px);overflow:auto;overscroll-behavior-y:auto;scrollbar-width:thin;scrollbar-color:#d2b87b #24443d;scroll-padding:12px}
@media(any-pointer:coarse){.accordion-scroll,.tab-scroll,.stall-showcase,#neighbourhood-hub>.accordion-scroll,.skin-chooser>.accordion-scroll,.comic-quote-book ul{max-height:none;overflow:visible}}
.stall-showcase:focus-visible{outline:2px solid #efd188;outline-offset:3px}
#weapon-list .kit-shop-actions{display:grid;align-content:center;gap:7px;min-width:86px;max-width:112px}
#weapon-list .kit-shop-actions button{width:100%;min-height:44px;padding:6px;border:1px solid #dec08a;border-radius:7px;background:#d9c18a;color:#243f35;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
#weapon-list .kit-shop-actions button[data-restock]{background:#416455;color:#fff0c1;border-color:#96b99b}
#weapon-list .kit-shop-actions button:disabled{opacity:.65}
#weapon-list .kit-shop-actions button .stat-number,#decor-list [data-decor] .stat-number{color:inherit;text-shadow:none}
.owned-kit-tag{display:table;margin:5px 0;padding:2px 6px;border:1px solid #8fcdb0;border-radius:5px;background:#234b3d;color:#dcffe5;font-size:11px;line-height:1.5}
@media(min-width:600px){#phase-beat .beat-telemetry{grid-template-columns:194px minmax(0,1fr);column-gap:18px}#phase-beat .beat-stats{grid-template-columns:110px 66px;gap:12px}#phase-beat .beat-stats>span:first-child{width:110px;min-width:110px;max-width:110px}#phase-beat .ultimate-hud{grid-template-columns:minmax(0,1fr) 96px;max-width:260px}#phase-beat #finisher-launch{width:96px}}
@media(max-height:500px) and (min-aspect-ratio:4/3){#phase-beat{grid-template-rows:60px minmax(0,1fr) 46px;grid-template-areas:'telemetry telemetry' 'arena hud' 'controls feedback'}#phase-beat:has(#personality-hud[hidden]){grid-template-areas:'telemetry telemetry' 'arena arena' 'controls feedback'}}
.ritual-zombie{position:absolute;left:5%;bottom:-3px;z-index:0;display:block;width:70px;height:90px;pointer-events:none;opacity:0;animation:zombie-visit 3600ms linear both paused;animation-delay:var(--zombie-at,0ms);filter:drop-shadow(0 3px 4px #102e3566)}
.ritual-zombie svg{display:block;width:100%;height:100%}
@keyframes zombie-visit{0%,100%{opacity:0;transform:translateY(105%) scale(.9,1.05)}12%,88%{opacity:.9}14%,42%,70%{transform:translateY(-12px) scale(.96,1.04) rotate(-4deg)}28%,56%,84%{transform:translateY(4px) scale(1.05,.94) rotate(4deg)}}
@media(prefers-reduced-motion:reduce){.ritual-zombie{animation:none;opacity:.8;transform:none}}

.kit-durability-label{display:block;color:#e5efc5;font-size:11px;line-height:1.55;margin-top:5px}
.kit-durability-meter{display:block;width:100%;max-width:180px;height:9px;margin:4px 0 7px;accent-color:#c4db9e}
.friend-icon .patron-portrait{display:block;width:100%;height:100%;overflow:visible}
.friend-row.is-locked .patron-portrait{filter:grayscale(.85);opacity:.5}
.patron-wave{transform-origin:27px 91px;animation:patron-hello 3.4s ease-in-out infinite}
@keyframes patron-hello{0%,55%,100%{rotate:0deg}65%,85%{rotate:13deg}75%,95%{rotate:-9deg}}
#ritual-loot-dialog .loot-icon .reward-mascot,#ritual-loot-dialog .loot-icon .patron-portrait{display:block;width:100%;height:100%;overflow:visible}
#ritual-loot-dialog .loot-icon:has(.reward-mascot,.patron-portrait){background:#e8e4c4;border:2px solid #d5bc8d;border-radius:8px;box-shadow:0 3px 0 #80665b33;padding:3px}
#ritual-loot-dialog .reward-mascot{animation:reward-giggle 3s ease-in-out infinite;transform-origin:50% 90%}
@keyframes reward-giggle{0%,65%,100%{rotate:0deg}74%{rotate:-4deg}83%{rotate:3deg}}
#phase-beat #finisher-launch[data-ready=true]{position:relative;overflow:visible;animation:burst-button-jump .72s ease-in-out infinite;z-index:3}
#finisher-launch[data-ready=true]::before,#finisher-launch[data-ready=true]::after{content:'✦';position:absolute;left:-9px;top:-9px;font-size:18px;line-height:1;color:#fff4b1;text-shadow:0 0 7px #ffdb72;pointer-events:none;animation:burst-spark-hop 1.3s ease-in-out infinite}
#finisher-launch[data-ready=true]::after{color:#abfff0;animation-delay:-.65s;animation-direction:reverse;font-size:14px}
@keyframes burst-button-jump{0%,100%{transform:translate(0,0) rotate(-3deg)}12%{transform:translate(-7px,-8px) rotate(7deg) scale(1.06)}28%{transform:translate(7px,5px) rotate(-7deg)}43%{transform:translate(-5px,7px) rotate(5deg) scale(1.04)}61%{transform:translate(6px,-7px) rotate(-8deg) scale(1.06)}79%{transform:translate(-7px,3px) rotate(6deg)}}
@keyframes burst-spark-hop{0%,100%{left:-9px;top:-9px;rotate:0deg;scale:.7}25%{left:calc(100% - 5px);top:-11px;rotate:80deg;scale:1.2}50%{left:calc(100% - 3px);top:calc(100% - 5px);rotate:160deg;scale:.8}75%{left:-11px;top:calc(100% - 3px);rotate:240deg;scale:1.15}}
.ritual-stage[inert] #finisher-launch,.ritual-stage[inert] #finisher-launch::before,.ritual-stage[inert] #finisher-launch::after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.patron-wave,#ritual-loot-dialog .reward-mascot,#phase-beat #finisher-launch[data-ready=true],#finisher-launch[data-ready=true]::before,#finisher-launch[data-ready=true]::after{animation:none!important;scale:1;filter:none}#finisher-launch[data-ready=true]::after{left:auto;top:auto;right:-8px;bottom:-8px}}

:is(.stall-showcase,#quick-dock,[role=tablist]) button{box-shadow:none;filter:none}
#sound-setup,#settings-sound{box-shadow:none;filter:none}
#sound-setup:active,#settings-sound:active{translate:none;box-shadow:none}
#quick-dock .work-button:active{translate:none;box-shadow:none}
#stall-skit .skit-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:6px;margin-top:8px;width:100%}
#stall-skit .skit-controls button{display:flex;align-items:center;justify-content:center;min-width:0;width:100%;min-height:44px;margin:0;padding:6px 4px;line-height:1.35;white-space:normal;overflow-wrap:normal}
:is(.stall-collection>.stall-tabs,#neighbourhood-hub .journey-tabs){--tab-ink:#e7ecd5;--tab-active:#eed39a;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:8px;padding:6px;border:1px solid #6f94807a;border-radius:8px;background:linear-gradient(180deg,#31564cbd,#234239d9),repeating-linear-gradient(45deg,#79a08922 0 1px,transparent 1px 5px);box-shadow:none}
#neighbourhood-hub .journey-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
#neighbourhood-hub .journey-tabs button{padding-inline:1px}
:is(.stall-tabs,.journey-tabs) button{min-width:0;min-height:44px;margin:0;padding:7px 3px;border:1px solid transparent;border-radius:5px;background:#1f3b333d;color:var(--tab-ink);line-height:1.35;white-space:normal;overflow-wrap:normal;box-shadow:none;transition:background-color .15s,color .15s}
:is(.stall-tabs,.journey-tabs) button:hover:not([aria-selected=true]){background:#5275657a}
:is(.stall-tabs,.journey-tabs) button[aria-selected=true]{background:var(--tab-active);border-color:#f5e1b4;color:#294536;box-shadow:none}
:is(.stall-tabs,.journey-tabs) button:active{scale:1;transform:none;translate:none;box-shadow:none}
@media(prefers-reduced-motion:reduce){:is(.stall-tabs,.journey-tabs) button{transition:none}}

#phase-beat .beat-telemetry{block-size:76px;min-block-size:76px;max-block-size:76px}
#phase-beat .ultimate-hud{height:64px;padding-block:6px;align-items:center;align-self:center;column-gap:12px}
#phase-beat .ultimate-meter{row-gap:5px;align-content:center}
#phase-beat .ultimate-meter progress{margin-block:4px}
#paper-doll>svg{scale:1.1;transform-origin:50% 70%}
@media(max-height:500px) and (min-aspect-ratio:4/3){#phase-beat{grid-template-rows:76px minmax(0,1fr) 46px}}

.ritual-zombie{--zombie-entry:-110%;--zombie-inset:12px;--zombie-lean:-6deg;left:0;right:auto;top:clamp(8px,var(--zombie-top,20%),calc(100% - 92px));bottom:auto;animation-name:zombie-side-visit}
.ritual-zombie[data-side=right]{--zombie-entry:110%;--zombie-inset:-12px;--zombie-lean:6deg;left:auto;right:0}
@keyframes zombie-side-visit{0%,100%{opacity:0;transform:translate(var(--zombie-entry),0) rotate(var(--zombie-lean))}12%,88%{opacity:.9}14%,42%,70%{transform:translate(var(--zombie-inset),-8px) rotate(calc(var(--zombie-lean)*-1))}28%,56%,84%{transform:translate(0,4px) rotate(var(--zombie-lean))}}
.burst-dimension{border-color:#bafff0;box-shadow:inset 0 0 44px #7cfff08c,0 0 22px #55f0d978}
.burst-dimension::before{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 48px #ccfff2b0;background:#b9ffeb12;animation:storm-glow 1.8s ease-in-out infinite}
.burst-storm{filter:drop-shadow(0 0 7px #c5fff3);animation:storm-jolt .9s ease-in-out infinite}
.burst-speedlines{opacity:.7;stroke-width:3}
.burst-bolt{animation-duration:1.8s;filter:drop-shadow(0 0 9px #bdfff4)}
.burst-bolt-two{animation-delay:.9s}.burst-branch-one{animation-delay:.45s}.burst-branch-two{animation-delay:1.35s}
@keyframes burst-lightning{0%,18%,100%{opacity:.15}7%{opacity:1}12%{opacity:.6}}
@keyframes storm-glow{0%,100%{opacity:.4}16%{opacity:.8}55%{opacity:.55}}
@keyframes storm-jolt{0%,100%{transform:translate(0,0) scale(1.02)}25%{transform:translate(-2px,1px) scale(1.025)}60%{transform:translate(2px,-1px) scale(1.02)}}
.ritual-stage[inert] .burst-dimension::before{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.ritual-zombie,.burst-dimension::before{animation:none!important;transform:none}.burst-dimension::before{opacity:.5}}

/* Criticals pop beside the paper without occupying the feedback or target layout. */
#hit-zone>.critical-comic{position:absolute;left:2px;top:5px;inset-inline-end:auto;translate:none;z-index:8;display:grid;place-items:center;max-width:none;min-width:47px;min-height:37px;padding:4px 7px;border:2px solid #ffeda9;border-radius:12px 7px 14px 7px;white-space:nowrap;pointer-events:none;background:#783a62;color:#fff7cc;box-shadow:2px 3px 0 #342f48;transform-origin:80% 80%;animation:paper-critical-pop 1.25s cubic-bezier(.18,.75,.28,1) both}
#hit-zone>.critical-comic b{font:700 28px/1 Fredoka,system-ui,sans-serif;text-shadow:1px 2px 0 #4c3046}
#hit-zone>.critical-3{background:#b14138;border-color:#fff4b7;box-shadow:2px 3px 0 #683332,0 0 10px #ffd77c66;rotate:-5deg}
@keyframes paper-critical-pop{0%{opacity:0;transform:translate(7px,10px) scale(.35) rotate(-18deg)}16%{opacity:1;transform:translate(-2px,-3px) scale(1.18) rotate(5deg)}32%,70%{opacity:1;transform:translate(0,-2px) scale(1) rotate(-3deg)}100%{opacity:0;transform:translate(-8px,-25px) scale(.85) rotate(-9deg)}}
.ritual-stage[inert] #hit-zone>.critical-comic{animation-play-state:paused}

/* A reserved torch slot keeps the meter and paper steady in every state. */
#phase-beat .ultimate-hud{column-gap:6px;grid-template-columns:minmax(0,1fr) 64px}
#phase-beat .ultimate-hud:has(#finisher-launch[hidden]){grid-template-columns:minmax(0,1fr)}
#phase-beat #finisher-launch{width:64px}
#phase-beat .ultimate-meter{grid-template-columns:minmax(0,1fr) 22px;grid-template-rows:16px 10px 12px;column-gap:4px;row-gap:2px;overflow:visible;align-items:center}
#phase-beat #finisher-charge-label{grid-column:1/-1;grid-row:1}
#phase-beat #finisher-charge{grid-column:1;grid-row:2;margin:0;width:100%;height:8px}
#phase-beat #finisher-count{grid-column:1;grid-row:3}
.finisher-torch{position:relative;display:block;grid-column:2;grid-row:2/4;width:22px;height:34px;align-self:center;pointer-events:none}
.finisher-torch>svg{display:block;width:100%;height:100%;overflow:visible}
.finisher-torch .torch-flame,.finisher-torch .torch-ignition,.finisher-torch .torch-smoke{opacity:0}
.finisher-torch:is([data-state=ready],[data-state=burning]) .torch-flame{opacity:1;transform-origin:32px 53px;animation:combo-flame-flicker .65s ease-in-out infinite alternate;filter:drop-shadow(0 0 5px #ffb449)}
.finisher-torch[data-state=ready] .torch-ignition{transform-origin:32px 35px;animation:combo-torch-ignite .7s ease-out both}
.finisher-torch[data-state=spent] .torch-smoke{opacity:1}
.finisher-torch .torch-smoke-wisp{opacity:0;transform-origin:32px 49px}
.finisher-torch[data-state=spent] .torch-smoke-wisp{animation:combo-torch-smoke 2.6s ease-out infinite}
.finisher-torch[data-state=spent] .torch-smoke-wisp:nth-child(2){animation-delay:-.85s}
.finisher-torch[data-state=spent] .torch-smoke-wisp:nth-child(3){animation-delay:-1.7s}
@keyframes combo-flame-flicker{from{transform:scale(.94,.93) rotate(-3deg)}to{transform:scale(1.05,1.09) rotate(3deg)}}
@keyframes combo-torch-ignite{0%{opacity:0;transform:scale(.3)}25%{opacity:1;transform:scale(1.05)}100%{opacity:0;transform:scale(1.4)}}
@keyframes combo-torch-smoke{0%{opacity:0;transform:translateY(3px) scale(.7)}15%{opacity:.75}60%{opacity:.4;transform:translate(3px,-17px) scale(1.1)}100%{opacity:0;transform:translate(-3px,-38px) scale(1.4)}}
.ritual-stage[inert] .finisher-torch *{animation-play-state:paused!important}

/* Side entrances stay on the ground; bodies hop while their shadows stay put. */
.ritual-zombie{top:auto;bottom:7px;width:clamp(46px,14vw,66px);height:auto;aspect-ratio:100/128;animation-name:zombie-ground-visit;opacity:.62}
.ritual-zombie .zombie-body{transform-origin:50px 121px;animation:zombie-ground-hop 560ms ease-in-out infinite paused;animation-delay:var(--zombie-at,0ms)}
.ritual-zombie .zombie-ground-shadow{transform-origin:50px 121px;animation:zombie-ground-shade 560ms ease-in-out infinite paused;animation-delay:var(--zombie-at,0ms)}
@keyframes zombie-ground-visit{0%,100%{opacity:0;transform:translateX(var(--zombie-entry))}12%,88%{opacity:.62}16%{transform:translateX(0)}40%{transform:translateX(var(--zombie-inset))}65%{transform:translateX(calc(var(--zombie-inset)*2))}88%{transform:translateX(var(--zombie-inset))}}
@keyframes zombie-ground-hop{0%,100%{transform:translateY(0) scale(1.06,.94) rotate(var(--zombie-lean))}18%{transform:translateY(-3px) scale(.96,1.05)}48%{transform:translateY(-17px) scale(.98,1.02) rotate(calc(var(--zombie-lean)*-.5))}78%{transform:translateY(-3px) scale(.96,1.04)}90%{transform:translateY(0) scale(1.08,.9)}}
@keyframes zombie-ground-shade{0%,100%{opacity:.8;transform:scaleX(1)}48%{opacity:.4;transform:scaleX(.66)}}
@media(min-width:600px){#phase-beat .ultimate-hud{grid-template-columns:minmax(0,1fr) 88px}#phase-beat #finisher-launch{width:88px}}
@media(max-width:360px){#hit-zone>.critical-comic b{font-size:25px}#hit-zone>.critical-comic{min-width:43px;min-height:34px;padding:4px 6px}}
@media(prefers-reduced-motion:reduce){#hit-zone>.critical-comic{animation:none;rotate:none}.finisher-torch *{animation:none!important}.finisher-torch[data-state=ready] .torch-ignition{opacity:0}.finisher-torch[data-state=spent] .torch-smoke-wisp{opacity:.55}.ritual-zombie{animation:none!important;opacity:.62;transform:none}.ritual-zombie .zombie-body,.ritual-zombie .zombie-ground-shadow{animation:none;transform:none}}

/* Keep the animated level badge beside its actual level in the wallet. */
.player-level-heading{row-gap:10px!important}
.player-level-primary{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%}
#player-level .player-level-badge{left:auto;align-self:center}
#player-level-label{min-width:0;line-height:1.5;overflow-wrap:anywhere}

/* Layered, continuous weapon fire, kept behind the tool and inside the arena. */
.burst-fire .burst-flame-outer{transform-origin:70px 170px;animation:weapon-fire-outer .72s ease-in-out infinite;filter:drop-shadow(0 0 5px #ff9f3c99)}
.burst-fire .burst-flame-inner{transform-origin:70px 169px;animation:weapon-fire-inner .54s ease-in-out infinite alternate;animation-delay:-.23s}
.burst-fire .burst-flame-core{transform-origin:70px 163px;animation:weapon-fire-core .86s ease-in-out infinite alternate;animation-delay:-.4s}
.burst-fire .burst-ember{--ember-drift:-12px;opacity:0;animation:weapon-ember-rise 1.3s ease-out infinite}
.burst-fire .burst-ember:nth-child(2){--ember-drift:9px;animation-delay:-.27s;animation-duration:1.1s}
.burst-fire .burst-ember:nth-child(3){--ember-drift:17px;animation-delay:-.62s;animation-duration:1.5s}
.burst-fire .burst-ember:nth-child(4){--ember-drift:-8px;animation-delay:-.91s;animation-duration:1.2s}
.burst-fire .burst-ember:nth-child(5){--ember-drift:5px;animation-delay:-1.1s;animation-duration:1.7s}
@keyframes weapon-fire-outer{0%,100%{transform:scale(.94,1.01) skewX(-5deg)}26%{transform:scale(1.08,1.14) skewX(3deg)}54%{transform:scale(.96,.96) skewX(-2deg)}78%{transform:scale(1.04,1.09) skewX(5deg)}}
@keyframes weapon-fire-inner{0%{transform:scale(1.06,.9) skewX(5deg)}45%{transform:scale(.9,1.16) skewX(-6deg)}100%{transform:scale(1.03,1.04) skewX(2deg)}}
@keyframes weapon-fire-core{from{transform:scale(.88,1.2) skewX(-4deg)}to{transform:scale(1.15,.88) skewX(4deg)}}
@keyframes weapon-ember-rise{0%{opacity:0;transform:translate(0,6px) scale(.6)}15%{opacity:.9}70%{opacity:.65}100%{opacity:0;transform:translate(var(--ember-drift),-100px) scale(.2)}}
@media(prefers-reduced-motion:reduce){.burst-fire *{animation:none!important}.burst-fire .burst-ember{opacity:.55}}

/* Shorter combo rail, with the torch centred across its complete three-row label. */
#phase-beat .ultimate-hud{max-width:205px}
#phase-beat .ultimate-meter{max-width:126px;grid-template-columns:minmax(0,1fr) 26px}
#phase-beat .finisher-torch{grid-row:1/4;width:26px;height:41px;align-self:center;justify-self:center}
#phase-beat #finisher-charge-label{grid-column:1}
/* A comic countdown plaque stays in the existing HUD slot; it never covers the paper. */
#phase-beat #finisher-launch[data-burst=true]{min-width:0;min-height:52px;padding:2px 3px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:center;gap:0 2px;border:2px solid #ffe6a1;border-radius:13px 7px 13px 7px;background:linear-gradient(135deg,#fff2bb,#ffd076);color:#502b50;opacity:1;box-shadow:2px 3px 0 #633b68,inset 0 2px 0 #fff9de;overflow:visible}
.burst-count-top{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:3px;font:700 10px/1.1 var(--display);color:#783c62}
.burst-count-top svg{width:13px;height:13px;flex:none}
.burst-count-time{font:700 17px/1.15 Fredoka,system-ui,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.burst-count-time small{font-size:10px}
.burst-count-multiplier{align-self:center;font:700 10px/1 Fredoka,system-ui,sans-serif;background:#783c62;color:#fff5bc;border-radius:5px;padding:3px 2px}
@media(min-width:600px){#phase-beat .ultimate-hud{max-width:225px}#phase-beat .ultimate-meter{max-width:132px}#phase-beat #finisher-launch[data-burst=true]{padding-inline:6px}.burst-count-time{font-size:20px}.burst-count-multiplier{font-size:12px}}

/* Longer patron biographies must not stretch a portrait into a tall empty column. */
#ritual-loot-dialog .loot-icon:has(>.patron-portrait){height:86px;align-self:start}
