:root{--ink: #0b1020;--ink-2: #0e1529;--board: #141d36;--board-2: #1a2648;--board-3: #22305a;--line: rgba(243, 241, 232, .09);--line-strong: rgba(243, 241, 232, .18);--chalk: #f3f1e8;--chalk-dim: rgba(243, 241, 232, .66);--chalk-faint: rgba(243, 241, 232, .4);--hot: #ff5c3a;--hot-2: #ff8a6a;--cool: #3ee0c7;--cool-2: #8ef0ff;--gold: #f2c14e;--violet: #b56cff;--green: #5fd48a;--danger: #ff4d6d;--font-display: "Unbounded", "Arial Black", "Segoe UI", sans-serif;--font-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "Cascadia Mono", ui-monospace, monospace;--radius: 16px;--radius-sm: 10px;--shadow: 0 20px 60px rgba(0, 0, 0, .45);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;background:var(--ink);color:var(--chalk);font-family:var(--font-body);font-size:16px;line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:-2;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse 90% 80% at 50% 20%,#000 20%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 20%,#000 20%,transparent 100%)}body:after{content:"";position:fixed;inset:0;z-index:-3;background:radial-gradient(60% 45% at 8% 0%,rgba(255,92,58,.18),transparent 70%),radial-gradient(55% 50% at 100% 100%,rgba(62,224,199,.14),transparent 70%),radial-gradient(40% 30% at 60% 40%,rgba(181,108,255,.07),transparent 70%),var(--ink)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}input{font:inherit;color:inherit}::selection{background:var(--hot);color:var(--ink)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;letter-spacing:-.01em;margin:0;line-height:1.1}h1{font-size:clamp(2.2rem,6vw,4.6rem);font-weight:900}h2{font-size:clamp(1.4rem,3vw,2.2rem)}h3{font-size:1.15rem}p{margin:0}.mono{font-family:var(--font-mono)}.dim{color:var(--chalk-dim)}.faint{color:var(--chalk-faint)}.hot{color:var(--hot)}.cool{color:var(--cool)}.gold{color:var(--gold)}.eyebrow{font-family:var(--font-display);font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--chalk-faint)}.eyebrow.hot{color:var(--hot)}.eyebrow.cool{color:var(--cool)}.app{min-height:100vh;display:flex;flex-direction:column}.page{width:min(1180px,100% - 2rem);margin:0 auto;padding:2rem 0 5rem;flex:1;animation:page-in .5s var(--ease-out) both}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem}.page-head h1{font-size:clamp(1.8rem,4vw,3rem)}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.2rem}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem}.spacer{flex:1}@keyframes page-in{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0}}@keyframes rise{0%{opacity:0;translate:0 18px}to{opacity:1;translate:0}}@keyframes pop{0%{scale:.6;opacity:0}70%{scale:1.08;opacity:1}to{scale:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes spin{to{rotate:360deg}}@keyframes shake{0%,to{translate:0}20%{translate:-8px}40%{translate:7px}60%{translate:-5px}80%{translate:3px}}@keyframes float-up{0%{opacity:0;translate:0 6px;scale:.8}15%{opacity:1;scale:1.1}to{opacity:0;translate:0 -46px;scale:1}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes hue{to{filter:hue-rotate(360deg)}}@keyframes scan{0%{translate:0 -100%}to{translate:0 100%}}@keyframes flip-in{0%{transform:rotateY(90deg) scale(.85);opacity:0}60%{transform:rotateY(-8deg) scale(1.04);opacity:1}to{transform:rotateY(0) scale(1)}}@keyframes pack-shake{0%,to{rotate:0deg}25%{rotate:-3deg}75%{rotate:3deg}}@keyframes glow{0%,to{box-shadow:0 0 #ff5c3a80}50%{box-shadow:0 0 0 12px #ff5c3a00}}@keyframes tick-warn{0%,to{color:var(--chalk)}50%{color:var(--hot)}}.nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1.2rem;padding:.7rem 1.2rem;background:#0b1020c7;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-weight:900;font-size:1.05rem;letter-spacing:.06em}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--ink-2);border:1px solid var(--line-strong);display:grid;place-items:center}.brand small{font-weight:400;font-family:var(--font-body);color:var(--chalk-faint);letter-spacing:.15em;font-size:.6rem;margin-left:.15rem}.nav-links{display:flex;gap:.2rem;margin-left:.6rem}.nav-links a{padding:.45rem .8rem;border-radius:999px;font-weight:500;color:var(--chalk-dim);transition:background .2s,color .2s}.nav-links a:hover{color:var(--chalk);background:#f3f1e80f}.nav-links a.is-active{color:var(--ink);background:var(--chalk)}.nav-right{margin-left:auto;display:flex;align-items:center;gap:.6rem}.chip{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .75rem;border-radius:999px;background:#f3f1e80f;border:1px solid var(--line-strong);font-size:.85rem;font-weight:500;white-space:nowrap}.chip.pack-chip{border-color:#ff5c3a80;background:#ff5c3a1f;color:var(--hot-2);animation:glow 2s infinite}.chip.pack-chip:hover{background:#ff5c3a38}@media(max-width:760px){.nav{padding:.6rem .8rem;gap:.6rem;backdrop-filter:none;-webkit-backdrop-filter:none;background:#0b1020f5}.nav-links{position:fixed;bottom:0;left:0;right:0;margin:0;padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom));background:#0b1020eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);justify-content:space-around;z-index:20}.nav-links a{padding:.4rem .6rem;font-size:.8rem}.brand small{display:none}.page{padding-bottom:6rem}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.4rem;border-radius:999px;border:1px solid var(--line-strong);background:#f3f1e80f;font-weight:600;font-size:.95rem;letter-spacing:.01em;transition:transform .15s var(--ease-out),background .2s,border-color .2s,box-shadow .2s}.btn:hover{background:#f3f1e81f;transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-hot{background:var(--hot);border-color:var(--hot);color:var(--ink);box-shadow:0 8px 30px #ff5c3a59}.btn-hot:hover{background:var(--hot-2);box-shadow:0 12px 34px #ff5c3a73}.btn-cool{background:var(--cool);border-color:var(--cool);color:var(--ink);box-shadow:0 8px 30px #3ee0c74d}.btn-cool:hover{background:var(--cool-2)}.btn-chalk{background:var(--chalk);border-color:var(--chalk);color:var(--ink)}.btn-ghost{background:transparent}.btn-danger{border-color:#ff4d6d80;color:var(--danger)}.btn-lg{padding:1.05rem 2rem;font-size:1.05rem;font-family:var(--font-display);font-weight:700}.btn-sm{padding:.45rem .9rem;font-size:.82rem}.btn-block{width:100%}.panel{position:relative;background:linear-gradient(160deg,#1a2648d9,#141d36e6);border:1px solid var(--line-strong);border-radius:var(--radius);padding:1.4rem;box-shadow:0 10px 40px #00000040}.panel.tight{padding:1rem 1.1rem}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.stat{display:flex;flex-direction:column;gap:.15rem}.stat .value{font-family:var(--font-display);font-size:1.5rem;font-weight:800;line-height:1}.stat .label{font-size:.75rem;color:var(--chalk-faint);text-transform:uppercase;letter-spacing:.12em}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}.bar{height:8px;border-radius:999px;background:#f3f1e81a;overflow:hidden}.bar>i{display:block;height:100%;border-radius:inherit;background:var(--cool);transition:width .6s var(--ease-out)}.bar.hot>i{background:var(--hot)}.bar.gold>i{background:var(--gold)}.divider{height:1px;background:var(--line);margin:1rem 0}.rank-badge{display:inline-flex;align-items:center;gap:.6rem;--rank: var(--chalk)}.rank-hex{width:44px;height:44px;display:grid;place-items:center;background:color-mix(in oklab,var(--rank) 22%,var(--board));clip-path:polygon(50% 0%,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%);color:var(--rank);font-size:1.3rem;position:relative}.rank-hex:before{content:"";position:absolute;inset:0;background:var(--rank);clip-path:polygon(50% 0%,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%);opacity:.18}.rank-badge.lg .rank-hex{width:92px;height:92px;font-size:2.6rem}.rank-badge.sm .rank-hex{width:30px;height:30px;font-size:.85rem}.rank-text{display:flex;flex-direction:column;line-height:1.1}.rank-text b{font-family:var(--font-display);font-weight:800;color:var(--rank);font-size:.95rem}.rank-badge.lg .rank-text b{font-size:1.6rem}.rank-text span{font-size:.75rem;color:var(--chalk-faint);font-family:var(--font-mono)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem}.tile{text-align:left;padding:.9rem 1rem;border-radius:var(--radius-sm);background:#f3f1e80a;border:1px solid var(--line-strong);transition:transform .15s var(--ease-out),border-color .2s,background .2s;display:flex;flex-direction:column;gap:.25rem}.tile:hover{transform:translateY(-2px);border-color:#f3f1e866;background:#f3f1e814}.tile.is-selected{border-color:var(--cool);background:#3ee0c71f;box-shadow:0 0 0 1px var(--cool) inset}.tile .t-num{font-family:var(--font-mono);font-size:.7rem;color:var(--chalk-faint);letter-spacing:.15em}.tile .t-name{font-family:var(--font-display);font-weight:700;font-size:.95rem}.tile .t-ages{font-size:.75rem;color:var(--cool)}.tile .t-blurb{font-size:.78rem;color:var(--chalk-dim)}.card{--r: var(--chalk-faint);--d: var(--chalk);position:relative;aspect-ratio:5 / 7;width:100%;border-radius:14px;border:2px solid var(--r);background:radial-gradient(90% 60% at 50% 30%,color-mix(in oklab,var(--d) 22%,transparent),transparent 70%),linear-gradient(175deg,var(--board-2),var(--ink-2) 75%);color:var(--chalk);overflow:hidden;display:flex;flex-direction:column;padding:.55rem;box-shadow:0 8px 24px #00000059,inset 0 0 0 1px #f3f1e80f;transition:transform .25s var(--ease-out),box-shadow .25s;text-align:left;transform-style:preserve-3d}button.card{cursor:pointer}button.card:hover{transform:translateY(-4px) rotate(-.5deg);box-shadow:0 18px 40px #00000073,0 0 30px color-mix(in oklab,var(--r) 35%,transparent)}.card-top{display:flex;justify-content:space-between;align-items:center;gap:.4rem;font-size:.52rem;letter-spacing:.08em;text-transform:uppercase;font-family:var(--font-display);font-weight:600;color:var(--r);white-space:nowrap}.card-top span:last-child{overflow:hidden;text-overflow:ellipsis;opacity:.8}.card-art{flex:none;aspect-ratio:16 / 10;position:relative;display:grid;place-items:center;margin:.3rem 0;border-radius:8px;overflow:hidden;background:#00000040}.card-art.has-art{background:radial-gradient(90% 80% at 50% 40%,#fbf8f0,#e6e0d2);box-shadow:inset 0 0 0 1px #00000040}.card-art img,.card-art .emblem{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.card-name{flex:1}.card-lock{position:relative;font-family:var(--font-display);font-weight:900;font-size:2.6rem;color:#f3f1e88c;text-shadow:0 4px 14px rgba(0,0,0,.7)}.card.locked .card-art img,.card.locked .card-art .emblem{filter:grayscale(1) brightness(.5)}.card-name{font-family:var(--font-display);font-weight:700;font-size:.78rem;line-height:1.15;min-height:2.3em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:.3rem;font-size:.65rem;color:var(--chalk-dim)}.card-meta .domain{color:var(--d);font-weight:600}.card-meta .power{font-family:var(--font-mono);font-weight:600}.card-odds{margin-top:.35rem;font-family:var(--font-mono);font-size:.62rem;padding:.22rem .45rem;border-radius:6px;background:#00000059;border:1px solid color-mix(in oklab,var(--r) 40%,transparent);color:var(--r);text-align:center;letter-spacing:.03em}.card-count{position:absolute;top:1.75rem;right:.6rem;font-family:var(--font-mono);font-size:.65rem;font-weight:600;background:#0000008c;padding:.1rem .4rem;border-radius:999px;border:1px solid var(--line-strong)}.card-new{position:absolute;top:-1px;left:50%;translate:-50% 0;font-family:var(--font-display);font-size:.55rem;letter-spacing:.15em;background:var(--hot);color:var(--ink);padding:.15rem .5rem;border-radius:0 0 8px 8px;box-shadow:0 4px 12px #ff5c3a66}.card.locked{filter:grayscale(1) brightness(.6);border-style:dashed}.card.locked .card-glyph{opacity:.35}.card.sm{font-size:.85em;padding:.4rem;border-radius:10px}.card.sm .card-lock{font-size:1.6rem}.card.sm .card-name{font-size:.62rem}.card.sm .card-odds,.card.sm .card-meta{font-size:.55rem}.card.sm .card-top{font-size:.5rem}.card.r-legendary,.card.r-mythic,.card.r-singularity{box-shadow:0 8px 24px #00000059,0 0 34px color-mix(in oklab,var(--r) 30%,transparent)}.card.r-legendary:after,.card.r-mythic:after,.card.r-singularity:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,color-mix(in oklab,var(--r) 28%,transparent) 50%,transparent 70%);background-size:250% 100%;animation:shimmer 3.2s linear infinite}.card.r-singularity{border-color:transparent;background-clip:padding-box}.card.r-singularity:before{content:"";position:absolute;inset:-2px;z-index:-1;border-radius:16px;background:conic-gradient(from 0deg,#ff5c3a,#f2c14e,#3ee0c7,#b56cff,#ff4d8d,#ff5c3a);animation:hue 4s linear infinite}.card.r-singularity{isolation:isolate}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.9rem}.card-grid.sm{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.6rem}.card-grid.spotlight{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:640px){.card-grid.spotlight{grid-template-columns:repeat(3,minmax(0,1fr))}}.slot-empty{aspect-ratio:5 / 7;border-radius:14px;border:2px dashed var(--line-strong);display:grid;place-items:center;color:var(--chalk-faint);font-family:var(--font-display);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase}.rarity-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .6rem;border-radius:999px;font-size:.72rem;font-weight:600;border:1px solid}.filters{display:flex;gap:.4rem;flex-wrap:wrap}.filters button{border:1px solid var(--line-strong);background:transparent;border-radius:999px;padding:.35rem .8rem;font-size:.8rem;color:var(--chalk-dim)}.filters button.is-active{background:var(--chalk);color:var(--ink);border-color:var(--chalk)}dialog.modal{border:1px solid var(--line-strong);border-radius:20px;background:linear-gradient(160deg,var(--board-2),var(--ink-2));color:var(--chalk);padding:0;width:min(720px,calc(100% - 2rem));max-height:min(90vh,900px);box-shadow:var(--shadow);opacity:0;transform:translateY(14px) scale(.97);transition-property:opacity,transform,display,overlay;transition-duration:.28s;transition-timing-function:var(--ease-out);transition-behavior:allow-discrete}dialog.modal[open]{opacity:1;transform:none}@starting-style{dialog.modal[open]{opacity:0;transform:translateY(14px) scale(.97)}}dialog.modal::backdrop{background:#05081200;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);transition:display .28s allow-discrete,overlay .28s allow-discrete,background .28s,backdrop-filter .28s}dialog.modal[open]::backdrop{background:#050812b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}@starting-style{dialog.modal[open]::backdrop{background:#05081200;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}}dialog.modal.wide{width:min(980px,calc(100% - 2rem))}.modal-body{padding:1.6rem}.modal-close{position:absolute;top:.8rem;right:.8rem;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-strong);background:#0000004d}.pack-stage{display:flex;flex-direction:column;align-items:center;gap:1.2rem;text-align:center;min-height:380px;justify-content:center;perspective:1200px}.pack{width:170px;height:240px;border-radius:18px;border:none;background:radial-gradient(80% 50% at 50% 20%,rgba(255,92,58,.55),transparent 70%),linear-gradient(160deg,#2a3a6c,#101a33);box-shadow:0 30px 60px #00000080,inset 0 0 0 2px #f3f1e824;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-display);font-weight:800;letter-spacing:.1em;color:var(--chalk);position:relative;overflow:hidden;animation:pack-shake 1.6s ease-in-out infinite;transition:transform .2s var(--ease-spring)}.pack.premium{background:radial-gradient(80% 50% at 50% 20%,rgba(181,108,255,.6),transparent 70%),linear-gradient(160deg,#3a2a6c,#150f33)}.pack:hover{transform:scale(1.05);animation-play-state:paused}.pack:after{content:"";position:absolute;left:0;right:0;height:40%;background:linear-gradient(180deg,transparent,rgba(243,241,232,.14),transparent);animation:scan 2.4s linear infinite}.pack-glyph{font-size:3.4rem;filter:drop-shadow(0 8px 16px rgba(0,0,0,.5))}.pack-reveal{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem;width:100%}@media(max-width:640px){.pack-reveal{grid-template-columns:repeat(3,minmax(0,1fr))}}.pack-reveal .card{animation:flip-in .7s var(--ease-out) both;animation-delay:calc(var(--i) * .28s)}.pack-reveal .card.r-legendary,.pack-reveal .card.r-mythic,.pack-reveal .card.r-singularity{animation-duration:1s}.duel{display:flex;flex-direction:column;gap:1.2rem;min-height:calc(100vh - 140px)}.duel-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}.fighter{display:flex;flex-direction:column;gap:.35rem}.fighter.right{align-items:flex-end;text-align:right}.fighter .f-name{font-family:var(--font-display);font-weight:800;font-size:1rem}.fighter .f-score{font-family:var(--font-display);font-weight:900;font-size:clamp(1.8rem,5vw,3rem);line-height:1;font-variant-numeric:tabular-nums}.fighter .f-sub{font-size:.75rem;color:var(--chalk-faint);font-family:var(--font-mono)}.timer-ring{position:relative;width:116px;height:116px;margin:0 auto}.timer-ring svg{position:absolute;inset:0;width:100%;height:100%;rotate:-90deg}.timer{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-weight:900;font-size:2.3rem;font-variant-numeric:tabular-nums;line-height:1}.timer.warn{animation:tick-warn .5s infinite}.timer-ring circle{fill:none;stroke-width:6}.timer-ring .track{stroke:#f3f1e81a}.timer-ring .fill{stroke:var(--cool);stroke-linecap:round;transition:stroke-dashoffset .1s linear}.score-race{display:grid;grid-template-columns:1fr 1fr;gap:6px;height:10px}.score-race i{display:block;height:100%;border-radius:999px;background:#f3f1e81a;overflow:hidden;position:relative}.score-race i b{position:absolute;top:0;bottom:0}.score-race .mine b{right:0;background:var(--cool);transition:width .3s var(--ease-out)}.score-race .theirs b{left:0;background:var(--hot);transition:width .3s var(--ease-out)}.arena{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;padding:2.5rem 1rem;border-radius:24px;border:1px solid var(--line-strong);background:radial-gradient(70% 70% at 50% 40%,rgba(62,224,199,.08),transparent 70%),linear-gradient(180deg,#141d36e6,#0b1020f2);overflow:hidden}.arena.flash-correct{animation:none;box-shadow:inset 0 0 0 2px var(--cool),0 0 60px #3ee0c740}.arena.flash-wrong{animation:shake .35s;box-shadow:inset 0 0 0 2px var(--hot),0 0 60px #ff5c3a4d}.problem-hint{font-family:var(--font-display);font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--chalk-faint)}.problem{font-family:var(--font-mono);font-weight:600;font-size:clamp(2.2rem,8vw,5rem);line-height:1.1;text-align:center;letter-spacing:-.01em;text-wrap:balance;animation:pop .25s var(--ease-out)}.answer-form{display:flex;gap:.6rem;align-items:center;width:min(420px,100%)}.answer-input{flex:1;min-width:0;font-family:var(--font-mono);font-weight:600;font-size:2rem;text-align:center;padding:.55rem 1rem;border-radius:14px;background:#00000059;border:2px solid var(--line-strong);color:var(--chalk);outline:none;transition:border-color .2s,box-shadow .2s}.answer-input:focus{border-color:var(--cool);box-shadow:0 0 0 4px #3ee0c72e}.answer-input::placeholder{color:var(--chalk-faint);font-weight:500}.float{position:absolute;top:28%;font-family:var(--font-display);font-weight:900;font-size:1.6rem;pointer-events:none;animation:float-up .9s var(--ease-out) forwards}.float.correct{color:var(--cool)}.float.wrong,.float.skip{color:var(--hot)}.float small{display:block;font-size:.6rem;letter-spacing:.2em;text-align:center}.streak-tag{position:absolute;top:1rem;right:1rem;font-family:var(--font-display);font-size:.7rem;letter-spacing:.15em;color:var(--gold);border:1px solid rgba(242,193,78,.5);padding:.3rem .6rem;border-radius:999px;animation:pop .3s var(--ease-spring)}.countdown{font-family:var(--font-display);font-weight:900;font-size:clamp(5rem,20vw,10rem);line-height:1;color:var(--hot);animation:pop .6s var(--ease-spring)}.countdown.go{color:var(--cool)}.numpad{display:none;grid-template-columns:repeat(4,1fr);gap:.45rem;width:min(420px,100%)}.numpad button{font-family:var(--font-mono);font-size:1.3rem;font-weight:600;padding:.7rem 0;border-radius:12px;border:1px solid var(--line-strong);background:#f3f1e80f;touch-action:manipulation}.numpad button:active{background:#f3f1e833}.numpad .enter{background:var(--cool);color:var(--ink);grid-row:span 2;border-color:var(--cool)}.numpad .skip{color:var(--hot)}@media(pointer:coarse),(max-width:720px){.numpad{display:grid}}.matchmaking{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;min-height:60vh;text-align:center}.radar{width:120px;height:120px;border-radius:50%;border:1px solid var(--line-strong);position:relative;display:grid;place-items:center}.radar:before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(62,224,199,.6),transparent 60%);animation:spin 1.4s linear infinite;mask:radial-gradient(circle,transparent 40%,#000 41%);-webkit-mask:radial-gradient(circle,transparent 40%,#000 41%)}.radar span{font-family:var(--font-display);font-weight:800;font-size:1.4rem}.versus{display:grid;grid-template-columns:1fr auto 1fr;gap:1.5rem;align-items:center;width:min(900px,100%)}.versus .vs{font-family:var(--font-display);font-weight:900;font-size:3rem;color:var(--hot);animation:pop .5s var(--ease-spring)}.versus .side{display:flex;flex-direction:column;align-items:center;gap:.6rem;animation:rise .5s var(--ease-out) both}.versus .side.right{animation-delay:.15s}.versus .side .name{font-family:var(--font-display);font-weight:800;font-size:1.3rem}@media(max-width:640px){.versus{grid-template-columns:1fr}.versus .vs{font-size:2rem}}.result{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.2rem}.result h2{font-size:clamp(2.4rem,8vw,4.5rem);font-weight:900}.result h2.win{color:var(--cool)}.result h2.loss{color:var(--hot)}.result h2.draw{color:var(--gold)}.result-scores{display:flex;gap:2rem;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:2.4rem}.result-scores small{display:block;font-size:.7rem;letter-spacing:.15em;color:var(--chalk-faint);font-weight:600}.delta{font-family:var(--font-mono);font-weight:600}.delta.up{color:var(--cool)}.delta.down{color:var(--hot)}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center;padding:2rem 0 3rem}@media(max-width:860px){.hero{grid-template-columns:1fr}}.hero h1{text-wrap:balance}.hero h1 em{font-style:normal;color:var(--hot)}.hero .lede{font-size:1.15rem;color:var(--chalk-dim);max-width:48ch;margin-top:1.2rem}.hero .cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem}.hero-card{animation:rise .7s var(--ease-out) both;animation-delay:.15s}.hero-eq{position:absolute;right:-2rem;top:-1.4rem;font-family:var(--font-mono);font-size:5rem;color:#f3f1e80d;pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:600}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;counter-reset:step}.step{padding:1.2rem;border-radius:var(--radius);border:1px solid var(--line);background:#f3f1e808;animation:rise .6s var(--ease-out) both}.step:nth-child(2){animation-delay:.1s}.step:nth-child(3){animation-delay:.2s}.step:nth-child(4){animation-delay:.3s}.step:before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:var(--font-mono);color:var(--hot);font-weight:600;display:block;margin-bottom:.5rem}.step h3{margin-bottom:.3rem}.step p{color:var(--chalk-dim);font-size:.92rem}.marquee{display:flex;gap:2.5rem;overflow:hidden;white-space:nowrap;font-family:var(--font-mono);color:var(--chalk-faint);font-size:.85rem;padding:.7rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.marquee>div{display:flex;gap:2.5rem;animation:marquee 40s linear infinite}@keyframes marquee{to{translate:-50% 0}}.onboard{width:min(820px,100% - 2rem);margin:0 auto;padding:3rem 0;display:flex;flex-direction:column;gap:1.6rem}.text-input{width:100%;padding:.9rem 1.1rem;border-radius:12px;background:#0000004d;border:1px solid var(--line-strong);color:var(--chalk);font-size:1.1rem;outline:none}.text-input:focus{border-color:var(--cool);box-shadow:0 0 0 4px #3ee0c726}.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line-strong)}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{padding:.7rem .9rem;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}th{font-family:var(--font-display);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--chalk-faint);background:#0003}tr.is-you td{background:#3ee0c71f;font-weight:600}td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.history{display:flex;flex-direction:column;gap:.4rem}.history-row{display:grid;grid-template-columns:62px 1fr auto auto;gap:.8rem;align-items:center;padding:.6rem .8rem;border-radius:10px;background:#f3f1e808;border:1px solid var(--line);font-size:.88rem}.history-row .res{font-family:var(--font-display);font-weight:800;font-size:.7rem;letter-spacing:.15em}.history-row .res.win{color:var(--cool)}.history-row .res.loss{color:var(--hot)}.history-row .res.draw{color:var(--gold)}.notice{padding:.9rem 1.1rem;border-radius:12px;border:1px solid rgba(242,193,78,.45);background:#f2c14e14;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.ladder-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem}.ladder-tier{padding:1rem;border-radius:var(--radius-sm);border:1px solid color-mix(in oklab,var(--rank) 40%,transparent);background:linear-gradient(180deg,color-mix(in oklab,var(--rank) 14%,transparent),transparent);display:flex;flex-direction:column;gap:.3rem;animation:rise .5s var(--ease-out) both}.ladder-tier .lt-name{font-family:var(--font-display);font-weight:800;color:var(--rank)}.ladder-tier .lt-range{font-family:var(--font-mono);font-size:.78rem;color:var(--chalk-dim)}.ladder-tier .lt-bracket{font-size:.78rem;color:var(--chalk-faint)}.ladder-tier.is-you{box-shadow:0 0 0 2px var(--rank)}.coin{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--gold);color:var(--ink);font-size:.62rem;font-weight:800;font-family:var(--font-display);flex-shrink:0}.coin-chip{border-color:#f2c14e80;color:var(--gold);font-family:var(--font-mono);font-weight:600}.coin-chip:hover{background:#f2c14e24}.coin-chip.big{font-size:1rem;padding:.5rem 1rem}.coin-chip.big .coin{width:20px;height:20px;font-size:.75rem}.plus-chip{background:linear-gradient(90deg,var(--gold),#ffe08a);color:var(--ink);border-color:transparent;font-family:var(--font-display);font-size:.62rem;letter-spacing:.15em;font-weight:800}.plus-chip.big{font-size:.75rem;padding:.5rem 1rem}.plus-name{background:linear-gradient(90deg,var(--gold),#fff1c2);-webkit-background-clip:text;background-clip:text;color:transparent}.account-chip{width:34px;height:34px;justify-content:center;padding:0;border-radius:50%;font-weight:700}.account-chip.signed{background:var(--cool);color:var(--ink);border-color:var(--cool)}.account-chip:not(.signed){width:auto;padding:.35rem .8rem;border-radius:999px}.guest-chip{color:var(--chalk-faint)}.live-dot{width:10px;height:10px;border-radius:50%;background:var(--hot);box-shadow:0 0 0 3px #ff5c3a33}.live-dot.on{background:var(--cool);box-shadow:0 0 0 3px #3ee0c733}.toast{position:fixed;bottom:1.5rem;left:50%;translate:-50% 0;z-index:60;padding:.8rem 1.2rem;border-radius:999px;background:var(--chalk);color:var(--ink);font-weight:600;box-shadow:var(--shadow);animation:rise .3s var(--ease-out);max-width:calc(100% - 2rem);text-align:center}@media(max-width:760px){.nav-links a{padding:.4rem .45rem;font-size:.72rem}.nav-right{gap:.4rem}.nav-right .chip{padding:.3rem .55rem;font-size:.75rem}.toast{bottom:5rem}}.quests{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.2rem}.quest-card{display:grid;grid-template-columns:110px 1fr;gap:1rem;padding:1.1rem;border-radius:var(--radius);border:1px solid color-mix(in oklab,var(--q) 40%,transparent);background:linear-gradient(160deg,color-mix(in oklab,var(--q) 12%,var(--board)),var(--ink-2));transition:transform .2s var(--ease-out),box-shadow .2s;animation:rise .5s var(--ease-out) both}.quest-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px #0006}.quest-card h2{font-size:1.3rem;margin:.2rem 0}.quest-art{align-self:start}.chapters{display:flex;flex-direction:column;gap:.6rem}.chapter{display:grid;grid-template-columns:48px 1fr auto auto;align-items:center;gap:1rem;padding:.9rem 1.1rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:#f3f1e808}.chapter.is-cleared{border-color:color-mix(in oklab,var(--q) 50%,transparent);background:color-mix(in oklab,var(--q) 6%,transparent)}.chapter.is-locked{opacity:.5}.ch-num{font-family:var(--font-mono);color:var(--q);font-weight:600;font-size:1.1rem}.ch-stars{color:var(--gold);letter-spacing:.1em;font-size:1rem;white-space:nowrap}.ch-stars.big{font-size:2.2rem}.story-play{display:flex;flex-direction:column;gap:1.2rem}.dialogue{display:grid;grid-template-columns:130px 1fr;gap:1.2rem;align-items:end;max-width:860px;margin:2rem auto 0;width:100%}.dialogue-box{position:relative;padding:1.4rem 1.6rem;border-radius:18px;border:1px solid color-mix(in oklab,var(--q) 50%,transparent);background:linear-gradient(160deg,var(--board-2),var(--ink-2));animation:pop .25s var(--ease-out);box-shadow:0 16px 40px #00000059}.dialogue-box:before{content:"";position:absolute;left:-9px;bottom:30px;width:16px;height:16px;background:var(--board-2);border-left:1px solid color-mix(in oklab,var(--q) 50%,transparent);border-bottom:1px solid color-mix(in oklab,var(--q) 50%,transparent);rotate:45deg}.dialogue-text{font-size:1.15rem;line-height:1.5;margin-top:.3rem;text-wrap:pretty}.problem-card{max-width:760px;margin:1.5rem auto 0;width:100%;padding:1.6rem;border-radius:20px;border:1px solid var(--line-strong);background:linear-gradient(180deg,#141d36e6,#0b1020f2);display:flex;flex-direction:column;gap:1.2rem;animation:rise .35s var(--ease-out)}.problem-text{font-size:clamp(1.15rem,2.4vw,1.45rem);line-height:1.55;text-wrap:pretty}.problem-card .answer-form{width:min(460px,100%)}.feedback{display:flex;flex-direction:column;gap:.3rem;padding:.9rem 1.1rem;border-radius:12px;animation:rise .3s var(--ease-out)}.feedback.correct{background:#3ee0c71f;border:1px solid rgba(62,224,199,.5)}.feedback.wrong{background:#ff5c3a1f;border:1px solid rgba(255,92,58,.5)}.feedback span{color:var(--chalk-dim);font-family:var(--font-mono);font-size:.9rem}.dots{display:flex;gap:.4rem;justify-content:center}.dots i{width:10px;height:10px;border-radius:50%;background:#f3f1e826}.dots i.ok{background:var(--cool)}.dots i.bad{background:var(--hot)}.dots i.now{background:var(--chalk)}@media(max-width:640px){.dialogue{grid-template-columns:1fr}.dialogue-portrait{width:110px}.dialogue-box:before{display:none}.quest-card{grid-template-columns:90px 1fr}.chapter{grid-template-columns:36px 1fr;row-gap:.4rem}.chapter .ch-stars,.chapter .btn,.chapter .chip{grid-column:2;justify-self:start}}.shop-pack{display:flex;gap:1.2rem;align-items:center}.pack.mini{width:90px;height:126px;border-radius:12px;animation:none;flex-shrink:0;cursor:default}.pack.mini .pack-glyph{font-size:2rem}.bundles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem}.bundle{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start;padding:1.1rem;border-radius:var(--radius);border:1px solid rgba(242,193,78,.35);background:linear-gradient(160deg,rgba(242,193,78,.1),transparent);text-align:left;transition:transform .2s var(--ease-out),border-color .2s;min-height:140px}.bundle:hover{transform:translateY(-3px);border-color:var(--gold)}.bundle:disabled{opacity:.6}.bundle-coins{font-family:var(--font-display);font-weight:800;font-size:1.3rem;display:inline-flex;align-items:center;gap:.4rem}.bundle-price{margin-top:auto;font-family:var(--font-mono);font-weight:600;color:var(--gold)}.plus-promo{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;border-color:#f2c14e73}.benefits{display:grid;gap:.7rem}.benefit{padding:1rem 1.1rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:#f3f1e808;animation:rise .5s var(--ease-out) both}.benefit h3{margin-bottom:.2rem}.card-grid.spotlight.wide{grid-template-columns:repeat(8,minmax(0,1fr))}@media(max-width:900px){.card-grid.spotlight.wide{grid-template-columns:repeat(4,minmax(0,1fr))}}.footer{width:min(1180px,100% - 2rem);margin:0 auto;padding:1.2rem 0 2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--line);color:var(--chalk-faint);font-size:.8rem}.footer a{color:var(--chalk-dim)}.footer a:hover{color:var(--chalk)}@media(max-width:760px){.footer{padding-bottom:5rem}}.legal{max-width:72ch}.legal h2{font-size:1.1rem;margin:1.6rem 0 .5rem}.legal p,.legal li{color:var(--chalk-dim);line-height:1.6}.legal ul{padding-left:1.2rem;display:flex;flex-direction:column;gap:.4rem;margin:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
