/* Three separate columns keep the real price centered and both sale jokes clear. */
.deed-checkout .deed-sale-price .deed-offer-old{grid-column:1;grid-row:1;justify-self:end;align-self:center;margin:0 11px 0 0;max-width:calc(100% - 11px);gap:3px;transform:none}
.deed-checkout .deed-offer-old .deed-was{font:12px/14px Georgia;text-align:center}
.deed-checkout .deed-offer-old .deed-fake-ribbon{padding:2px 4px;font-size:5px;transform:rotate(-7deg);white-space:nowrap}
.deed-checkout .deed-sale-price>.deed-discount{grid-column:3;grid-row:1;align-self:start;justify-self:start;margin:0 0 0 9px;font-size:9px;line-height:11px;padding:3px 4px;white-space:nowrap}

.developer-dialog .dev-unlock-all{margin:0 0 5px;min-height:46px;color:#fff0bf;border-color:#c3a263;background:linear-gradient(#5b4b2f,#302c1f)}
.dev-unlock-caption{display:block;margin:0 0 14px;text-align:center;font:12px/1.4 Georgia;color:#c7bb98}
.feat-purses{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap}
.feat-purses .feat-purse{position:static;margin:7px 0 0}
.feat-purses .feat-ruby-purse{color:#f6c4d6}
.feat-ruby-purse svg{width:20px;height:23px;flex-shrink:0}
.feat-ruby-purse b{min-width:20px}
.feat-inscription .feat-ruby-detail{display:flex;align-items:center;justify-content:center;gap:5px;color:#efb8cd}
.feat-ruby-detail svg{width:15px;height:18px;flex-shrink:0}
.feat-ruby-flight canvas{filter:drop-shadow(0 0 5px #ef8caf);width:24px;height:24px}
.feat-ruby-flight>b{color:#ffe2ef;text-shadow:0 2px #39192a,0 0 9px #e986ad77}
@media(max-width:350px){.deed-checkout .deed-sale-price .deed-offer-old{margin-right:7px;max-width:calc(100% - 7px)}.deed-checkout .deed-sale-price>.deed-discount{margin-left:7px;font-size:8px}.deed-checkout .deed-offer-old .deed-fake-ribbon{font-size:4.5px}}
@media(orientation:landscape) and (max-height:500px){.feat-purses{position:absolute;right:3px;top:0;flex-direction:column;gap:2px;align-items:flex-end}.feat-purses .feat-purse{height:20px;margin:0;font-size:15px}}

/* Read the green rune before its timing event. Contact never translates the
   track or the locked cursor; light and sparks supply the hit's weight. */
.resonance-bloom{animation-duration:1.9s}
.stage-combat .combat .tile.green-rune-reveal{animation:green-face132 .22s cubic-bezier(.2,.8,.25,1) both;animation-delay:var(--reveal-age,0ms);transform-origin:50% 70%}
@keyframes green-face132{0%{opacity:.3;transform:rotateX(65deg) scale(.92);filter:brightness(1.15)}55%{opacity:1;transform:rotateX(0) scale(1.06);filter:brightness(1.45)}100%{opacity:1;transform:none;filter:none}}
.critical-focus.combat-temper.timing-locked .timing-strike{transform:none;translate:none;scale:1;filter:none;background:linear-gradient(#626c3b,#283c27);border-color:#d7e6ac;box-shadow:inset 0 2px #f6f2ba88,inset 0 -5px #142219,0 0 22px #a8d46a38}
.critical-focus.combat-temper.timing-locked.grade-perfect .timing-strike{color:#fffbd1;border-color:#ecf4b2;background:linear-gradient(#7a853f,#314b2c)}
.combat-temper .strike-stop-impact{z-index:7}
.combat-temper .strike-stop-impact:before{left:-14px;top:-14px;width:28px;height:28px;border-color:#f6f6c3;border-width:2px;box-shadow:0 0 14px #d9ef8277;animation:temper-contact-ring132 .32s ease-out both}
.combat-temper .strike-stop-impact:after{content:'';position:absolute;left:-2px;top:-34px;width:4px;height:68px;background:#ffffdf;box-shadow:0 0 9px #f6efb9,0 0 20px var(--lock-glow,#e6bf64);transform-origin:center;animation:temper-contact-cut132 .24s ease-out both}
.combat-temper .strike-stop-impact>i{width:4px;height:3px;background:#ffefaa;box-shadow:0 0 4px currentColor;animation-duration:.36s}
.combat-temper.grade-perfect .strike-stop-impact>i{background:#d8ffa6;color:#bdff73}
.critical-focus.combat-temper.timing-locked .gauge-zones:after{background:#fff2b5;animation:temper-contact-fill132 .24s ease-out both}
.critical-focus.combat-temper.timing-locked.grade-perfect .gauge-zones:after{background:#e3ffc0}
@keyframes temper-contact-ring132{0%{opacity:1;transform:rotate(45deg) scale(.35)}25%{opacity:1;transform:rotate(45deg) scale(1)}100%{opacity:0;transform:rotate(45deg) scale(2.1)}}
@keyframes temper-contact-cut132{0%{opacity:1;transform:scaleY(.4)}18%{opacity:1;transform:scaleY(1.12)}100%{opacity:0;transform:scaleY(.75)}}
@keyframes temper-contact-fill132{0%{opacity:.9}26%{opacity:.4}100%{opacity:0}}
.execution-tally .execution-number{z-index:4;font-size:31px;text-shadow:0 2px #101a15,1px 0 #101a15,-1px 0 #101a15,0 0 10px currentColor}

/* One connected strip of pixel ooze, with wet highlights and slow drips.
   No orbiting or swelling collars around the board. */
.slime-pixel-ooze .slime-ooze-body{animation:slime-surface132 4.8s ease-in-out infinite}
.slime-pixel-ooze .slime-ooze-body>path:nth-child(4){opacity:.8;animation:slime-sheen132 3.6s ease-in-out infinite}
.slime-pixel-ooze .slime-falling-drop{width:5px;height:9px;box-shadow:inset 1px 2px #91ced6,inset -1px -1px #204b67;clip-path:polygon(1px 0,4px 0,4px 3px,5px 3px,5px 7px,4px 7px,4px 9px,1px 9px,1px 7px,0 7px,0 3px,1px 3px)}
@keyframes slime-surface132{0%,100%{transform:scaleX(1) translateY(0)}50%{transform:scaleX(1.045) translateY(1px)}}
@keyframes slime-sheen132{0%,100%{opacity:.65}50%{opacity:.9}}

/* The cropped pick's tip is 1% across, 68.5% down. Pin that point to the
   crack at every viewport size. A bounded swing replaces the warped exit. */
.icebreak-focus .icebreak-pick{width:102%;height:auto;aspect-ratio:1113 / 1128;left:43%;top:53%;translate:-1% -68.5%;scale:1;transform-origin:91% 92%;filter:drop-shadow(2px 3px 1px #06121d99)}
.icebreak-focus.ice-hit .icebreak-pick{animation:pick-contact132 .57s linear both}
@keyframes pick-contact132{
 0%{opacity:0;transform:translate(9%,-9%) rotate(23deg);filter:drop-shadow(-7px 12px 4px #06121d66)}
 10%{opacity:1;transform:translate(7%,-8%) rotate(21deg);animation-timing-function:cubic-bezier(.66,.02,.92,.4)}
 29.8%{opacity:1;transform:translate(0,0) rotate(0);filter:drop-shadow(1px 2px 1px #06121dcc)}
 35%{opacity:1;transform:translate(-1px,1px) rotate(-.7deg)}
 48%{opacity:1;transform:translate(0,0) rotate(0)}
 68%{opacity:1;transform:translate(2%,-3%) rotate(5deg);filter:drop-shadow(2px 5px 2px #06121d88)}
 100%{opacity:0;transform:translate(5%,-9%) rotate(11deg);filter:drop-shadow(3px 8px 3px #06121d44)}
}
.icebreak-focus.ice-hit .iceblock{animation:ice-seat132 .57s linear both}
@keyframes ice-seat132{0%,29%,100%{transform:none;filter:none}31%{transform:translate(-2px,3px);filter:brightness(1.55)}39%{transform:translate(1px,-1px);filter:brightness(1.12)}51%{transform:none;filter:none}}
.icebreak-focus .iceblock-stage:after{display:block}
.icebreak-focus.ice-hit .icebreak-chips i{animation-delay:.17s}

/* The actual selected medallion leaves its card and settles in open light. */
.blessing-acquiring{overflow:hidden;pointer-events:none}
.blessing-acquisition{position:fixed;inset:0 0 var(--ad-space,0px);z-index:1002;overflow:hidden;isolation:isolate;pointer-events:auto;outline:0}
.acquisition-shade{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 44%,#11211b55,#06100dd9 72%);animation:acquisition-shade132 .4s ease-out both}
.acquisition-icon{position:absolute;left:50%;top:44%;width:clamp(112px,32vw,152px);aspect-ratio:1;transform:translate(-50%,-50%);z-index:3;will-change:transform}
.acquisition-icon .blessing-art{width:100%;height:100%;filter:drop-shadow(0 7px 6px #0008) drop-shadow(0 0 12px #ecf4ba55)}
.acquisition-glory{position:absolute;left:50%;top:44%;width:min(430px,100vw);aspect-ratio:1;transform:translate(-50%,-50%);opacity:0;pointer-events:none}
.acquisition-rays{position:absolute;inset:-12%;background:repeating-conic-gradient(from 12deg,#ffb5ce77 0deg,transparent 9deg 23deg,#ffe8a688 31deg,transparent 40deg 54deg,#b0fbd477 62deg,transparent 71deg 84deg,#c1c9ff88 92deg,transparent 101deg 114deg);mask-image:radial-gradient(circle,#0004 8%,#000 24%,transparent 67%);border-radius:50%}
.acquisition-halo{position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,#ffedbd77 0%,#dec4f433 30%,transparent 67%)}
.acquisition-glory>b{position:absolute;left:50%;top:50%;font:18px Georgia;color:hsl(calc(var(--ray)*30) 90% 80%);text-shadow:0 0 8px currentColor;opacity:0}
.acquisition-copy{position:absolute;top:calc(44% + 92px);left:15px;right:15px;z-index:4;display:flex;align-items:center;flex-direction:column;gap:12px;text-align:center;opacity:0;color:#fff1bc;text-shadow:0 2px 2px #06100e,0 0 16px #d3deb055}
.acquisition-copy>small{font:700 clamp(23px,7vw,34px)/1.1 'Knightle Herald',Georgia;letter-spacing:2px}
.acquisition-copy>strong{font:clamp(15px,4.2vw,21px)/1.3 'Knightle Quill',Georgia;max-width:440px;color:#f8eacb}
.acquisition-landed .acquisition-glory{animation:acquisition-glory132 1.2s ease-out both}
.acquisition-landed .acquisition-rays{animation:acquisition-rays132 2.2s linear both}
.acquisition-landed .acquisition-glory>b{animation:acquisition-star132 .95s calc(var(--ray)*12ms) ease-out both}
.acquisition-landed .acquisition-copy{animation:acquisition-copy132 .32s ease-out both}
.acquisition-landed .acquisition-copy>small{animation:acquisition-spectrum132 1.6s linear infinite}
@keyframes acquisition-shade132{from{opacity:0}to{opacity:1}}
@keyframes acquisition-glory132{0%{opacity:0;scale:.55}15%{opacity:.95;scale:1.04}35%,100%{opacity:.78;scale:1}}
@keyframes acquisition-rays132{from{transform:rotate(-20deg);filter:hue-rotate(0deg)}to{transform:rotate(28deg);filter:hue-rotate(140deg)}}
@keyframes acquisition-star132{0%{opacity:0;transform:rotate(calc(var(--ray)*30deg)) translateY(-50px) scale(.2)}20%{opacity:1}100%{opacity:0;transform:rotate(calc(var(--ray)*30deg)) translateY(-160px) scale(.7)}}
@keyframes acquisition-copy132{from{opacity:0;transform:translateY(10px) scale(.9)}to{opacity:1;transform:none}}
@keyframes acquisition-spectrum132{0%,100%{color:#ffdc8b}25%{color:#c4ffa9}50%{color:#a2e8ff}75%{color:#e7b8ff}}
@media(orientation:landscape) and (max-height:500px){.acquisition-icon{width:104px;top:39%}.acquisition-glory{width:290px;top:39%}.acquisition-copy{top:calc(39% + 66px);gap:7px}.acquisition-copy>small{font-size:26px}.acquisition-copy>strong{font-size:15px}}
@media(prefers-reduced-motion:reduce){
 .stage-combat .combat .tile.green-rune-reveal{animation:none}
 .slime-pixel-ooze .slime-ooze-body,.slime-pixel-ooze .slime-ooze-body>path:nth-child(4){animation:none}
 .icebreak-focus.ice-hit .icebreak-pick{animation:none;opacity:0}
 .combat-temper .strike-stop-impact{display:none}
 .critical-focus.combat-temper.timing-locked .gauge-zones:after{animation:none;opacity:.18}
 .acquisition-landed .acquisition-glory{animation:none;opacity:.5}
 .acquisition-landed .acquisition-rays{animation:none}
 .acquisition-landed .acquisition-glory>b{display:none}
 .acquisition-landed .acquisition-copy{animation:none;opacity:1}
 .acquisition-landed .acquisition-copy>small{animation:none;color:#f5de9f}
}
