/* The reward moments (reward-screens.js): a full-screen dialog over the arena or menu, gold rays behind. */
#info-dialog.reward-mode{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden auto;scrollbar-width:none}
#info-dialog.reward-mode::backdrop{background:radial-gradient(ellipse at 50% 32%,#1f4d9ccc,#06102bf2 62%);backdrop-filter:blur(6px)}
#info-dialog.reward-mode>.dialog-close{display:none}
/* The screen fills the dialog so it sits in the middle of tall phones too. */
#info-dialog.reward-mode #dialog-content{min-height:100%;display:flex;flex-direction:column}
#info-dialog.reward-mode::before{content:'';position:fixed;left:50%;top:38%;width:180vmax;height:180vmax;transform:translate(-50%,-50%);background:repeating-conic-gradient(from 0deg,#ffd75a24 0 6deg,transparent 6deg 18deg);-webkit-mask:radial-gradient(circle,#000 0,#000 16%,transparent 50%);mask:radial-gradient(circle,#000 0,#000 16%,transparent 50%);pointer-events:none;animation:rw-spin 40s linear infinite;z-index:-1}
#info-dialog.reward-mode.is-promo::before{background:repeating-conic-gradient(from 0deg,#ff6a6a2a 0 6deg,transparent 6deg 18deg)}
@keyframes rw-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.rw-screen{flex:1;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:min(2vh,14px);text-align:center;font-family:'DM Sans',sans-serif;color:#eef4ff;animation:rw-in .35s ease-out both}
@keyframes rw-in{from{opacity:0;transform:scale(.94)}}
.rw-eyebrow{font:16px 'Lilita One',sans-serif;color:#c5ddff;letter-spacing:.06em;text-shadow:0 2px #021331}
.rw-eyebrow.is-gold{color:#ffe79e}
.rw-big{margin:0;font:clamp(40px,12vw,58px)/1 'Lilita One',sans-serif;color:#ffe89c;-webkit-text-stroke:1.5px #8a4b00;paint-order:stroke fill;text-shadow:0 4px #b06a00,0 7px 10px #0009;animation:rw-slam .45s cubic-bezier(.2,1.6,.4,1) both}
.rw-big.is-cyan{color:#8af3ff;-webkit-text-stroke-color:#05508f;text-shadow:0 4px #087cc7,0 7px 10px #0009}
@keyframes rw-slam{from{transform:scale(2.2);opacity:0}}
.rw-panel{width:min(100%,400px);border:3px solid #ffdc68;border-radius:22px;background:linear-gradient(160deg,#123f86,#0b2350);box-shadow:0 0 0 3px #0c2956,0 12px 30px #000a;padding:14px;display:flex;flex-direction:column;gap:11px;align-items:center}
.rw-chest{width:min(58vw,230px);filter:drop-shadow(0 10px 14px #000a)}
.rw-chips{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.rw-chip{display:flex;align-items:center;gap:6px;padding:6px 11px 6px 7px;border-radius:14px;background:#06183acc;border:2px solid #3f7ac4;font:19px 'Lilita One',sans-serif;color:#fff}
.rw-coin{flex:none}
.rw-chip .rw-coin{width:32px;height:33px}.rw-chip .rw-gem{width:30px;height:30px;object-fit:contain}.rw-chip .tk-art{width:34px;height:24px}
.rw-row{width:100%;display:flex;align-items:center;gap:12px;padding:9px 11px;border-radius:16px;background:#071d43;border:2px solid #ff9a3d;text-align:left}
.rw-row img{width:60px;height:60px;flex:none;object-fit:cover;object-position:50% 55%;border-radius:12px;border:2px solid #ffcf43}
.rw-row b{display:block;font:17px 'Lilita One',sans-serif;color:#ffcf43}.rw-row span{font-size:13px;color:#c7d7f3;line-height:1.3}
.rw-extra{margin:0;font-size:13px;font-weight:700;color:#ffe79e}
/* A chest before it's opened (owner's request, 2026-10-30): just the chest, glowing and giving a little shake now
   and then; what's inside only shows once it opens. */
.rw-panel.is-closed{padding:16px 14px 18px;gap:6px}
.rw-shut{position:relative;isolation:isolate;padding:8px 0}
.rw-shut::before{content:'';position:absolute;inset:-12% -18%;background:radial-gradient(circle,#fff6b088 0,#ffd75a44 30%,transparent 62%);z-index:-1;animation:rw-pulse 2.4s ease-in-out infinite}
.rw-shut .rw-chest{width:min(66vw,260px);transform-origin:50% 85%;animation:rw-tease 2.4s .6s ease-in-out infinite}
.rw-hint{margin:0;font-size:15px;font-weight:800;color:#c5ddff}
@keyframes rw-pulse{50%{transform:scale(1.12);opacity:.7}}
@keyframes rw-tease{0%,62%,100%{transform:none}68%{transform:rotate(-5deg) scale(1.04)}74%{transform:rotate(4deg) scale(1.06)}80%{transform:rotate(-3deg) scale(1.03)}86%{transform:rotate(1deg)}}
.rw-button{width:min(100%,400px);min-height:56px;flex:none;border-radius:18px;font:28px 'Lilita One',sans-serif;display:flex;align-items:center;justify-content:center;gap:10px;color:#fff7d9;border:2px solid #fff1aa;background:linear-gradient(#fff572,#ffdd24 43%,#ffb706 80%,#ff9704);box-shadow:inset 0 2px 0 #fff9c2,inset 0 -4px 0 #e88b0b,0 4px #7b3c0c,0 0 0 3px #a2732d;-webkit-text-stroke:1.6px #9d5207;paint-order:stroke fill}
.rw-button:disabled{filter:grayscale(.8) brightness(.8)}
.rw-button.is-green{border-color:#d8ffd0;background:linear-gradient(180deg,#8cf07d,#3cc451 50%,#249a3a);box-shadow:inset 0 2px 0 #d8ffd0,inset 0 -3px 0 #1c7a30,0 4px 0 #0a3a16;-webkit-text-stroke-color:#0f4a1f}
.rw-button.is-ghost{min-height:44px;font-size:20px;background:none;border:0;box-shadow:none;color:#c5ddff;-webkit-text-stroke:0}
.rw-button .rw-coin{width:30px;height:31px}
.rw-note{margin:-4px 0 0;font-size:13px;font-weight:700;color:#ff8b80}
.rw-burst{position:relative;isolation:isolate}.rw-burst::before{content:'';position:absolute;inset:-30%;background:radial-gradient(circle,#fff6b0 0,#ffd75a88 25%,transparent 60%);z-index:-1;animation:rw-glow 1.2s ease-out both}
.rw-burst .rw-chest{animation:rw-shake .5s ease-in-out both}
@keyframes rw-glow{from{transform:scale(.2);opacity:0}}
@keyframes rw-shake{0%,100%{transform:none}20%{transform:rotate(-6deg) scale(1.05)}40%{transform:rotate(5deg) scale(1.08)}60%{transform:rotate(-3deg) scale(1.04)}}
/* Up to three cards a row; a fourth and fifth (a level's gifts) start a centred second row. */
.rw-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:min(100%,calc(var(--cards) * 132px))}
.rw-cards>.rw-card{flex:0 0 calc((100% - (var(--cards) - 1) * 10px) / var(--cards) - .1px);min-width:0;box-sizing:border-box}
.rw-card{border-radius:18px;padding:12px 6px 10px;background:linear-gradient(180deg,#1c4f9f,#0b2350);border:3px solid #ffdc68;box-shadow:0 8px 18px #0009;display:flex;flex-direction:column;align-items:center;gap:6px;animation:rw-pop .5s .35s both}
.rw-card:nth-child(2){animation-delay:.5s}.rw-card:nth-child(3){animation-delay:.65s}.rw-card:nth-child(4){animation-delay:.8s}.rw-card:nth-child(5){animation-delay:.95s}.rw-card:nth-child(n+6){animation-delay:1.1s}
.rw-card img,.rw-card svg{width:100%;height:70px;object-fit:contain}
.rw-card b{font:26px 'Lilita One',sans-serif;color:#fff;-webkit-text-stroke:1px #05214a;paint-order:stroke fill}
.rw-card small{font:800 10px 'DM Sans',sans-serif;letter-spacing:.08em;color:#ffe79e}
.rw-card.is-ticket{border-color:#c9a2ff;background:linear-gradient(180deg,#7a49e6,#3a1d7a)}
/* A level's gift (picture, ring, trail, title, crown): teal, so it stands apart from the coins and gems. */
.rw-card.is-gift{border-color:#7ff0d0;background:linear-gradient(180deg,#127a72,#073c45);justify-content:space-between}
.rw-card.is-gift small{color:#c9fff0;text-align:center;line-height:1.25}
.rw-face{position:relative;display:block;width:70px;height:70px}.rw-card .rw-face img{position:absolute;inset:0;width:100%;height:100%}
.rw-title-art{height:70px;display:flex;align-items:center;justify-content:center;text-align:center;font:18px/1.05 'Lilita One',sans-serif;color:#ffd75e;-webkit-text-stroke:1px #4a2a00;paint-order:stroke fill;overflow-wrap:anywhere}
/* Two rows of cards: a smaller chest and pictures, so COLLECT stays on screen. shortcut: three or more rows (claiming
   many levels at once) still scroll the dialog to reach COLLECT; shrink further if that turns out to be common. */
.is-open:has(.rw-card:nth-child(4)) .rw-burst .rw-chest{width:120px}
.is-open:has(.rw-card:nth-child(4)) .rw-card :is(img,svg,.rw-title-art){height:48px}.is-open:has(.rw-card:nth-child(4)) .rw-face{width:48px;height:48px}
@keyframes rw-pop{from{transform:translateY(30px) scale(.6);opacity:0}}
.rw-shields{display:flex;align-items:center;justify-content:center;gap:6px}
.rw-shields .rw-old{width:74px;opacity:.55;filter:grayscale(.4);clip-path:polygon(0 0,52% 0,40% 45%,58% 60%,46% 100%,0 100%);animation:rw-crack-l .8s .2s both}
.rw-shields .rw-old.is-right{clip-path:polygon(56% 0,100% 0,100% 100%,50% 100%,62% 60%,44% 45%);margin-left:-80px;animation-name:rw-crack-r}
@keyframes rw-crack-l{from{transform:none;opacity:1;filter:none}to{transform:translate(-4px,4px) rotate(-8deg)}}
@keyframes rw-crack-r{from{transform:none;opacity:1;filter:none}to{transform:translate(8px,10px) rotate(12deg)}}
.rw-shields>span{font:30px 'Lilita One',sans-serif;color:#ffcf43}
.rw-shields .rw-new{width:min(38vw,150px);filter:drop-shadow(0 0 22px #ff5a5a88) drop-shadow(0 8px 10px #000a);animation:rw-slam .5s .5s cubic-bezier(.2,1.6,.4,1) both}
.rw-ribbon{position:relative;width:min(92vw,360px);margin-top:-30px}.rw-ribbon img{width:100%;display:block}
.rw-ribbon b{position:absolute;inset:0;display:grid;place-items:center;padding-bottom:12%;font:clamp(22px,7vw,32px) 'Lilita One',sans-serif;color:#fff;-webkit-text-stroke:1.4px #3a0710;paint-order:stroke fill;letter-spacing:.03em}
.rw-hero{width:min(100%,400px);border-radius:22px;overflow:hidden;border:3px solid #ffdc68;box-shadow:0 0 40px color-mix(in srgb,var(--fighter-color) 60%,transparent),0 12px 30px #000a;position:relative;animation:rw-slam .5s cubic-bezier(.2,1.4,.4,1) both}
.rw-hero img{width:100%;display:block}
.rw-hero span{position:absolute;left:10px;top:10px;padding:4px 10px;border-radius:10px;background:#ff4d5e;font:15px 'Lilita One',sans-serif;border:2px solid #fff}
.rw-name{font:46px/1 'Lilita One',sans-serif;color:var(--fighter-color);-webkit-text-stroke:1.5px #0b1631;paint-order:stroke fill;text-shadow:0 4px #0b1631}
.rw-role{font:800 12px 'DM Sans',sans-serif;letter-spacing:.14em;color:#ffcf43}
.rw-desc{margin:0;font-size:14px;color:#c7d7f3;max-width:340px;line-height:1.4}
@media(max-height:700px){.rw-chest{width:170px}.rw-shut .rw-chest{width:200px}.rw-big{font-size:42px}.rw-hero{width:min(100%,320px)}.rw-card img,.rw-card svg,.rw-title-art{height:52px}.rw-face{width:52px;height:52px}.rw-screen{gap:9px}}
.reduce-motion .rw-screen,.reduce-motion .rw-screen *,.reduce-motion#info-dialog.reward-mode::before{animation:none!important}
/* The fighter level panel's Upgrade ticket half (owner's pick A): coins on the left, the ticket on the right. */
.lv-split{display:grid;grid-template-columns:1.55fr 1fr;gap:8px}
.lv-action.is-ticket{position:relative;justify-content:center;gap:7px;border:2px solid #3a1d7a;background:linear-gradient(180deg,#c9a2ff,#8b55ff 50%,#6634d6);box-shadow:inset 0 2px 0 #eadcff,inset 0 -3px 0 #4a24a8,0 3px 0 #24104f;-webkit-text-stroke:1.4px #2a1260;paint-order:stroke fill}
.tk-art{object-fit:contain}
.lv-action.is-ticket .tk-art{width:34px;height:24px;flex:none;filter:drop-shadow(0 2px 0 #24104f)}
.lv-action.is-ticket .tk-count{position:absolute;top:-9px;right:-6px;min-width:24px;height:24px;padding:0 6px;border-radius:12px;background:#ff4d5e;border:2px solid #fff;font:15px/20px 'Lilita One',sans-serif;font-style:normal;color:#fff;-webkit-text-stroke:0;text-align:center;box-shadow:0 2px 0 #0006}
.lv-action.is-ticket:disabled{border-color:#2b3550;background:linear-gradient(180deg,#9aa3b8,#6b7590 55%,#555e78);box-shadow:inset 0 2px 0 #d6dbe8,0 3px 0 #1a2033;-webkit-text-stroke-color:#2b3550;cursor:default}
.lv-action.is-ticket:disabled .tk-art{filter:grayscale(1) opacity(.7)}
.lv-action.is-ticket:disabled .tk-count{background:#5e6780}
.lv-action.is-ticket:not(:disabled):active{transform:translateY(2px)}
/* A shop fighter above the player's level: grey, with the level it opens at. */
.shop-fighter-card.is-gated .shop-row-art{filter:grayscale(.85) brightness(.75)}
.shop-fighter-card.is-gated .shop-row-text{opacity:.75}
.shop-green-button.is-gated{background:linear-gradient(180deg,#8a93a8,#5e6780)!important;border-color:#2b3550!important;box-shadow:inset 0 2px 0 #c6ccd9,0 3px 0 #1a2033!important;color:#fff!important;opacity:1!important;gap:6px}
/* Trophy Leagues: the claim button, the next Trophy Road step and each league's chest. */
.league-claim{justify-self:center;display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;margin:8px 0 4px;padding:9px 12px;border-radius:16px;font:22px 'Lilita One',sans-serif;color:#fff7d9;border:2px solid #fff1aa;background:linear-gradient(#fff572,#ffdd24 43%,#ffb706 80%,#ff9704);box-shadow:inset 0 2px 0 #fff9c2,inset 0 -4px 0 #e88b0b,0 4px #7b3c0c;-webkit-text-stroke:1.3px #9d5207;paint-order:stroke fill;animation:rw-nudge 1.6s ease-in-out infinite}
.league-claim small{font:800 12px 'DM Sans',sans-serif;color:#6b3a00;-webkit-text-stroke:0}
@keyframes rw-nudge{50%{transform:scale(1.03)}}
/* Champion's Road bubbles: chests and fighters. */
.pf-bubble .rw-chest{width:46px;height:auto;filter:drop-shadow(0 2px 2px #0008)}
.pf-road-fighter{display:block;width:100%;height:100%}.pf-road-fighter .ball-art,.pf-road-fighter svg{width:100%;height:100%}
.reduce-motion .league-claim{animation:none}
/* LEVEL 5! (silver) and MAX LEVEL! (gold) for a fighter. */
#info-dialog.reward-mode.is-silver::before{background:repeating-conic-gradient(from 0deg,#d8e6ff2a 0 6deg,transparent 6deg 18deg)}
.rw-big.is-silver{color:#f4f8ff;-webkit-text-stroke-color:#3c4d6b;text-shadow:0 4px #7f93b4,0 7px 10px #0009}
.lvm-hero{position:relative;width:min(100%,380px);border-radius:22px;padding:5px;margin-bottom:12px;animation:rw-slam .5s cubic-bezier(.2,1.4,.4,1) both}
.lvm-hero.is-silver{background:linear-gradient(135deg,#fff,#9fb2cf 40%,#eef3fb 60%,#7d90ae);box-shadow:0 0 34px #cfe0ffaa,0 12px 30px #000a}
.lvm-hero.is-gold{background:linear-gradient(135deg,#fff3a8,#e7a10f 40%,#ffe58a 60%,#b8730f);box-shadow:0 0 44px #ffc83ddd,0 12px 30px #000a}
.lvm-banner{width:100%;display:block;border-radius:17px}
.lvm-crown{position:absolute;left:50%;top:-30px;width:70px;transform:translateX(-50%) rotate(-6deg);filter:drop-shadow(0 4px 4px #0009)}
.lvm-tag{position:absolute;left:50%;bottom:-16px;transform:translateX(-50%);padding:5px 16px;border-radius:12px;font:400 20px/1 'Lilita One',sans-serif;color:#fff;-webkit-text-stroke:1.4px #0b1631;paint-order:stroke fill;border:2px solid #fff;white-space:nowrap}
.lvm-hero.is-silver .lvm-tag{background:linear-gradient(#c9d6ea,#7d90ae)}
.lvm-hero.is-gold .lvm-tag{background:linear-gradient(#ffd84a,#e08a00);-webkit-text-stroke-color:#5a2a00}
.lvm-move{--mc:#dfe8f7;width:min(100%,380px);display:flex;gap:12px;align-items:center;text-align:left;padding:10px 12px;border-radius:18px;background:linear-gradient(160deg,#123f86,#0b2350);border:3px solid var(--mc);box-shadow:0 0 0 3px #0c2956,0 10px 24px #0009}
.lvm-move.is-gold{--mc:#ffd84a}
.lvm-move img{width:74px;height:74px;border-radius:14px;flex:none;box-shadow:0 0 0 2px var(--mc),0 0 16px var(--mc);animation:rw-slam .5s .25s cubic-bezier(.2,1.6,.4,1) both}
.lvm-move small{font:400 13px 'Lilita One',sans-serif;color:var(--mc);letter-spacing:.06em}
.lvm-move strong{display:block;font:400 22px/1.05 'Lilita One',sans-serif;color:#fff;margin:2px 0}
.lvm-move p{margin:0;font-size:12.5px;color:#c7d7f3;line-height:1.3}
.lvm-power{display:flex;align-items:center;gap:10px;font:400 26px/1 'Lilita One',sans-serif;color:#fff;-webkit-text-stroke:1.6px #3a1400;paint-order:stroke fill;padding:8px 18px 8px 8px;border-radius:999px;background:linear-gradient(180deg,#ff8a3d,#d23a0c);border:3px solid #ffd76a;box-shadow:0 4px 0 #3a1400;animation:rw-slam .45s .45s cubic-bezier(.2,1.6,.4,1) both}
.lvm-power .pw-icon{width:32px;height:32px}
.lvm-power s{font-size:18px;color:#ffd0b0;-webkit-text-stroke:1px #3a1400;text-decoration-thickness:2px}
.lvm-power small{font-size:13px;color:#ffe2b0;-webkit-text-stroke:0;letter-spacing:.06em}
.lvm-gifts{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;width:min(100%,380px)}
.lvm-gift{display:flex;align-items:center;gap:6px;padding:5px 9px 5px 5px;border-radius:14px;background:#0b2350;border:2px solid #ffdc68;font:400 13px/1.1 'Lilita One',sans-serif;color:#fff;text-align:left}
.lvm-gift>i{width:28px;height:28px;border-radius:9px;display:grid;place-items:center}
.lvm-gift>i img{width:26px}
.lvm-gift small{display:block;font:700 10px 'DM Sans',sans-serif;color:#b9cbe8}
.lvm-frame.is-silver{background:linear-gradient(135deg,#fff,#9fb2cf);box-shadow:inset 0 0 0 4px #0b2350}
.lvm-frame.is-gold{background:linear-gradient(135deg,#fff3a8,#e7a10f);box-shadow:inset 0 0 0 4px #0b2350}
@media(max-height:700px){.lvm-hero{width:min(100%,290px)}.lvm-move img{width:58px;height:58px}.lvm-move strong{font-size:19px}.lvm-power{font-size:22px}}
/* A bought fighter's unlock reveal (pick B "card flip", 2026-10-29): the card (.fu-stage) flies in, shakes and glows (0-1.3 s),
   flips with a flash (1.3-1.9 s), then a shine, confetti, the YOURS! tag, the move and the buttons (to 2.8 s). Each
   element's resting style is the end of the reveal, so skipping or turning Animations off shows the finished screen. */
#info-dialog.reward-mode.is-unlock::backdrop{background:radial-gradient(ellipse at 50% 38%,color-mix(in srgb,var(--fighter-color,#2a5bb0) 45%,#0b1f4a),#040a1d 66%)}
#info-dialog.reward-mode.is-unlock::before{background:repeating-conic-gradient(from 0deg,color-mix(in srgb,var(--fighter-color,#ffd75a) 30%,transparent) 0 7deg,transparent 7deg 18deg)}
.rw-screen.is-unlock{gap:10px;animation:none}
.fu-stage{position:relative;width:min(86vw,340px);aspect-ratio:640/470;perspective:900px;animation:fu-card-in .5s cubic-bezier(.2,1.4,.4,1) backwards,fu-card-shake .75s .55s ease-in-out}
.fu-card{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(180deg);animation:fu-flip .6s 1.3s cubic-bezier(.4,0,.2,1.3) backwards}
@keyframes fu-card-in{from{transform:translateY(80vh) rotate(-25deg) scale(.5)}}
@keyframes fu-card-shake{0%,100%{transform:none}15%{transform:rotate(-5deg) scale(1.03)}30%{transform:rotate(5deg) scale(1.05)}45%{transform:rotate(-6deg) scale(1.07)}60%{transform:rotate(6deg) scale(1.09)}80%{transform:rotate(-3deg) scale(1.1)}}
@keyframes fu-flip{from{transform:rotateY(0)}}
.fu-face{position:absolute;inset:0;border-radius:24px;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:4px solid #ffdc68;box-shadow:0 0 0 3px #0c2956,0 16px 30px #000b;overflow:hidden}
.fu-back{display:grid;place-items:center;background:repeating-linear-gradient(45deg,#16397a 0 14px,#123168 14px 28px)}
.fu-back b{font:120px 'Lilita One',sans-serif;color:#ffdc68;-webkit-text-stroke:3px #6b3a00;paint-order:stroke fill;text-shadow:0 6px #6b3a00,0 0 60px #fff,0 0 90px var(--fighter-color);animation:fu-q .75s .55s backwards}
@keyframes fu-q{from{text-shadow:0 6px #6b3a00}60%{text-shadow:0 6px #6b3a00,0 0 40px #fff}}
.fu-back::after{content:'';position:absolute;inset:0;background:radial-gradient(circle,#fff 0,transparent 60%);opacity:.85;animation:fu-glow-up .75s .55s ease-in backwards}
@keyframes fu-glow-up{from{opacity:0}}
.fu-front{transform:rotateY(180deg);background:radial-gradient(circle at 50% 38%,color-mix(in srgb,var(--fighter-color) 75%,#fff) 0,var(--fighter-color) 30%,color-mix(in srgb,var(--fighter-color) 40%,#06102b) 75%);display:flex;flex-direction:column;align-items:center}
/* The banner (640 wide, 293-353 tall) on top; the name and role centred in the space under it. */
.fu-front img{width:100%;height:auto;display:block;margin-bottom:auto}
.fu-front strong{position:relative;font:34px/1.05 'Lilita One',sans-serif;color:#fff;-webkit-text-stroke:1.5px #0b1631;paint-order:stroke fill;text-shadow:0 3px #0b1631}
.fu-front small{position:relative;margin-bottom:auto;font:800 10px 'DM Sans',sans-serif;letter-spacing:.14em;color:#fff;opacity:.9}
.fu-front::after{content:'';position:absolute;top:-20%;bottom:-20%;width:34%;left:130%;background:linear-gradient(100deg,transparent,#ffffffcc,transparent);transform:skewX(-18deg);animation:fu-shine .8s 2s ease-in-out backwards}
@keyframes fu-shine{from{left:-60%}}
.fu-flash{position:fixed;inset:-20px;background:#fff;pointer-events:none;opacity:0;animation:fu-flash .5s 1.55s ease-out}
@keyframes fu-flash{from{opacity:.9}}
.fu-confetti{position:absolute;left:50%;top:50%;pointer-events:none}
.fu-confetti i{position:absolute;width:var(--s);height:calc(var(--s)*.55);border-radius:2px;background:var(--k);opacity:0;animation:fu-confetti 2.2s calc(1.6s + var(--j)) cubic-bezier(.15,.6,.4,1)}
@keyframes fu-confetti{0%{transform:none;opacity:1}35%{transform:translate(calc(var(--x)*1px),calc(var(--y)*1px)) rotate(240deg);opacity:1}100%{transform:translate(calc(var(--x)*1.25px),calc(var(--y)*1px + 70vh)) rotate(720deg);opacity:0}}
.fu-tag{padding:5px 16px;border-radius:12px;background:linear-gradient(180deg,#ff6b78,#e0263d);border:2px solid #fff;font:20px 'Lilita One',sans-serif;color:#fff;letter-spacing:.06em;box-shadow:0 4px 0 #7a0e1e,0 8px 16px #0008;transform:rotate(-4deg);animation:fu-stamp .4s 1.9s cubic-bezier(.2,1.8,.4,1) backwards}
@keyframes fu-stamp{from{transform:scale(3) rotate(-14deg);opacity:0}}
.fu-move{width:min(100%,380px);display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:16px;background:#06183add;border:2px solid color-mix(in srgb,var(--fighter-color) 80%,#fff);text-align:left;animation:fu-up .45s 2.15s cubic-bezier(.2,1.3,.4,1) backwards}
.fu-move img{width:54px;height:54px;border-radius:12px;flex:none;object-fit:cover}
.fu-move small{display:block;font:800 10px 'DM Sans',sans-serif;letter-spacing:.1em;color:#ffe79e}
.fu-move b{display:block;font:20px 'Lilita One',sans-serif;color:#fff}
.fu-move p{margin:0;font-size:12.5px;line-height:1.3;color:#c7d7f3}
.fu-buttons{width:min(100%,380px);display:flex;flex-direction:column;gap:4px;animation:fu-up .45s 2.35s cubic-bezier(.2,1.3,.4,1) backwards}
.rw-screen.is-unlock .rw-eyebrow{animation:fu-up .4s .2s backwards}
@keyframes fu-up{from{transform:translateY(40px);opacity:0}}
/* The buttons only take taps once they're in place (a tap before that skips the reveal). */
.rw-screen.is-unlock:not(.is-done) .fu-buttons{pointer-events:none}
.reduce-motion .fu-confetti{display:none}
@media(max-height:700px){.fu-stage{width:min(80vw,280px)}.fu-back b{font-size:90px}.fu-front strong{font-size:28px}}
