/* V96: a single stable board, material effects, and a shared Temper stage. */
.stage-combat .combat.dread-combat .rune-board-controls .slime-boards{gap:15px;animation:none}
.stage-combat .combat.dread-combat .rune-board-controls .slime-boards.slime-joined{gap:3px}
.stage-combat .combat.dread-combat .rune-board-controls .slime-boards.slime-splitting{animation:slime-part96 .7s .65s cubic-bezier(.2,.7,.3,1) both}
@keyframes slime-part96{from{gap:3px}to{gap:15px}}
.stage-combat .combat.dread-combat .slime-half{display:block;opacity:1;grid-template-rows:none}
.stage-combat .combat.dread-combat .slime-half>.guess-board{height:100%}
.slime-joined .slime-half .current .tile{border-bottom-color:inherit;box-shadow:inherit}
.stage-combat .slime-boards.slime-joined .guess-row{opacity:1;filter:none;transform:none}
.slime-seam{width:13px;filter:none;top:1px;bottom:1px;opacity:.92}
.slime-seam:before,.slime-seam:after,.slime-seam i{display:none}
.slime-seam svg{image-rendering:pixelated}
/* A centered blade pierces once; the small wound drips until the next turn ends. */
.backstabbed-tile{animation:none!important;overflow:visible!important}
.backstabbed-tile.stab-arriving{animation:stab-tile-impact .5s .28s both!important}
.vowel-wound{inset:0;overflow:visible}
.vowel-wound svg{left:50%;top:50%;width:40px;height:64px;max-width:none;transform:translate(-50%,-73%)}
.backstab-blade{transform-origin:20px 49px;animation:dagger-center96 .85s both}
@keyframes dagger-center96{0%{opacity:0;transform:translateY(-60px)}12%{opacity:1;transform:translateY(-48px)}33%,68%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-64px)}}
.vowel-wound .stab-cut{animation-delay:.28s}.vowel-wound b{left:38%;right:35%;top:53%;height:3px;animation-delay:.28s;background:#782635}
.vowel-wound i,.wound-settled i{display:block;top:57%;left:46%;width:3px;height:4px;animation:vowel-bleed96 1.2s .3s infinite}
.vowel-wound i:nth-of-type(2){left:54%;animation-delay:.67s}.vowel-wound i:nth-of-type(3){left:42%;animation-delay:1.02s;width:2px}
.wound-settled .backstab-blade{display:none}.wound-settled .stab-cut,.wound-settled b{opacity:1;animation:none}
@keyframes vowel-bleed96{0%{opacity:0;transform:translateY(0) scaleY(.3)}12%,60%{opacity:1}70%{transform:translateY(12px) scaleY(1.6)}100%{opacity:0;transform:translateY(40px) scaleY(1)}}
/* The arrow freezes the waiting row before that row takes the active seat. */
.frozen-row .tile-frost{animation:none;opacity:1;filter:drop-shadow(0 1px 1px #183543)}
.frozen-row.frost-forming .tile-frost{animation:frost-capture96 .48s both;animation-delay:calc(.25s + var(--tile-index)*30ms)}
@keyframes frost-capture96{0%{opacity:0;clip-path:inset(0 0 100%);filter:brightness(1.9)}35%{opacity:1}100%{opacity:1;clip-path:inset(0);filter:none}}
.frost-shard{background:linear-gradient(calc(108deg + var(--shard)*12deg),#b1cbc9de,#7a9baac9 44%,#bdcfcdde 46%,#456c85de);box-shadow:inset 0 0 0 1px #9ab8bb}
.iceWarning .frozen-row .tile{animation:ice-row-jiggle96 .21s steps(2,end) infinite;animation-delay:calc(var(--tile-index)*.025s)}
@keyframes ice-row-jiggle96{0%,100%{translate:0 0}25%{translate:-1px 0}75%{translate:1px 1px}}
.ice-warning.counter-warning{color:#c7e2e5;border-color:#82b9cf;background:linear-gradient(90deg,#162c39eb,#243e4deb,#162c39eb);box-shadow:0 0 0 2px #101e26,0 0 25px #74a9c333}
.ice-warning.counter-warning strong{color:#d5e8e7;text-shadow:0 2px #152a36,0 0 12px #8ec2d366}.ice-warning.counter-warning span{color:#a3bdc8}
/* No separate ice dialog skin: the actual Temper window, gauge and button. */
.icebreak-focus .focus-rune.iceblock-stage{width:180px;height:166px;clip-path:none;background:none!important;box-shadow:none!important;border:0!important;overflow:visible;animation:none;isolation:isolate}
.iceblock-stage:before,.iceblock-stage:after{display:none}
.iceblock-art{display:block;position:relative;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 6px 5px #0006) saturate(.78)}
.iceblock{position:absolute;inset:0}.iceblock canvas,.icebreak-pick canvas{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.ice-whole,.ice-half{position:absolute;inset:0}.ice-half{visibility:hidden}.ice-left{clip-path:polygon(0 0,46% 0,46% 12%,42% 28%,48% 39%,43% 53%,49% 69%,43% 94%,43% 100%,0 100%)}.ice-right{clip-path:polygon(46% 0,100% 0,100% 100%,43% 100%,43% 94%,49% 69%,43% 53%,48% 39%,42% 28%,46% 12%)}
.icebreak-focus[data-cracks='3'] .ice-whole{visibility:hidden}.icebreak-focus[data-cracks='3'] .ice-half{visibility:visible}
.ice-fractures{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;stroke:#123f5b;stroke-width:1.15;stroke-linejoin:bevel;filter:drop-shadow(1px 0 #cef6f0)}.ice-fractures .crack-two{stroke-width:.8}.ice-fractures .ice-scar{stroke:#ddfff7;stroke-width:.65}
.frost-shard canvas{display:block;width:100%;height:100%;image-rendering:pixelated;filter:saturate(.65) brightness(.92)}
.icebreak-focus .strike-gauge{margin-top:8px}
.icebreak-focus .gauge-zones{background:linear-gradient(90deg,#080b0c 0 16%,#697078 16% 40%,#75cd80 40% 60%,#697078 60% 84%,#080b0c 84% 100%)}
.icebreak-progress.gauge-values{grid-template-columns:1fr 1.5fr 1fr;margin-top:13px;align-items:center}.icebreak-progress>span{font-size:8px;color:#a6a99a}.icebreak-progress b{display:flex;align-items:center;justify-content:center;gap:9px;font-size:12px;color:#d5e5c2}.icebreak-pips{white-space:nowrap}.icebreak-pips i{font:9px Georgia;font-style:normal;color:#37484c;letter-spacing:3px}.icebreak-pips i.filled{color:#b5d7d4;text-shadow:0 0 8px #bddbc0}
.icebreak-focus .timing-copy{margin:20px 0 14px}
.iceblock .ice-crack,.iceblock .ice-scar{opacity:0;transition:opacity .08s}.icebreak-focus[data-cracks='1'] .crack-one,.icebreak-focus[data-cracks='2'] .ice-crack,.icebreak-focus[data-cracks='3'] .ice-crack{opacity:1}.icebreak-focus[data-cracks='2'] .ice-scar,.icebreak-focus[data-cracks='3'] .ice-scar{opacity:.8}
.icebreak-pick{position:absolute;width:218px;height:218px;left:calc(43% - 2px);top:calc(53% - 149px);z-index:5;opacity:0;pointer-events:none;transform-origin:2px 149px;filter:drop-shadow(2px 4px 1px #07141a99)}
.icebreak-focus{--pick-x:0px;--pick-y:0px}.icebreak-focus[data-strike='2']{--pick-x:-7px;--pick-y:5px}.icebreak-focus[data-strike='3']{--pick-x:-13px;--pick-y:9px}
.icebreak-focus.ice-hit .icebreak-pick{animation:pick-enter96 .43s cubic-bezier(.15,.7,.4,1) both}
@keyframes pick-enter96{0%{opacity:0;transform:translate(70vw,-20px) rotate(-24deg)}6%{opacity:1}35%,55%{opacity:1;transform:translate(var(--pick-x),var(--pick-y)) rotate(0)}68%{opacity:1;transform:translate(calc(var(--pick-x) + 4px),calc(var(--pick-y) - 3px)) rotate(-3deg)}100%{opacity:0;transform:translate(70vw,-45px) rotate(-22deg)}}
.icebreak-focus.ice-hit .iceblock{animation:iceblock-contact96 .43s both;transform-origin:center}
@keyframes iceblock-contact96{0%,33%,100%{transform:none;filter:none}36%{transform:translate(-2px,2px);filter:brightness(1.45)}53%{transform:translate(1px,-1px)}}
.icebreak-chips{position:absolute;left:43%;top:53%;z-index:6;pointer-events:none}.icebreak-chips i{position:absolute;width:4px;height:3px;background:#accdcb;box-shadow:1px 1px #517e94;opacity:0}.ice-hit .icebreak-chips i{animation:ice-chip96 .5s .15s both}
@keyframes ice-chip96{0%{opacity:1;transform:none}100%{opacity:0;transform:translate(calc((var(--chip) - 5.5)*11px),calc(-28px + var(--chip)*6px)) rotate(calc(var(--chip)*31deg))}}
.icebreak-focus[data-cracks='3'] .ice-left{animation:ice-half-left96 .9s both;transform-origin:25% 88%}.icebreak-focus[data-cracks='3'] .ice-right{animation:ice-half-right96 .9s both;transform-origin:75% 88%}.icebreak-focus[data-cracks='3'] .ice-crack,.icebreak-focus[data-cracks='3'] .ice-scar{animation:ice-crack-gone96 .2s both}
@keyframes ice-half-left96{0%{transform:none;opacity:1}25%{transform:translate(-7px,0) rotate(-9deg);opacity:1}55%{opacity:1}100%{transform:translate(-31px,94px) rotate(-35deg);opacity:0}}
@keyframes ice-half-right96{0%{transform:none;opacity:1}25%{transform:translate(8px,1px) rotate(10deg);opacity:1}55%{opacity:1}100%{transform:translate(34px,100px) rotate(40deg);opacity:0}}
@keyframes ice-crack-gone96{to{opacity:0}}
.icebreak-focus.ice-miss .iceblock{animation:frost-jitter .48s both}.icebreak-focus.ice-miss #timing-title{color:#d2a193}
.icebreak-focus .ice-test-controls{margin-top:4px}
.iceShatter .frost-shard{animation:ice-to-floor96 1.2s cubic-bezier(.42,0,.9,.5) both;animation-delay:calc(var(--tile-index)*24ms + var(--shard)*18ms)}
@keyframes ice-to-floor96{0%{opacity:1;transform:none}10%{transform:translate(calc((var(--shard) - 2.5)*2px),-4px);filter:brightness(1.45)}80%{opacity:1}100%{opacity:0;transform:translate(calc((var(--shard) - 2.5)*24px),100dvh) rotate(calc((var(--shard) - 2.5)*45deg));filter:none}}
/* A carved light mark stays steady, then drains in a single bright beam. */
.dread-combat .light-tile:after{animation:none!important;inset:2px;border:1px solid #d4bb77;box-shadow:inset 0 0 12px #efd69733,0 0 6px #e4cf8844;background:linear-gradient(140deg,#efd59822,transparent 65%);opacity:1}
.dread-combat .light-tile:before{content:'✦';position:absolute;inset:auto;left:50%;top:-8px;translate:-50% 0;font:12px Georgia;line-height:12px;color:#f3e1aa;text-shadow:0 1px #263b3f;z-index:7}
.light-restoring .last-attack .light-tile{filter:brightness(1.35)}
.dread-impact-copy.light-heal{top:10%;font-size:16px;padding:8px 13px;border:1px solid #dfc58a66;background:linear-gradient(90deg,#20393bde,#475249ed,#20393bde);color:#fff0bf;animation:light-heal-copy 1.8s .85s both}
.light-restoring .enemy-health-fill{background:linear-gradient(#d4e5b7,#81aa73 45%,#467850);box-shadow:0 0 13px #e2e4b088}
/* Lord and Baron share the same board dock and potion coordinates. */
.stage-combat .combat.dread-combat.xur-combat .rune-board-controls{width:min(350px,calc(100vw - 100px));margin:0 auto}
.stage-combat .combat.dread-combat.baron-combat .rune-board-controls>.guess-board{width:min(202px,100%);margin:0 auto}
.stage-combat .combat.dread-combat.xur-combat .rune-board-controls>.consumable-belt{left:calc(100% + 8px);top:0}
.stage-combat .combat.xur-combat:not(.baron-combat) .combat-head{translate:0 -8px}
.xur-combat .floating-damage{top:50%;bottom:auto}
.xur-fallen .encounter-victory{animation:xur-victory-fade96 .4s 4.2s both}
.xur-fallen .rune-board-controls>.guess-board{animation:old-words-fade .7s 3.8s both}
.baronSilence .combat-head,.baronSilence .trait-emblem,.baronSilence .rune-board-controls>.guess-board{visibility:hidden}
.baronOmen .rune-board-controls>.guess-board,.baronApproach .rune-board-controls>.guess-board{animation:none;opacity:0;visibility:hidden}
.baron-omen-copy{animation:approaching-words 1.8s both}
@keyframes xur-victory-fade96{from{opacity:1}to{opacity:0}}
.baronRise .combat-head h1{animation:baron-name-appear .5s 2.55s both}.baronRise .enemy-frame{animation:baron-bar-slide .6s 1.95s both}.baronRise .enemy-health-fill{animation:baron-health-return .6s 1.95s both}.baronRise .trait-emblem{animation:baron-name-appear .4s 3.25s both}.baronRise .rune-board-controls>.guess-board{animation:baron-board-appear .65s 3.05s both}
/* Gilded medal and dark heraldic ribbon: the rainbow heading belongs inside. */
body #achievement-toast,body:has(.stage-combat) #achievement-toast,body:not(:has(.stage-combat)) #achievement-toast{width:178px;min-width:178px;max-width:178px;height:62px;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;padding:0;transform:translateX(-18px);transition:opacity .25s,transform .3s;isolation:isolate}
body #achievement-toast.show,body:has(.stage-combat) #achievement-toast.show{transform:translateX(0)}
body #achievement-toast .notice-dismiss{height:62px;min-height:62px;padding:7px 12px 7px 4px;gap:7px;position:relative;background:linear-gradient(100deg,#303526f5,#1c2b23f5 70%,#17251eea);border-top:1px solid #b99b5e;border-bottom:1px solid #81673f;box-shadow:0 3px 12px #0006,inset 0 2px #0b1916,inset 0 -2px #0b1916;clip-path:polygon(0 0,100% 0,calc(100% - 6px) 50%,100% 100%,0 100%)}
body #achievement-toast .notice-dismiss:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#fff3bd40 46%,transparent 57%);transform:translateX(-120%);pointer-events:none}
body #achievement-toast.show .notice-dismiss:after{animation:feat-sheen96 .8s .35s both}
body #achievement-toast .notice-seal{width:36px;height:40px;min-width:36px;display:grid;place-items:center;background:radial-gradient(ellipse,#a88b52,#344333 65%);border:1px solid #baa16b;box-shadow:inset 0 0 0 2px #263726,0 0 9px #dfc37d33;clip-path:polygon(15% 0,85% 0,100% 15%,100% 75%,50% 100%,0 75%,0 15%)}
body #achievement-toast .notice-seal canvas{width:31px;height:31px;min-width:31px;image-rendering:pixelated}
body #achievement-toast .notice-copy{gap:3px;overflow:visible}
body #achievement-toast .notice-feat-banner{position:static;inset:auto;display:block;font:12px/1 'Knightle Herald',Georgia;letter-spacing:1.3px;transform:none;white-space:nowrap;background:linear-gradient(90deg,#ffb29b,#f4d77c,#a9df8f,#8cdce7,#a5b7fb,#daa3e7,#f2a3c2);background-size:100% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;text-shadow:none;animation:feat-spectrum96 3s linear infinite}
body #achievement-toast strong{font:11px/1.15 'Knightle Herald',Georgia;letter-spacing:.3px;color:#f2e0b7;display:block;overflow:visible;overflow-wrap:normal}
body #achievement-toast small{font:6px/1.1 'Knightle Quill',Georgia;letter-spacing:.5px;color:#b6aa84}
body #achievement-toast .notice-close{position:absolute;right:6px;top:2px;font:10px Georgia;color:#a19370}
.notice-rays{position:absolute;left:21px;top:30px;width:1px;height:1px;z-index:-1;pointer-events:none}.notice-rays i{position:absolute;left:0;top:0;width:2px;height:2px;background:#e7d197;opacity:0;transform:rotate(calc(var(--ray)*45deg))}
#achievement-toast.show .notice-rays i{animation:feat-ray96 .8s .08s both}
#achievement-toast.show .notice-seal{animation:feat-medal96 .6s cubic-bezier(.2,.8,.3,1) both}
@keyframes feat-ray96{0%{opacity:0;transform:rotate(calc(var(--ray)*45deg)) translateX(12px) scaleX(1)}20%{opacity:.9}100%{opacity:0;transform:rotate(calc(var(--ray)*45deg)) translateX(48px) scaleX(4)}}
@keyframes feat-medal96{0%{transform:scale(.65);filter:brightness(1.6)}50%{transform:scale(1.14)}100%{transform:scale(1);filter:none}}
@keyframes feat-sheen96{to{transform:translateX(120%)}}@keyframes feat-spectrum96{0%,100%{filter:brightness(1) hue-rotate(0deg)}50%{filter:brightness(1.2) hue-rotate(35deg)}}
@media(orientation:landscape) and (max-height:560px){
 .icebreak-focus .focus-rune.iceblock-stage{width:112px;height:100px}.icebreak-focus .strike-gauge{margin-top:4px}.icebreak-focus .timing-copy{margin:10px 0}.icebreak-focus .timing-controls{margin:6px 0}.icebreak-focus .ice-test-controls{position:absolute;bottom:-12px;right:0;margin:0}.icebreak-progress.gauge-values{margin-top:9px}.icebreak-pick{scale:.75;transform-origin:2px 149px}
 .stage-combat .combat.dread-combat.xur-combat .rune-board-controls{width:calc(100% - 46px);margin:0 40px 0 6px}.stage-combat .combat.dread-combat.xur-combat .rune-board-controls>.consumable-belt{left:calc(100% + 5px)}
 body #achievement-toast,body:has(.stage-combat) #achievement-toast,body:not(:has(.stage-combat)) #achievement-toast{width:166px;min-width:166px;max-width:166px}
}
@media(prefers-reduced-motion:reduce){
 .slime-boards.slime-splitting,.vowel-wound i,.iceWarning .frozen-row .tile,.icebreak-focus.ice-hit .icebreak-pick,.icebreak-focus.ice-hit .iceblock,.icebreak-focus[data-cracks='3'] .ice-half,#achievement-toast.show .notice-seal,#achievement-toast.show .notice-dismiss:after{animation-duration:.01ms!important;animation-delay:0s!important}
 .icebreak-chips,.notice-rays{display:none}.iceShatter .frost-shard{animation-duration:.15s}.notice-feat-banner{animation:none!important}
}
