html,body{margin:0;height:100%;background:#1b1925;color:#e9dfc7;font:600 16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}html,body,#app,canvas,img,button{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;overscroll-behavior:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{position:fixed;inset:0;width:100%;overflow:hidden}img,canvas,button,a{-webkit-user-drag:none}:focus:not(:focus-visible){outline:none}#app{height:100dvh}:focus-visible{outline:2px solid #ffd98a;outline-offset:2px}.debug-overlay{position:fixed;top:max(8px,env(safe-area-inset-top));left:8px;z-index:10;max-width:calc(100vw - 16px);padding:8px;background:#000000bf;color:#9fe870;font:16px/1.4 monospace;pointer-events:none;word-break:break-word}.loot-preview{position:relative;width:100%;height:100%;overflow:hidden}.loot-preview canvas{position:absolute;inset:0;width:100%;height:100%}.loot-label{position:absolute;transform:translate(-50%,-50%);font:16px/1.2 Georgia,serif;white-space:nowrap;text-shadow:0 1px 3px #000;pointer-events:none}.debug-intents{position:fixed;left:8px;bottom:max(48px,env(safe-area-inset-bottom));z-index:10;max-width:calc(100vw - 16px);padding:8px;background:#000000bf;color:#ffd98a;font:16px/1.4 monospace;pointer-events:none}.stroke-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:5;pointer-events:none}[data-reduced-motion=true] *,[data-reduced-motion=true] *:before,[data-reduced-motion=true] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.fatal-screen{box-sizing:border-box;position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));background:#1b1925;color:#e9dfc7;text-align:center}.fatal-screen__title{margin:0;font-size:28px;letter-spacing:2px;text-transform:uppercase}.fatal-screen__body{margin:0;max-width:28em;font-size:20px;line-height:1.5}.menu-button{box-sizing:border-box;width:100%;min-height:56px;padding:8px 16px;border:2px solid #c9a24b;border-radius:8px;background:#2a2436;color:#e9dfc7;font:20px/1.2 Georgia,serif;cursor:pointer;touch-action:manipulation}.menu-button:active{background:#3a3250}.menu-button:focus-visible,.settings__toggle:focus-visible,.settings__link:focus-visible{outline:3px solid #ffd98a;outline-offset:2px}.menu-button--danger{border-color:#c2362b}.menu-overlay{box-sizing:border-box;position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));overflow-y:auto;background:#0e0c14f0;color:#e9dfc7;text-align:center}.menu-overlay>*{width:min(100%,320px)}.menu-title{margin:0;font:700 32px/1.1 Georgia,serif;letter-spacing:2px;text-transform:uppercase;text-wrap:balance}.vein__marks{position:absolute;inset:11px 2px 5px;pointer-events:none}.vein__line,.vein__notch{position:absolute;left:-3px;right:-3px;height:2px;background:#ffffff73}.vein__line{height:3px;background:#ffbe46e6;box-shadow:0 0 4px #ffaa28e6}.vein--empower .vein__line{background:#ffdc78;box-shadow:0 0 8px #ffbe3c}.vein__missing{position:absolute;left:0;right:0;background:#ff281ee6;opacity:0}.vein__missing--on{animation:vein-missing .4s linear}.vein--shake{animation:vein-shake .4s linear}@keyframes vein-missing{0%,60%{opacity:1}to{opacity:0}}@keyframes vein-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}:root{-webkit-text-size-adjust:100%;text-size-adjust:100%;--bone-dark: #141215;--bone-edge: #2a262e;--ivory: #f2ead8;--ivory-dim: rgba(242, 234, 216, .5);--page: #e8dcc3;--ink: #1c1a1f;--health: #d8392e;--fury: #3ec4ba;--leech: #8a5cc8;--gold: #d9b25a;--ease: cubic-bezier(.2, .8, .2, 1)}.arena-bars,.arena-pause{display:none}.frame .slot:not(.slot--filled,.slot--target,.slot--over){background:none}canvas,.chrome{transition:filter .6s ease-out}.arena--dead canvas,.arena--dead .chrome{filter:saturate(.3) brightness(.8);transition-duration:1s}@media(prefers-reduced-motion:reduce){canvas,.chrome{transition:none}}.chrome{position:fixed;inset:0;z-index:8;overflow:hidden;pointer-events:none;color:var(--ivory);font:600 16px/1.2 -apple-system,SF Pro Text,Helvetica Neue,Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.chrome__bone{position:absolute;box-sizing:border-box;background:url(/ui/rail-tex.webp) 0 0 / 128px 128px repeat var(--bone-dark);pointer-events:auto;touch-action:none}.chrome__bone--left{background-image:linear-gradient(90deg,#ffeecd1f,#ffeecd00 7%,#0000 55%,#00000080),url(/ui/rail-tex.webp);box-shadow:inset -1px 0 0 var(--bone-edge),inset -4px 0 6px -2px #000000b3}.chrome__bone--right{background-image:linear-gradient(270deg,#ffeecd1f,#ffeecd00 7%,#0000 55%,#00000080),url(/ui/rail-tex.webp);box-shadow:inset 1px 0 0 var(--bone-edge),inset 4px 0 6px -2px #000000b3}.chrome__bone--cornice{background-image:linear-gradient(180deg,#ffeecd1a,#ffeecd00 8%,#0000 60%,#00000073),url(/ui/rail-tex.webp);box-shadow:inset 0 -1px 0 var(--bone-edge),inset 0 -4px 6px -2px #000000b3}.chrome__bone--bottom{background-image:linear-gradient(0deg,#ffeecd1a,#ffeecd00 8%,#0000 60%,#00000073),url(/ui/rail-tex.webp);box-shadow:inset 0 1px 0 var(--bone-edge),inset 0 4px 6px -2px #000000b3}.lip{position:absolute}.lip:before,.lip:after,.lip__run--bottom:before,.lip__run--bottom:after{content:"";position:absolute;width:24px;height:24px;background:url(/ui/corner.webp) center / 24px 24px no-repeat;pointer-events:none}.lip:before{left:-3px;top:-3px}.lip:after{right:-3px;top:-3px;transform:scaleX(-1)}.lip__run--bottom:before{left:-3px;bottom:-3px;transform:scaleY(-1)}.lip__run--bottom:after{right:-3px;bottom:-3px;transform:scale(-1)}.lip__run{position:absolute;background:url(/ui/lip-h.webp) 0 0 / 48px 4px repeat-x;filter:brightness(1.7) saturate(1.15) drop-shadow(0 0 1px rgba(0,0,0,.9))}.lip__run--left,.lip__run--right{background:url(/ui/lip-v.webp) 0 0 / 4px 48px repeat-y}.socket{position:absolute;box-sizing:border-box;border:11px solid transparent;border-image:url(/ui/socket.webp) 24 fill / 11px stretch;filter:brightness(1.3) contrast(1.05);opacity:.62;box-shadow:inset 0 2px 6px #0000008c}.meter-label{position:absolute;background:center / 100% 100% no-repeat;pointer-events:none}.meter-label--hp{background-image:url(/ui/label-hp.webp)}.meter-label--mp{background-image:url(/ui/label-mp.webp)}.meter-label--xp{background-image:url(/ui/label-xp.webp)}.vein{position:absolute;overflow:visible;pointer-events:none;--glow: rgba(255, 70, 56, .95);--glow-soft: rgba(255, 50, 40, .55)}.vein--fury{--glow: rgba(60, 232, 240, .95);--glow-soft: rgba(30, 200, 220, .55)}.vein--xp{--glow: rgba(255, 224, 90, .75);--glow-soft: rgba(255, 210, 60, .35)}.vein:before{content:"";position:absolute;inset:0;border-style:solid;border-color:transparent;border-width:0;box-sizing:border-box}.vein--health:before,.vein--fury:before{border-width:11px 0 6px;border-image:url(/ui/track-v.webp) 22 0 12 0 fill / 11px 0 6px 0 stretch}.vein--xp:before{border-width:0 21px 0 11px;border-image:url(/ui/track-h.webp) 0 26 0 14 fill / 0 21px 0 11px stretch}.vein__lit{position:absolute;inset:11px 2px 5px;filter:drop-shadow(0 0 2px var(--glow)) drop-shadow(0 0 6px var(--glow-soft))}.vein--xp .vein__lit{inset:2px 19px 2px 10px;filter:drop-shadow(0 0 2px var(--glow)) drop-shadow(0 0 5px var(--glow-soft)) brightness(1.12) saturate(.85)}.vein__fill{position:absolute;inset:0;box-sizing:border-box;border-style:solid;border-color:transparent;transition:clip-path .42s var(--ease)}.vein--health .vein__fill{border-width:7px 0;border-image:url(/ui/fill-hp.webp) 14 0 fill / 7px 0 stretch}.vein--fury .vein__fill{border-width:7px 0;border-image:url(/ui/fill-mp.webp) 14 0 fill / 7px 0 stretch}.vein--xp .vein__fill{border-width:0 12px;border-image:url(/ui/fill-xp.webp) 0 14 fill / 0 12px stretch}.vein--low .vein__lit{animation:vein-low .9s ease-in-out infinite}.vein--hit .vein__fill{animation:vein-hit .12s linear}.vein--refused .vein__fill{animation:vein-refused .2s linear}@keyframes vein-low{0%,to{opacity:1;filter:drop-shadow(0 0 3px var(--glow)) drop-shadow(0 0 9px var(--glow-soft)) brightness(1.25)}50%{opacity:.55;filter:drop-shadow(0 0 1px var(--glow)) drop-shadow(0 0 2px var(--glow-soft)) brightness(.8)}}@keyframes vein-hit{0%,to{filter:none}40%{filter:brightness(3) saturate(.2)}}@keyframes vein-refused{0%,to{filter:none}50%{filter:brightness(.35)}}.corner{position:absolute;box-sizing:border-box;display:grid;place-items:center;margin:0;padding:0;border:0;background:transparent;color:var(--ivory);pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent}.corner:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}.glyph{display:block;width:46px;height:46px;background:center / 100% 100% no-repeat;pointer-events:none}.glyph--pause{background-image:url(/ui/medal-pause.webp)}.glyph--play{background-image:url(/ui/medal-play.webp)}.glyph--book{background-image:url(/ui/medal-book.webp)}.glyph--skull{background-image:url(/ui/medal-skull.webp)}.corner--trash[data-open=true] .glyph--skull{background-image:url(/ui/medal-skull-open.webp)}.corner__dot{position:absolute;top:6px;right:2px}.corner__dot[hidden]{display:none}.roundel{position:absolute;box-sizing:border-box;display:grid;place-items:center;border-radius:50%;background:url(/ui/medal-empty.webp) center / 100% 100% no-repeat;pointer-events:none}.roundel__ring{position:absolute;inset:0}.roundel__track,.roundel__xp,.roundel__leech{fill:none}.roundel__track{stroke:#0e0c0a8c}.roundel__xp{stroke:#ffc94a;stroke-linecap:butt;filter:drop-shadow(0 0 2px rgba(255,190,60,.9))}.roundel__leech{stroke:var(--leech)}.roundel__level{position:relative;font-size:26px;font-weight:700;line-height:1;font-family:Georgia,Times New Roman,serif;color:#fff6dc;text-shadow:0 1px 0 #000,0 0 3px #000,0 0 8px rgba(255,200,90,.35)}.roundel__level--wide{font-size:20px}.roundel__burst{position:absolute;inset:0;box-sizing:border-box;background:url(/ui/ring.webp) center / 100% 100% no-repeat;opacity:0}.roundel__burst--on{animation:roundel-burst .6s var(--ease)}@keyframes roundel-burst{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}:root[data-reduced-motion=true] .vein--low .vein__lit{animation:none}:root[data-reduced-motion=true] .roundel__burst--on{animation:roundel-fade .6s linear}@keyframes roundel-fade{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.vein--low .vein__lit{animation:none}}.toast{position:fixed;top:calc(var(--arena-y, 96px) + 10px);left:calc(var(--arena-x, 52px) + var(--arena-w, 286px) / 2);z-index:20;box-sizing:border-box;width:max-content;max-width:calc(var(--arena-w, 286px) - 16px);min-height:30px;margin:0;padding:5px 26px;border:0 solid transparent;border-image:url(/ui/toast.webp) 0 52 0 52 fill / 0 26px 0 26px stretch;background:none;font:600 clamp(16px,4.2vw,20px)/20px Georgia,"Times New Roman",serif;-webkit-text-size-adjust:100%;text-size-adjust:100%;letter-spacing:.01em;color:var(--ivory);text-align:center;text-shadow:0 1px 2px #000;white-space:nowrap;transform:translate(-50%) translateY(var(--toast-lift, 0px));pointer-events:none}.toast[hidden]{display:none}.toast[data-kind=special],.toast[data-kind=discovery]{color:#ffd98a}.callouts .callout{left:clamp(calc(var(--arena-x, 52px) + 84px),var(--cx, 0px),calc(var(--arena-x, 52px) + var(--arena-w, 286px) - 84px));top:clamp(calc(var(--arena-y, 96px) + var(--arena-h, 400px) * .22),var(--cy, 0px),calc(var(--arena-y, 96px) + var(--arena-h, 400px) * .7))}.page-paper{background:url(/ui/page.webp) 0 0 / 256px 256px repeat var(--page);color:var(--ink)}.hero-blind{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:30}.hero-blind[data-style=flash]{background:radial-gradient(ellipse at center,#fff0 45%,#ffffff59)}.hero-blind[data-style=wash]{background:#8080804d;backdrop-filter:grayscale(1)}.hero-blind--on{animation:hero-blind var(--blind-ms, .8s) ease-out}@keyframes hero-blind{0%{opacity:1}to{opacity:0}}.crown-ring{position:fixed;z-index:15;width:64px;height:64px;pointer-events:none;animation:crown-pulse 1.2s ease-in-out infinite}.crown-ring[hidden]{display:none}.crown-ring svg{display:block;width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.crown-ring circle{fill:none;stroke-width:3px}.crown-ring__base{stroke:#f0c76a;opacity:.95;filter:drop-shadow(0 0 3px rgba(240,199,106,.8))}.crown-ring__fill{stroke:#ffe3a0;stroke-width:5px;stroke-linecap:round;filter:drop-shadow(0 0 4px rgba(255,214,120,.9))}.crown-ring[data-holding=true]{animation:none}@keyframes crown-pulse{0%,to{opacity:.65;transform:scale(.94)}50%{opacity:1;transform:scale(1.08)}}@media(prefers-reduced-motion:reduce){.crown-ring{animation:none}}.stash-fall{position:fixed;inset:0;z-index:14;pointer-events:none}.stash-fall__icon{position:absolute;left:0;top:0;width:48px;height:48px;pointer-events:none;will-change:transform,opacity}.book{position:fixed;left:var(--arena-x, 52px);top:var(--arena-y, 96px);width:var(--arena-w, 286px);height:var(--arena-h, 600px);z-index:12;overflow:hidden;pointer-events:auto;touch-action:pan-y;color:var(--ink, #1c1a1f);font:500 18px/1.25 Georgia,Times New Roman,serif;-webkit-text-size-adjust:100%;text-size-adjust:100%}.book[hidden]{display:none}.book__page{position:absolute;inset:0;box-sizing:border-box;display:flex;flex-direction:column;border:1px solid #3a342c;box-shadow:inset 2px 0 3px -1px #3c2c1873}.book[data-state=open] .book__page{animation:book-up .24s var(--ease, ease-out) both}.book[data-state=closed] .book__page{animation:book-down .24s var(--ease, ease-in) both}.book[data-motion=reduced] .book__page{animation:none}@keyframes book-up{0%{transform:translateY(100%)}}@keyframes book-down{to{transform:translateY(100%)}}html[data-book=open] .socket,html[data-book=open] .frame .slot{opacity:.5}.frame[inert] .slot{pointer-events:none}.book__body{flex:1 1 auto;min-height:0;display:flex}.book__pane{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:14px 10px 0}.book__title{margin:0 0 8px;font:600 28px/1.15 Georgia,Times New Roman,serif}.book__count{margin:0 0 8px;font-size:16px;opacity:.8}.book__list,.book__grid{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}.book__row{display:grid;grid-template-columns:66px 1fr auto;align-items:center;column-gap:8px;min-height:44px;font-size:18px}.book__row--locked{white-space:nowrap;font-size:16px;opacity:.75}.book__glyph{display:flex;align-items:center;justify-content:center;height:40px}.book__cost{min-width:28px;text-align:right;font-weight:700;color:#0e5c57;font-variant-numeric:tabular-nums}.book__grid{display:grid;grid-template-columns:repeat(3,1fr);align-content:start;gap:8px 4px}.book__cell{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:80px}.book__icon,.book__socket{width:48px;height:48px;box-sizing:border-box}.book__icon{object-fit:contain}.book__socket{border-radius:6px;background:#1c1a1f1f;box-shadow:inset 0 1px 3px #1c1a1f73}.book__item-name{font-size:16px;line-height:1.15;text-align:center;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.book__colophon{flex:none;margin:0;padding:6px 14px 2px;border-top:1px solid rgba(28,26,31,.18);font-size:16px;line-height:1.2;text-align:center;opacity:.8}.book__tabs{flex:none;display:flex;justify-content:center;gap:16px;padding:0 0 6px}.book__tab{display:grid;place-items:center;width:56px;height:44px;margin:0;padding:0;border:0;border-bottom:2px solid transparent;background:none;opacity:.65;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.book__tab[aria-selected=true]{opacity:1;border-bottom-color:var(--gold, #d9b25a)}.book__tab:focus-visible{outline:2px solid var(--gold, #d9b25a);outline-offset:-3px}.book__switch{display:grid;grid-template-columns:1fr auto auto;align-items:center;column-gap:10px;box-sizing:border-box;width:100%;min-height:48px;margin:0;padding:0 4px;border:0;border-bottom:1px solid rgba(28,26,31,.18);background:none;color:inherit;font:inherit;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.book__switch:focus-visible,.book__link:focus-visible{outline:2px solid #0e5c57;outline-offset:-3px}.book__track{position:relative;width:44px;height:24px;box-sizing:border-box;border:2px solid var(--ink, #1c1a1f);border-radius:12px}.book__knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--ink, #1c1a1f);transition:transform .12s linear}.book__switch[aria-checked=true] .book__track{background:var(--ink, #1c1a1f)}.book__switch[aria-checked=true] .book__knob{background:var(--page, #e8dcc3);transform:translate(20px)}.book__state{min-width:2.2em;font-weight:700;font-size:16px}.book__links{display:flex;gap:8px;padding:8px 0 4px}.book__link{flex:1;display:grid;place-items:center;min-height:44px;border:2px solid var(--ink, #1c1a1f);border-radius:6px;color:inherit;font-size:16px;font-weight:700;text-decoration:underline}.book__build{margin:4px 0 8px;font-size:16px;text-align:center;opacity:.8}.start-glyph{position:absolute;left:50%;bottom:30%;transform:translate(-50%);pointer-events:none;z-index:5;opacity:.55}.start-glyph__svg path{stroke-dasharray:100;stroke-dashoffset:100;animation:start-glyph-trace 1.2s ease-in-out forwards;filter:drop-shadow(0 0 4px rgba(232,194,90,.7))}.start-glyph__dot{animation:start-glyph-dot .6s ease-in-out infinite alternate}@keyframes start-glyph-trace{to{stroke-dashoffset:0}}@keyframes start-glyph-dot{0%{opacity:.4}to{opacity:1}}@media(prefers-reduced-motion:reduce){.start-glyph__svg path{animation:none;stroke-dashoffset:0}}.item-card{box-shadow:0 0 14px var(--tint, transparent)}.item-card__hints{display:flex;flex-wrap:wrap;gap:4px 12px}.item-card__hint{display:inline-flex;align-items:center;gap:4px;font-size:16px;font-weight:700}.item-card__hint svg{width:20px;height:20px}.item-card[data-known=true] .item-card__detail{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.burst{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none}.burst__ring{position:absolute;left:-48px;top:-48px;width:96px;height:96px;box-sizing:border-box;border:5px solid var(--burst, #ffc93a);border-radius:50%;box-shadow:0 0 18px var(--burst, #ffc93a),inset 0 0 14px var(--burst, #ffc93a);animation:burst-ring .9s ease-out forwards}.burst__icon{position:absolute;left:-14px;top:-14px;width:28px;height:28px;color:var(--burst, #ffc93a);filter:drop-shadow(0 0 4px #000);animation:burst-icon .9s ease-out forwards;animation-delay:var(--delay, 0s)}.burst__icon svg{width:28px;height:28px}@keyframes burst-ring{0%{transform:scale(.2);opacity:1}to{transform:scale(1.6);opacity:0}}@keyframes burst-icon{0%{transform:translate(var(--dx, 0)) scale(.4);opacity:1}to{transform:translate(var(--dx, 0),-64px) scale(1.2);opacity:0}}@media(prefers-reduced-motion:reduce){.burst__ring,.burst__icon{animation-duration:.01s}}.frame{position:fixed;inset:0;z-index:9;overflow:hidden;font:600 16px/1.2 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#f3e7c4;pointer-events:none}.slot{position:absolute;box-sizing:border-box;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.slot__face{position:absolute;box-sizing:border-box;transition:opacity .12s}.slot--filled .slot__face{background:radial-gradient(ellipse at 50% 42%,rgba(120,100,84,.55),rgba(60,50,44,.25) 62%,transparent 82%)}.slot--source .slot__face{opacity:.4}.slot--target .slot__face,.slot--selected .slot__face{border:11px solid transparent;border-image:url(/ui/socket-select.webp) 24 fill / 11px stretch}.slot--cursed .slot__face{box-shadow:inset 0 0 14px 4px #8a5cc8d9,0 0 12px 2px #8a5cc899;filter:hue-rotate(-20deg) saturate(.7)}.slot--cursing .slot__face{animation:slot-cursing .7s ease-in-out infinite alternate}@keyframes slot-cursing{0%{box-shadow:inset 0 0 4px 1px #8a5cc84d}to{box-shadow:inset 0 0 18px 6px #be78fff2,0 0 14px 3px #be78ffb3}}.slot--over .slot__face{border:11px solid transparent;border-image:url(/ui/socket-target.webp) 24 fill / 11px stretch}.slot--shake{animation:slot-shake .32s}.slot--pulse{animation:slot-pulse .36s}@keyframes slot-shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@keyframes slot-pulse{0%{transform:scale(1)}45%{transform:scale(1.18);filter:brightness(1.5)}to{transform:scale(1)}}.slot__icon{position:absolute;left:50%;top:50%;width:70%;aspect-ratio:1;height:auto;transform:translate(-50%,-50%);object-fit:contain;filter:drop-shadow(0 2px 2px rgba(0,0,0,.75));pointer-events:none}.slot__icon[hidden]{display:none}.slot__count{position:absolute;right:4px;bottom:3px;font:700 16px/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#fff8e6;text-shadow:0 1px 0 #000,0 0 3px #000,0 0 5px #000;pointer-events:none}.slot__glyphs{position:absolute;left:3px;top:3px;display:flex;gap:1px;pointer-events:none}.slot__glyph svg{display:block;width:18px;height:18px;filter:drop-shadow(0 0 2px #000) drop-shadow(0 0 1px #000)}.slot__pips{position:absolute;left:4px;bottom:4px;display:flex;gap:3px;pointer-events:none}.slot__pips i{display:block;width:10px;height:10px;background:url(/ui/pip.webp) center / 100% 100% no-repeat;border-radius:0}[data-element=fire]{color:#ff7a3a}[data-element=water]{color:#4f9bff}[data-element=earth]{color:#c99a5a}[data-element=wind]{color:#cdf7ff}[data-element=lightning]{color:#ffe23a}[data-element=ice]{color:#9aeaff}[data-element=nature]{color:#5fe070}[data-element=shadow]{color:#b27aff}[data-element=light]{color:#fff6c0}[data-element=poison]{color:#a8e83a}[data-element=arcane]{color:#f05ae8}.item-card{position:absolute;box-sizing:border-box;width:220px;padding:12px 16px;border:0 solid transparent;border-image:url(/ui/panel.webp) 24 fill / 12px stretch;background:none;pointer-events:none}.item-card[hidden]{display:none}.item-card__name{font:700 16px/1.3 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#fff3cf}.item-card__element{display:flex;align-items:center;gap:6px;font-size:16px}.item-card__glyphs svg{display:inline-block;width:18px;height:18px;vertical-align:middle}.item-card__tier,.item-card__detail{font-size:16px;font-weight:500;line-height:1.3}.drag-layer{position:absolute;inset:0;pointer-events:none}.drag-ghost{position:absolute;left:0;top:0;width:67px;height:67px;opacity:.85;filter:drop-shadow(0 4px 6px rgba(0,0,0,.7));pointer-events:none}.drag-ghost[hidden]{display:none}.drag-ghost img{width:100%;height:100%;object-fit:contain}.drop-ring{position:absolute;left:0;top:0;box-sizing:border-box;background:url(/ui/ring.webp) center / 100% 100% no-repeat;pointer-events:none}.drop-ring[hidden]{display:none}.drop-ring--active{filter:brightness(1.5) drop-shadow(0 0 6px rgba(255,233,160,.8))}.pip{position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;box-sizing:border-box;background:url(/ui/medal-empty.webp) center / 100% 100% no-repeat;font:700 16px/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;pointer-events:none}.callouts{position:absolute;inset:0;pointer-events:none}.callout{position:absolute;left:0;top:0;height:30px;padding:0 26px;border:0 solid transparent;border-image:url(/ui/toast.webp) 0 52 0 52 fill / 0 26px 0 26px stretch;font:600 16px/30px Georgia,Times New Roman,serif;color:#ffd98a;text-shadow:0 1px 2px #000;white-space:nowrap;pointer-events:none}@media(prefers-reduced-motion:reduce){.slot--shake,.slot--pulse{animation:none}}.pips{position:absolute;inset:0;pointer-events:none}.pip svg{display:block;width:16px;height:16px}.flights{position:absolute;inset:0;pointer-events:none}.flight{position:absolute;left:0;top:0;width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(255,233,160,.9));pointer-events:none}.slot__dot{position:absolute;top:3px;right:3px;width:9px;height:9px;border-radius:50%;background:#ffc93a;box-shadow:0 0 6px #ffc93a,0 0 0 1px #3a2a08;pointer-events:none}.slot__dot[hidden]{display:none}.item-card[data-side=bottom]{transform:translateY(-100%)}
