.rewards-window{width:min(1120px,calc(100vw - 40px));max-height:calc(100vh - 40px);padding:0;overflow:auto;background:#f6f8f9}
.rewards-window .rewards-heading{position:sticky;top:0;z-index:3;margin:0;padding:25px 30px 21px;background:#fff;border-bottom:1px solid #e5eaed}
.rewards-window .rewards-heading h2{margin:5px 0 6px;color:#17212a;font-size:28px}
.rewards-window .rewards-heading p{margin:0;color:#87939b;font-size:11px}
.rewards-window .rewards-heading .page-heading-actions{align-items:center}
.rewards-balance{height:46px;padding:0 15px;display:flex;align-items:center;gap:8px;border:1px solid #f2d99b;border-radius:12px;background:#fffaf0;color:#9a6e18}
.rewards-balance svg{width:20px;height:20px;stroke:#d59a23}
.rewards-balance strong{font-size:19px;color:#80580c;font-variant-numeric:tabular-nums}
.rewards-balance span{font-size:10px;color:#aa8746}
.rewards-guest{min-height:450px;padding:85px 30px;display:grid;place-items:center;text-align:center}
.rewards-guest-icon{width:68px;height:68px;margin-bottom:17px;display:grid;place-items:center;border-radius:20px;background:#fff3d8;color:#d59a23}
.rewards-guest-icon svg{width:32px;height:32px}
.rewards-guest strong{font-size:20px;color:#1b252d}
.rewards-guest p{max-width:400px;margin:9px 0 22px;color:#87939b;font-size:11px;line-height:1.7}
.rewards-primary-button{height:42px;padding:0 20px;border:0;border-radius:10px;background:#13b8cf;color:#fff;font-size:11px;font-weight:800;box-shadow:0 7px 16px rgba(19,184,207,.2)}
.rewards-user-state{padding:24px 30px 34px;display:grid;gap:24px}
.rewards-task-section,.rewards-shop-section{padding:22px;border:1px solid #e1e7ea;border-radius:15px;background:#fff;box-shadow:0 2px 10px rgba(24,34,48,.025)}
.rewards-section-header{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:17px}
.rewards-section-header h3{margin:4px 0 4px;color:#1d2931;font-size:20px}
.rewards-section-header p{margin:0;color:#8a969e;font-size:10px}
.rewards-task-summary{padding:8px 11px;border-radius:9px;background:#edf9fb;color:#078da3;font-size:10px;font-weight:800;white-space:nowrap}
.rewards-task-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.reward-task{min-height:162px;padding:15px;display:flex;flex-direction:column;border:1px solid #e5eaed;border-radius:12px;background:#fbfcfc}
.reward-task[data-state=complete]{border-color:#b9e9dc;background:#f8fdfb}
.reward-task-top{display:flex;align-items:start;justify-content:space-between;gap:8px}
.reward-task-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#e8f8fa;color:#079aae;font-size:13px;font-weight:900}
.reward-task[data-state=complete] .reward-task-icon{background:#dff7e9;color:#16975e}
.reward-task-reward{display:flex;align-items:center;gap:3px;color:#ae7a1c;font-size:10px;font-weight:800}
.reward-task-reward svg{width:14px;height:14px;stroke:#d59a23}
.reward-task strong{display:block;margin:13px 0 4px;color:#26323a;font-size:12px}
.reward-task small{min-height:30px;color:#8a969e;font-size:9px;line-height:1.55}
.reward-task-progress{height:5px;margin-top:auto;overflow:hidden;border-radius:999px;background:#e9eef0}
.reward-task-progress i{display:block;height:100%;border-radius:inherit;background:#13b8cf}
.reward-task[data-state=complete] .reward-task-progress i{background:#21aa70}
.reward-task-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:8px;color:#8a969e;font-size:9px}
.reward-task-bottom b{color:#159460;font-weight:800}
.rewards-shop-tabs{display:flex;gap:5px;padding:3px;border:1px solid #e3e9eb;border-radius:9px;background:#f4f7f8}
.rewards-shop-tabs button{height:30px;padding:0 11px;border:0;border-radius:7px;background:transparent;color:#87939b;font-size:10px}
.rewards-shop-tabs button.active{background:#fff;color:#087f91;box-shadow:0 1px 5px rgba(31,55,63,.08);font-weight:800}
.rewards-catalog{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}
.reward-item{min-width:0;display:flex;flex-direction:column;border:1px solid #e2e8ea;border-radius:12px;overflow:hidden;background:#fff}
.reward-item-preview{height:118px;position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#eef4f5,#dbe6e8)}
.reward-item-preview:before{content:"";width:86px;height:32px;border-radius:7px 18px 10px 5px;transform:rotate(-12deg);background:var(--item-color,#344b58);box-shadow:22px 23px 0 -5px color-mix(in srgb,var(--item-color,#344b58) 78%,#101820),-28px 2px 0 -10px #17222a;}
.reward-item-preview:after{content:"";position:absolute;width:40px;height:4px;top:47px;left:calc(50% - 36px);border-radius:4px;background:rgba(255,255,255,.5);box-shadow:0 0 12px var(--item-color,#344b58)}
.reward-item.effect-preview .reward-item-preview{background:#19242b}
.reward-item.effect-preview .reward-item-preview:before{width:122px;height:45px;border:1px solid var(--item-color,#13b8cf);border-radius:9px;background:transparent;box-shadow:0 0 22px color-mix(in srgb,var(--item-color,#13b8cf) 65%,transparent),inset 0 0 18px color-mix(in srgb,var(--item-color,#13b8cf) 18%,transparent);transform:none}
.reward-item.effect-preview .reward-item-preview:after{top:50%;left:calc(50% - 42px);width:84px;background:var(--item-color,#13b8cf);box-shadow:0 0 12px var(--item-color,#13b8cf)}
.reward-item.effect-preview{cursor:pointer}
.leaderboard-effect-preview{margin:0 0 14px;padding:16px;border:1px solid #dfe8ea;border-radius:12px;background:linear-gradient(135deg,#f7fbfc,#eef5f6)}
.leaderboard-effect-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}
.leaderboard-effect-preview-heading strong{display:block;margin-top:3px;color:#1e2d34;font-size:14px}
.leaderboard-effect-preview-heading small{display:block;margin-top:4px;color:#8a969e;font-size:9px}
.leaderboard-effect-preview-heading>b{padding:6px 9px;border:1px solid color-mix(in srgb,var(--preview-color) 42%,#d8e4e6);border-radius:7px;background:color-mix(in srgb,var(--preview-color) 10%,#fff);color:var(--preview-color);font-size:9px;white-space:nowrap}
.leaderboard-preview-board{overflow:hidden;border:1px solid #d6e1e3;border-radius:9px;background:#17252c;box-shadow:0 9px 22px rgba(26,52,62,.13)}
.leaderboard-preview-head,.leaderboard-preview-row{--score-col:86px;display:grid;grid-template-columns:38px 240px minmax(80px,1fr) var(--score-col);align-items:center;gap:8px;min-height:59px;padding:9px 13px}
.leaderboard-preview-head{color:#8ea6ae;font-size:8px;letter-spacing:.8px;background:#20333c}
.leaderboard-preview-row{position:relative;border-top:1px solid rgba(255,255,255,.07);color:#c4d4d9;font-size:9px}
.leaderboard-preview-row>span:first-child{color:#7f99a3;font-variant-numeric:tabular-nums}
.leaderboard-preview-row strong{color:#eaf7f8;font-size:10px}
.leaderboard-preview-row>b{text-align:right;color:#f1fbfc;font-variant-numeric:tabular-nums}
.leaderboard-preview-row.is-you{background:linear-gradient(90deg,color-mix(in srgb,var(--preview-color) 18%,transparent),transparent 72%)}
.leaderboard-preview-row.is-you:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--preview-color);box-shadow:0 0 14px var(--preview-color)}
.leaderboard-preview-row .leaderboard-effect-art{position:absolute;z-index:0;inset:0;pointer-events:none;background-repeat:no-repeat;opacity:.9}
.leaderboard-preview-row>span,.leaderboard-preview-row>strong,.leaderboard-preview-row>b{position:relative;z-index:1}
.leaderboard-preview-row>.leaderboard-player{width:100%;min-width:0;min-height:59px}
.leaderboard-preview-row>.leaderboard-player>div{min-width:0}
.leaderboard-preview-row>.leaderboard-player strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.leaderboard-preview-row>.leaderboard-player small{display:block}
.leaderboard-preview-row.effect-none.is-you:before{display:none}
.reward-item-body{min-height:105px;padding:12px;display:flex;flex-direction:column}
.reward-item-body strong{overflow:hidden;color:#27323a;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.reward-item-body small{height:28px;margin-top:5px;overflow:hidden;color:#8a969e;font-size:9px;line-height:1.5}
.reward-item-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}
.reward-item-price{display:flex;align-items:center;gap:3px;color:#ae7a1c;font-size:10px;font-weight:800}
.reward-item-price svg{width:13px;height:13px;stroke:#d59a23}
.reward-item-button{height:29px;padding:0 9px;border:1px solid #d9e5e8;border-radius:7px;background:#fff;color:#087f91;font-size:9px;font-weight:800;white-space:nowrap}
.reward-item-button:hover{border-color:#13b8cf;background:#effbfc}
.reward-item-button.equipped{border-color:#bce8d2;background:#effbf4;color:#168653}
.reward-item-button:disabled{cursor:default;opacity:.65}
.rewards-status{min-height:18px;margin:-15px 30px 17px;color:#d06f36;font-size:10px;text-align:right}
@media(max-width:950px){.rewards-task-list{grid-template-columns:repeat(2,minmax(0,1fr))}.rewards-catalog{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.rewards-window{top:12px!important;bottom:12px!important;width:calc(100vw - 24px);max-height:none;transform:translateX(-50%)!important}.rewards-window .rewards-heading{padding:18px}.rewards-window .rewards-heading h2{font-size:23px}.rewards-window .rewards-heading p{max-width:190px;line-height:1.5}.rewards-balance{height:38px;padding:0 9px}.rewards-balance span{display:none}.rewards-balance strong{font-size:16px}.rewards-user-state{padding:16px 18px 25px}.rewards-task-section,.rewards-shop-section{padding:16px}.rewards-section-header{align-items:start;flex-direction:column;gap:10px}.rewards-task-summary{align-self:flex-start}.rewards-task-list{grid-template-columns:1fr}.rewards-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.rewards-status{margin:-8px 18px 12px;text-align:left}.leaderboard-effect-preview{padding:12px}.leaderboard-effect-preview-heading{align-items:flex-start;flex-direction:column;gap:8px}.leaderboard-preview-head,.leaderboard-preview-row{--score-col:65px;grid-template-columns:25px minmax(70px,1fr) 70px var(--score-col);padding:8px 9px;font-size:8px}}

/* Real GLB previews for weapon skins. The CSS silhouette remains as a
   graceful fallback while a card's model is loading or WebGL is unavailable. */
.reward-item-preview.reward-model-preview{background:radial-gradient(circle at 52% 42%,#f5fbfb 0%,#e6eff0 58%,#d7e3e5 100%);isolation:isolate}
.reward-item-preview.reward-model-preview:before,.reward-item-preview.reward-model-preview:after{display:none}
.reward-model-canvas{display:block;width:100%;height:100%;min-height:118px;opacity:0;transition:opacity .2s ease;position:relative;z-index:1}
.reward-model-preview.has-model .reward-model-canvas{opacity:1}
.reward-model-loading{position:absolute;inset:auto 0 8px;text-align:center;color:#789096;font-size:8px;letter-spacing:.1px;z-index:2;transition:opacity .2s ease}
.reward-model-preview.has-model .reward-model-loading,.reward-model-preview.model-error .reward-model-loading{opacity:0}
.reward-model-preview.model-error:before{display:block!important;opacity:.56}
.reward-model-preview.model-error:after{display:block!important;opacity:.5}
.reward-model-preview canvas:focus-visible{outline:2px solid #13b8cf;outline-offset:-2px}

/* v7 effect cards: each preview is clipped to its own box. */
.reward-item.effect-preview .reward-item-preview{isolation:isolate;contain:paint;overflow:hidden;clip-path:inset(0);background:#111d26}
.reward-item.effect-preview .reward-item-preview:before,.reward-item.effect-preview .reward-item-preview:after{z-index:2}
.effect-card-preview{display:block!important;position:relative;isolation:isolate;contain:paint;overflow:hidden;clip-path:inset(0);background:#17252c!important;color:#fff}
.effect-card-preview:before,.effect-card-preview:after{display:none!important}
.effect-card-art{position:absolute;inset:0;z-index:1;overflow:hidden;contain:paint;pointer-events:none}
.effect-card-name{position:absolute;left:24px;top:calc(50% - 9px);z-index:4;font-size:11px;line-height:18px;letter-spacing:.15px;color:#efffff;text-shadow:0 0 8px currentColor;white-space:nowrap}
.effect-card-score{position:absolute;left:8px;top:calc(50% - 7px);z-index:4;color:#8ea6ae;font-size:8px;font-variant-numeric:tabular-nums}
.effect-card-preview .effect-card-art i{position:absolute;display:block;pointer-events:none;will-change:transform,opacity;backface-visibility:hidden}
.reward-item.effect-cyan_name .effect-card-preview{background:linear-gradient(145deg,#102b34,#111d26)!important}.reward-item.effect-cyan_name .effect-card-name{color:#bffaff}
.reward-item.effect-basic_gold .effect-card-preview{background:linear-gradient(145deg,#382b16,#111d26)!important}.reward-item.effect-basic_gold .effect-card-name{color:#ffedbd}
.reward-item.effect-red_name .effect-card-preview{background:linear-gradient(145deg,#3a1b28,#111d26)!important}.reward-item.effect-red_name .effect-card-name{color:#ffd0d4}
.reward-item.effect-pink_name .effect-card-preview{background:linear-gradient(145deg,#3a1e38,#111d26)!important}.reward-item.effect-pink_name .effect-card-name{color:#ffe0f4}
.reward-item.effect-spectrum_name .effect-card-preview{background:linear-gradient(145deg,#202942,#111d26)!important}.reward-item.effect-spectrum_name .effect-card-name{background:linear-gradient(90deg,#ff4d6d,#ffcb4d,#4de1b5,#5d8dff,#cf68ff);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:effect7-spectrum 2.4s linear infinite}
.reward-item.effect-electric_arc .effect-card-preview{background:linear-gradient(145deg,#102b42,#111d26)!important}.reward-item.effect-electric_arc .effect-card-name{color:#efffff}.effect-card-preview .fx-arc{left:3%;right:3%;height:7px;border:1px solid #bdf7ff;border-radius:45%;box-shadow:0 0 7px #8ceeff;clip-path:polygon(0 45%,10% 12%,20% 65%,31% 18%,43% 70%,55% 14%,68% 67%,81% 20%,100% 48%,100% 58%,81% 36%,68% 82%,55% 34%,43% 86%,31% 36%,20% 82%,10% 35%,0 65%);opacity:.9}.effect-card-preview .fx-arc-a{top:3px;animation:effect8-arc-flicker .55s steps(2,end) infinite}.effect-card-preview .fx-arc-b{bottom:3px;transform:scaleX(-1);animation:effect8-arc-flicker .72s steps(2,end) -.2s infinite}.effect-card-preview .fx-arc-c{top:50%;transform:translateY(-50%) scaleX(.86);opacity:.48;animation:effect8-arc-flicker .64s steps(2,end) -.3s infinite}.effect-card-preview .effect-card-art:after{content:"";position:absolute;inset:3px;border:1px solid rgba(140,238,255,.48);border-radius:5px;box-shadow:0 0 8px rgba(140,238,255,.5)}
.reward-item.effect-sakura_fall .effect-card-preview{background:linear-gradient(145deg,#3b2035,#111d26)!important}.reward-item.effect-sakura_fall .effect-card-name{color:#ffe0f1}.effect-card-preview .fx-petal{width:8px;height:8px;top:-10px;left:var(--petal-x,88%);background:url('/assets/effects/sakura.png') center/contain no-repeat;filter:drop-shadow(0 0 3px rgba(255,159,202,.8));animation:effect8-petal-fall var(--petal-speed,2.8s) linear var(--petal-delay,0s) infinite}.effect-card-preview .fx-petal-1{--petal-x:73%;--petal-speed:2.2s;--petal-delay:-.2s;--petal-drift:-8px;transform:scale(.75)}.effect-card-preview .fx-petal-2{--petal-x:82%;--petal-speed:2.9s;--petal-delay:-1.3s;--petal-drift:7px;transform:scale(1.1)}.effect-card-preview .fx-petal-3{--petal-x:91%;--petal-speed:2.4s;--petal-delay:-1.8s;--petal-drift:-5px;transform:scale(.62)}.effect-card-preview .fx-petal-4{--petal-x:98%;--petal-speed:3.1s;--petal-delay:-.7s;--petal-drift:9px;transform:scale(.85)}.effect-card-preview .fx-petal-5{--petal-x:78%;--petal-speed:2.6s;--petal-delay:-2s;--petal-drift:-6px;transform:scale(.56)}.effect-card-preview .fx-petal-6{--petal-x:88%;--petal-speed:2.1s;--petal-delay:-1s;--petal-drift:5px;transform:scale(.7)}.effect-card-preview .fx-petal-7{--petal-x:95%;--petal-speed:3.4s;--petal-delay:-2.8s;--petal-drift:-7px;transform:scale(.48)}
.reward-item.effect-meteor_shower .effect-card-preview{background:linear-gradient(145deg,#282247,#111d26)!important}.reward-item.effect-meteor_shower .effect-card-name{color:#e5e2ff}.effect-card-preview .fx-meteor{top:-14px;left:var(--meteor-x,92%);width:2px;height:34px;border-radius:2px;background:linear-gradient(#fff,#c9c6ff,transparent);box-shadow:0 0 6px 1px #c9c6ff;transform:rotate(33deg);transform-origin:top center;animation:effect8-meteor-fall var(--meteor-speed, .72s) linear var(--meteor-delay,0s) infinite}.effect-card-preview .fx-meteor:after{content:"";position:absolute;top:0;left:-2px;width:7px;height:17px;background:linear-gradient(#fff,transparent);filter:blur(2px)}.effect-card-preview .fx-meteor-1{--meteor-x:81%;--meteor-speed:.68s;--meteor-delay:-.08s}.effect-card-preview .fx-meteor-2{--meteor-x:88%;--meteor-speed:.82s;--meteor-delay:-.48s;transform:rotate(33deg) scale(1.2)}.effect-card-preview .fx-meteor-3{--meteor-x:95%;--meteor-speed:.6s;--meteor-delay:-.27s;transform:rotate(33deg) scale(.68)}.effect-card-preview .fx-meteor-4{--meteor-x:85%;--meteor-speed:.9s;--meteor-delay:-.66s;transform:rotate(33deg) scale(.86)}.effect-card-preview .fx-meteor-5{--meteor-x:98%;--meteor-speed:.74s;--meteor-delay:-.35s;transform:rotate(33deg) scale(.58)}
.reward-item.effect-rgb_offset .effect-card-preview{background:linear-gradient(145deg,#1e2935,#111d26)!important}.reward-item.effect-rgb_offset .effect-card-name{color:#fff;text-shadow:-2px 0 #ff3b75,2px 0 #26e6ff;animation:effect7-rgb .8s steps(2,end) infinite}
.reward-item.effect-rainbow_field .effect-card-preview{background:linear-gradient(105deg,#ff1744,#ff8a00,#ffe600,#00e676,#00b0ff,#7c4dff,#ff1744)!important;background-size:300% 100%!important;animation:effect7-card-rainbow 2.5s linear infinite}.reward-item.effect-rainbow_field .effect-card-name{color:#fff;text-shadow:0 0 7px #000,0 0 10px #fff}
.effect-card-preview .fx-petal{top:4px;width:6px;height:9px;background:#ffafd0!important;border:1px solid rgba(255,235,245,.72);border-radius:72% 28% 68% 32%;filter:drop-shadow(0 0 3px rgba(255,125,185,.95));animation:effect9-petal-fall var(--petal-speed,2.2s) linear var(--petal-delay,0s) infinite!important}
.effect-card-preview .fx-star{left:var(--star-x);top:var(--star-y);width:var(--star-size);height:var(--star-size);border-radius:50%;background:#fff;box-shadow:0 0 3px 1px #c9c6ff,0 0 8px rgba(150,150,255,.65);animation:effect9-star-twinkle var(--star-speed,2.2s) ease-in-out var(--star-delay,0s) infinite}.effect-card-preview .fx-star:nth-child(3n){background:#c9eaff}.effect-card-preview .fx-star:nth-child(4n){background:#fff1c9}
.reward-item.effect-meteor_shower .effect-card-preview{background:radial-gradient(circle at 82% 45%,rgba(104,119,190,.18),transparent 45%),linear-gradient(135deg,#111934,#080d1b)!important}
.reward-item.effect-rainbow_field .effect-card-preview{background:linear-gradient(110deg,#ff1744,#ff8a00,#ffe600,#00e676,#00b0ff,#7c4dff,#ff1744)!important;background-size:220% 220%!important;animation:effect9-card-rainbow 1.8s ease-in-out infinite alternate}.reward-item.effect-rainbow_field .effect-card-preview:after{display:block!important;content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.14),transparent 45%,rgba(255,255,255,.2));mix-blend-mode:screen;animation:effect9-rainbow-sheen 1.9s ease-in-out infinite alternate}
.reward-item.effect-meteor_shower .effect-card-art{position:absolute;inset:0;background:transparent;overflow:hidden}.reward-item.effect-meteor_shower .effect-card-preview{background:radial-gradient(circle at 74% 42%,rgba(104,119,190,.2),transparent 48%),linear-gradient(135deg,#111934,#080d1b)!important}.effect-card-preview .fx-star{left:var(--star-x);top:var(--star-y);width:var(--star-size);height:var(--star-size);border-radius:50%;background:#fff;box-shadow:0 0 3px 1px #c9c6ff,0 0 8px rgba(150,150,255,.65);animation:effect9-star-twinkle var(--star-speed,2.2s) ease-in-out var(--star-delay,0s) infinite}.effect-card-preview .fx-star:nth-child(3n){background:#c9eaff}.effect-card-preview .fx-star:nth-child(4n){background:#fff1c9}
@keyframes effect9-card-rainbow{to{background-position:100% 0;filter:saturate(1.45)}}
@keyframes effect9-petal-fall{0%{transform:translate3d(0,-8px,0) rotate(0deg);opacity:0}10%{opacity:1}55%{transform:translate3d(var(--petal-drift,-8px),22px,0) rotate(150deg);opacity:1}100%{transform:translate3d(calc(var(--petal-drift,-8px) + 8px),58px,0) rotate(310deg);opacity:0}}@keyframes effect9-star-twinkle{0%,100%{opacity:0;transform:scale(.7)}35%{opacity:.95;transform:scale(1.15)}58%{opacity:.45;transform:scale(.86)}}@keyframes effect9-rainbow-surge{to{transform:translate3d(24%,8%,0) rotate(18deg) scale(1.08)}}
.leaderboard-preview-row.effect-sakura_fall .fx-petal,.leaderboard-preview-row.effect-meteor_shower .fx-star,.effect-card-preview .fx-petal,.effect-card-preview .fx-star{animation:none!important}

/* Achievement hall */
.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.achievement-card{min-height:84px;padding:14px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #e1e7e9;border-radius:8px;background:#f8fafb;color:#8a959c}.achievement-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid #dce4e7;border-radius:50%;background:#fff;color:#9aa5aa;font:800 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.achievement-card div{min-width:0}.achievement-card strong{display:block;color:#59676e;font-size:13px}.achievement-card small{display:block;margin-top:4px;color:#929da3;font-size:10px;line-height:1.45}.achievement-card>b{padding:5px 7px;border-radius:6px;background:#e9edef;color:#89949a;font-size:9px;white-space:nowrap}.achievement-card.unlocked{border-color:#93dde5;background:#f0fbfc;box-shadow:inset 3px 0 #13b8cf}.achievement-card.unlocked .achievement-mark{border-color:#71d1dc;background:#13b8cf;color:#fff;box-shadow:0 4px 12px rgba(19,184,207,.2)}.achievement-card.unlocked strong{color:#173a42}.achievement-card.unlocked>b{background:#d8f5f8;color:#078fa3}.achievements-window .rewards-guest{min-height:0;margin:16px 30px 14px;padding:14px 16px;grid-template-columns:44px minmax(0,1fr) auto;grid-template-rows:auto auto;place-items:initial;align-items:center;column-gap:13px;border:1px solid #f0dcae;border-radius:8px;background:#fffaf0;text-align:left}.achievements-window .rewards-guest-icon{grid-column:1;grid-row:1/3;width:44px;height:44px;margin:0;border-radius:10px}.achievements-window .rewards-guest-icon svg{width:22px;height:22px}.achievements-window .rewards-guest strong{grid-column:2;grid-row:1;font-size:13px}.achievements-window .rewards-guest p{grid-column:2;grid-row:2;max-width:none;margin:3px 0 0;font-size:10px}.achievements-window .rewards-guest .rewards-primary-button{grid-column:3;grid-row:1/3;height:36px;padding:0 15px}@media(max-width:680px){.achievement-grid{grid-template-columns:1fr}.achievement-card{grid-template-columns:38px minmax(0,1fr) auto;padding:12px;gap:10px}.achievement-mark{width:38px;height:38px}.achievements-window .rewards-guest{margin:12px 14px;padding:13px;grid-template-columns:40px minmax(0,1fr)}.achievements-window .rewards-guest-icon{width:40px;height:40px}.achievements-window .rewards-guest .rewards-primary-button{grid-column:1/-1;grid-row:3;width:100%;margin-top:10px}}
.leaderboard-preview-row.effect-sakura_fall .fx-petal,.leaderboard-preview-row.effect-meteor_shower .fx-star{animation:none!important}

/* The shop preview is a real leaderboard table, not a reduced card mock. */
.leaderboard-effect-preview .leaderboard-preview-board{overflow-x:auto;border:1px solid #d6e1e3;border-radius:9px;background:#fff;box-shadow:0 9px 22px rgba(26,52,62,.09)}
.leaderboard-effect-preview .leaderboard-table{width:100%;min-width:880px;border-collapse:collapse}
.leaderboard-effect-preview .leaderboard-table th,.leaderboard-effect-preview .leaderboard-table td{padding:15px 20px;text-align:left;border-top:1px solid #eef0f2;font-size:10px;white-space:nowrap}
.leaderboard-effect-preview .leaderboard-table th{color:#9aa1a9;font-weight:500;background:#fafbfb}
.leaderboard-effect-preview .leaderboard-table td{color:#606974}
.leaderboard-effect-preview .leaderboard-table td strong{color:#171b20;font-size:12px}
.leaderboard-effect-preview .leaderboard-table .rank{width:46px;font-weight:800}
.leaderboard-effect-preview .leaderboard-table .rank.top{color:#0da5ba}
.leaderboard-effect-preview .leaderboard-table tbody tr{transition:background-color .18s ease,transform .18s ease}
.leaderboard-effect-preview .leaderboard-table tbody tr:hover{background:#f7fcfd;transform:translateX(2px)}
.leaderboard-effect-preview .leaderboard-replay-button,.leaderboard-effect-preview .leaderboard-report-button{pointer-events:none}

/* Meimei: runs from behind the name toward the score. */
.leaderboard-preview-row.effect-meimei,.leaderboard-preview-row.effect-meimei2{--meimei-size:min(100%,58px);--meimei-start:92px;--meimei-end:calc(100% - var(--score-col) - var(--meimei-size) - 18px)}
.leaderboard-preview-row.effect-meimei strong,.leaderboard-preview-row.effect-meimei2 strong{color:#fff1f7;text-shadow:0 0 8px rgba(249,168,212,.72)}
.fx-meimei{position:absolute;left:var(--meimei-start,12px);top:50%;width:var(--meimei-size,42px);height:var(--meimei-size,42px);transform:translateY(-50%);object-fit:contain;max-width:none;pointer-events:none;filter:drop-shadow(0 1px 3px rgba(31,12,22,.48)) drop-shadow(0 0 5px rgba(249,168,212,.28));will-change:left,opacity;animation:meimei-run 4.8s linear infinite}
.fx-meimei img{display:block;width:100%;height:100%;object-fit:contain}
.reward-item.effect-meimei .effect-card-preview,.reward-item.effect-meimei2 .effect-card-preview{--meimei-size:min(100%,64px);--meimei-start:12px;--meimei-end:calc(100% - var(--meimei-size) - 12px)}
@keyframes meimei-run{0%{left:var(--meimei-start,12px);opacity:0}7%{opacity:1}82%{opacity:1}100%{left:var(--meimei-end,80%);opacity:0}}
@media(prefers-reduced-motion:reduce){.fx-meimei{left:var(--meimei-end,80%);animation:none;opacity:1}}

/* Instant weapon thumbnails: the live 3D canvas fades in when the cached model is ready. */
.reward-model-thumbnail{position:absolute;inset:0;z-index:1;width:100%;height:100%;padding:5px;object-fit:contain;transition:opacity .26s ease}
.reward-model-preview.has-model .reward-model-thumbnail{opacity:0}
.reward-model-preview .reward-model-canvas{position:absolute;inset:0;z-index:2;width:100%;height:100%}
.reward-model-preview.model-error:before,.reward-model-preview.model-error:after{display:none!important}

.weapon-level-rewards{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:11px;border-top:1px solid #d7ebef;flex-wrap:wrap}
.weapon-level-rewards>span{color:#5e7f86;font-size:10px;font-weight:800;white-space:nowrap}
.weapon-level-rewards>div{display:flex;flex-wrap:wrap;gap:6px}
.weapon-level-bonus{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border:1px solid #d9e9ec;border-radius:8px;background:#fff;color:#6f8b94;font-size:9px;white-space:nowrap}
.weapon-level-bonus b{color:#28707f;font-size:9px}
.weapon-level-bonus.claimed{border-color:#bfe7d3;background:#effbf4;color:#168653}
.weapon-level-bonus.claimed b{color:#168653}
.weapon-level-bonus.next{border-color:#13b8cf;background:#eaf9fb;color:#078fa3;box-shadow:0 0 0 2px rgba(19,184,207,.08)}
.weapon-level-bonus.next b{color:#078fa3}
.weapon-mastery-progress{display:flex;align-items:center;gap:10px;margin-top:11px}
.weapon-mastery-progress .weapon-mastery-bar{flex:1;min-width:0;margin-top:0}
.weapon-mastery-next-reward{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0 9px;border:1px solid #f0d89b;border-radius:8px;background:#fffaf0;color:#9a6e18;font-size:10px;font-weight:850;white-space:nowrap}
.weapon-mastery-next-reward svg{width:14px;height:14px;stroke:#d59a23}
.weapon-mastery-next-reward b{font-size:11px}
.weapon-mastery-next-reward.is-max{border-color:#d9e9ec;background:#f7fbfc;color:#6f8b94}
@media(max-width:620px){.weapon-mastery-progress{align-items:stretch;flex-direction:column;gap:8px}.weapon-mastery-next-reward{align-self:flex-end}}

.reward-login-task{grid-column:1/-1;min-height:78px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px 17px;border-color:#cfe8ee;background:linear-gradient(135deg,#f7fdfe,#edf9fb)}
.reward-login-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#e2f8ed;color:#168653;font-size:17px;font-weight:900}
.reward-login-copy{min-width:0}
.reward-login-copy strong{display:block;color:#17343c;font-size:13px}
.reward-login-copy small{display:block;margin-top:4px;color:#6f8b94;font-size:10px}
.reward-login-reward{display:inline-flex;align-items:center;gap:5px;color:#a46f13;font-size:13px;font-weight:850;white-space:nowrap}
.reward-login-reward svg{width:17px;height:17px;stroke:#d59a23}
@media(max-width:620px){.reward-login-task{grid-template-columns:34px minmax(0,1fr);padding:13px}.reward-login-icon{width:34px;height:34px}.reward-login-reward{grid-column:2;justify-self:start}}

/* First effect batch: shop preview. */
.leaderboard-preview-row.effect-breathing_glow{--preview-color:#67e8f9}
.leaderboard-preview-row.effect-breathing_glow strong{color:#bffaff;text-shadow:0 0 10px rgba(103,232,249,.8);animation:first-breathe-text 2.8s ease-in-out infinite}
.leaderboard-preview-row.effect-breathing_glow .leaderboard-effect-art:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 28% 50%,rgba(103,232,249,.3),transparent 52%);animation:first-breathe-glow 2.8s ease-in-out infinite}
.leaderboard-preview-row.effect-gradient_outline{--preview-color:#38bdf8}
.leaderboard-preview-row.effect-gradient_outline strong{background:linear-gradient(90deg,#67e8f9,#60a5fa,#a78bfa,#67e8f9);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:first-gradient-pan 3s linear infinite}
.leaderboard-preview-row.effect-gradient_outline .leaderboard-effect-art:before{content:"";position:absolute;inset:1px;border:1px solid rgba(103,232,249,.55);border-radius:5px;box-shadow:0 0 9px rgba(56,189,248,.4),inset 0 0 9px rgba(56,189,248,.12)}
.leaderboard-preview-row.effect-rain_fall{--preview-color:#7dd3fc}.leaderboard-preview-row.effect-rain_fall strong{color:#dff5ff;text-shadow:0 0 9px rgba(125,211,252,.7)}
.leaderboard-preview-row.effect-rain_fall .leaderboard-effect-art:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(125,211,252,.1),transparent 72%)}
.leaderboard-preview-row.effect-snow_fall{--preview-color:#e0f2fe}.leaderboard-preview-row.effect-snow_fall strong{color:#f4fbff;text-shadow:0 0 9px rgba(224,242,254,.8)}
.leaderboard-preview-row.effect-snow_fall .leaderboard-effect-art:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 35%,rgba(224,242,254,.13),transparent 56%)}
.leaderboard-preview-row.effect-autumn_leaves{--preview-color:#f59e0b}.leaderboard-preview-row.effect-autumn_leaves strong{color:#ffe4b0;text-shadow:0 0 9px rgba(245,158,11,.7)}
.leaderboard-preview-row.effect-autumn_leaves .leaderboard-effect-art:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(245,158,11,.1),transparent 74%)}
.leaderboard-preview-row.effect-ember_rise{--preview-color:#fb7185}.leaderboard-preview-row.effect-ember_rise strong{color:#ffd9dd;text-shadow:0 0 9px rgba(251,113,133,.75)}
.leaderboard-preview-row.effect-ember_rise .leaderboard-effect-art:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 100%,rgba(251,113,133,.18),transparent 58%)}
.leaderboard-preview-row.effect-scan_line{--preview-color:#2dd4bf}.leaderboard-preview-row.effect-scan_line strong{color:#e6fffb;text-shadow:0 0 9px rgba(45,212,191,.75)}
.leaderboard-preview-row.effect-data_stream{--preview-color:#34d399}.leaderboard-preview-row.effect-data_stream strong{color:#d9ffe9;text-shadow:0 0 9px rgba(52,211,153,.72)}
.leaderboard-preview-row.effect-data_stream .leaderboard-effect-art:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(52,211,153,.1),transparent 70%)}
.leaderboard-preview-row .fx-rain,.leaderboard-preview-row .fx-snow,.leaderboard-preview-row .fx-leaf,.leaderboard-preview-row .fx-ember,.leaderboard-preview-row .fx-scan,.leaderboard-preview-row .fx-code{position:absolute;display:block;pointer-events:none;will-change:transform,opacity}
.leaderboard-preview-row .fx-rain{top:-12px;left:var(--x);width:1px;height:11px;background:linear-gradient(rgba(224,242,254,0),#7dd3fc);opacity:0;animation:first-rain-fall var(--speed,1.2s) linear var(--delay,0s) infinite}
.leaderboard-preview-row .fx-snow{top:-8px;left:var(--x);width:var(--size,3px);height:var(--size,3px);border-radius:50%;background:#fff;box-shadow:0 0 6px #e0f2fe;opacity:0;animation:first-snow-fall var(--speed,4s) linear var(--delay,0s) infinite}
.leaderboard-preview-row .fx-leaf{top:-10px;left:var(--x);width:var(--size,6px);height:calc(var(--size,6px) * .62);border-radius:70% 30% 65% 35%;background:linear-gradient(135deg,#fbbf24,#d97706);opacity:0;animation:first-leaf-fall var(--speed,4s) linear var(--delay,0s) infinite}
.leaderboard-preview-row .fx-ember{bottom:-7px;left:var(--x);width:3px;height:3px;border-radius:50%;background:#fb7185;box-shadow:0 0 7px #fb7185;opacity:0;animation:first-ember-rise var(--speed,3s) ease-out var(--delay,0s) infinite}
.leaderboard-preview-row .fx-scan{top:0;bottom:0;left:-32%;width:28%;background:linear-gradient(90deg,transparent,rgba(45,212,191,.48),transparent);animation:first-scan 2.4s linear infinite}
.leaderboard-preview-row .fx-code{top:-12px;left:var(--x);color:#34d399;font:800 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace;text-shadow:0 0 6px rgba(52,211,153,.8);opacity:0;animation:first-data-fall var(--speed,2.4s) linear var(--delay,0s) infinite}
@keyframes first-breathe-text{0%,100%{text-shadow:0 0 7px rgba(103,232,249,.45)}50%{text-shadow:0 0 16px rgba(103,232,249,.95)}}
@keyframes first-breathe-glow{0%,100%{opacity:.4;transform:scale(.96)}50%{opacity:.9;transform:scale(1.04)}}
@keyframes first-gradient-pan{to{background-position:240% 0}}
@keyframes first-rain-fall{0%{transform:translate3d(0,-10px,0);opacity:0}18%{opacity:.9}100%{transform:translate3d(var(--drift,0),72px,0);opacity:0}}
@keyframes first-snow-fall{0%{transform:translate3d(0,-8px,0) rotate(0);opacity:0}15%{opacity:.9}100%{transform:translate3d(var(--drift,0),72px,0) rotate(220deg);opacity:0}}
@keyframes first-leaf-fall{0%{transform:translate3d(0,-10px,0) rotate(0);opacity:0}16%{opacity:.95}100%{transform:translate3d(var(--drift,0),72px,0) rotate(var(--spin,360deg));opacity:0}}
@keyframes first-ember-rise{0%{transform:translate3d(0,8px,0) scale(.8);opacity:0}20%{opacity:.9}100%{transform:translate3d(var(--drift,0),-58px,0) scale(.2);opacity:0}}
@keyframes first-scan{0%{transform:translateX(0)}100%{transform:translateX(470%)}}
@keyframes first-data-fall{0%{transform:translate3d(0,-10px,0);opacity:0}18%{opacity:.9}100%{transform:translate3d(0,72px,0);opacity:0}}

/* Leaderboard effect catalogue: rarity sections stacked full width, one horizontal rarity bar each. */
.effect-catalog{display:flex;flex-direction:column;gap:13px}
.rewards-catalog:has(.effect-catalog){display:block}
.effect-rarity-section{--rarity:#84919a;--rarity-soft:#f1f5f6;position:relative;padding:14px 16px 16px;border:1px solid color-mix(in srgb,var(--rarity) 20%,#e2ebee);border-radius:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--rarity) 6%,#fff),#fff 46%);box-shadow:0 8px 20px rgba(24,83,99,.045)}
.effect-rarity-section[data-rarity=default]{--rarity:#84919a;--rarity-soft:#f1f5f6}
.effect-rarity-section[data-rarity=common]{--rarity:#20a7b8;--rarity-soft:#e8f8fa}
.effect-rarity-section[data-rarity=rare]{--rarity:#3d84e8;--rarity-soft:#eaf2ff}
.effect-rarity-section[data-rarity=epic]{--rarity:#8b5cf6;--rarity-soft:#f3efff}
.effect-rarity-section[data-rarity=mythic]{--rarity:#e34d93;--rarity-soft:#fff0f7}
.effect-rarity-section[data-rarity=legendary]{--rarity:#d89216;--rarity-soft:#fff8e8}
.effect-rarity-section>header{display:flex;align-items:center;gap:9px;padding:0 0 12px;margin-bottom:13px;border-bottom:1px solid color-mix(in srgb,var(--rarity) 24%,#eaf0f2)}
.effect-rarity-mark{width:9px;height:9px;flex:0 0 auto;border-radius:3px;background:var(--rarity);box-shadow:0 0 10px color-mix(in srgb,var(--rarity) 70%,transparent)}
.effect-rarity-section>header strong{color:#123842;font-size:13.5px;letter-spacing:.02em}
.effect-rarity-section>header .effect-rarity-en{font-style:normal;font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--rarity) 58%,#93a7ae)}
.effect-rarity-section>header .effect-rarity-owned{margin-left:auto;height:22px;padding:0 10px;display:inline-flex;align-items:center;border-radius:999px;background:var(--rarity-soft);color:var(--rarity);font-size:9.5px;font-weight:850;white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:520px){.effect-rarity-section>header .effect-rarity-en{display:none}}
.effect-chip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:9px}
.effect-chip{display:flex;align-items:center;gap:9px;width:100%;height:46px;padding:0 13px;border:1px solid color-mix(in srgb,var(--rarity) 15%,#dde7ea);border-radius:12px;background:#fff;color:#33545d;font-family:inherit;font-size:11.5px;font-weight:700;text-align:left;cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
.effect-chip:hover{border-color:var(--rarity);background:var(--rarity-soft);color:var(--rarity);transform:translateY(-1px);box-shadow:0 6px 14px color-mix(in srgb,var(--rarity) 13%,transparent)}
.effect-chip.selected{border-color:var(--rarity);background:var(--rarity-soft);color:var(--rarity);box-shadow:0 0 0 2px color-mix(in srgb,var(--rarity) 18%,transparent),0 6px 14px color-mix(in srgb,var(--rarity) 10%,transparent)}
.effect-chip-dot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--dot,var(--rarity));box-shadow:0 0 8px color-mix(in srgb,var(--dot,var(--rarity)) 62%,transparent)}
.effect-chip-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.effect-chip-state{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#f1f5f6;color:#95a3aa;font-size:8.5px;font-weight:800;white-space:nowrap}
.effect-chip-state.is-owned{background:#e6f8ef;color:#168653}
.effect-chip-state.is-equipped{background:#d7f4e8;color:#0f7a4f}
.effect-chip.equipped{border-color:color-mix(in srgb,#21aa70 42%,#dde7ea);background:#fbfffd}
.effect-chip.selected.equipped{border-color:var(--rarity);background:var(--rarity-soft);box-shadow:inset 3px 0 0 #21aa70,0 0 0 2px color-mix(in srgb,var(--rarity) 18%,transparent)}
@media(max-width:760px){.effect-rarity-section{padding:12px 12px 14px}.effect-chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.effect-chip-grid{grid-template-columns:1fr}.effect-chip{height:44px}}

/* Second effect batch: shop preview. */
.leaderboard-preview-row.effect-aurora{--preview-color:#a855f7}.leaderboard-preview-row.effect-aurora strong{color:#f3e8ff;text-shadow:0 0 12px rgba(168,85,247,.85)}
.leaderboard-preview-row.effect-aurora .leaderboard-effect-art:before{content:"";position:absolute;inset:-30%;background:conic-gradient(from 120deg,transparent,rgba(34,211,238,.28),transparent 28%,rgba(168,85,247,.34),transparent 58%,rgba(244,114,182,.24),transparent 82%);filter:blur(12px);animation:first-aurora-pan 7s linear infinite}
.leaderboard-preview-row.effect-nebula{--preview-color:#8b5cf6}.leaderboard-preview-row.effect-nebula strong{color:#ede9fe;text-shadow:0 0 12px rgba(139,92,246,.85)}
.leaderboard-preview-row.effect-nebula .leaderboard-effect-art:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 40%,rgba(139,92,246,.28),transparent 34%),radial-gradient(circle at 38% 66%,rgba(34,211,238,.18),transparent 30%),linear-gradient(135deg,#0b1023,#17102b);animation:first-nebula-pulse 5s ease-in-out infinite alternate}
.leaderboard-preview-row.effect-lava{--preview-color:#f97316}.leaderboard-preview-row.effect-lava strong{color:#ffedd5;text-shadow:0 0 12px rgba(249,115,22,.9)}
.leaderboard-preview-row.effect-lava .leaderboard-effect-art:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 100%,rgba(249,115,22,.3),transparent 56%),linear-gradient(180deg,#160707,#2a0b06)}
.leaderboard-preview-row.effect-runes{--preview-color:#facc15}.leaderboard-preview-row.effect-runes strong{color:#fef9c3;text-shadow:0 0 12px rgba(250,204,21,.85)}
.leaderboard-preview-row.effect-runes .leaderboard-effect-art:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(250,204,21,.14),transparent 58%)}
.leaderboard-preview-row.effect-prism{--preview-color:#22d3ee}.leaderboard-preview-row.effect-prism strong{color:#fff;text-shadow:-3px 0 #f43f5e,3px 0 #22d3ee,0 0 12px rgba(255,255,255,.8);animation:first-prism-text 1.6s ease-in-out infinite alternate}
.leaderboard-preview-row .fx-aurora,.leaderboard-preview-row .fx-nebula,.leaderboard-preview-row .fx-lava,.leaderboard-preview-row .fx-rune,.leaderboard-preview-row .fx-prism{position:absolute;display:block;pointer-events:none;will-change:transform,opacity}
.leaderboard-preview-row .fx-aurora{left:calc(var(--i) * 24% + 1%);top:12%;width:28%;height:76%;border-radius:50%;background:linear-gradient(180deg,transparent,rgba(34,211,238,.24),rgba(168,85,247,.3),transparent);filter:blur(8px);transform:rotate(-12deg);animation:first-aurora-wave 4.8s ease-in-out infinite alternate;animation-delay:calc(var(--i) * -1.1s)}
.leaderboard-preview-row .fx-nebula{left:var(--x);top:var(--y);width:var(--size);height:var(--size);display:grid;place-items:center;color:#ddd6fe;font-size:calc(var(--size) * .72);text-shadow:0 0 7px #a78bfa,0 0 12px #67e8f9;opacity:0;animation:first-nebula-star 2.8s ease-in-out var(--delay) infinite}
.leaderboard-preview-row .fx-lava{bottom:-8px;left:var(--x);width:3px;height:3px;border-radius:50%;background:#f97316;box-shadow:0 0 7px #f97316;opacity:0;animation:first-lava-rise var(--speed,2.4s) ease-out var(--delay) infinite}
.leaderboard-preview-row .fx-rune{left:var(--x);top:var(--y);color:#facc15;font:900 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;text-shadow:0 0 7px #facc15,0 0 14px rgba(250,204,21,.5);opacity:0;animation:first-rune-float 3.2s ease-in-out var(--delay) infinite}
.leaderboard-preview-row .fx-prism{left:16%;top:50%;width:52%;height:1px;background:linear-gradient(90deg,transparent,#f43f5e,#fff,#22d3ee,transparent);transform-origin:left center;transform:rotate(calc(var(--i) * 22deg - 44deg));opacity:.45;animation:first-prism-sweep 2.2s ease-in-out infinite alternate}
@keyframes first-aurora-pan{to{transform:rotate(360deg)}}
@keyframes first-aurora-wave{0%{transform:translateX(-8px) rotate(-12deg) scaleY(.88)}100%{transform:translateX(10px) rotate(8deg) scaleY(1.08)}}
@keyframes first-nebula-pulse{to{filter:saturate(1.35) brightness(1.12)}}
@keyframes first-nebula-star{0%,100%{opacity:0;transform:scale(.6) rotate(0)}35%{opacity:1;transform:scale(1.18) rotate(90deg)}70%{opacity:.45;transform:scale(.85) rotate(180deg)}}
@keyframes first-lava-rise{0%{transform:translate3d(0,8px,0) scale(.7);opacity:0}18%{opacity:1}100%{transform:translate3d(var(--drift,0),-58px,0) scale(.15);opacity:0}}
@keyframes first-rune-float{0%,100%{opacity:0;transform:translateY(6px) rotate(0)}30%{opacity:.95;transform:translateY(-4px) rotate(120deg)}65%{opacity:.55;transform:translateY(-10px) rotate(240deg)}}
@keyframes first-prism-text{to{text-shadow:-5px 0 #f43f5e,5px 0 #22d3ee,0 0 16px rgba(255,255,255,.95)}}
@keyframes first-prism-sweep{0%{opacity:.15;transform:rotate(calc(var(--i) * 22deg - 44deg)) scaleX(.7)}100%{opacity:.7;transform:rotate(calc(var(--i) * 22deg - 44deg)) scaleX(1.05)}}

/* Third effect batch: shop preview. */

/* Scene selection moved from Settings into the cosmetics shop. */
.rewards-catalog:has(.scene-shop-grid){display:block}
.scene-shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.scene-shop-card{overflow:hidden;border:1px solid #dfeaed;border-radius:15px;background:#fff;box-shadow:0 10px 26px rgba(24,83,99,.06);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.scene-shop-card:hover{transform:translateY(-2px);border-color:#b7dfe4;box-shadow:0 14px 30px rgba(24,83,99,.1)}
.scene-shop-card.active{border-color:#13b8cf;box-shadow:0 0 0 3px rgba(19,184,207,.1),0 14px 30px rgba(24,83,99,.08)}
.scene-shop-preview{display:block;height:168px;background-size:cover;background-position:center;background-repeat:no-repeat}
.scene-shop-preview.studio{background:linear-gradient(155deg,#eef5f4,#c8d6d4 54%,#93a4a1)}
.scene-shop-body{padding:15px 16px 16px}
.scene-shop-body strong{display:block;color:#1d3037;font-size:13px}
.scene-shop-body small{display:block;min-height:32px;margin-top:5px;color:#7d9199;font-size:10px;line-height:1.6}
.scene-shop-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.scene-shop-footer>span{color:#7b929a;font-size:9px}
.scene-shop-card .reward-item-button{height:32px}
.scene-shop-card .reward-item-button.equipped{border-color:#bce8d2;background:#effbf4;color:#168653}
@media(max-width:720px){.scene-shop-grid{grid-template-columns:1fr}.scene-shop-preview{height:142px}}

/* Lottery center */
.lottery-panel{width:min(760px,100%);margin:0 auto;display:grid;gap:18px;padding:30px 30px 42px}
.lottery-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;border:1px solid #d8edf1;border-radius:20px;background:linear-gradient(135deg,#fff,#f2fbfd);box-shadow:0 14px 36px rgba(24,83,99,.07)}
.lottery-hero-copy{min-width:0}.lottery-hero-copy .page-overline{color:#0b8fa3;font-size:9px;font-weight:850;letter-spacing:.22em}.lottery-hero-copy h3{margin:5px 0 5px;color:#17343c;font-size:22px}.lottery-hero-copy p{margin:0;color:#6f8b94;font-size:11px;line-height:1.6}
.lottery-balance{height:58px;padding:0 18px;display:flex;align-items:center;gap:9px;border:1px solid #cfe8ee;border-radius:16px;background:linear-gradient(135deg,#f5fdfe,#e7f7fa);color:#247f90;box-shadow:0 10px 24px rgba(19,184,207,.09);flex:0 0 auto}
.lottery-balance svg{width:22px;height:22px;stroke:#13a6bd}.lottery-balance strong{font-size:25px;color:#0b6f80;font-variant-numeric:tabular-nums}.lottery-balance span{font-size:11px;color:#4d8995}
.lottery-odds{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.lottery-odds span{padding:9px 8px;border:1px solid #d7e9ed;border-radius:9px;background:#f7fcfd;color:#5d7c85;font-size:10px;text-align:center}
.lottery-draw-button{width:100%;height:54px;padding:0 20px;border:0;border-radius:15px;background:linear-gradient(135deg,#13b8cf,#0f9db2);color:#fff;font-size:13px;font-weight:850;box-shadow:0 12px 26px rgba(19,184,207,.26);cursor:pointer}
.lottery-draw-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 16px 30px rgba(19,184,207,.32)}.lottery-draw-button:disabled{opacity:.6;cursor:default}
.lottery-result{width:100%;min-height:300px;padding:0;display:grid;place-items:center;text-align:center}
.lottery-empty{width:100%;min-height:300px;padding:32px;display:grid;place-items:center;align-content:center;border:1px dashed #cfe6eb;border-radius:22px;background:linear-gradient(160deg,#fff,#f4fbfd);color:#6f8b94}
.lottery-empty span{display:grid;place-items:center;width:64px;height:64px;border:1px solid #cfe8ee;border-radius:20px;background:#fff;color:#13a6bd;font-size:34px;font-weight:900;box-shadow:0 12px 28px rgba(19,184,207,.1)}
.lottery-empty strong{display:block;margin-top:14px;color:#17343c;font-size:16px}.lottery-empty small{display:block;margin-top:6px;color:#7f98a1;font-size:10px}
.lottery-receipt{width:100%;min-height:300px;padding:34px 30px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--receipt-color,#6f8b99) 38%,#dceef2);border-radius:22px;background:radial-gradient(circle at 50% 16%,color-mix(in srgb,var(--receipt-color,#6f8b99) 10%,#fff),#fff 58%),linear-gradient(160deg,#fbfeff,#eff9fb);box-shadow:0 26px 70px rgba(24,83,99,.12),0 0 34px color-mix(in srgb,var(--receipt-color,#6f8b99) 12%,transparent);opacity:0;transform:translateY(18px) scale(.96);transition:opacity .38s ease,transform .48s cubic-bezier(.18,.89,.32,1.14)}
.lottery-receipt.show{opacity:1;transform:translateY(0) scale(1)}
.lottery-receipt.is-error{border-color:rgba(220,92,92,.42);background:linear-gradient(160deg,#fff8f8,#fff0f0);box-shadow:0 26px 70px rgba(120,50,50,.1),0 0 30px rgba(220,92,92,.08)}
.lottery-receipt-label{display:block;color:var(--receipt-color,#6f8b99);font-size:10px;font-weight:850;letter-spacing:.3em;text-transform:uppercase;text-shadow:0 0 14px color-mix(in srgb,var(--receipt-color,#6f8b99) 38%,transparent)}
.lottery-receipt-title{display:block;margin-top:13px;color:#15323a;font-size:25px;font-weight:880;letter-spacing:.01em;text-shadow:0 2px 20px color-mix(in srgb,var(--receipt-color,#6f8b99) 24%,transparent)}
.lottery-receipt-copy{margin:9px 0 0;color:#6f8b94;font-size:11px}
.lottery-choice{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}.lottery-choice button{min-height:40px;padding:0 13px;border:1px solid #dce4e7;border-radius:10px;background:#f7fafb;color:#49606a;font-size:11px;font-weight:750}.lottery-choice button:hover{border-color:#13b8cf;color:#078fa3}.lottery-choice button:disabled{opacity:.55;cursor:default}
@media(max-width:720px){.lottery-panel{padding:22px 18px 30px}.lottery-hero{align-items:flex-start;flex-direction:column;gap:16px}.lottery-balance{width:100%;justify-content:center}.lottery-odds{grid-template-columns:repeat(2,minmax(0,1fr))}.lottery-result,.lottery-receipt,.lottery-empty{min-height:260px}}

/* Lottery cinematic: the draw is a 3D mystery card that shuffles, lands and reveals. */
.lottery-cinematic{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:20px;opacity:0;transition:opacity .3s ease;pointer-events:none}
.lottery-cinematic.show{opacity:1;pointer-events:auto}.lottery-cinematic.finishing{opacity:0}
.lottery-cinematic-veil{position:absolute;inset:0;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.9),rgba(235,249,252,.96) 68%);backdrop-filter:blur(10px)}
/* Glass pill: the cinematic is a light takeover, so the skip control stays
   translucent and picks up the accent colour only on hover. */
.lottery-cinematic-skip{position:absolute;top:22px;right:26px;z-index:8;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px 0 15px;border:1px solid rgba(19,184,207,.32);border-radius:999px;background:rgba(255,255,255,.72);color:#2a6572;font-size:12px;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:0 10px 26px rgba(24,83,99,.13),inset 0 1px 0 rgba(255,255,255,.92);-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);transition:color .22s,border-color .22s,background .22s,box-shadow .22s,transform .22s cubic-bezier(.2,.8,.2,1)}
.lottery-skip-icon{flex:0 0 auto;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .26s cubic-bezier(.2,.8,.2,1)}
.lottery-cinematic-skip:hover{border-color:rgba(19,184,207,.65);background:rgba(255,255,255,.94);color:#078fa3;transform:translateY(-1px);box-shadow:0 14px 30px rgba(24,83,99,.18),inset 0 1px 0 #fff}
.lottery-cinematic-skip:hover .lottery-skip-icon{transform:translateX(3px)}
.lottery-cinematic-skip:active{transform:translateY(0) scale(.97);box-shadow:0 6px 16px rgba(24,83,99,.16)}
.lottery-cinematic-skip:focus-visible{outline:2px solid rgba(19,184,207,.55);outline-offset:3px}
.lottery-cinematic-skip.is-used{opacity:.4;pointer-events:none;transform:none}
.lottery-cinematic-stage{position:relative;width:min(560px,calc(100vw - 32px));height:min(650px,calc(100vh - 60px));display:grid;place-items:center;overflow:hidden;border:1px solid #cfe8ee;border-radius:30px;background:radial-gradient(circle at 50% 34%,#ffffff,rgba(240,251,253,.98) 62%,rgba(228,247,250,.99));box-shadow:0 35px 90px rgba(24,83,99,.16),inset 0 0 0 1px rgba(255,255,255,.85)}
.lottery-aura{position:absolute;width:390px;height:390px;border-radius:50%;background:conic-gradient(from 30deg,transparent,var(--lottery-color),transparent 36%,var(--lottery-color),transparent 70%);filter:blur(30px);opacity:.18;animation:lottery-aura-spin 7s linear infinite}
.lottery-cinematic-stage:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--lottery-color) 16%,transparent),transparent 68%);filter:blur(8px);opacity:.6}
.lottery-deck{position:relative;z-index:4;width:270px;height:360px;display:grid;place-items:center;perspective:1200px}
.lottery-deck-shadow{position:absolute;bottom:4px;width:190px;height:28px;border-radius:50%;background:rgba(39,105,122,.16);filter:blur(9px);transform:scale(.82)}
.lottery-card{position:relative;width:250px;height:340px;transform-style:preserve-3d;will-change:transform;animation:none}
.lottery-card.shuffling{animation:lottery-card-shuffle .52s linear infinite}
.lottery-card.landing{animation:lottery-card-land .84s cubic-bezier(.18,.89,.32,1.12) forwards}
.lottery-card.revealed{animation:lottery-card-reveal .55s ease forwards}
.lottery-card-face{position:absolute;inset:0;display:grid;place-content:center;padding:26px;text-align:center;border-radius:24px;backface-visibility:hidden;overflow:hidden}
.lottery-card-front{border:1px solid color-mix(in srgb,var(--card-color,var(--lottery-color)) 48%,#d6eef2);background:radial-gradient(circle at 50% 20%,color-mix(in srgb,var(--card-color,var(--lottery-color)) 9%,#fff),#fff 48%),linear-gradient(160deg,#ffffff,#eff9fb);box-shadow:0 24px 60px rgba(24,83,99,.16),0 0 34px color-mix(in srgb,var(--card-color,var(--lottery-color)) 16%,transparent),inset 0 1px 0 #fff}
.lottery-card-front:after{content:"";position:absolute;inset:0;background:linear-gradient(112deg,transparent 30%,rgba(19,184,207,.12) 48%,transparent 66%);transform:translateX(-120%);animation:lottery-card-sheen 2.2s ease-in-out infinite}
.lottery-card-back{transform:rotateY(180deg);border:1px solid #c9e4ea;background:linear-gradient(145deg,#fbfeff,#e5f5f8);box-shadow:0 24px 60px rgba(24,83,99,.16),inset 0 0 0 1px rgba(255,255,255,.8)}
.lottery-card-back:before{content:"";position:absolute;inset:14px;border:1px solid #d8edf1;border-radius:17px}
.lottery-card-back span{color:#7fb3bf;font-size:74px;font-weight:900;text-shadow:0 0 22px rgba(111,223,255,.4)}
.lottery-card-rarity{display:block;color:var(--card-color,var(--lottery-color));font-size:10px;font-weight:850;letter-spacing:.3em;text-transform:uppercase;text-shadow:0 0 14px color-mix(in srgb,var(--card-color,var(--lottery-color)) 58%,transparent)}
.lottery-card-name{display:block;margin-top:14px;color:#17343c;font-size:24px;font-weight:880;line-height:1.2;text-shadow:0 2px 20px color-mix(in srgb,var(--card-color,var(--lottery-color)) 22%,transparent)}
.lottery-card-copy{display:block;margin-top:12px;color:#6f8b94;font-size:11px}
.lottery-sparks{position:absolute;inset:0;z-index:3;pointer-events:none}
.lottery-sparks i{position:absolute;left:50%;top:48%;width:7px;height:7px;border-radius:50%;opacity:0;box-shadow:0 0 14px currentColor;transform:translate(-50%,-50%)}
.lottery-sparks.show i{animation:lottery-spark-fly .9s cubic-bezier(.16,.84,.44,1) forwards;animation-delay:var(--delay,0s)}
.lottery-cinematic-status{position:absolute;bottom:54px;z-index:5;color:#6f8b94;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.lottery-cinematic.rarity-mythic .lottery-cinematic-stage{box-shadow:0 35px 90px rgba(24,83,99,.16),0 0 70px rgba(239,63,85,.13),inset 0 0 0 1px rgba(255,255,255,.85)}
.lottery-cinematic.rarity-legendary .lottery-cinematic-stage{box-shadow:0 35px 90px rgba(24,83,99,.16),0 0 70px rgba(217,119,6,.1),inset 0 0 0 1px rgba(255,255,255,.85)}
@keyframes lottery-aura-spin{to{transform:rotate(360deg)}}
@keyframes lottery-card-shuffle{to{transform:rotateY(360deg)}}
@keyframes lottery-card-land{0%{transform:rotateY(180deg) scale(.96)}70%{transform:rotateY(372deg) scale(1.06)}100%{transform:rotateY(360deg) scale(1)}}
@keyframes lottery-card-reveal{0%{transform:rotateY(360deg) scale(1)}100%{transform:rotateY(360deg) scale(1.045)}}
@keyframes lottery-card-sheen{0%,42%{transform:translateX(-120%)}70%,100%{transform:translateX(120%)}}
@keyframes lottery-spark-fly{0%{transform:translate(-50%,-50%) scale(1);opacity:1}80%{opacity:.7}100%{transform:translate(calc(-50% + var(--dx,0px)),calc(-50% + var(--dy,0px))) scale(0);opacity:0}}

.weapon-mastery-summary{margin:0 0 14px;padding:15px 17px;border:1px solid #d8edf0;border-radius:11px;background:linear-gradient(135deg,#f3fcfd,#eaf7f9)}.weapon-mastery-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.weapon-mastery-head strong{color:#16414a;font-size:13px}.weapon-mastery-head span{color:#5e7f86;font-size:11px;font-variant-numeric:tabular-nums}.weapon-mastery-bar{height:8px;margin-top:11px;overflow:hidden;border-radius:999px;background:#dcebef}.weapon-mastery-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#13b8cf,#57d3e2)}.effect-name-list{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.effect-name-option{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 16px;border:1px solid #d9e3e6;border-radius:999px;background:#fff;color:#53636c;font-size:11px;font-weight:700;cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease,transform .18s ease}.effect-name-option:hover{border-color:#13b8cf;color:#078fa3;transform:translateY(-1px)}.effect-name-option.selected{border-color:#13b8cf;background:#eaf9fb;color:#078fa3;box-shadow:0 0 0 2px rgba(19,184,207,.08)}.effect-name-option.equipped{border-color:#0aa98b;background:#eafaf4;color:#087f68}
.weapon-mastery-summary{margin:0 0 14px;padding:15px 17px;border:1px solid #d8edf0;border-radius:11px;background:linear-gradient(135deg,#f3fcfd,#eaf7f9)}.weapon-mastery-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.weapon-mastery-head strong{color:#16414a;font-size:13px}.weapon-mastery-head span{color:#5e7f86;font-size:11px;font-variant-numeric:tabular-nums}.weapon-mastery-bar{height:8px;margin-top:11px;overflow:hidden;border-radius:999px;background:#dcebef}.weapon-mastery-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#13b8cf,#57d3e2)}.effect-name-list{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.effect-name-option{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 16px;border:1px solid #d9e3e6;border-radius:999px;background:#fff;color:#53636c;font-size:11px;font-weight:700;cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease,transform .18s ease}.effect-name-option:hover{border-color:#13b8cf;color:#078fa3;transform:translateY(-1px)}.effect-name-option.selected{border-color:#13b8cf;background:#eaf9fb;color:#078fa3;box-shadow:0 0 0 2px rgba(19,184,207,.08)}.effect-name-option.equipped{border-color:#0aa98b;background:#eafaf4;color:#087f68}

.reward-item.effect-cyan_name .reward-item-preview{background:linear-gradient(145deg,#102b34,#111d26)}.reward-item.effect-cyan_name .reward-item-preview:before{width:122px;height:45px;border:1px solid #20d9ef;border-radius:8px;background:transparent;box-shadow:0 0 18px rgba(32,217,239,.5)}.reward-item.effect-cyan_name .reward-item-preview:after{width:82px;background:#bffaff;box-shadow:0 0 12px #20d9ef}
.reward-item.effect-basic_gold .reward-item-preview{background:linear-gradient(145deg,#382b16,#111d26)}.reward-item.effect-basic_gold .reward-item-preview:before{width:122px;height:45px;border:1px solid #e4b85f;border-radius:8px;background:transparent;box-shadow:0 0 18px rgba(228,184,95,.5)}.reward-item.effect-basic_gold .reward-item-preview:after{width:82px;background:#fff0be;box-shadow:0 0 12px #e4b85f}
.reward-item.effect-red_name .reward-item-preview{background:linear-gradient(145deg,#3a1b28,#111d26)}.reward-item.effect-red_name .reward-item-preview:before{width:122px;height:45px;border:1px solid #f05d68;border-radius:8px;background:transparent;box-shadow:0 0 18px rgba(240,93,104,.5)}.reward-item.effect-red_name .reward-item-preview:after{width:82px;background:#ffd0d4;box-shadow:0 0 12px #f05d68}
.reward-item.effect-pink_name .reward-item-preview{background:linear-gradient(145deg,#3a1e38,#111d26)}.reward-item.effect-pink_name .reward-item-preview:before{width:122px;height:45px;border:1px solid #ef83c6;border-radius:8px;background:transparent;box-shadow:0 0 18px rgba(239,131,198,.5)}.reward-item.effect-pink_name .reward-item-preview:after{width:82px;background:#ffe0f4;box-shadow:0 0 12px #ef83c6}
.reward-item.effect-spectrum_name .reward-item-preview{background:linear-gradient(145deg,#202942,#111d26)}.reward-item.effect-spectrum_name .reward-item-preview:before{width:122px;height:45px;border:1px solid #8eb7ff;border-radius:8px;background:linear-gradient(90deg,#ff4d6d,#ffcb4d,#4de1b5,#5d8dff,#cf68ff);background-size:240% 100%;box-shadow:0 0 18px rgba(142,183,255,.5);animation:effect7-card-spectrum 4s linear infinite}.reward-item.effect-spectrum_name .reward-item-preview:after{width:82px;background:#fff;box-shadow:0 0 12px #8eb7ff}
.reward-item.effect-electric_arc .reward-item-preview{background:linear-gradient(145deg,#102b42,#111d26);background-image:url('/assets/effects/spark1.png'),linear-gradient(145deg,#102b42,#111d26);background-size:12px,auto;background-position:82% 22%,0 0}.reward-item.effect-electric_arc .reward-item-preview:before{width:122px;height:45px;border:1px solid #8ceeff;border-radius:8px;background:transparent;clip-path:polygon(0 28%,10% 41%,18% 16%,31% 36%,43% 10%,57% 34%,70% 8%,83% 37%,100% 24%,100% 76%,84% 64%,71% 92%,58% 70%,44% 94%,31% 66%,18% 89%,9% 63%,0 77%);box-shadow:0 0 20px rgba(140,238,255,.75);animation:effect7-card-arc 1.1s steps(2,end) infinite}.reward-item.effect-electric_arc .reward-item-preview:after{width:90px;background:#efffff;box-shadow:0 0 13px 2px #8ceeff}
.reward-item.effect-sakura_fall .reward-item-preview{background-image:url('/assets/effects/sakura.png'),url('/assets/effects/sakura.png'),linear-gradient(145deg,#3b2035,#111d26);background-size:19px,12px,auto;background-position:78% -18%,94% 14%,0 0}.reward-item.effect-sakura_fall .reward-item-preview:before{width:13px;height:13px;background:url('/assets/effects/sakura.png') center/contain no-repeat;box-shadow:0 0 8px #ff9fca;animation:effect7-card-petal 3.4s linear infinite}.reward-item.effect-sakura_fall .reward-item-preview:after{width:82px;background:#fff0f7;box-shadow:0 0 12px #ff9fca}
.reward-item.effect-meteor_shower .reward-item-preview{background-image:url('/assets/effects/spark1.png'),url('/assets/effects/snowflake1.png'),linear-gradient(145deg,#282247,#111d26);background-size:13px,10px,auto;background-position:84% -15%,96% 19%,0 0}.reward-item.effect-meteor_shower .reward-item-preview:before{width:2px;height:38px;background:linear-gradient(#fff,#c9c6ff,transparent);box-shadow:0 0 8px #c9c6ff;transform:rotate(24deg);animation:effect7-card-meteor 1.7s linear infinite}.reward-item.effect-meteor_shower .reward-item-preview:after{width:82px;background:#fff;box-shadow:0 0 12px #c9c6ff}
.reward-item.effect-rgb_offset .reward-item-preview{background:linear-gradient(145deg,#1e2935,#111d26)}.reward-item.effect-rgb_offset .reward-item-preview:before{width:122px;height:45px;border:1px solid #fff;border-radius:8px;background:linear-gradient(90deg,#ff3b75 0 32%,#fff 32% 68%,#26e6ff 68%);background-size:220% 100%;box-shadow:-4px 0 #ff3b75,4px 0 #26e6ff;animation:effect7-card-rgb 1.5s steps(2,end) infinite}.reward-item.effect-rgb_offset .reward-item-preview:after{width:82px;background:#fff;box-shadow:0 0 12px #ff75cf}
.reward-item.effect-rainbow_field .reward-item-preview{background:linear-gradient(105deg,#ff1744,#ff8a00,#ffe600,#00e676,#00b0ff,#7c4dff,#ff1744);background-size:300% 100%;animation:effect7-card-rainbow 4s linear infinite}.reward-item.effect-rainbow_field .reward-item-preview:before{width:122px;height:45px;border:1px solid rgba(255,255,255,.86);border-radius:8px;background:rgba(255,255,255,.06);box-shadow:0 0 18px rgba(255,255,255,.6)}.reward-item.effect-rainbow_field .reward-item-preview:after{width:82px;background:#fff;box-shadow:0 0 14px #fff}
@keyframes effect7-card-spectrum{to{background-position:240% 0}}@keyframes effect7-card-arc{50%{filter:brightness(1.8);transform:translateX(1px)}}@keyframes effect7-card-petal{to{transform:translate(14px,96px) rotate(220deg);opacity:0}}@keyframes effect7-card-meteor{to{transform:translate(-22px,52px) rotate(24deg);opacity:0}}@keyframes effect7-card-rgb{50%{filter:hue-rotate(28deg);transform:translateX(2px)}}@keyframes effect7-card-rainbow{to{background-position:300% 0}}
.reward-item.effect-preview .reward-item-preview{isolation:isolate;contain:paint;overflow:hidden;clip-path:inset(0);background-color:#111d26}
.reward-item.effect-preview .reward-item-preview:before,.reward-item.effect-preview .reward-item-preview:after{z-index:2}
@keyframes effect6-card-comet{to{transform:rotate(348deg)}}
@keyframes effect6-card-scan{0%,100%{transform:translateY(-17px);opacity:.35}50%{transform:translateY(20px);opacity:1}}
@keyframes effect6-card-trace{50%{transform:skewX(-15deg) translateX(9px);opacity:.7}}
@keyframes effect6-card-crest{50%{transform:scale(1.08) rotate(7deg);opacity:.8}}
@keyframes effect6-card-lattice{to{transform:rotate(405deg)}}
@keyframes effect6-card-counter{to{transform:rotate(-360deg)}}
@keyframes effect6-card-impact{0%{transform:scale(.55);opacity:1}100%{transform:scale(1.95);opacity:0}}

/* The live shop preview uses the same six contained effects as the real board. */
.leaderboard-preview-row.is-you{isolation:isolate;contain:paint;overflow:hidden;clip-path:inset(0)}
.leaderboard-preview-row .leaderboard-effect-art{z-index:0;contain:paint;overflow:hidden}
.leaderboard-preview-row>span,.leaderboard-preview-row>strong,.leaderboard-preview-row>b{z-index:2}
.leaderboard-preview-row.effect-cyan_name strong{color:#bffaff;text-shadow:0 0 9px rgba(32,217,239,.7)}
.leaderboard-preview-row.effect-basic_gold strong{color:#ffedbd;text-shadow:0 0 9px rgba(228,184,95,.7)}
.leaderboard-preview-row.effect-red_name strong{color:#ffd0d4;text-shadow:0 0 9px rgba(240,93,104,.7)}
.leaderboard-preview-row.effect-pink_name strong{color:#ffe0f4;text-shadow:0 0 9px rgba(239,131,198,.7)}
.leaderboard-preview-row.effect-spectrum_name strong{background:linear-gradient(90deg,#ff4d6d,#ffcb4d,#4de1b5,#5d8dff,#cf68ff,#ff4d6d);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:effect7-spectrum 4s linear infinite}
.leaderboard-preview-row.effect-cyan_name.is-you:before,.leaderboard-preview-row.effect-basic_gold.is-you:before,.leaderboard-preview-row.effect-red_name.is-you:before,.leaderboard-preview-row.effect-pink_name.is-you:before,.leaderboard-preview-row.effect-spectrum_name.is-you:before{display:none}
.leaderboard-preview-row.effect-electric_arc .leaderboard-effect-art{background:linear-gradient(105deg,transparent 34%,#fff 48%,#8ceeff 51%,transparent 65%);transform:translateX(-100%);animation:effect7-preview-arc 2.7s ease-in-out infinite}.leaderboard-preview-row.effect-electric_arc strong{color:#efffff;text-shadow:0 0 9px rgba(140,238,255,.8)}
.leaderboard-preview-row.effect-sakura_fall strong:before{content:"";display:inline-block;width:13px;height:13px;margin-right:6px;background:url('/assets/effects/sakura.png') center/contain no-repeat;vertical-align:-2px;filter:drop-shadow(0 0 4px #ff9fca)}.leaderboard-preview-row.effect-sakura_fall .leaderboard-effect-art{background-image:url('/assets/effects/sakura.png'),url('/assets/effects/sakura.png');background-size:10px,7px;background-position:89% -12%,97% 18%;animation:effect7-preview-petal 4s linear infinite}.leaderboard-preview-row.effect-sakura_fall strong{color:#ffe0f1;text-shadow:0 0 9px rgba(255,159,202,.75)}
.leaderboard-preview-row.effect-meteor_shower .leaderboard-effect-art{background-image:url('/assets/effects/spark1.png'),url('/assets/effects/snowflake1.png');background-size:10px,8px;background-position:88% -12%,97% 20%;animation:effect7-preview-meteor 3.5s linear infinite}.leaderboard-preview-row.effect-meteor_shower strong{color:#e5e2ff;text-shadow:0 0 9px rgba(201,198,255,.8)}
.leaderboard-preview-row.effect-rgb_offset strong{color:#fff;text-shadow:-2px 0 #ff3b75,2px 0 #26e6ff;animation:effect7-rgb .8s steps(2,end) infinite}
.leaderboard-preview-row.effect-rainbow_field .leaderboard-effect-art{background:linear-gradient(105deg,#ff1744,#ff8a00,#ffe600,#00e676,#00b0ff,#7c4dff,#ff1744);background-size:300% 100%;opacity:.8;animation:effect7-rainbow 4s linear infinite}.leaderboard-preview-row.effect-rainbow_field strong{color:#fff;text-shadow:0 0 7px #000,0 0 10px rgba(255,255,255,.7)}
@keyframes effect7-spectrum{to{background-position:240% 0}}@keyframes effect7-preview-arc{50%,100%{transform:translateX(100%)}}@keyframes effect7-preview-petal{to{background-position:84% 110%,96% 125%}}@keyframes effect7-preview-meteor{to{background-position:82% 112%,96% 126%}}@keyframes effect7-rgb{50%{text-shadow:-4px 0 #ff3b75,4px 0 #26e6ff}}@keyframes effect7-rainbow{to{background-position:300% 0}}

/* Keep the live shop preview in sync with the real leaderboard effects. */
.leaderboard-preview-row.effect-sakura_fall .leaderboard-effect-art{background:none!important}
.leaderboard-preview-row.effect-sakura_fall .fx-petal{top:2px;left:var(--petal-x,88%);width:6px;height:9px;background:#ffafd0!important;border:1px solid rgba(255,235,245,.72);border-radius:72% 28% 68% 32%;filter:drop-shadow(0 0 3px rgba(255,125,185,.95));animation:effect9-petal-fall var(--petal-speed,2.2s) linear var(--petal-delay,0s) infinite!important}
.leaderboard-preview-row.effect-sakura_fall .fx-petal-1{--petal-x:72%;--petal-speed:1.9s;--petal-delay:-.2s;--petal-drift:-11px}.leaderboard-preview-row.effect-sakura_fall .fx-petal-2{--petal-x:81%;--petal-speed:2.5s;--petal-delay:-1.1s;--petal-drift:8px}.leaderboard-preview-row.effect-sakura_fall .fx-petal-3{--petal-x:88%;--petal-speed:1.7s;--petal-delay:-.7s;--petal-drift:-5px}.leaderboard-preview-row.effect-sakura_fall .fx-petal-4{--petal-x:95%;--petal-speed:2.8s;--petal-delay:-1.8s;--petal-drift:10px}.leaderboard-preview-row.effect-sakura_fall .fx-petal-5{--petal-x:77%;--petal-speed:2.2s;--petal-delay:-1.5s;--petal-drift:-7px}.leaderboard-preview-row.effect-sakura_fall .fx-petal-6{--petal-x:92%;--petal-speed:2s;--petal-delay:-.4s;--petal-drift:6px}.leaderboard-preview-row.effect-sakura_fall .fx-petal-7{--petal-x:98%;--petal-speed:3s;--petal-delay:-2.2s;--petal-drift:-8px}.leaderboard-preview-row.effect-sakura_fall .fx-petal-8{--petal-x:85%;--petal-speed:2.4s;--petal-delay:-1.9s;--petal-drift:5px}.leaderboard-preview-row.effect-sakura_fall .fx-petal-9{--petal-x:74%;--petal-speed:2.7s;--petal-delay:-.9s;--petal-drift:9px}
.leaderboard-preview-row.effect-meteor_shower .leaderboard-effect-art{background:radial-gradient(circle at 74% 45%,rgba(104,119,190,.2),transparent 48%),linear-gradient(135deg,#111934,#080d1b)!important}
.leaderboard-preview-row.effect-meteor_shower .fx-star{left:var(--star-x);top:var(--star-y);width:var(--star-size);height:var(--star-size);border-radius:50%;background:#fff;box-shadow:0 0 3px 1px #c9c6ff,0 0 8px rgba(150,150,255,.65);animation:effect9-star-twinkle var(--star-speed,2.2s) ease-in-out var(--star-delay,0s) infinite}.leaderboard-preview-row.effect-meteor_shower .fx-star:nth-child(3n){background:#c9eaff}.leaderboard-preview-row.effect-meteor_shower .fx-star:nth-child(4n){background:#fff1c9}
.leaderboard-preview-row.effect-sakura_fall .fx-petal,.leaderboard-preview-row.effect-meteor_shower .fx-star{animation:none!important}
.leaderboard-preview-row.effect-rainbow_field .leaderboard-effect-art{background:transparent!important;overflow:hidden}.leaderboard-preview-row.effect-rainbow_field .leaderboard-effect-art:before{content:"";position:absolute;inset:-75% -45%;background:conic-gradient(from 120deg,#ff1744,#ff8a00,#ffe600,#00e676,#00b0ff,#7c4dff,#ff1744);opacity:.92;filter:saturate(1.45);animation:effect9-rainbow-surge 2.4s ease-in-out infinite alternate}

/* Preview particle nodes mirror the live leaderboard and never tile. */
.leaderboard-preview-row .leaderboard-effect-art{background:none!important;will-change:opacity;transform:translateZ(0)}.leaderboard-preview-row .leaderboard-effect-art i{position:absolute;display:block;pointer-events:none;will-change:transform,opacity;backface-visibility:hidden}
.leaderboard-preview-row.effect-electric_arc .fx-arc{left:1%;right:1%;height:8px;border:1px solid #bdf7ff;border-radius:45%;box-shadow:0 0 6px #8ceeff;clip-path:polygon(0 45%,12% 12%,23% 65%,35% 18%,47% 70%,60% 14%,74% 67%,87% 20%,100% 48%,100% 58%,87% 36%,74% 82%,60% 34%,47% 86%,35% 36%,23% 82%,12% 35%,0 65%);opacity:.86}.leaderboard-preview-row.effect-electric_arc .fx-arc-a{top:2px;animation:effect8-arc-flicker .6s steps(2,end) infinite}.leaderboard-preview-row.effect-electric_arc .fx-arc-b{bottom:2px;transform:scaleX(-1);animation:effect8-arc-flicker .8s steps(2,end) -.22s infinite}.leaderboard-preview-row.effect-electric_arc .fx-arc-c{top:50%;transform:translateY(-50%) scaleX(.84);opacity:.5;animation:effect8-arc-flicker .7s steps(2,end) -.42s infinite}.leaderboard-preview-row.effect-electric_arc .leaderboard-effect-art:after{content:"";position:absolute;inset:2px;border:1px solid rgba(140,238,255,.42);border-radius:4px;box-shadow:0 0 8px rgba(140,238,255,.52)}
.leaderboard-preview-row.effect-sakura_fall .fx-petal{width:8px;height:8px;background:url('/assets/effects/sakura.png') center/contain no-repeat;top:-12px;left:var(--petal-x,88%);filter:drop-shadow(0 0 3px rgba(255,159,202,.8));animation:effect8-petal-fall var(--petal-speed,2.7s) linear var(--petal-delay,0s) infinite}.leaderboard-preview-row.effect-sakura_fall .fx-petal-1{--petal-x:82%;--petal-speed:2.7s;--petal-delay:-.2s;--petal-drift:-8px}.leaderboard-preview-row.effect-sakura_fall .fx-petal-2{--petal-x:91%;--petal-speed:3.4s;--petal-delay:-1.2s;--petal-drift:7px;transform:scale(1.1)}.leaderboard-preview-row.effect-sakura_fall .fx-petal-3{--petal-x:97%;--petal-speed:2.5s;--petal-delay:-1.9s;--petal-drift:-5px;transform:scale(.7)}.leaderboard-preview-row.effect-sakura_fall .fx-petal-4{--petal-x:87%;--petal-speed:3.8s;--petal-delay:-.8s;--petal-drift:9px}.leaderboard-preview-row.effect-sakura_fall .fx-petal-5{--petal-x:95%;--petal-speed:3.1s;--petal-delay:-2.2s;--petal-drift:-6px;transform:scale(.62)}.leaderboard-preview-row.effect-sakura_fall .fx-petal-6{--petal-x:89%;--petal-speed:2.9s;--petal-delay:-1.5s;--petal-drift:5px}.leaderboard-preview-row.effect-sakura_fall .fx-petal-7{--petal-x:98%;--petal-speed:4s;--petal-delay:-3s;--petal-drift:-7px;transform:scale(.75)}.leaderboard-preview-row.effect-sakura_fall .fx-petal-8{--petal-x:93%;--petal-speed:2.6s;--petal-delay:-.4s;--petal-drift:6px;transform:scale(.55)}
.leaderboard-preview-row.effect-meteor_shower .fx-meteor{top:-15px;left:var(--meteor-x,93%);width:2px;height:38px;background:linear-gradient(#fff,#c9c6ff,transparent);box-shadow:0 0 5px #c9c6ff;transform:rotate(33deg);transform-origin:top center;animation:effect8-meteor-fall var(--meteor-speed,1s) linear var(--meteor-delay,0s) infinite}.leaderboard-preview-row.effect-meteor_shower .fx-meteor:after{content:"";position:absolute;top:0;left:-2px;width:6px;height:16px;background:linear-gradient(#fff,transparent);filter:blur(2px)}.leaderboard-preview-row.effect-meteor_shower .fx-meteor-1{--meteor-x:86%;--meteor-speed:.85s;--meteor-delay:-.1s}.leaderboard-preview-row.effect-meteor_shower .fx-meteor-2{--meteor-x:92%;--meteor-speed:1.05s;--meteor-delay:-.62s;transform:rotate(33deg) scale(1.15)}.leaderboard-preview-row.effect-meteor_shower .fx-meteor-3{--meteor-x:98%;--meteor-speed:.78s;--meteor-delay:-.37s;transform:rotate(33deg) scale(.68)}.leaderboard-preview-row.effect-meteor_shower .fx-meteor-4{--meteor-x:89%;--meteor-speed:1.2s;--meteor-delay:-.9s;transform:rotate(33deg) scale(.9)}.leaderboard-preview-row.effect-meteor_shower .fx-meteor-5{--meteor-x:96%;--meteor-speed:.92s;--meteor-delay:-.28s;transform:rotate(33deg) scale(.72)}.leaderboard-preview-row.effect-meteor_shower .fx-meteor-6{--meteor-x:84%;--meteor-speed:1.1s;--meteor-delay:-.76s;transform:rotate(33deg) scale(.58)}
.leaderboard-preview-row.effect-sakura_fall .fx-petal{top:2px!important;width:6px!important;height:9px!important;background:#ffafd0!important;border:1px solid rgba(255,235,245,.72);border-radius:72% 28% 68% 32%;animation:effect9-petal-fall var(--petal-speed,2.2s) linear var(--petal-delay,0s) infinite!important}
.leaderboard-preview-row.effect-meteor_shower .leaderboard-effect-art{background:radial-gradient(circle at 74% 45%,rgba(104,119,190,.2),transparent 48%),linear-gradient(135deg,#111934,#080d1b)!important}.leaderboard-preview-row.effect-meteor_shower .fx-star{left:var(--star-x);top:var(--star-y);width:var(--star-size);height:var(--star-size);border-radius:50%;background:#fff;box-shadow:0 0 3px 1px #c9c6ff,0 0 8px rgba(150,150,255,.65);animation:effect9-star-twinkle var(--star-speed,2.2s) ease-in-out var(--star-delay,0s) infinite}.leaderboard-preview-row.effect-meteor_shower .fx-star:nth-child(3n){background:#c9eaff}.leaderboard-preview-row.effect-meteor_shower .fx-star:nth-child(4n){background:#fff1c9}
.leaderboard-preview-row.effect-rainbow_field .leaderboard-effect-art{background:transparent!important;overflow:hidden}.leaderboard-preview-row.effect-rainbow_field .leaderboard-effect-art:before{content:"";position:absolute;inset:-75% -45%;background:conic-gradient(from 120deg,#ff1744,#ff8a00,#ffe600,#00e676,#00b0ff,#7c4dff,#ff1744);opacity:.92;filter:saturate(1.45);animation:effect9-rainbow-surge 2.4s ease-in-out infinite alternate}
@keyframes effect9-petal-fall{0%{transform:translate3d(0,-8px,0) rotate(0deg);opacity:0}10%{opacity:1}55%{transform:translate3d(var(--petal-drift,-8px),22px,0) rotate(150deg);opacity:1}100%{transform:translate3d(calc(var(--petal-drift,-8px) + 8px),58px,0) rotate(310deg);opacity:0}}@keyframes effect9-star-twinkle{0%,100%{opacity:0;transform:scale(.7)}35%{opacity:.95;transform:scale(1.15)}58%{opacity:.45;transform:scale(.86)}}@keyframes effect9-rainbow-surge{to{transform:translate3d(24%,8%,0) rotate(18deg) scale(1.08)}}
.leaderboard-preview-row.effect-sakura_fall .fx-petal,.leaderboard-preview-row.effect-meteor_shower .fx-star{animation:none!important}
