:root{--bg:#0b0e14;--surface:#151a23;--raised:#1c222d;--hairline:#ffffff14;--hairline-strong:#ffffff29;--text:#edf0f5;--text-sub:#a0a8b4;--text-dim:#6b7280;--accent:#e5c07b;--accent-soft:#e5c07b29;--tier-top:#f5b301;--tier-s:#a277ff;--tier-a:#4c8dff;--tier-b:#2fd3a5;--tier-c:#8a93a0;--tier-d:#5a626e;--win:#2fd3a5;--loss:#ff6b6b;--radius:14px;--radius-sm:9px;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", "Consolas", monospace}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0}body{background-image:radial-gradient(1200px 600px at 20% -10%,#4c8dff14,#0000 60%),radial-gradient(1000px 500px at 85% -5%,#a277ff12,#0000 55%);background-attachment:fixed;min-height:100vh}button{cursor:pointer;font-family:inherit}img{max-width:100%;display:block}a{color:inherit}.tabnums{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono)}[data-tier=TOP]{--tier:var(--tier-top);--glow:.85}[data-tier=S]{--tier:var(--tier-s);--glow:.6}[data-tier=A]{--tier:var(--tier-a);--glow:.45}[data-tier=B]{--tier:var(--tier-b);--glow:.32}[data-tier=C]{--tier:var(--tier-c);--glow:.18}[data-tier=D]{--tier:var(--tier-d);--glow:.1}.slab{background:linear-gradient(180deg, var(--raised), var(--surface));border:1px solid var(--hairline);border-radius:var(--radius);box-shadow:0 1px 0 #ffffff0a inset, 0 14px 30px -18px #000000e6, 0 0 calc(26px * var(--glow,.2)) rgba(from var(--tier) r g b / calc(.5 * var(--glow,.2)));border-color:rgba(from var(--tier) r g b / calc(.35 + .4 * var(--glow,.2)));flex-direction:column;transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s,border-color .22s;display:flex;position:relative;overflow:hidden}.slab.interactive{cursor:pointer}.slab.interactive:before{content:"";z-index:2;pointer-events:none;border-radius:inherit;opacity:0;-webkit-mask-composite:xor;background:linear-gradient(135deg,#ffdf5d 0%,#ff6b6b 17%,#ff4fd8 34%,#7b61ff 51%,#2f7cff 68%,#2fd3a5 84%,#ffdf5d 100%);padding:1.5px;transition:opacity .18s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.slab.interactive:hover{box-shadow:0 1px 0 #ffffff0f inset, 0 24px 44px -20px #000000f2, 0 0 18px #ffdf5d47, 0 0 22px #ff4fd838, 0 0 28px #2f7cff3d, 0 0 calc(40px * var(--glow,.3)) rgba(from var(--tier) r g b / calc(.7 * var(--glow,.3)));border-color:var(--tier);transform:translateY(-6px)}.slab.interactive:hover:before,.slab.interactive:focus-visible:before{opacity:1}.slab.selected{border-color:var(--tier);box-shadow:0 0 0 2px var(--tier), 0 18px 36px -18px #000000e6}.slab.defeated{filter:grayscale(.72)brightness(.6);opacity:.55}.slab-tierbar{background:linear-gradient(90deg, transparent, var(--tier), transparent);height:4px;box-shadow:0 0 10px rgba(from var(--tier) r g b / .9)}.slab-label{justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 10px 6px;display:flex}.slab-name{letter-spacing:.02em;color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.slab-cert{color:var(--text-dim);margin-top:3px;font-size:9.5px}.slab-grade{text-align:center;background:rgba(from var(--tier) r g b / .14);border:1px solid rgba(from var(--tier) r g b / .5);min-width:34px;color:var(--tier);border-radius:8px;flex:none;padding:3px 6px;font-size:15px;font-weight:800;line-height:1}.slab-grade small{color:var(--tier);letter-spacing:.06em;text-transform:uppercase;margin-top:2px;font-size:7px;font-weight:700;display:block}.slab-art{border-radius:var(--radius-sm);aspect-ratio:2.5/3.5;border:1px solid var(--hairline);background:#0d1016;margin:0 8px;position:relative;overflow:hidden}.slab-art img{object-fit:cover;width:100%;height:100%}.slab-art .specular{pointer-events:none;mix-blend-mode:screen;background:linear-gradient(115deg,#ffffff24 0%,#fff0 30% 70%,#ffffff0d 100%);position:absolute;inset:0}.slab-art .noart{text-align:center;color:var(--text-dim);place-items:center;padding:8px;font-size:10px;display:grid;position:absolute;inset:0}.slab-element{filter:drop-shadow(0 1px 3px #000c);font-size:15px;position:absolute;top:6px;left:6px}.slab-stats{grid-template-columns:repeat(3,1fr);gap:1px;margin-top:auto;padding:8px;display:grid}.slab-stat{text-align:center}.slab-stat .k{letter-spacing:.1em;color:var(--text-dim);font-size:8px}.slab-stat .v{color:var(--text);font-size:15px;font-weight:800}.slab-stat.hot{background:#e5c07b1a;border-radius:8px;transition:transform .16s,background .16s;transform:translateY(-2px)scale(1.08)}.slab-stat.hot .k{color:var(--accent)}.slab-stat.hot .v{color:var(--accent);text-shadow:0 0 14px #e5c07bc7}.slab-power{border-top:1px solid var(--hairline);background:#00000040;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.slab-power-score{align-items:baseline;gap:5px;min-width:52px;display:inline-flex}.slab-power .lbl{letter-spacing:.1em;color:var(--text-dim);font-size:8px}.slab-power .val{color:var(--accent);font-size:16px;font-weight:900}.slab-passport-button{background:var(--accent-soft);min-height:24px;color:var(--accent);white-space:nowrap;border:1px solid #e5c07b66;border-radius:7px;flex:1;justify-content:center;align-items:center;padding:4px 7px;font-size:10px;font-weight:800;line-height:1;display:inline-flex}.slab.interactive:hover .slab-passport-button{background:var(--accent);color:#1a1408}.slab.slab-battle{border-radius:16px}.slab.slab-battle .slab-label{display:none}.slab.slab-battle .slab-art{margin:10px 10px 0}.slab.slab-battle .slab-stat .k{font-size:9px}.slab.slab-battle .slab-stat .v{font-size:18px}.slab.slab-battle .slab-power{padding:8px 10px}.slab.slab-battle .slab-power .val{font-size:20px}.battle-topline{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.battle-side-label{color:var(--text-dim);letter-spacing:.16em;margin-bottom:6px;font-size:11px}.battle-round-title{color:var(--accent);letter-spacing:.16em;text-shadow:0 0 18px #e5c07b57;background:linear-gradient(#e5c07b2e,#4c8dff14);border:1px solid #e5c07b66;border-radius:999px;padding:7px 18px;font-size:18px;font-weight:950}.battle-arena{background:linear-gradient(112deg,#ffffff0b 0 1px,#0000 1px 18px),linear-gradient(68deg,#ffffff09 0 1px,#0000 1px 22px),radial-gradient(at 24% 52%,#e5c07b29,#0000 36%),radial-gradient(at 76% 52%,#4c8dff21,#0000 36%),linear-gradient(#ffffff08,#ffffff03);grid-template-columns:minmax(260px,330px) minmax(150px,220px) minmax(260px,330px);justify-content:center;align-items:center;gap:clamp(18px,4vw,48px);padding:28px;display:grid;position:relative;overflow:hidden}.battle-arena:before{content:"";filter:blur(8px);opacity:.78;pointer-events:none;background:radial-gradient(#e5c07b2e,#0000 70%);border-radius:50%;height:42px;position:absolute;bottom:9%;left:12%;right:12%}.battle-arena:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(90deg,#0000 0 18%,#ffffff0b 48%,#0000 82%),radial-gradient(#ffffff0d,#0000 62%);border-radius:24px;transition:opacity .2s;position:absolute;inset:12% 10%}.battle-arena[data-combat-active=true]:after{opacity:1}.battle-arena[data-combat-stat=atk]{background:linear-gradient(112deg,#ff6b4a14 0 1px,#0000 1px 18px),linear-gradient(68deg,#ffffff09 0 1px,#0000 1px 22px),radial-gradient(at 24% 52%,#ff6b4a33,#0000 38%),radial-gradient(at 76% 52%,#ff6b4a1f,#0000 38%),linear-gradient(#ffffff09,#ffffff03)}.battle-arena[data-combat-stat=def]{background:linear-gradient(112deg,#4c8dff14 0 1px,#0000 1px 18px),linear-gradient(68deg,#ffffff09 0 1px,#0000 1px 22px),radial-gradient(at 24% 52%,#4c8dff2e,#0000 38%),radial-gradient(at 76% 52%,#4c8dff33,#0000 38%),linear-gradient(#ffffff09,#ffffff03)}.battle-arena[data-combat-stat=aura]{background:linear-gradient(112deg,#a277ff14 0 1px,#0000 1px 18px),linear-gradient(68deg,#ffffff09 0 1px,#0000 1px 22px),radial-gradient(at 30% 52%,#a277ff2e,#0000 38%),radial-gradient(at 70% 52%,#2fd3a524,#0000 40%),linear-gradient(#ffffff09,#ffffff03)}.battle-card-wrap{width:min(100%,330px);transition:transform .28s,filter .28s;position:relative}.battle-card-wrap[data-active=true]{filter:saturate(1.12);transform:translateY(-8px)scale(1.04)}.battle-card-wrap[data-win=true]{z-index:3}.battle-role-chip{z-index:4;border:1px solid var(--hairline-strong);color:var(--accent);letter-spacing:.12em;white-space:nowrap;background:#0b0e14eb;border-radius:999px;padding:5px 12px;font-size:10px;font-weight:900;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.battle-card-wrap[data-active=true] .battle-role-chip{border-color:var(--accent);box-shadow:0 0 18px #e5c07b47}.battle-center{z-index:1;text-align:center;position:relative}.battle-clash-title{letter-spacing:.12em;color:var(--text);text-shadow:0 0 22px #4c8dff73;font-size:26px;font-weight:950}.battle-last-hit{color:var(--text-sub);background:#ffffff0d;border-radius:10px;margin-top:12px;padding:7px 10px;font-size:12px}.battle-fx-layer{z-index:2;pointer-events:auto;--fx-color:var(--accent);--fx-tier-color:var(--accent);position:absolute;inset:0;overflow:hidden}.battle-fx-layer:before{content:"";background:radial-gradient(ellipse, color-mix(in srgb, var(--fx-color) 20%, transparent), transparent 58%), linear-gradient(90deg, transparent, #ffffff1c, transparent);opacity:.62;pointer-events:none;border-radius:999px;position:absolute;inset:9% 12%}.battle-fx-stage{z-index:1;pointer-events:none;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--fx-color) 18%, transparent), transparent), radial-gradient(ellipse at 50% 50%, color-mix(in srgb, var(--fx-color) 18%, transparent), transparent 62%);filter:blur(1px);border-radius:28px;position:absolute;inset:7% 8%}.battle-fx-stage-atk{clip-path:polygon(0 42%,45% 30%,100% 48%,55% 62%,0 58%)}.battle-fx-stage-def{border:1px solid color-mix(in srgb, var(--fx-color) 35%, transparent)}.battle-fx-stage-aura{border-radius:50%}.battle-fx-label{z-index:4;border:1px solid color-mix(in srgb, var(--fx-color) 70%, transparent);color:var(--fx-color);letter-spacing:.15em;text-shadow:0 0 16px color-mix(in srgb, var(--fx-color) 65%, transparent);background:#0b0e14d1;border-radius:999px;padding:7px 14px;font-size:11px;font-weight:950;position:absolute;top:26%;left:50%;transform:translate(-50%)}.battle-fx-beam{z-index:5;transform-origin:50%;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--fx-color) 78%, white), #fff, var(--fx-color), transparent);width:50%;height:18px;filter:drop-shadow(0 0 14px var(--fx-color)) drop-shadow(0 0 30px color-mix(in srgb, var(--fx-color) 70%, transparent));pointer-events:none;border-radius:999px;position:absolute;top:47%;left:25%}.battle-fx-layer[data-attacker=opponent] .battle-fx-beam{background:linear-gradient(270deg, transparent, var(--fx-color), #fff, var(--fx-color), transparent)}.battle-fx-beam-atk{clip-path:polygon(0 43%,18% 22%,78% 0,100% 50%,78% 100%,18% 78%,0 57%);height:22px}.battle-fx-beam-atk:before,.battle-fx-beam-atk:after{content:"";filter:drop-shadow(0 0 8px #fff);background:#ffffffe6;height:3px;position:absolute;inset:42% -6%;transform:rotate(11deg)}.battle-fx-beam-atk:after{opacity:.68;transform:rotate(-9deg)}.battle-fx-beam-def{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--fx-color) 75%, white), transparent), repeating-linear-gradient(90deg, transparent 0 12px, #ffffffc7 13px 16px, transparent 17px 28px);height:20px}.battle-fx-aura{z-index:3;border:1px solid color-mix(in srgb, var(--fx-color) 75%, transparent);background:radial-gradient(circle, color-mix(in srgb, var(--fx-color) 22%, transparent), transparent 60%);width:260px;height:260px;filter:drop-shadow(0 0 24px var(--fx-color));border-radius:50%;margin:-130px 0 0 -130px;position:absolute;top:50%;left:50%}.battle-fx-aura span{border:1px solid color-mix(in srgb, var(--fx-color) 70%, transparent);border-radius:50%;position:absolute;inset:18%}.battle-fx-aura span:last-child{inset:34%}.battle-fx-shield{z-index:4;border:2px solid color-mix(in srgb, var(--fx-color) 78%, white);background:linear-gradient(135deg, color-mix(in srgb, var(--fx-color) 24%, transparent), #ffffff14);width:132px;height:190px;filter:drop-shadow(0 0 24px var(--fx-color));pointer-events:none;border-radius:48% 48% 42% 42%;position:absolute;top:34%}.battle-fx-shield:before,.battle-fx-shield:after{content:"";background:#ffffffb8;height:2px;position:absolute;top:18%;left:18%;right:18%;transform:rotate(28deg)}.battle-fx-shield:after{top:42%;transform:rotate(-22deg)}.battle-fx-impact{z-index:4;background:radial-gradient(circle, #fffffff2, color-mix(in srgb, var(--fx-color) 50%, transparent) 30%, transparent 68%);width:190px;height:190px;filter:drop-shadow(0 0 30px var(--fx-color));pointer-events:none;border-radius:50%;margin:-95px 0 0 -95px;position:absolute;top:50%;left:50%}.battle-fx-impact:before,.battle-fx-impact:after{content:"";border:1px solid color-mix(in srgb, var(--fx-color) 80%, white);border-radius:50%;position:absolute;inset:18%}.battle-fx-impact:after{inset:34%}.battle-fx-sparks{z-index:6;pointer-events:none;position:absolute;top:49%;left:50%}.battle-fx-sparks span{background:linear-gradient(90deg, transparent, #fff, var(--fx-color), transparent);width:54px;height:3px;filter:drop-shadow(0 0 10px var(--fx-color));border-radius:999px;margin-left:-27px;position:absolute}.battle-fx-burst{z-index:5;pointer-events:none;width:1px;height:1px;position:absolute;top:48%}.battle-fx-burst span{background:var(--fx-tier-color);width:7px;height:7px;box-shadow:0 0 12px var(--fx-tier-color);border-radius:50%;margin:-3px;position:absolute}.battle-fx-float{z-index:6;text-shadow:0 0 16px;pointer-events:none;background:#0b0e14d1;border:1px solid;border-radius:999px;padding:4px 10px;font-size:24px;font-weight:950;position:absolute;top:45%}.battle-fx-skip{z-index:7;color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;font-size:10px;position:absolute;bottom:10px;right:12px}.battle-stat-grid{grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px;max-width:660px;margin:0 auto;display:grid}.battle-stat-button{text-align:center;grid-template-rows:auto auto auto;place-items:center;gap:3px;min-height:86px;padding:10px 12px;display:grid}.battle-stat-button[data-win=true]{border-color:var(--win);background:#2fd3a514}.battle-stat-name{letter-spacing:.08em;font-size:13px;font-weight:950}.battle-stat-values{white-space:nowrap;align-items:baseline;gap:8px;font-size:15px;display:inline-flex}.battle-stat-values b{font-size:18px}.battle-stat-values span,.battle-stat-outcome{color:var(--text-dim);font-size:10px}.battle-effective-help{color:var(--text-dim);margin-top:4px;font-size:11px;line-height:1.35}.battle-effective-help [data-tone=boost],.battle-effective-score[data-tone=boost]{color:var(--win)}.battle-effective-help [data-tone=nerf],.battle-effective-score[data-tone=nerf]{color:var(--loss)}.battle-effective-score[data-tone=flat]{color:var(--text)}.battle-info-grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr);align-items:stretch;gap:14px;margin-top:18px;display:grid}.battle-log-panel,.battle-rules-panel{background:#151a23d1;padding:14px}.battle-panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.battle-panel-kicker{letter-spacing:.14em;color:var(--text-dim);font-size:10px}.battle-panel-head h3{margin:2px 0 0;font-size:15px}.battle-log-list{flex-direction:column;gap:7px;max-height:230px;padding-right:4px;display:flex;overflow-y:auto}.battle-log-row{border:1px solid var(--hairline);border-radius:var(--radius-sm);background:#ffffff09;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:10px;padding:10px 11px;display:grid}.battle-log-row[data-winner=player]{border-color:#2fd3a538}.battle-log-row[data-winner=opponent]{border-color:#ff6b6b38}.battle-log-index{width:24px;height:24px;color:var(--accent);background:#e5c07b21;border-radius:7px;place-items:center;font-size:11px;font-weight:900;display:grid}.battle-log-main{min-width:0}.battle-log-title{color:var(--text);justify-content:space-between;gap:8px;font-size:13px;font-weight:800;display:flex}.battle-log-win{color:var(--win)}.battle-log-loss{color:var(--loss)}.battle-log-score{color:var(--text-sub);flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;font-size:12px;display:flex}.battle-log-ko{color:var(--loss);background:#ff6b6b1f;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800}.battle-log-initiative{color:var(--accent);background:#e5c07b1a;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800}.battle-log-note{color:var(--text-dim);margin-top:5px;font-size:10px}.battle-rule-list{color:var(--text-sub);flex-direction:column;gap:9px;margin:0;padding-left:18px;font-size:12.5px;line-height:1.45;display:flex}.battle-rule-list b{color:var(--text)}@keyframes battleStrike{0%{transform:translateY(-8px)scale(1.04)}38%{transform:translateY(-14px)scale(1.08)}to{transform:translateY(-8px)scale(1.04)}}@media (prefers-reduced-motion:reduce){.battle-fx-layer:before,.battle-fx-beam,.battle-fx-aura,.battle-fx-shield,.battle-fx-impact,.battle-fx-burst{display:none}.slab-stat.hot{transform:none}}@media (max-width:900px){.battle-info-grid{grid-template-columns:1fr}}.passport-backdrop{z-index:40;background:#000000ad;animation:.2s fadeIn;position:fixed;inset:0}.passport-modal{z-index:41;border:1px solid var(--hairline-strong);border-radius:var(--radius-sm);background:#1b212c;flex-direction:column;width:min(66.666vw,980px);max-width:calc(100vw - 32px);max-height:min(84vh,820px);animation:.22s cubic-bezier(.2,.8,.2,1) passportPop;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 28px 80px -28px #000000f2,0 0 0 1px #e5c07b14}.passport-header{border-bottom:1px solid var(--hairline);background:#1b212c;flex:none;gap:14px;padding:18px;display:flex}.passport-body{grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);gap:18px;padding:18px;display:grid;overflow-y:auto}.passport-column{flex-direction:column;gap:18px;min-width:0;display:flex}.passport-section-note{margin-top:8px;line-height:1.45}@keyframes passportPop{0%{opacity:0;transform:translate(-50%,-47%)scale(.98)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (max-width:900px){.passport-modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.passport-body{grid-template-columns:1fr}}.btn{border:1px solid var(--hairline-strong);background:var(--raised);color:var(--text);border-radius:11px;padding:11px 18px;font-size:14px;font-weight:600;transition:transform .12s,background .2s,border-color .2s,box-shadow .2s}.btn:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg, var(--accent), #cfa85f);color:#1a1408;border-color:#0000;box-shadow:0 8px 22px -10px #e5c07bb3}.btn-primary:hover:not(:disabled){border-color:#0000;box-shadow:0 12px 28px -10px #e5c07be6}.btn-ghost{background:0 0}.chip{border:1px solid var(--hairline);color:var(--text-sub);background:#ffffff0d;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.chip-warn{color:#f0c96b;background:#f5b3011a;border-color:#f5b30159}.chip-sim{color:#6fe3c2;background:#2fd3a51a;border-color:#2fd3a559}.auth-panel{border:1px solid var(--hairline);background:#ffffff09;border-radius:10px;flex-direction:column;gap:5px;min-width:260px;padding:7px;display:flex}.auth-panel-row{align-items:center;gap:6px;display:flex}.auth-panel-tabs{gap:4px;display:flex}.auth-tab{color:var(--text-dim);background:0 0;border:1px solid #0000;border-radius:7px;flex:1;padding:4px 6px;font-size:11px;font-weight:700}.auth-tab.active{color:var(--accent);background:var(--accent-soft);border-color:#e5c07b59}.auth-input{border:1px solid var(--hairline);width:74px;min-width:0;color:var(--text);font:inherit;background:#00000040;border-radius:7px;padding:6px 7px;font-size:12px}.auth-input::placeholder{color:var(--text-dim)}.auth-message{color:var(--text-dim);max-width:310px;font-size:10px;line-height:1.35}.panel{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;display:grid}.caveat{color:var(--text-dim);font-size:11px;line-height:1.5}@keyframes packShake{0%,to{transform:translate(0)rotate(0)}20%{transform:translate(-3px,1px)rotate(-1.2deg)}40%{transform:translate(3px,-1px)rotate(1.2deg)}60%{transform:translate(-2px,2px)rotate(-.8deg)}80%{transform:translate(2px,-2px)rotate(.8deg)}}@keyframes packMegaShake{0%,to{transform:translate(0)rotate(0)scale(1.03)}8%{transform:translate(-10px,4px)rotate(-5deg)scale(1.08)}18%{transform:translate(9px,-5px)rotate(4deg)scale(1.11)}30%{transform:translate(-7px,-4px)rotate(-3deg)scale(1.12)}44%{transform:translate(8px,5px)rotate(5deg)scale(1.14)}60%{transform:translate(-5px,2px)rotate(-2deg)scale(1.1)}78%{transform:translate(4px,-3px)rotate(2deg)scale(1.08)}}@keyframes riseReveal{0%{opacity:0;transform:translateY(28px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes sweep{0%{opacity:0;transform:translate(-120%)skew(-18deg)}30%{opacity:.9}to{opacity:0;transform:translate(220%)skew(-18deg)}}@keyframes winPop{0%{transform:scale(1)}40%{transform:scale(1.08)translateY(-4px)}to{transform:scale(1)}}@keyframes hshake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes packSealPulse{0%,to{opacity:.5;transform:scale(.88)}50%{opacity:1;transform:scale(1.08)}}@keyframes packCoreCharge{0%,to{filter:brightness();transform:translateY(0)scale(1)}45%{filter:brightness(1.28);transform:translateY(-8px)scale(1.04)}}@keyframes packCrackFlash{0%,to{opacity:.28;transform:scaleY(.55)}45%{opacity:1;transform:scaleY(1.08)}}@keyframes packSpark{0%{opacity:0;transform:rotate(calc(var(--i) * 30deg)) translateY(-56px) scale(.35)}28%{opacity:1}to{opacity:0;transform:rotate(calc(var(--i) * 30deg)) translateY(-156px) scale(1)}}@keyframes packExplosionCore{0%{opacity:0;filter:blur(12px);transform:scale(.18)}18%{opacity:1;filter:blur(2px);transform:scale(.72)}to{opacity:0;filter:blur(18px);transform:scale(2.8)}}@keyframes packShardBurst{0%{opacity:0;transform:rotate(calc(var(--i) * 16.36deg)) translateY(0) scale(.3)}18%{opacity:1}to{opacity:0;transform:rotate(calc(var(--i) * 16.36deg)) translateY(-250px) scale(1.15)}}@keyframes packChromaticWave{0%{opacity:0;transform:scale(.3)rotate(0)}24%{opacity:.92}to{opacity:0;transform:scale(2.35)rotate(160deg)}}@keyframes packResultPop{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes packCardFlare{0%{opacity:0;transform:translate(-50%,-50%)scale(.45)}34%{opacity:.9}to{opacity:0;transform:translate(-50%,-50%)scale(1.7)}}.anim-rise{animation:.55s cubic-bezier(.2,.8,.2,1) both riseReveal}.anim-shake{animation:.5s ease-in-out infinite packShake}.anim-win{animation:.6s both winPop}.anim-loss{animation:.4s both hshake}.anim-float{animation:3.2s ease-in-out infinite floaty}.anim-fade{animation:.4s both fadeIn}.pack-stage{text-align:center;place-items:center;min-height:360px;padding:70px 0;display:grid;position:relative;overflow:hidden}.pack-stage:before{content:"";background:radial-gradient(circle, rgba(from var(--tier) r g b / .24), transparent 58%), conic-gradient(from 90deg, transparent, rgba(from var(--tier) r g b / .35), transparent 40%, #ffffff29, transparent 70%);opacity:.72;border-radius:50%;width:420px;height:420px;animation:1.1s ease-in-out infinite packSealPulse;position:absolute}.pack-stage:after{content:"";opacity:0;mix-blend-mode:screen;filter:blur(16px);pointer-events:none;background:conic-gradient(#ffdf5d,#ff5ee1,#7b61ff,#2f7cff,#2fd3a5,#ffdf5d);border-radius:50%;width:520px;height:520px;position:absolute}.pack-stage[data-pack-phase=detonating]:before{opacity:1;animation-duration:.32s}.pack-stage[data-pack-phase=detonating]:after{animation:.68s cubic-bezier(.1,.8,.2,1) both packChromaticWave}.pack-visual{z-index:1;border:1px solid var(--tier);background:linear-gradient(145deg, rgba(from var(--tier) r g b / .16), transparent 42%), linear-gradient(160deg, var(--raised), #0d1016);width:172px;height:226px;box-shadow:0 0 68px rgba(from var(--tier) r g b / .68), inset 0 0 52px rgba(from var(--tier) r g b / .24), inset 0 1px 0 #ffffff1f;border-radius:18px;place-items:center;display:grid;position:relative;overflow:visible}.pack-visual-detonating{filter:saturate(1.45)brightness(1.28);animation:.52s cubic-bezier(.2,.9,.2,1) infinite packMegaShake}.pack-core{width:128px;min-height:128px;color:var(--tier);text-transform:uppercase;letter-spacing:.03em;background:#0000003d;border-radius:14px;place-items:center;padding:14px;font-size:18px;font-weight:900;line-height:1.08;animation:.82s cubic-bezier(.2,.8,.2,1) infinite packCoreCharge;display:grid}.pack-burst-ring{border:1px solid rgba(from var(--tier) r g b / .5);box-shadow:0 0 36px rgba(from var(--tier) r g b / .42);border-radius:26px;animation:.95s ease-in-out infinite packSealPulse;position:absolute;inset:-28px}.pack-stage[data-pack-phase=detonating] .pack-burst-ring{box-shadow:0 0 48px rgba(from var(--tier) r g b / .78), 0 0 96px #ff4fd859, 0 0 120px #2f7cff47;border-color:#fffc;animation-duration:.28s;inset:-48px}.pack-crack{background:linear-gradient(180deg, transparent, #fff, var(--tier), transparent);transform-origin:50%;width:2px;height:152px;filter:drop-shadow(0 0 10px var(--tier));border-radius:999px;animation:.48s ease-in-out infinite packCrackFlash;position:absolute;top:38px}.pack-crack-a{left:50%;transform:rotate(8deg)}.pack-crack-b{height:112px;animation-delay:-.16s;left:42%;transform:rotate(-24deg)}.pack-crack-c{height:96px;animation-delay:-.28s;left:58%;transform:rotate(28deg)}.pack-crack-d{height:124px;animation-delay:-.08s;top:58px;left:52%;transform:rotate(78deg)}.pack-stage[data-pack-phase=detonating] .pack-crack{opacity:1;background:linear-gradient(180deg, transparent, #fff 25%, var(--tier) 55%, #ff5ee1 78%, transparent);width:3px;animation-duration:.2s}.pack-spark{background:linear-gradient(180deg, #fff, var(--tier), transparent);width:5px;height:18px;box-shadow:0 0 12px var(--tier);animation:.95s ease-out infinite packSpark;animation-delay:calc(var(--i) * -70ms);border-radius:999px;margin-top:-9px;margin-left:-2px;position:absolute;top:50%;left:50%}.pack-stage-copy{z-index:1;color:var(--text-sub);letter-spacing:.12em;text-transform:uppercase;margin-top:24px;font-size:12px;position:relative}.pack-result-title{animation:.38s cubic-bezier(.2,.8,.2,1) both packResultPop}.pack-reveal-card{animation:.62s cubic-bezier(.16,.9,.2,1) both riseReveal}.pack-card-flare{z-index:0;pointer-events:none;background:radial-gradient(circle, rgba(from var(--tier) r g b / .48), rgba(from var(--tier) r g b / .08) 42%, transparent 68%);border-radius:50%;width:220px;height:220px;animation:.75s ease-out both packCardFlare;position:absolute;top:45%;left:50%}.pack-explosion{z-index:2;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.pack-explosion-core{background:radial-gradient(circle, #fff 0 10%, rgba(from var(--tier) r g b / .95) 18%, #ff4fd88c 42%, #2f7cff40 58%, transparent 72%);width:260px;height:260px;box-shadow:0 0 70px rgba(from var(--tier) r g b / .95), 0 0 120px #ff4fd873, 0 0 140px #2f7cff5c;border-radius:50%;animation:.72s cubic-bezier(.06,.9,.18,1) both packExplosionCore;position:absolute}.pack-shard{background:linear-gradient(180deg, #fff, var(--tier), #ff5ee1, transparent);width:7px;height:34px;box-shadow:0 0 14px var(--tier);animation:.82s cubic-bezier(.08,.78,.2,1) both packShardBurst;animation-delay:calc(var(--i) * 8ms);border-radius:999px;position:absolute}.sweep-overlay{pointer-events:none;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.sweep-overlay:after{content:"";background:linear-gradient(90deg,#0000,#ffffff80,#0000);width:55%;animation:.85s ease-out sweep;position:absolute;top:0;bottom:0}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
