/* CSS item art — see item-art.jsx. Everything is in em: 1em = the item's size. */
.ia{position:relative;display:inline-block;width:1em;height:1em;flex:none;vertical-align:middle;pointer-events:none;
  filter:drop-shadow(0 .05em .06em rgba(0,0,0,.4))}
.ia i,.ia b{position:absolute;display:block;font-style:normal}
.ia-still,.ia-still *{animation:none!important}

/* ---------- potions */
.ia-k-potion{filter:drop-shadow(0 .05em .06em rgba(0,0,0,.4)) drop-shadow(0 0 .07em color-mix(in srgb,var(--liq) 55%,transparent))}
.ia-cork,.ia-neck,.ia-body{left:50%;transform:translateX(-50%)}
.ia-cork{width:.24em;height:.12em;border-radius:.03em .03em .04em .04em;background:linear-gradient(90deg,#8a5a2e,#d4a067 45%,#9a6634);box-shadow:inset 0 -.02em 0 rgba(0,0,0,.25);z-index:2}
.ia-neck{width:.18em;height:.16em;background:linear-gradient(90deg,rgba(255,255,255,.15),rgba(255,255,255,.45) 40%,rgba(255,255,255,.12));border-left:.015em solid rgba(255,255,255,.5);border-right:.015em solid rgba(255,255,255,.3)}
.ia-body{overflow:hidden;background:rgba(255,255,255,.13);box-shadow:inset 0 0 0 .022em rgba(255,255,255,.5),inset 0 -.04em .06em rgba(0,0,0,.25)}
.ia-liquid{left:-25%;right:-25%;bottom:0;height:calc(var(--fill) * 100%);background:linear-gradient(var(--liq),var(--deep));transform-origin:50% 100%;animation:ia-slosh 3.4s ease-in-out infinite}
.ia-wave{left:0;top:-.045em;width:200%;height:.05em;background:radial-gradient(circle at 50% 100%,var(--liq) 68%,transparent 72%) 0 0/.16em .05em repeat-x;animation:ia-wave 1.8s linear infinite}
.ia-liquid::after{content:"";position:absolute;inset:0 0 auto;height:.03em;background:rgba(255,255,255,.45)}
.ia-bubbles{inset:0}
.ia-bubbles b{bottom:.02em;width:.05em;height:.05em;border-radius:50%;background:rgba(255,255,255,.7);opacity:0;animation:ia-bubble 2.6s ease-in infinite}
.ia-bubbles b:nth-child(1){left:30%}.ia-bubbles b:nth-child(2){left:58%;animation-delay:.7s;width:.035em;height:.035em}
.ia-bubbles b:nth-child(3){left:44%;animation-delay:1.4s}.ia-bubbles b:nth-child(4){left:68%;animation-delay:2s;width:.04em;height:.04em}
.ia-shine{left:16%;top:16%;width:.07em;height:.22em;border-radius:1em;background:rgba(255,255,255,.65);transform:rotate(18deg);z-index:1}
.ia-mark{position:absolute;inset:0;display:grid;place-items:center;padding-top:22%;font:800 .24em/1 Georgia,"Times New Roman",serif;color:rgba(255,255,255,.95);text-shadow:0 .06em 0 var(--deep),0 0 .3em var(--deep);z-index:1}

.ia-round .ia-body{bottom:.04em;width:.66em;height:.66em;border-radius:50%}
.ia-round .ia-neck{bottom:.68em}.ia-round .ia-cork{bottom:.82em}
.ia-vial .ia-body{bottom:.04em;width:.36em;height:.66em;border-radius:.06em .06em .18em .18em}
.ia-vial .ia-neck{bottom:.69em;width:.26em;height:.08em}.ia-vial .ia-cork{bottom:.76em;width:.3em;height:.14em}
.ia-vial .ia-mark{font-size:.3em}
.ia-flask .ia-body{bottom:.04em;width:.7em;height:.6em;border-radius:.08em;clip-path:polygon(34% 0,66% 0,100% 86%,95% 100%,5% 100%,0 86%)}
.ia-flask .ia-neck{bottom:.63em;height:.17em}.ia-flask .ia-cork{bottom:.79em}
.ia-diamond .ia-body{bottom:.03em;width:.7em;height:.66em;clip-path:polygon(50% 0,100% 45%,50% 100%,0 45%)}
.ia-diamond .ia-neck{bottom:.64em;height:.14em}.ia-diamond .ia-cork{bottom:.77em}
.ia-diamond .ia-mark{padding-top:10%}
.ia-bottle .ia-body{bottom:.04em;width:.54em;height:.6em;border-radius:.2em .2em .09em .09em}
.ia-bottle .ia-neck{bottom:.63em;height:.15em}.ia-bottle .ia-cork{bottom:.77em}
.ia-hex .ia-body{bottom:.04em;width:.62em;height:.62em;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.ia-hex .ia-neck{bottom:.64em;height:.15em}.ia-hex .ia-cork{bottom:.78em}

/* potion fx */
.ia-sparks{inset:0;z-index:3}
.ia-sparks b{width:.13em;height:.13em;background:#fff;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:ia-twinkle 1.8s ease-in-out infinite;filter:drop-shadow(0 0 .03em var(--liq))}
.ia-sparks b:nth-child(1){left:.06em;top:.3em}.ia-sparks b:nth-child(2){right:.04em;top:.16em;animation-delay:.6s;width:.1em;height:.1em}
.ia-sparks b:nth-child(3){right:.1em;bottom:.12em;animation-delay:1.2s;width:.09em;height:.09em}
.fx-rainbow .ia-liquid{background:linear-gradient(#ff6b6b,#ffd24a 30%,#5fe08a 55%,#4aa8ff 78%,#a86bff);animation:ia-slosh 3.4s ease-in-out infinite,ia-hue 4s linear infinite}
.fx-rainbow .ia-wave{background-image:radial-gradient(circle at 50% 100%,#ff6b6b 68%,transparent 72%)}
.fx-swirl .ia-liquid::before{content:"";position:absolute;left:50%;top:50%;width:1em;height:1em;margin:-.5em;background:conic-gradient(transparent,rgba(255,255,255,.35),transparent 30%,rgba(255,255,255,.25) 60%,transparent 80%);border-radius:50%;animation:ia-spin 3s linear infinite}
.fx-void .ia-body{box-shadow:inset 0 0 0 .022em rgba(200,160,255,.6),inset 0 0 .12em #a855f7}
.fx-void .ia-liquid::before{content:"";position:absolute;left:50%;top:45%;width:.5em;height:.5em;margin:-.25em;border-radius:50%;background:conic-gradient(#000,#6d28d9,#000,#c084fc,#000);opacity:.7;animation:ia-spin 2.4s linear infinite}
.fx-void .ia-mark{color:#000;text-shadow:0 0 .12em #c084fc,0 0 .3em #a855f7;animation:ia-pulse 1.6s ease-in-out infinite}
.fx-void{filter:drop-shadow(0 .05em .06em rgba(0,0,0,.4)) drop-shadow(0 0 .1em #a855f7)}
.ia-halo{left:50%;top:-.03em;width:.42em;height:.11em;margin-left:-.21em;border-radius:50%;border:.025em solid #ffe9a0;box-shadow:0 0 .06em #fff3b0,inset 0 0 .04em #fff3b0;animation:ia-halo 2.4s ease-in-out infinite;z-index:3}

/* ---------- soul splitter (dagger) */
.ia-k-knife{transform:rotate(32deg);filter:drop-shadow(0 .05em .06em rgba(0,0,0,.4)) drop-shadow(0 0 .08em #b06bff)}
.ia-blade{left:50%;top:.02em;width:.2em;height:.6em;margin-left:-.1em;overflow:hidden;background:linear-gradient(90deg,#f4f8ff,#b9c6d8 50%,#7d8aa0 51%,#5e6a80);clip-path:polygon(50% 0,100% 26%,100% 100%,0 100%,0 26%)}
.ia-blade::after{content:"";position:absolute;left:50%;top:.1em;bottom:.04em;width:.015em;margin-left:-.007em;background:#c9a0ff;box-shadow:0 0 .04em #b06bff}
.ia-glint{left:-50%;width:200%;height:.12em;background:linear-gradient(transparent,rgba(255,255,255,.95),transparent);transform:rotate(-20deg);animation:ia-glint 2.8s ease-in-out infinite}
.ia-guard{left:50%;top:.61em;width:.4em;height:.07em;margin-left:-.2em;border-radius:.04em;background:linear-gradient(#ffe08a,#c28a14)}
.ia-handle{left:50%;top:.68em;width:.12em;height:.26em;margin-left:-.06em;border-radius:.02em .02em .06em .06em;background:repeating-linear-gradient(-30deg,#4a1f7a 0 .04em,#2a0f4a .04em .07em)}
.ia-handle::after{content:"";position:absolute;left:50%;bottom:-.06em;width:.1em;height:.1em;margin-left:-.05em;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f3d0ff,#a855f7)}

/* ---------- roulette */
.ia-wheel{left:.11em;top:.13em;width:.78em;height:.78em;border-radius:50%;
  background:conic-gradient(#1fa35a 0 30deg,#d8312c 0 60deg,#1e1a24 0 90deg,#d8312c 0 120deg,#1e1a24 0 150deg,#d8312c 0 180deg,#1e1a24 0 210deg,#d8312c 0 240deg,#1e1a24 0 270deg,#d8312c 0 300deg,#1e1a24 0 330deg,#d8312c 0);
  box-shadow:0 0 0 .05em #d9a441,0 0 0 .065em #8a5a14,inset 0 0 0 .1em rgba(0,0,0,.35);animation:ia-spin 7s linear infinite}
.ia-hub{left:50%;top:50%;width:.2em;height:.2em;margin:-.1em;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff3c0,#d9a441 60%,#8a5a14)}
.ia-pin{left:50%;top:.02em;width:.14em;height:.16em;margin-left:-.07em;background:#fff;clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 .02em .02em rgba(0,0,0,.5));z-index:2;animation:ia-tick 7s linear infinite}

/* ---------- slot machine */
.ia-k-slots{filter:drop-shadow(0 .05em .06em rgba(0,0,0,.4)) drop-shadow(0 0 .07em #ff4f8a)}
.ia-cab{left:.05em;top:.24em;width:.76em;height:.62em;border-radius:.12em .12em .07em .07em;background:linear-gradient(#ff6b7d,#d81b60 55%,#7a0f3a);box-shadow:inset 0 0 0 .03em #ffd34a,inset 0 0 0 .045em #a86a08,inset 0 -.06em .06em rgba(0,0,0,.35)}
.ia-cab::before{content:"";position:absolute;left:.16em;right:.16em;top:-.1em;height:.12em;border-radius:.07em .07em .01em .01em;background:linear-gradient(#fff3b0,#ffd34a 45%,#c27a0c);box-shadow:inset 0 -.015em 0 rgba(120,60,0,.4)}
.ia-cab::after{content:"";position:absolute;left:.14em;right:.14em;bottom:.07em;height:.06em;border-radius:.03em;background:#3a0820;box-shadow:inset 0 .015em .02em rgba(0,0,0,.6)}
.ia-reels{left:.08em;right:.08em;top:.13em;height:.27em;border-radius:.04em;background:#2a0718;box-shadow:inset 0 0 0 .015em #ffd34a}
.ia .ia-reel{top:.025em;bottom:.025em;width:.17em;overflow:hidden;border-radius:.02em;background:linear-gradient(#bfc4cc,#fff 35%,#fff 65%,#bfc4cc)}
.ia .ia-reel:nth-child(1){left:.025em}.ia .ia-reel:nth-child(2){left:.215em}.ia .ia-reel:nth-child(3){left:.405em}
.ia .ia-reel span{position:absolute;left:0;right:0;top:0;display:block;animation:ia-reel 3.6s cubic-bezier(.5,0,.3,1) infinite}
.ia .ia-reel:nth-child(2) span{animation-delay:.18s}.ia .ia-reel:nth-child(3) span{animation-delay:.36s}
.ia .ia-reel em{display:block;height:1.29em;font:900 .17em/1.3 system-ui,sans-serif;font-style:normal;text-align:center;color:#c2185b}
.ia-lever{right:.05em;top:.28em;width:.05em;height:.36em;border-radius:.03em;background:linear-gradient(90deg,#7d8aa0,#f4f8ff,#7d8aa0);transform-origin:50% 100%;animation:ia-pull 3.6s ease-in-out infinite}
.ia-lever::before{content:"";position:absolute;left:50%;top:-.07em;width:.12em;height:.12em;margin-left:-.06em;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffd0d8,#ff2d55 55%,#8a0a24)}
.ia-lever::after{content:"";position:absolute;right:.02em;bottom:.02em;width:.1em;height:.06em;border-radius:.02em;background:linear-gradient(#f4f8ff,#7d8aa0)}
@keyframes ia-reel{0%,12%{transform:translateY(0)}70%,100%{transform:translateY(-75%)}}
@keyframes ia-pull{0%,4%,24%,100%{transform:rotate(0)}10%{transform:rotate(28deg) scaleY(.82)}}

/* ---------- minigame ticket */
.ia-ticket{left:.06em;top:.25em;width:.88em;height:.5em;border-radius:.05em;background:linear-gradient(135deg,#ffe08a,#f29a2e);transform:rotate(-14deg);animation:ia-wiggle 3s ease-in-out infinite;
  -webkit-mask:radial-gradient(circle at 0 50%,transparent .07em,#000 .075em) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,transparent .07em,#000 .075em) right/51% 100% no-repeat;
  mask:radial-gradient(circle at 0 50%,transparent .07em,#000 .075em) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,transparent .07em,#000 .075em) right/51% 100% no-repeat}
.ia-ticket::before{content:"";position:absolute;inset:.05em;border:.015em solid rgba(138,58,10,.45);border-radius:.03em}
.ia-ticket span{position:absolute;left:.08em;right:.26em;top:0;bottom:0;display:grid;place-items:center;font:900 .3em/1 system-ui,sans-serif;color:#a0400c;text-shadow:0 .03em 0 #fff6}
.ia-stub{right:.22em;top:.06em;bottom:.06em;border-left:.022em dashed rgba(138,58,10,.6)}

/* ---------- gold coin */
.ia-coin{left:.13em;top:.13em;width:.74em;height:.74em;border-radius:50%;overflow:hidden;animation:ia-flip 4s ease-in-out infinite;
  background:radial-gradient(circle at 35% 30%,#fff6c0,#ffd34a 35%,#d99a12 70%,#a86a08);box-shadow:inset 0 0 0 .04em #b07a10,inset 0 0 0 .065em #ffe58a,inset 0 -.04em .06em rgba(120,60,0,.5)}
.ia-coin::before{content:"";position:absolute;inset:.12em;border-radius:50%;border:.02em solid rgba(140,90,0,.55);box-shadow:inset 0 .02em .03em rgba(120,60,0,.35)}
.ia-coin span{position:absolute;inset:0;display:grid;place-items:center;font:900 .34em/1 Georgia,serif;color:#9a6008;text-shadow:0 .04em 0 #ffe9a0}
.ia-coin .ia-glint{top:-.1em;animation-duration:3.2s}

@keyframes ia-slosh{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@keyframes ia-wave{to{transform:translateX(-50%)}}
@keyframes ia-bubble{0%{opacity:0;transform:translateY(0)}15%{opacity:.9}100%{opacity:0;transform:translateY(-.4em)}}
@keyframes ia-twinkle{0%,100%{transform:scale(.3) rotate(0);opacity:.2}50%{transform:scale(1) rotate(45deg);opacity:1}}
@keyframes ia-hue{to{filter:hue-rotate(360deg)}}
@keyframes ia-spin{to{transform:rotate(360deg)}}
@keyframes ia-pulse{50%{opacity:.6}}
@keyframes ia-halo{50%{transform:translateY(-.03em)}}
@keyframes ia-glint{0%,55%{top:110%}85%,100%{top:-20%}}
@keyframes ia-tick{0%,100%{transform:rotate(0)}8%,40%,72%{transform:rotate(-14deg)}12%,44%,76%{transform:rotate(0)}}
@keyframes ia-wiggle{0%,100%{transform:rotate(-14deg)}50%{transform:rotate(-8deg) translateY(-.02em)}}
@keyframes ia-flip{0%,60%,100%{transform:scaleX(1)}70%{transform:scaleX(.08)}80%{transform:scaleX(1)}}

/* ---------- gravity potion: digits sink into a tiny black hole */
.fx-gravity .ia-liquid{animation:ia-slosh 5s ease-in-out infinite;background:linear-gradient(var(--liq),var(--deep) 70%)}
.ia-fall{inset:0;z-index:1}
.ia-fall b{top:-.2em;font:900 .16em/1 system-ui,sans-serif;color:#d9d2ff;text-shadow:0 0 .3em #8f7bff;animation:ia-fall 2.4s cubic-bezier(.6,0,1,.6) infinite}
.ia-fall b:nth-child(1){left:28%}.ia-fall b:nth-child(2){left:52%;animation-delay:.6s}.ia-fall b:nth-child(3){left:40%;animation-delay:1.2s}.ia-fall b:nth-child(4){left:62%;animation-delay:1.8s}
@keyframes ia-fall{0%{transform:translateY(0) scale(1);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateY(3.4em) scale(.2);opacity:0}}
.ia-hole{left:50%;bottom:.06em;width:.16em;height:.16em;margin-left:-.08em;border-radius:50%;z-index:2;background:radial-gradient(circle,#000 45%,#2a1a70 60%,transparent 72%);box-shadow:0 0 .08em .03em rgba(140,120,255,.8);animation:ia-pulse 1.4s ease-in-out infinite}
.ia-gring{left:.04em;right:.04em;bottom:.2em;height:.2em;border-radius:50%;border:.02em solid rgba(170,150,255,.85);border-top-color:transparent;z-index:3;transform:rotate(-12deg);animation:ia-orbit 2.2s linear infinite;filter:drop-shadow(0 0 .03em #8f7bff)}
.ia-gring.is-b{bottom:.12em;left:.12em;right:.12em;height:.13em;transform:rotate(-12deg);animation-duration:1.5s;animation-direction:reverse;opacity:.6}
@keyframes ia-orbit{0%{border-color:rgba(170,150,255,.85) rgba(170,150,255,.85) rgba(170,150,255,.85) transparent}25%{border-color:transparent rgba(170,150,255,.85) rgba(170,150,255,.85) rgba(170,150,255,.85)}50%{border-color:rgba(170,150,255,.85) transparent rgba(170,150,255,.85) rgba(170,150,255,.85)}75%{border-color:rgba(170,150,255,.85) rgba(170,150,255,.85) transparent rgba(170,150,255,.85)}100%{border-color:rgba(170,150,255,.85) rgba(170,150,255,.85) rgba(170,150,255,.85) transparent}}
.fx-gravity .ia-cork{display:none}
.ia-weight{left:50%;bottom:.8em;width:.3em;height:.17em;margin-left:-.15em;z-index:2;border-radius:.05em .05em .02em .02em;background:linear-gradient(90deg,#3a3550,#a9a3c4 40%,#5a5470);clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);display:grid;place-items:center}
.ia-weight span{font:900 .13em/1 system-ui,sans-serif;color:#1a1530}
.ia-k-potion.fx-gravity{filter:drop-shadow(0 .05em .06em rgba(0,0,0,.4)) drop-shadow(0 0 .09em #6a55ff)}

/* ---------- Hell's Horn */
.ia-k-horn{filter:drop-shadow(0 .04em .05em rgba(0,0,0,.6)) drop-shadow(0 0 .08em #ff3b14);animation:ia-hellglow 2.2s ease-in-out infinite}
@keyframes ia-hellglow{50%{filter:drop-shadow(0 .04em .05em rgba(0,0,0,.6)) drop-shadow(0 0 .16em #ff5a1a)}}
.ia-horn{inset:0;clip-path:polygon(44% 88%,41% 81%,39% 74%,38% 68%,37% 62%,37% 56%,38% 50%,40% 44%,43% 39%,47% 33%,51% 28%,57% 22%,65% 17%,73% 12%,82% 7%,82% 7%,72% 9%,62% 12%,53% 15%,45% 19%,38% 24%,32% 29%,26% 36%,21% 43%,17% 50%,15% 59%,13% 68%,13% 77%,14% 87%,16% 98%);
  background:radial-gradient(ellipse 30% 22% at 30% 80%,rgba(255,120,40,.35),transparent),repeating-linear-gradient(-28deg,transparent 0 .055em,rgba(0,0,0,.35) .055em .07em),linear-gradient(200deg,#ffe2c0 0,#c9b19a 8%,#5a2018 22%,#2a0a0a 45%,#120404 70%,#3a0c06)}
.ia-horn-cracks{inset:0;background:linear-gradient(115deg,transparent 46%,#ff6a1a 47%,#ffd04a 47.6%,transparent 48.5%) 0 0/100% 100%,linear-gradient(70deg,transparent 60%,#ff6a1a 61%,transparent 62.2%),linear-gradient(150deg,transparent 30%,#ff4a10 31%,transparent 32%);mix-blend-mode:screen;animation:ia-lava 1.6s ease-in-out infinite}
@keyframes ia-lava{50%{opacity:.45}}
.ia-horn span{position:absolute;left:21%;top:57%;font:900 .2em/1 Georgia,serif;color:#ffcf5a;transform:rotate(-8deg);text-shadow:0 0 .2em #ff4010,0 0 .5em #ff2000;animation:ia-lava 1.6s ease-in-out infinite reverse}
.ia-cuff{left:.11em;top:.84em;width:.36em;height:.09em;border-radius:.03em;transform:rotate(19deg);background:linear-gradient(#ffe58a,#c28a14 55%,#6a4006);box-shadow:inset 0 0 0 .012em rgba(0,0,0,.35)}
.ia-embers{inset:0}
.ia-embers b{bottom:.15em;width:.045em;height:.045em;border-radius:50%;background:#ffb040;box-shadow:0 0 .05em #ff4a10;opacity:0;animation:ia-ember 2.4s ease-out infinite}
.ia-embers b:nth-child(1){left:30%}.ia-embers b:nth-child(2){left:50%;animation-delay:.6s}.ia-embers b:nth-child(3){left:64%;animation-delay:1.2s}.ia-embers b:nth-child(4){left:40%;animation-delay:1.8s}
@keyframes ia-ember{0%{opacity:0;transform:translate(0,0)}20%{opacity:1}100%{opacity:0;transform:translate(.08em,-.7em)}}

/* ---------- Function Error: a cursed, corrupted window */
.ia-k-error{filter:drop-shadow(.025em 0 0 rgba(255,0,60,.8)) drop-shadow(-.025em 0 0 rgba(0,255,230,.7)) drop-shadow(0 0 .08em rgba(255,0,60,.5));animation:ia-jitter 2.8s steps(1) infinite}
@keyframes ia-jitter{0%,100%{transform:none}8%{transform:translate(.02em,-.01em) skewX(6deg)}9%{transform:translate(-.03em,.01em)}10%{transform:none}55%{transform:translateX(.015em) scaleY(.96)}56%{transform:none}57%{transform:translate(-.02em,0) skewX(-10deg)}58%{transform:none}}
.ia-err{left:.08em;top:.12em;width:.84em;height:.74em;border-radius:.04em;overflow:hidden;background:#0b0307;box-shadow:inset 0 0 0 .025em #ff1f4f,inset 0 0 .12em rgba(255,0,60,.5)}
.ia-err-bar{left:0;right:0;top:0;height:.13em;background:linear-gradient(90deg,#ff1f4f,#7a0020)}
.ia-err-bar b{top:.035em;width:.06em;height:.06em;right:.04em;background:#0b0307;clip-path:polygon(20% 0,50% 30%,80% 0,100% 20%,70% 50%,100% 80%,80% 100%,50% 70%,20% 100%,0 80%,30% 50%,0 20%)}
.ia-err-bar b+b{right:.13em;clip-path:none;height:.02em;top:.055em}
.ia-err-bits{position:absolute;left:-.1em;right:-.1em;top:.16em;font:700 .11em/1.15 ui-monospace,Menlo,monospace;letter-spacing:.06em;color:#ff3b6b;word-break:break-all;opacity:.55;height:5.6em;overflow:hidden}
.ia-err-bits::after{content:attr(data-t) attr(data-t) attr(data-t);color:#5ff;opacity:.5}
.ia-err-tri{position:absolute;left:50%;top:.24em;width:.42em;height:.38em;margin-left:-.21em;display:grid;place-items:end center;padding-bottom:.02em;background:linear-gradient(#ffe14a,#ff9a1a);clip-path:polygon(50% 0,100% 100%,0 100%);font:900 .3em/1 system-ui,sans-serif;color:#1a0005;text-indent:0}
.ia-err-tri{font-size:.28em;width:1.5em;height:1.36em;margin-left:-.75em;top:.86em}
.ia-err-slice{left:0;right:0;top:40%;height:.07em;background:inherit;backdrop-filter:hue-rotate(160deg) invert(1);animation:ia-slice 2.2s steps(1) infinite;mix-blend-mode:difference;background:rgba(0,255,230,.8)}
.ia-err-slice.is-b{top:72%;height:.04em;background:rgba(255,0,60,.9);animation-delay:-1.1s;animation-duration:1.7s}
@keyframes ia-slice{0%,100%{transform:translateX(-110%)}12%{transform:translateX(18%)}14%{transform:translateX(-110%)}60%{transform:translateX(-40%)}61%{transform:translateX(30%)}63%{transform:translateX(-110%)}}
.ia-err-scan{inset:0;background:repeating-linear-gradient(transparent 0 .02em,rgba(0,0,0,.45) .02em .035em);pointer-events:none}

/* ---------- Grinder */
.ia-k-grinder{filter:drop-shadow(0 .05em .06em rgba(0,0,0,.5)) drop-shadow(0 0 .06em #ffb84a)}
.ia-hopper{left:.14em;top:.12em;width:.46em;height:.24em;background:linear-gradient(90deg,#4a505c,#d7dde6 35%,#8a929e 60%,#3a3f48);clip-path:polygon(0 0,100% 0,72% 100%,28% 100%);box-shadow:inset 0 .02em 0 #fff}
.ia-hopper::before{content:"";position:absolute;left:8%;right:8%;top:0;height:.04em;background:#1a1d22;border-radius:50%}
.ia-g-body{left:.17em;top:.34em;width:.42em;height:.36em;border-radius:.1em .14em .08em .08em;background:radial-gradient(circle at 35% 30%,#f0f3f8,#9aa3b0 45%,#4a505c);box-shadow:inset 0 0 0 .018em rgba(0,0,0,.35)}
.ia-g-blade{left:50%;top:50%;width:.2em;height:.2em;margin:-.1em;border-radius:50%;background:conic-gradient(#2a2e36 0 20deg,#c9d0da 0 60deg,#2a2e36 0 80deg,#c9d0da 0 120deg,#2a2e36 0 140deg,#c9d0da 0 180deg,#2a2e36 0 200deg,#c9d0da 0 240deg,#2a2e36 0 260deg,#c9d0da 0 300deg,#2a2e36 0 320deg,#c9d0da 0);box-shadow:0 0 0 .02em #2a2e36;animation:ia-spin 1.2s linear infinite}
.ia-g-spout{left:.55em;top:.42em;width:.24em;height:.17em;border-radius:0 .05em .05em 0;background:linear-gradient(#e2e7ee,#8a929e 60%,#4a505c);box-shadow:inset -.03em 0 0 #2a2e36}
.ia-crank{left:.1em;top:.52em;width:.04em;height:.3em;margin-top:-.3em;transform-origin:50% 100%;background:linear-gradient(90deg,#6a4006,#ffd34a,#6a4006);border-radius:.02em;animation:ia-spin 1.2s linear infinite;z-index:2}
.ia-knob{left:50%;top:-.05em;width:.1em;height:.1em;margin-left:-.05em;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ff9a8a,#c0241a 60%,#5a0a06)}
.ia-crank::after{content:"";position:absolute;left:50%;bottom:-.04em;width:.08em;height:.08em;margin-left:-.04em;border-radius:50%;background:#ffd34a;box-shadow:0 0 0 .015em #6a4006}
.ia-clamp{left:.25em;top:.7em;width:.26em;height:.2em;background:linear-gradient(90deg,#3a3f48,#8a929e 50%,#3a3f48);clip-path:polygon(30% 0,70% 0,70% 55%,100% 55%,100% 100%,0 100%,0 55%,30% 55%)}
.ia-g-in{inset:0}
.ia-g-in b{left:.3em;top:-.05em;font:900 .17em/1 system-ui,sans-serif;color:#ffd34a;text-shadow:0 0 .2em #ff8a1a;opacity:0;animation:ia-feed 2.4s ease-in infinite}
.ia-g-in b+b{left:.38em;animation-delay:1.2s;color:#8fe0ff;text-shadow:0 0 .2em #2a9aff}
@keyframes ia-feed{0%{opacity:0;transform:translateY(0) rotate(0)}20%{opacity:1}70%{opacity:1;transform:translateY(1.4em) rotate(40deg) scale(.7)}80%,100%{opacity:0;transform:translateY(1.6em) scale(.3)}}
.ia-g-out b{left:.8em;top:.5em;width:.05em;height:.05em;border-radius:.01em;background:#ffd34a;box-shadow:0 0 .04em #ff8a1a;opacity:0;animation:ia-crumb 1.2s ease-in infinite}
.ia-g-out b:nth-child(2){animation-delay:.3s;background:#8fe0ff;box-shadow:0 0 .04em #2a9aff}.ia-g-out b:nth-child(3){animation-delay:.6s;width:.035em;height:.035em}.ia-g-out b:nth-child(4){animation-delay:.9s;background:#fff}
@keyframes ia-crumb{0%{opacity:0;transform:translate(0,0)}15%{opacity:1}100%{opacity:0;transform:translate(.1em,.4em) rotate(90deg)}}

/* ---------- Edge of Infinity */
.ia-k-infinity{--liq:#e8d8ff;filter:drop-shadow(0 0 .06em #fff) drop-shadow(0 0 .14em #b07aff);animation:ia-inf-breathe 3s ease-in-out infinite}
@keyframes ia-inf-breathe{50%{filter:drop-shadow(0 0 .08em #fff) drop-shadow(0 0 .22em #6af0ff)}}
.ia-loop{top:.27em;left:.05em;width:.47em;height:.47em;border-radius:50%;
  background:conic-gradient(from 0deg,#fff,#ffd76a,#ff7ad9,#b07aff,#6af0ff,#fff);
  -webkit-mask:radial-gradient(closest-side,transparent 56%,#000 60%,#000 96%,transparent 100%);mask:radial-gradient(closest-side,transparent 56%,#000 60%,#000 96%,transparent 100%);animation:ia-spin 3s linear infinite}
.ia-loop.is-r{left:.48em;animation-direction:reverse}
.ia-loop::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.9) 0 .01em,transparent .015em),radial-gradient(circle at 70% 60%,rgba(255,255,255,.8) 0 .008em,transparent .012em)}
.ia-rift{left:.1em;right:.1em;top:.44em;height:.12em;border-radius:50%;background:radial-gradient(closest-side,#fff,rgba(176,122,255,.6) 50%,transparent);filter:blur(.02em);animation:ia-pulse 1.8s ease-in-out infinite}
.ia-inf-core{left:50%;top:50%;width:.16em;height:.16em;margin:-.08em;background:#fff;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);animation:ia-twinkle 2.4s ease-in-out infinite;z-index:2}
.ia-inf-new{left:50%;top:.08em;width:.2em;margin-left:-.1em;text-align:center;font:900 .2em/1 Georgia,serif;color:#fff;text-shadow:0 0 .3em #b07aff,0 0 .6em #6af0ff;font-style:normal;animation:ia-rise 2.4s ease-out infinite}
.ia-inf-new{font-size:.22em;width:1em;margin-left:-.5em;top:.2em}
@keyframes ia-rise{0%{opacity:0;transform:translateY(.6em) scale(.4)}30%{opacity:1}100%{opacity:0;transform:translateY(-.4em) scale(1.2)}}
@media (prefers-reduced-motion:reduce){.ia,.ia *{animation:none!important}}

/* Hand-built two-tone brew, with an arrow circling above the liquid. */
.fx-swap .ia-liquid{background:linear-gradient(110deg,#187be8 0%,#53baff 45%,#fc7182 55%,#cb254d 100%)}
.fx-swap .ia-mark{color:#fff;filter:drop-shadow(0 1px 2px #14305e);animation:swap-brew 2.8s ease-in-out infinite}
@keyframes swap-brew{0%,100%{transform:translateY(0) rotate(-12deg)}50%{transform:translateY(-.035em) rotate(12deg)}}
@media(prefers-reduced-motion:reduce){.fx-swap .ia-mark{animation:none}}
