:root{--bg-deep: #4fa6ef;--bg-mid: #74c1fb;--bg-soft: #a8ddff;--panel: #ffffff;--panel-soft: #eff7ff;--ink: #14355f;--ink-soft: #5d7ea9;--ink-invert: #ffffff;--brand: #3b8ef5;--brand-dark: #1e66cc;--accent: #ffcb45;--accent-dark: #eda900;--good: #33d17a;--bad: #ff6b8a;--info: #4cc9f0;--pink: #ff9ec4;--mint: #6ee7c2;--lilac: #bda9ff;--line: rgba(16, 48, 94, .09);--line-strong: rgba(16, 48, 94, .16);--highlight: inset 0 1px 0 rgba(255, 255, 255, .9);--e-1: 0 1px 2px rgba(18, 58, 110, .05), 0 3px 8px -3px rgba(18, 58, 110, .08);--e-2: 0 1px 2px rgba(9, 40, 82, .06), 0 6px 16px -6px rgba(9, 40, 82, .16), 0 14px 30px -18px rgba(9, 40, 82, .2);--e-3: 0 2px 4px rgba(9, 40, 82, .06), 0 12px 26px -10px rgba(9, 40, 82, .2), 0 32px 56px -28px rgba(9, 40, 82, .26);--e-4: 0 4px 8px rgba(9, 40, 82, .08), 0 22px 44px -14px rgba(9, 40, 82, .26), 0 48px 80px -36px rgba(9, 40, 82, .34);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-1: .12s;--dur-2: .18s;--dur-3: .26s;--ring: 0 0 0 3px rgba(59, 142, 245, .45);--ring-offset: 2px;--radius-sm: 12px;--radius: 18px;--radius-lg: 28px;--radius-pill: 999px;--shadow: 0 1px 2px rgba(18, 58, 110, .07), 0 3px 0 rgba(20, 53, 95, .06), 0 14px 24px -14px rgba(18, 58, 110, .32);--shadow-soft: var(--e-3);--font: "Nunito", "YouYuan", "幼圆", "Yuanti SC", "Yuanti TC", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", system-ui, -apple-system, "Helvetica Neue", sans-serif;--gutter: 20px;--page-max: 1180px;--tap-min: 44px;--topbar-height: 64px}@media (max-width: 1080px){:root{--gutter: 18px}}@media (max-width: 820px){:root{--gutter: 16px;--radius-lg: 26px}}@media (max-width: 560px){:root{--gutter: 14px;--radius: 16px;--radius-lg: 24px;--tap-min: 42px}}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}html{background:var(--bg-deep)}body{margin:0;font-family:var(--font);font-weight:700;color:var(--ink);background:radial-gradient(38rem 26rem at 82% -10%,rgba(255,231,160,.62),transparent 62%),radial-gradient(30rem 20rem at 12% 6%,rgba(255,255,255,.5),transparent 66%),radial-gradient(26rem 17rem at 62% 22%,rgba(255,255,255,.38),transparent 68%),radial-gradient(34rem 22rem at 6% 48%,rgba(255,255,255,.26),transparent 70%),radial-gradient(64rem 46rem at 50% 116%,rgba(58,140,220,.34),transparent 64%),linear-gradient(170deg,#8ecdff,#63b8fa 44%,#4298e8);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}@media (hover: none){body{background-attachment:scroll}}::selection{background:#ffc93c8c;color:var(--ink)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid rgba(255,255,255,.92);outline-offset:var(--ring-offset);box-shadow:var(--ring)}button{font-family:inherit;font-weight:800;cursor:pointer;border:none;border-radius:var(--radius);transition:transform var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),filter var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out);-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.55;filter:saturate(.35);transform:none!important;box-shadow:none}input,textarea,select{font-family:inherit;font-weight:700;color:var(--ink)}a{color:var(--accent)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: no-preference){.card{animation:card-in var(--dur-3) var(--ease-out) both}.card:nth-child(2){animation-delay:40ms}.card:nth-child(3){animation-delay:80ms}.card:nth-child(n+4){animation-delay:.12s}}@supports (scrollbar-width: thin){html{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.42) transparent}}@supports selector(::-webkit-scrollbar){::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:999px;background:#fff6;box-shadow:inset 0 0 0 2px #1f5fce8c}::-webkit-scrollbar-thumb:hover{background:#fff9}}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1;width:100%;max-width:var(--page-max);margin:0 auto;padding:24px var(--gutter) 64px;padding-left:max(var(--gutter),env(safe-area-inset-left));padding-right:max(var(--gutter),env(safe-area-inset-right));padding-bottom:max(64px,env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;gap:18px;padding:12px var(--gutter);background:#092a5c8c;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid rgba(255,255,255,.14);box-shadow:0 6px 24px -12px #061e4480;position:sticky;top:0;z-index:30;min-height:var(--topbar-height);isolation:isolate}.topbar__brand{display:flex;align-items:center;gap:10px;color:var(--ink-invert);font-size:21px;font-weight:900;text-decoration:none;letter-spacing:-.01em;flex:0 0 auto;transition:opacity var(--dur-2) var(--ease-out)}.topbar__brand:hover{opacity:.86}.topbar__brand span{font-size:26px;display:inline-block;transition:transform var(--dur-2) var(--ease-spring)}.topbar__brand:hover span{transform:rotate(-8deg) scale(1.08)}.topbar__links{display:flex;gap:4px;margin-left:auto;flex-wrap:nowrap}.topbar__link{color:#ffffffc7;text-decoration:none;padding:8px 14px;border-radius:999px;font-weight:800;white-space:nowrap;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.topbar__link:hover{background:#ffffff1f;color:#fff}.topbar__link.is-active{background:#ffffff2e;color:#fff;box-shadow:inset 0 1px #ffffff38,0 1px 8px -4px #0006}.topbar__menu{display:none;position:relative;margin-left:auto;width:44px;height:44px;padding:0;border:2px solid rgba(255,255,255,.22);border-radius:12px;background:#ffffff14;cursor:pointer;align-items:center;justify-content:center}.topbar__menu-icon{display:flex;flex-direction:column;gap:4px;width:20px}.topbar__menu-icon span{display:block;height:2px;border-radius:2px;background:#fff;transition:transform .2s ease,opacity .2s ease}.topbar__menu-icon.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.topbar__menu-icon.is-open span:nth-child(2){opacity:0}.topbar__menu-icon.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.topbar__menu-badge{position:absolute;top:-6px;right:-6px;margin:0}.topbar__scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:31;border:none;padding:0;background:#061a3866;cursor:pointer}.topbar__drawer{position:fixed;z-index:32;top:var(--topbar-height);left:0;right:0;display:flex;flex-direction:column;padding:8px var(--gutter) 14px;background:#12468f;border-bottom:2px solid rgba(255,255,255,.12);box-shadow:0 18px 30px #04142d59;max-height:calc(100vh - var(--topbar-height));overflow-y:auto}.topbar__drawer-link{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:var(--tap-min);padding:10px 14px;border-radius:12px;color:#ffffffdb;text-decoration:none;font-weight:800;font-size:17px}.topbar__drawer-link.is-active{background:#ffffff29;color:#fff}@media (max-width: 800px){.topbar__links{display:none}.topbar__menu{display:flex}}@media (min-width: 801px){.topbar__drawer,.topbar__scrim{display:none}}.conn-dot{width:10px;height:10px;border-radius:50%;background:var(--bad);box-shadow:0 0 0 4px #ff547033}.conn-dot.is-on{background:var(--good);box-shadow:0 0 0 4px #29cc7a33}.card{position:relative;background:var(--panel);border-radius:var(--radius-lg);padding:26px;border:1px solid var(--line);box-shadow:var(--e-3),var(--highlight)}.card+.card{margin-top:20px}.card--tight{padding:18px}.panel-dark{background:linear-gradient(180deg,#1e66cc57,#1856b06b);backdrop-filter:blur(10px) saturate(130%);-webkit-backdrop-filter:blur(10px) saturate(130%);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-lg);padding:22px;color:var(--ink-invert);box-shadow:0 18px 40px -24px #0c346c8c,var(--highlight)}h1,h2,h3{margin:0 0 12px;line-height:1.16;letter-spacing:-.015em;text-wrap:balance}h1{font-size:clamp(30px,5vw,46px);font-weight:900;letter-spacing:-.025em}h2{font-size:clamp(22px,3vw,30px);font-weight:900}h3{font-size:18px;font-weight:900}p{margin:0 0 12px;line-height:1.72;text-wrap:pretty}.muted{color:#4a6b99;font-weight:600;line-height:1.6}.on-dark{color:#ffffffd1}.hero{display:grid;gap:22px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start}@media (max-width: 880px){.hero{grid-template-columns:minmax(0,1fr)}}@media (max-width: 560px){.hero__actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.hero__actions>.btn{width:100%}}.btn{--btn-top: var(--brand);--btn-bottom: var(--brand-dark);--btn-cast: rgba(10, 44, 96, .5);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;font-size:17px;color:#fff;background:linear-gradient(180deg,var(--btn-top),var(--btn-bottom));box-shadow:inset 0 1px #ffffff3d,0 2px #09265047,0 10px 20px -10px var(--btn-cast)}.btn:hover:not(:disabled){transform:translateY(-2px) scale(1.02);box-shadow:inset 0 1px #ffffff4d,0 3px #09265042,0 18px 28px -12px var(--btn-cast)}.btn:active:not(:disabled){transform:translateY(1px) scale(.97);box-shadow:inset 0 1px #ffffff29,0 1px #0926504d,0 4px 10px -6px var(--btn-cast)}.btn--accent{--btn-top: var(--accent);--btn-bottom: var(--accent-dark);--btn-cast: rgba(180, 120, 0, .5);color:#3a2a00}.btn--good{--btn-top: #35e08c;--btn-bottom: #17a75f;--btn-cast: rgba(6, 90, 50, .45)}.btn--danger{--btn-top: #ff6b83;--btn-bottom: #e03050;--btn-cast: rgba(140, 16, 40, .45)}.btn--ghost{background:#ffffff24;border:2px solid rgba(255,255,255,.26);box-shadow:none}.btn--ghost:hover:not(:disabled){background:#ffffff38;box-shadow:none}.btn--quiet{background:var(--panel-soft);color:var(--ink);box-shadow:inset 0 1px #ffffffe6,0 1px #10305e1f,0 6px 14px -8px #0928524d}.btn--quiet:hover:not(:disabled){background:#e6f1ff;box-shadow:inset 0 1px #ffffffe6,0 2px #10305e1a,0 12px 20px -10px #09285252}.btn--sm{padding:9px 15px;font-size:15px;border-radius:var(--radius-pill)}.btn--lg{padding:18px 34px;font-size:21px}.btn--block{width:100%}.field{display:block;margin-bottom:16px}.field__label{display:block;margin-bottom:6px;font-size:14px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.6px}.input{width:100%;padding:13px 15px;font-size:17px;border-radius:var(--radius-sm);border:1.5px solid var(--line-strong);background:#fff;color:var(--ink);transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.input::placeholder{color:#587aa8b8;font-weight:600}.input:hover:not(:focus){border-color:#10305e42}.input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px #2b7ff029}.input--code{font-size:34px;font-weight:900;letter-spacing:12px;text-align:center;text-transform:uppercase;padding:16px 10px 16px 22px}.input--inline{width:auto}.mode-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.mode-card{text-align:left;padding:18px;border-radius:var(--radius);background:var(--panel-soft);color:var(--ink);border:2px solid transparent;box-shadow:none;display:flex;flex-direction:column;gap:6px;transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.mode-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--e-2)}.mode-card.is-selected{border-color:var(--brand);background:#e2efff;box-shadow:0 0 0 4px #2b7ff024}.mode-card.is-locked,.mode-card.is-locked:disabled{background:#f7fafd;border:1.5px dashed rgba(16,48,94,.16);box-shadow:none;filter:none;opacity:1;transform:none;cursor:default}.mode-card.is-locked .blook{filter:grayscale(1);opacity:.32}.mode-card.is-locked .mode-card__name{color:var(--ink-soft);font-weight:800}.mode-card.is-locked .badge{background:#10305e0f!important;color:var(--ink-soft)!important;font-weight:700}.mode-card__emoji{font-size:30px}.mode-card__name{font-size:19px;font-weight:900}.mode-card__tagline{font-size:14px;font-weight:700;color:var(--ink-soft)}.mode-card__steps{margin:6px 0 0;padding-left:18px;font-size:13px;font-weight:700;color:var(--ink-soft);line-height:1.5}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.02em;font-variant-numeric:tabular-nums;background:#2b7ff01f;color:var(--brand-dark)}.badge--good{background:#29cc7a29;color:#128a4e}.badge--bad{background:#ff547029;color:#c31d3f}.badge--accent{background:#ffcc0038;color:#8a6300}.room-code{font-size:clamp(48px,12vw,104px);font-weight:900;letter-spacing:.14em;color:#fff;text-shadow:0 6px 0 rgba(0,0,0,.28);line-height:1;padding-left:.14em}.join-hint{font-size:17px;color:#ffffffdb}.player-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.player-chip{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);background:#ffffff1f;border:2px solid rgba(255,255,255,.14);color:#fff;position:relative;overflow:hidden}.player-chip.is-offline{opacity:.45}.player-chip.is-answered{border-color:var(--good);background:#29cc7a33}.player-chip__name{font-weight:900;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-chip__sub{font-size:12px;color:#ffffffb3}.player-chip__kick{margin-left:auto;background:#ffffff29;color:#fff;border-radius:8px;padding:4px 8px;font-size:12px}.blook{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(180deg,#fff,#e9f3ff);border:3px solid var(--rarity, #9aa4b2);box-shadow:var(--e-1);line-height:1;flex:none;-webkit-user-select:none;user-select:none}.blook--sm{width:38px;height:38px;font-size:26px}.blook--md{width:56px;height:56px;font-size:30px}.blook--lg{width:84px;height:84px;font-size:46px}.blook--xl{width:120px;height:120px;font-size:66px}.question-stage{display:grid;gap:20px}.question-timer{height:18px;border-radius:999px;background:#ffffff2e;overflow:hidden}.question-timer__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--good),var(--accent) 65%,var(--bad));transition:width .2s linear}.question-text{font-size:clamp(24px,4vw,38px);font-weight:900;text-align:center;color:#fff;line-height:1.25}.answer-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.answer-btn{display:flex;align-items:center;gap:12px;padding:18px 20px;font-size:19px;text-align:left;color:var(--ink);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow),inset 0 1px #ffffffe6;border-radius:var(--radius);transition:transform var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.answer-btn:hover:not(:disabled){transform:translateY(-2px) scale(1.012);border-color:#3b8ef56b;box-shadow:0 2px 4px #123a6e14,0 4px #14355f0f,0 22px 32px -16px #123a6e66}.answer-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0928521a,0 1px #10305e14}.answer-btn__key{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;border-radius:10px;background:var(--panel-soft);color:var(--brand-dark);font-weight:900;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.answer-btn.is-picked{border-color:var(--accent-dark);box-shadow:0 0 0 3px #ffc93c8c,var(--shadow)}.answer-btn.is-correct{background:linear-gradient(180deg,#4ee89b,#17a75f);color:#fff}.answer-btn.is-correct .answer-btn__key{background:#ffffff3d;color:#fff}.answer-btn.is-wrong{background:linear-gradient(180deg,#ff8199,#d92a4d);color:#fff}.answer-btn.is-wrong .answer-btn__key{background:#ffffff3d;color:#fff}.answer-btn__count{margin-left:auto;font-size:14px;font-weight:900;opacity:.75}.chest-row{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.chest{padding:26px 12px;font-size:60px;background:linear-gradient(180deg,#ffe07a,#f0a800);box-shadow:var(--shadow);border-radius:var(--radius)}.chest:hover:not(:disabled){transform:translateY(-6px) scale(1.03)}.target-list{display:grid;gap:10px}.target-btn{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;color:var(--ink);box-shadow:var(--shadow)}.outcome{position:relative;text-align:center;padding:26px;border-radius:var(--radius-lg);color:#fff;animation:pop-in .35s ease-out}.outcome--bad{background:linear-gradient(180deg,#ff6b83,#c31d3f)}.outcome--neutral{background:linear-gradient(180deg,#7d8aa5,#4c5875)}.outcome--good{background:linear-gradient(180deg,#4ee89b,#17a75f)}.outcome--great{background:linear-gradient(180deg,#ffd54a,#f08a00);color:#3a2a00}.outcome__headline{font-size:clamp(26px,5vw,42px);font-weight:900}.token-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:10px}.token{padding:6px 14px;border-radius:999px;background:#ffffff38;font-weight:900}@keyframes pop-in{0%{transform:scale(.82);opacity:0}to{transform:scale(1);opacity:1}}.leaderboard{display:grid;gap:8px;margin:0;padding:0;list-style:none}.leaderboard__row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius);background:var(--panel-soft)}.leaderboard__row.is-me{background:#e2efff;box-shadow:0 0 0 2px var(--brand)}.leaderboard__row.is-first{background:linear-gradient(180deg,#fff3c4,#ffe08a)}.leaderboard__rank{width:34px;font-size:19px;font-weight:900;text-align:center;color:var(--ink-soft)}.leaderboard__name{font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard__score{margin-left:auto;font-size:26px;font-weight:900;color:var(--brand-dark)}.leaderboard__delta{font-size:13px;font-weight:900}.leaderboard__delta--up{color:#17a75f}.leaderboard__delta--down{color:#c31d3f}.leaderboard--dark .leaderboard__row{background:#ffffff1f;color:#fff}.leaderboard--dark .leaderboard__row.is-me{outline-color:var(--accent);background:#fff3}.leaderboard--dark .leaderboard__row.is-first{background:linear-gradient(180deg,#ffe08aeb,#f0a800eb);color:#3a2a00}.leaderboard--dark .leaderboard__rank,.leaderboard--dark .leaderboard__score{color:inherit}.chat{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto;padding:12px;border-radius:var(--radius);background:#0000002e}.chat__line{font-size:15px;color:#ffffffeb}.chat__who{font-weight:900;color:var(--accent);margin-right:6px}.editor-question{border:2px solid #e6e0fb;border-radius:var(--radius);padding:16px;margin-bottom:14px;background:#fbfaff}.editor-question__head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.editor-options{display:grid;gap:8px}.editor-option{display:flex;align-items:center;gap:10px}.editor-option__radio{width:22px;height:22px;flex:none;accent-color:var(--brand)}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.row--between{justify-content:space-between}.row--end{justify-content:flex-end}.spacer{flex:1}.stack{display:grid;gap:12px}.center{text-align:center}.stat-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.stat{padding:16px;border-radius:var(--radius);background:var(--panel-soft);border:1px solid var(--line);text-align:center}.stat__value{font-size:28px;font-weight:900;color:var(--brand-dark);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat__label{font-size:13px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.6px}.set-card{display:flex;align-items:center;gap:16px;padding:18px;border-radius:var(--radius);background:var(--panel-soft)}.banner{padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-weight:800}.banner--error{background:#ff547029;color:#b3123a;border:2px solid rgba(255,84,112,.35)}.banner--info{background:#35a7ff24;color:#12558f;border:2px solid rgba(53,167,255,.32)}.floating-error{position:fixed;left:50%;bottom:24px;transform:translate(-50%);max-width:min(560px,92vw);padding:14px 20px;border-radius:var(--radius);background:#134a9c;color:#fff;box-shadow:var(--shadow-soft);border:2px solid rgba(255,255,255,.18);z-index:60;display:flex;gap:14px;align-items:center}.waiting-pulse{animation:pulse 1.6s ease-in-out infinite}.question-image{display:block;margin:0 auto 16px;max-width:100%;max-height:min(46vh,360px);border-radius:var(--radius);object-fit:contain;background:#0000000a}.image-uploader__preview img{display:block;max-width:100%;max-height:200px;margin-bottom:8px;border-radius:var(--radius-sm);border:2px solid #ded8f5;object-fit:contain}.image-uploader__actions{display:flex;gap:8px;flex-wrap:wrap}.tap-pad{width:min(240px,60vw);height:min(240px,60vw);border-radius:50%;font-size:54px;font-weight:900;color:#0d3f7d;background:radial-gradient(circle at 35% 30%,#ffffff,#ffe9a8 45%,var(--accent));box-shadow:0 12px #00000038;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.tap-pad:active{transform:translateY(6px) scale(.97);box-shadow:0 6px #00000038}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.podium{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end}.podium__place{text-align:center;padding:18px 12px;border-radius:var(--radius);background:var(--panel-soft)}.podium__place--1{background:linear-gradient(180deg,#fff3c4,#ffd54a)}.podium__place--2{background:linear-gradient(180deg,#f2f4f8,#cfd6e4)}.podium__place--3{background:linear-gradient(180deg,#ffe6cf,#f0b183)}.pack-reveal{--rarity-color: #4d9bf5;--rarity-glow: var(--rarity-color);--rarity-ink: #ffffff;position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;overflow:hidden;padding:max(18px,env(safe-area-inset-top)) 18px calc(88px + env(safe-area-inset-bottom))}.pack-reveal__glow{position:absolute;top:-25%;right:-25%;bottom:-25%;left:-25%;z-index:0;pointer-events:none;background:radial-gradient(circle at 50% 48%,rgba(77,155,245,.55) 0%,rgba(255,255,255,.08) 32%,transparent 66%);background:radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--rarity-glow, #4d9bf5) 55%,transparent) 0%,rgba(255,255,255,.08) 32%,transparent 66%);opacity:.25;transform:scale(.75);transition:opacity .5s ease,transform .5s ease}.pack-reveal.is-shaking .pack-reveal__glow{animation:pack-glow-breathe .9s ease-in-out 3}.pack-reveal.is-revealed .pack-reveal__glow{opacity:1;transform:scale(1.12);animation:pack-glow-bloom .9s cubic-bezier(.2,.8,.3,1) both}.pack-reveal__pack{position:absolute;z-index:2;display:flex;align-items:center;justify-content:center;width:clamp(140px,48vw,220px);height:clamp(140px,48vw,220px);border-radius:var(--radius-lg);background:linear-gradient(180deg,#fff,#dcebff);border:4px solid rgba(255,255,255,.65);box-shadow:0 18px #06285a38,0 0 0 6px #ffffff24;transform-origin:50% 82%}.pack-reveal__pack-emoji{font-size:clamp(64px,22vw,104px);line-height:1;filter:drop-shadow(0 6px 0 rgba(6,40,90,.18))}.pack-reveal.is-shaking .pack-reveal__pack{animation:pack-shake-1 .42s ease-in-out 3,pack-shake-2 .32s ease-in-out 3 1.26s,pack-shake-3 .2s ease-in-out 4 2.22s}.pack-reveal.is-revealed .pack-reveal__pack{display:none}.pack-reveal__card{position:relative;z-index:3;display:none;flex-direction:column;align-items:center;gap:8px;width:min(86vw,330px);max-height:min(64vh,460px);overflow:hidden;padding:22px 20px 24px;border-radius:var(--radius-lg);text-align:center;color:var(--rarity-ink);background:linear-gradient(180deg,#fff,#eef6ff);border:4px solid var(--rarity-color);box-shadow:0 16px #06285a33,0 0 30px var(--rarity-glow)}.pack-reveal.is-revealed .pack-reveal__card{display:flex;animation:pack-card-pop .48s cubic-bezier(.2,.9,.3,1.15) both}.pack-reveal__card:after{content:"";position:absolute;top:-60%;bottom:-60%;left:-40%;width:35%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.85),transparent);transform:skew(-18deg);opacity:0}.pack-reveal.is-revealed .pack-reveal__card:after{animation:pack-sheen .85s ease-out .35s 1 both}.pack-reveal__avatar{display:flex;align-items:center;justify-content:center;width:clamp(104px,34vw,148px);height:clamp(104px,34vw,148px);font-size:clamp(58px,19vw,84px);line-height:1;border-radius:50%;background:radial-gradient(circle at 38% 28%,#fff,#e6f0ff 70%);border:4px solid var(--rarity-color);box-shadow:0 0 0 8px #4d9bf538;box-shadow:0 0 0 8px color-mix(in srgb,var(--rarity-color) 22%,transparent)}.pack-reveal__avatar img{width:100%;height:100%;border-radius:50%;object-fit:contain}.pack-reveal__name{font-size:clamp(22px,6vw,30px);font-weight:900;color:var(--ink);line-height:1.15;overflow-wrap:anywhere}.pack-reveal__rarity{font-size:14px;font-weight:900;letter-spacing:2px;text-transform:uppercase;padding:4px 14px;border-radius:999px;color:var(--rarity-ink);background:var(--rarity-color);box-shadow:0 4px #06285a2e}.pack-reveal__tag{font-size:15px;font-weight:900;color:var(--rarity-color)}.pack-reveal__burst{display:none;position:absolute;top:50%;left:50%;z-index:4;width:0;height:0;pointer-events:none}.pack-reveal.is-revealed .pack-reveal__burst{display:block}.pack-reveal__burst:before,.pack-reveal__burst:after{content:"";position:absolute;top:50%;left:50%;width:46vmin;height:46vmin;margin:-23vmin 0 0 -23vmin;border-radius:50%;opacity:0;background:radial-gradient(closest-side,transparent 52%,var(--rarity-glow) 62%,rgba(77,155,245,.4) 76%,transparent 84%);background:radial-gradient(closest-side,transparent 52%,var(--rarity-glow) 62%,color-mix(in srgb,var(--rarity-color) 40%,transparent) 76%,transparent 84%)}.pack-reveal.is-revealed .pack-reveal__burst:before{animation:pack-burst-a .9s cubic-bezier(.15,.75,.3,1) 1 both}.pack-reveal.is-revealed .pack-reveal__burst:after{animation:pack-burst-b 1.05s cubic-bezier(.15,.75,.3,1) .12s 1 both}.pack-reveal__skip{position:absolute;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:5;padding:10px 22px;font-size:15px;color:var(--ink);background:#ffffffdb;border:2px solid rgba(18,58,114,.12);box-shadow:0 4px #123a7224;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.pack-reveal__skip:active:not(:disabled){transform:translate(-50%) translateY(2px);box-shadow:0 2px #123a7224}@keyframes pack-glow-breathe{0%,to{opacity:.25;transform:scale(.75)}50%{opacity:.62;transform:scale(.95)}}@keyframes pack-glow-bloom{0%{opacity:.35;transform:scale(.7)}to{opacity:1;transform:scale(1.12)}}@keyframes pack-shake-1{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-4px) rotate(-2deg)}75%{transform:translate(4px) rotate(2deg)}}@keyframes pack-shake-2{0%,to{transform:translate(0) rotate(0) scale(1.02)}20%{transform:translate(-8px) rotate(-4deg) scale(1.03)}50%{transform:translate(6px) rotate(3deg) scale(1.05)}80%{transform:translate(-5px) rotate(-3deg) scale(1.03)}}@keyframes pack-shake-3{0%,to{transform:translate(0) rotate(0) scale(1.06)}20%{transform:translate(-10px,2px) rotate(-6deg) scale(1.08)}40%{transform:translate(9px,-3px) rotate(5deg) scale(1.1)}60%{transform:translate(-7px,3px) rotate(-4deg) scale(1.08)}80%{transform:translate(6px,-2px) rotate(3deg) scale(1.07)}}@keyframes pack-card-pop{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes pack-card-flip{0%{opacity:0;transform:perspective(900px) rotateY(-88deg) scale(.78)}to{opacity:1;transform:perspective(900px) rotateY(0) scale(1)}}@keyframes pack-card-jitter{0%{opacity:0;transform:translate(-8px,3px) rotate(-1.6deg) scale(.92)}55%{opacity:1}to{opacity:1;transform:translate(0) rotate(0) scale(1)}}@keyframes pack-sheen{0%{opacity:0;transform:translate(0) skew(-18deg)}25%{opacity:.9}to{opacity:0;transform:translate(560%) skew(-18deg)}}@keyframes pack-burst-a{0%{opacity:.95;transform:scale(.12)}to{opacity:0;transform:scale(1.15)}}@keyframes pack-burst-b{0%{opacity:.8;transform:scale(.2)}to{opacity:0;transform:scale(1.45)}}@keyframes pack-ray-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pack-hue-shift{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(360deg)}}@keyframes pack-aura-pulse{0%,to{opacity:.5;transform:scale(.9)}50%{opacity:1;transform:scale(1.08)}}.pack-reveal--common{--rarity-color: #9aa4b2;--rarity-glow: rgba(154, 164, 178, .35)}.pack-reveal--common .pack-reveal__glow{opacity:.12}.pack-reveal--common.is-revealed .pack-reveal__glow{opacity:.3;transform:scale(1)}.pack-reveal--common.is-revealed .pack-reveal__card{animation:pack-card-pop .26s ease-out both}.pack-reveal--common.is-revealed .pack-reveal__card:after{animation:none}.pack-reveal--uncommon{--rarity-color: #34c759;--rarity-glow: rgba(52, 199, 89, .55)}.pack-reveal--uncommon.is-revealed .pack-reveal__glow{transform:scale(1.05)}.pack-reveal--uncommon .pack-reveal__card{border-width:4px}.pack-reveal--uncommon.is-revealed .pack-reveal__card{animation:pack-card-pop .4s cubic-bezier(.25,.9,.35,1.25) both}.pack-reveal--uncommon.is-revealed .pack-reveal__card:after{animation:pack-sheen .7s ease-out .2s 1 both}.pack-reveal--rare{--rarity-color: #1f7bf0;--rarity-glow: rgba(56, 182, 255, .85)}.pack-reveal--rare .pack-reveal__burst:before,.pack-reveal--rare .pack-reveal__burst:after{width:42vmin;height:42vmin;margin:-21vmin 0 0 -21vmin}.pack-reveal--rare.is-revealed .pack-reveal__burst:before{animation-duration:.6s}.pack-reveal--rare.is-revealed .pack-reveal__burst:after{animation-duration:.7s}.pack-reveal--rare.is-revealed .pack-reveal__card{animation:pack-card-flip .55s cubic-bezier(.22,.85,.3,1.1) both}.pack-reveal--epic{--rarity-color: #a855f7;--rarity-glow: rgba(168, 85, 247, .9)}.pack-reveal--epic .pack-reveal__glow{background:radial-gradient(circle at 50% 48%,rgba(168,85,247,.62) 0%,rgba(255,255,255,.1) 34%,transparent 68%);background:radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--rarity-glow, #a855f7) 62%,transparent) 0%,rgba(255,255,255,.1) 34%,transparent 68%)}.pack-reveal--epic.is-revealed .pack-reveal__burst:before{animation-duration:.8s}.pack-reveal--epic.is-revealed .pack-reveal__burst:after{animation-duration:.95s}.pack-reveal--epic.is-revealed .pack-reveal__card{animation:pack-card-flip .6s cubic-bezier(.22,.85,.3,1.15) both}.pack-reveal--epic.is-revealed .pack-reveal__card:after{animation:pack-sheen .9s ease-out .3s 1 both}.pack-reveal--epic .pack-reveal__avatar{box-shadow:0 0 0 8px #a855f73d,0 0 26px #a855f7b3;box-shadow:0 0 0 8px color-mix(in srgb,var(--rarity-color) 24%,transparent),0 0 26px color-mix(in srgb,var(--rarity-glow) 70%,transparent)}.pack-reveal--legendary{--rarity-color: #ffb703;--rarity-glow: rgba(255, 183, 3, .95)}.pack-reveal--legendary .pack-reveal__glow{background:radial-gradient(circle at 50% 48%,rgba(255,183,3,.7) 0%,rgba(255,224,138,.24) 34%,transparent 70%);background:radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--rarity-glow, #ffb703) 70%,transparent) 0%,rgba(255,224,138,.24) 34%,transparent 70%)}.pack-reveal--legendary.is-revealed .pack-reveal__glow:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:conic-gradient(from 0deg,rgba(255,224,138,.4) 0deg 10deg,transparent 10deg 24deg,rgba(255,224,138,.4) 24deg 34deg,transparent 34deg 48deg,rgba(255,224,138,.4) 48deg 58deg,transparent 58deg 72deg,rgba(255,224,138,.4) 72deg 82deg,transparent 82deg 96deg,rgba(255,224,138,.4) 96deg 106deg,transparent 106deg 120deg,rgba(255,224,138,.4) 120deg 130deg,transparent 130deg 144deg,rgba(255,224,138,.4) 144deg 154deg,transparent 154deg 168deg,rgba(255,224,138,.4) 168deg 178deg,transparent 178deg 192deg,rgba(255,224,138,.4) 192deg 202deg,transparent 202deg 216deg,rgba(255,224,138,.4) 216deg 226deg,transparent 226deg 240deg,rgba(255,224,138,.4) 240deg 250deg,transparent 250deg 264deg,rgba(255,224,138,.4) 264deg 274deg,transparent 274deg 288deg,rgba(255,224,138,.4) 288deg 298deg,transparent 298deg 312deg,rgba(255,224,138,.4) 312deg 322deg,transparent 322deg 336deg,rgba(255,224,138,.4) 336deg 346deg,transparent 346deg 360deg);opacity:.75;animation:pack-ray-spin 9s linear infinite}.pack-reveal--legendary.is-revealed .pack-reveal__burst:before{animation-duration:1s}.pack-reveal--legendary.is-revealed .pack-reveal__burst:after{animation-duration:1.2s}.pack-reveal--legendary.is-revealed .pack-reveal__card{animation:pack-card-flip .68s cubic-bezier(.22,.85,.3,1.15) both;box-shadow:0 16px #06285a33,0 0 44px #ffb703f2}.pack-reveal--legendary.is-revealed .pack-reveal__card:after{animation:pack-sheen 1s ease-out .35s 1 both}.pack-reveal--legendary .pack-reveal__name{color:#8a6300}.pack-reveal--legendary .pack-reveal__rarity{color:#3a2a00}.pack-reveal--legendary .pack-reveal__tag{color:#b57e00}.pack-reveal--mythic{--rarity-color: #ff2d95;--rarity-glow: rgba(255, 45, 149, .95)}.pack-reveal--mythic .pack-reveal__glow{background:radial-gradient(circle at 50% 48%,rgba(255,45,149,.7) 0%,rgba(168,85,247,.28) 34%,transparent 68%);filter:blur(6px)}.pack-reveal--mythic.is-revealed .pack-reveal__glow{animation:pack-glow-bloom .9s cubic-bezier(.2,.8,.3,1) both,pack-hue-shift 4s linear .9s infinite}.pack-reveal--mythic.is-revealed .pack-reveal__burst:before{animation-duration:1.1s}.pack-reveal--mythic.is-revealed .pack-reveal__burst:after{animation-duration:1.3s}.pack-reveal--mythic.is-revealed .pack-reveal__card{border-color:transparent;background-image:linear-gradient(180deg,#fff,#fdeaf6),linear-gradient(120deg,#ff2d95,#ffd23f,#38b6ff,#a855f7,#ff2d95);background-origin:border-box;background-clip:padding-box,border-box;background-size:auto,320% 320%;box-shadow:0 16px #06285a33,0 0 34px #ff2d95bf;animation:pack-card-flip .7s cubic-bezier(.22,.85,.3,1.15) both,pack-hue-shift 4s linear .7s infinite}.pack-reveal--mythic.is-revealed .pack-reveal__card:after{background:linear-gradient(100deg,transparent,rgba(255,255,255,.9),rgba(255,214,240,.6),transparent);animation:pack-sheen 1.5s ease-in-out .4s infinite}.pack-reveal--mythic .pack-reveal__name{color:#b3125f}.pack-reveal--cursed{--rarity-color: #6b21a8;--rarity-glow: rgba(107, 33, 168, .85);--rarity-ink: #f3e8ff}.pack-reveal--cursed .pack-reveal__glow{background:radial-gradient(circle at 50% 50%,rgba(60,10,90,.85) 0%,rgba(30,5,48,.55) 38%,transparent 64%);mix-blend-mode:multiply}.pack-reveal--cursed.is-revealed .pack-reveal__glow{transform:scale(1.02);animation:pack-glow-bloom 1.4s ease-out both,pack-aura-pulse 2.4s ease-in-out 1.4s infinite}.pack-reveal--cursed.is-revealed .pack-reveal__burst{display:none}.pack-reveal--cursed .pack-reveal__card{background:linear-gradient(180deg,#2a0b3f,#170526);border-width:4px;box-shadow:0 16px #00000073,0 0 26px #6b21a8d9}.pack-reveal--cursed.is-revealed .pack-reveal__card{animation:pack-card-jitter .7s cubic-bezier(.3,.1,.4,1) both}.pack-reveal--cursed.is-revealed .pack-reveal__card:after{background:linear-gradient(100deg,transparent,rgba(196,132,252,.55),transparent);animation:pack-sheen .5s steps(6,end) .15s 2 both}.pack-reveal--cursed .pack-reveal__avatar{background:radial-gradient(circle at 38% 28%,#3d1259,#12031d 72%);border-color:#8b3fd4;box-shadow:0 0 0 8px #6b21a847,0 0 22px #8b3fd499}.pack-reveal--cursed .pack-reveal__name{color:#f3e8ff;text-shadow:0 0 10px rgba(168,85,247,.8)}.pack-reveal--cursed .pack-reveal__tag{color:#c484fc;text-transform:uppercase;letter-spacing:1px}.pack-reveal--cursed.is-shaking .pack-reveal__pack{animation:pack-shake-2 .5s ease-in-out 3,pack-shake-3 .16s steps(2,end) 5 1.5s}.pack-reveal--fairy{--rarity-color: #3ff0d0;--rarity-glow: #c9fff4;--rarity-ink: #04505a}.pack-reveal--fairy .pack-reveal__glow{background:radial-gradient(circle at 50% 46%,rgba(201,255,244,.95) 0%,rgba(63,240,208,.45) 30%,transparent 68%)}.pack-reveal--fairy.is-revealed .pack-reveal__glow{transform:scale(1.2);animation:pack-glow-bloom 1.6s cubic-bezier(.2,.8,.3,1) both}.pack-reveal--fairy.is-revealed .pack-reveal__card{background:linear-gradient(180deg,#fff,#e6fffb);box-shadow:0 16px #06505a38,0 0 46px #3ff0d0bf;animation:pack-card-pop .6s cubic-bezier(.2,.9,.3,1.15) both,pack-fairy-drift 3.6s ease-in-out .6s 1 both}.pack-reveal--fairy.is-revealed .pack-reveal__card:after{background:linear-gradient(100deg,transparent,rgba(255,255,255,.95),transparent);animation:pack-sheen 1.1s ease-out .3s 1 both}.pack-reveal--fairy .pack-reveal__avatar{background:radial-gradient(circle at 38% 28%,#fff,#ccfff5 72%);border-color:#3ff0d0;box-shadow:0 0 0 8px #3ff0d042,0 0 26px #3ff0d0b3}.pack-reveal--fairy .pack-reveal__name{color:#04505a;text-shadow:0 0 14px rgba(63,240,208,.85)}.pack-reveal--fairy .pack-reveal__rarity{color:#05796f;letter-spacing:2px}.pack-reveal--fairy .pack-reveal__tag{color:#05796f}.pack-reveal--fairy.is-revealed .pack-reveal__burst:before{animation-duration:1.4s;background:radial-gradient(circle,rgba(255,255,255,.9),transparent 62%)}.pack-reveal--fairy.is-revealed .pack-reveal__burst:after{animation-duration:1.6s;border-color:#3ff0d099}.pack-reveal--fairy.is-shaking .pack-reveal__pack{animation:pack-shake-1 .6s ease-in-out 2,pack-fairy-lift 1.1s ease-in-out .4s 1 both}@keyframes pack-fairy-drift{0%{transform:translateY(6px)}to{transform:translateY(0)}}@keyframes pack-fairy-lift{0%{transform:translateY(0)}to{transform:translateY(-14px)}}@media (prefers-reduced-motion: reduce){.pack-reveal *,.pack-reveal *:before,.pack-reveal *:after{animation:none!important;transition:none!important}.pack-reveal__glow{opacity:.6;transform:none}.pack-reveal.is-revealed .pack-reveal__glow{opacity:.85;transform:none}.pack-reveal__card{display:none}.pack-reveal.is-revealed .pack-reveal__card{display:flex}.pack-reveal.is-revealed .pack-reveal__card:after{opacity:0}.pack-reveal__burst{display:none}.pack-reveal--legendary.is-revealed .pack-reveal__glow:after{opacity:.4}}.pack-reveal__warning{margin:12px 4px 0;padding:8px 12px;max-width:30ch;border-radius:var(--radius-sm, 10px);background:#7b2ff72e;border:1px solid rgba(123,47,247,.5);color:#efe4ff;font-size:13px;line-height:1.5;text-align:center}.image-uploader__url{display:flex;gap:8px;align-items:center;margin-top:8px}.image-uploader__url .input{flex:1 1 auto;min-width:0;font-size:14px}.image-uploader__url .btn{flex:0 0 auto}.coin-summary{margin:18px auto 0;padding:16px 20px;max-width:320px;border-radius:var(--radius, 16px);background:linear-gradient(160deg,#fff6db,#ffe9ad);border:2px solid #ffd76a;box-shadow:0 6px 18px #b482002e}.coin-summary__label{font-size:13px;letter-spacing:.04em;color:#8a6100}.coin-summary__amount{display:flex;align-items:center;justify-content:center;gap:8px;margin:4px 0 2px;font-size:44px;font-weight:800;line-height:1.1;color:#7a5300;font-variant-numeric:tabular-nums}.coin-summary__icon{font-size:32px}.coin-summary__value{min-width:3ch;text-align:left}.coin-summary__detail,.coin-summary__balance{margin:4px 0 0;font-size:13px;color:#8a6100}.coin-summary__balance strong{color:#6b4700}@media (prefers-reduced-motion: reduce){.coin-summary{box-shadow:none}}.pull-counter{position:absolute;top:max(18px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:4;padding:6px 14px;border-radius:999px;background:#06142d8c;color:#fff;font-size:13px;letter-spacing:.02em;white-space:nowrap}.pull-counter__new{color:#9ff5c0}.pull-counter__dup{font-size:.8em;opacity:.85}.pull-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;margin:4px 0 0}.pull-grid__item{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:var(--radius-sm, 10px);border:2px solid;background:#ffffffb3}.pull-grid__name{font-size:12px;line-height:1.3;text-align:center;color:var(--ink, #123a72)}.pull-grid__new{position:absolute;top:-6px;right:-6px;padding:1px 6px;border-radius:999px;background:var(--brand, #1f7bf0);color:#fff;font-size:10px;font-weight:700;letter-spacing:.04em}.achievement-toast{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin-bottom:16px;padding:14px 16px;border-radius:var(--radius, 16px);background:linear-gradient(150deg,#fff6db,#ffe9ad);border:2px solid #ffd76a;box-shadow:0 8px 22px #b4820038;color:#6b4700;font-size:14px;animation:achievement-in .4s cubic-bezier(.2,.9,.3,1.2) both}.achievement-toast__row{display:flex;align-items:center;gap:8px}.achievement-toast__emoji{font-size:22px}.achievement-toast__close{align-self:flex-end;padding:6px 14px;border:none;border-radius:999px;background:#7a5300;color:#fff6db;font:inherit;font-size:13px;cursor:pointer}@keyframes achievement-in{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.achievement-toast{animation:none}}.ledger-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:18px}.ledger-stat{padding:14px;border-radius:var(--radius, 16px);background:#ffffffdb;border:2px solid rgba(31,123,240,.18);text-align:center}.ledger-stat__label{font-size:13px;color:#55708f}.ledger-stat__value{margin-top:4px;font-size:26px;font-weight:800;color:var(--ink, #123a72);font-variant-numeric:tabular-nums}.ledger-list{display:flex;flex-direction:column;gap:6px}.ledger-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm, 10px);background:#fff;border:1px solid var(--line);font-size:14px;transition:background-color var(--dur-2) var(--ease-out)}.ledger-row:hover{background:#f7fbff}.ledger-row__emoji{flex:0 0 auto;font-size:26px}.ledger-row__body{flex:1 1 auto;min-width:0}.ledger-row__reason{color:var(--ink, #123a72)}.ledger-row__detail{font-size:12px;color:#6b7f96;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ledger-row__amount{flex:0 0 auto;font-weight:700;font-variant-numeric:tabular-nums}.ledger-row__amount--in{color:#1a8f4c}.ledger-row__amount--out{color:#c2410c}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.achievement-card{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:var(--radius, 16px);background:#ffffffb8;border:2px solid rgba(31,123,240,.16)}.achievement-card--unlocked{background:linear-gradient(150deg,#fff6db,#ffe9ad);border-color:#ffd76a}.achievement-card__emoji{flex:0 0 auto;font-size:30px;filter:grayscale(1);opacity:.5}.achievement-card--unlocked .achievement-card__emoji{filter:none;opacity:1}.achievement-card__body{flex:1 1 auto;min-width:0}.achievement-card__name{font-weight:700;color:var(--ink, #123a72)}.achievement-card__desc{margin-top:2px;font-size:13px;color:#5c7590}.achievement-card__reward{margin-top:6px;font-size:13px;color:#8a6100}.achievement-progress{margin-top:8px;height:8px;border-radius:999px;background:#123a721f;overflow:hidden}.achievement-progress__bar{height:100%;border-radius:999px;background:var(--brand, #1f7bf0);transition:width .3s ease}.achievement-card--unlocked .achievement-progress__bar{background:#e0a200}@media (prefers-reduced-motion: reduce){.achievement-progress__bar{transition:none}}.board-compose{width:100%;min-height:84px;resize:vertical;font:inherit;line-height:1.5;box-sizing:border-box}.board-counter{display:block;margin-top:4px;text-align:right;font-size:12px;color:#6b7f96}.board-list{display:flex;flex-direction:column;gap:10px;max-height:60vh;overflow-y:auto;padding-right:4px}.board-post{padding:12px 14px;border-radius:var(--radius-sm, 10px);background:#fff;border:1px solid var(--line);transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.board-post:hover{border-color:#2b7ff047;box-shadow:var(--e-1)}.board-post__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:4px}.board-post__name{font-weight:700;color:var(--ink, #123a72)}.board-post__time{flex:0 0 auto;font-size:12px;color:#6b7f96}.board-post__actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.moderation__delete{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:2px solid rgba(224,48,80,.28);border-radius:8px;background:#ff5c7c1a;color:#d02b4a;font-size:15px;line-height:1;cursor:pointer}.moderation__delete:hover:not(:disabled){background:#ff5c7c38}.moderation__delete:disabled{opacity:.5;cursor:default}.moderation__delete--inline{width:24px;height:24px;margin-left:6px;font-size:12px;vertical-align:middle}.moderation__id{margin-left:6px;font-size:11px;font-weight:700;color:#8fa6bd}.blook-slot{position:relative;display:flex;flex-direction:column;min-width:0}.blook-slot .mode-card{flex:1}.blook-sell{margin-top:4px;padding:6px 8px;border:2px dashed rgba(224,160,0,.5);border-radius:10px;background:#ffd23f2e;color:#7a5800;font-size:13px;font-weight:800;cursor:pointer}.blook-sell:hover:not(:disabled){background:#ffd23f57}.blook-sell:disabled{opacity:.55;cursor:default}.board-post__text{margin:0;font-size:15px;line-height:1.6;color:#26405e;overflow-wrap:anywhere;white-space:pre-wrap}.topbar__badge{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;background:#ff5a5f;color:#fff;font-size:11px;font-weight:700;line-height:1.5;vertical-align:middle}.message__text{margin:0;font-size:15px;line-height:1.6;color:#26405e;overflow-wrap:anywhere;white-space:pre-wrap}.message__missing{margin:0;font-size:14px;color:#8a6a1f}.message__image-button{display:block;padding:0;border:none;background:none;cursor:zoom-in;max-width:100%}.message__image{display:block;max-width:min(320px,100%);max-height:260px;width:auto;height:auto;border-radius:10px;border:2px solid rgba(31,123,240,.18)}.message__lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:20px;background:#04142ddb;cursor:zoom-out}.message__lightbox-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}.message__lightbox-close{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;padding:10px 18px;border:2px solid rgba(255,255,255,.4);border-radius:999px;background:#ffffff1f;color:#fff;font-size:15px;font-weight:800;cursor:pointer}.message__audio{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.message__audio-player{flex:1 1 200px;min-width:0;height:38px}.message__audio-meta{font-size:13px;color:#6b7f96;font-variant-numeric:tabular-nums}.message__audio-hint{margin-left:4px}.composer__text{width:100%;min-height:84px;resize:vertical;font:inherit;line-height:1.5;box-sizing:border-box}.composer__counter{display:block;margin-top:4px;text-align:right;font-size:12px;color:#6b7f96}.composer__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.composer__actions .btn--lg{flex:0 0 auto}.composer__hint{margin:10px 0 0;font-size:13px}.composer__recording{padding:16px;border-radius:var(--radius-sm, 10px);background:#fff4f4;border:2px solid rgba(255,92,124,.35)}.composer__rec-dot{display:inline-block;width:12px;height:12px;margin-right:8px;border-radius:50%;background:#ff3b52;animation:rec-pulse 1s ease-in-out infinite;vertical-align:middle}@keyframes rec-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}@media (prefers-reduced-motion: reduce){.composer__rec-dot{animation:none}}.draft{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-sm, 10px);background:var(--panel-soft, #eef6ff);border:2px solid rgba(31,123,240,.2);flex-wrap:wrap}.draft__thumb{width:72px;height:72px;object-fit:cover;border-radius:8px;flex:0 0 auto}.draft__audio{flex:1 1 200px;min-width:0;height:38px}.draft__meta{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0;font-size:14px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.chat__line .message__text,.chat__line .message__audio,.chat__line .message__image-button{margin-top:2px}.chat__line{display:flex;flex-direction:column;gap:2px}.stale-build{position:fixed;left:50%;transform:translate(-50%);bottom:calc(16px + env(safe-area-inset-bottom));z-index:75;display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 32px);padding:12px 16px;border-radius:14px;background:#fffbe6;border:2px solid #f0c000;box-shadow:0 12px 28px #06285a47;color:#6b4d00;font-weight:800;font-size:14px}.topbar__brand-text{line-height:1.1}.image-uploader{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:var(--radius);background:var(--panel-soft);border:1px dashed rgba(16,48,94,.18)}.image-uploader__preview{display:flex;align-items:center;justify-content:center;padding:8px;border-radius:var(--radius-sm);background:#fff;border:1px solid var(--line)}.image-uploader__preview img{max-width:100%;max-height:180px;border-radius:var(--radius-sm);object-fit:contain}.image-uploader__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.image-uploader__url{display:flex;gap:8px;align-items:center}.outcome__detail{font-size:15px;font-weight:700;line-height:1.5;color:var(--ink-soft)}.star-burst{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;z-index:5}.star-burst__star{position:absolute;left:0;top:0;font-size:26px;line-height:1;will-change:transform,opacity;animation:star-fly .9s var(--ease-out) forwards}@keyframes star-fly{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(0)}18%{opacity:1;transform:translate(-50%,-50%) scale(var(--scale, 1)) rotate(calc(var(--rot, 0deg) * .3))}to{opacity:0;transform:translate(calc(-50% + var(--dx, 0px)),calc(-50% + var(--dy, 0px))) scale(.7) rotate(var(--rot, 0deg))}}.star-burst--bad .star-burst__star{filter:grayscale(.5);opacity:.7}@media (prefers-reduced-motion: reduce){.star-burst{display:none}}.sound-toggle{flex:none;width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;border-radius:var(--radius-pill);background:#ffffff1f;border:1px solid rgba(255,255,255,.2);box-shadow:none}.sound-toggle:hover:not(:disabled){background:#ffffff38;transform:translateY(-1px) scale(1.05)}body{-webkit-text-stroke:.35px currentColor;font-synthesis:weight style}.muted,.board-post__text,.outcome__detail{font-weight:700}h1,h2,h3,.btn,.mode-card__name{-webkit-text-stroke-width:.45px}.blook{position:relative;isolation:isolate;box-shadow:inset 0 2px 3px #fffffff2,inset 0 -4px 8px #14355f1f,0 3px 8px -3px #123a6e4d}.blook:after{content:"";position:absolute;left:14%;right:14%;top:10%;height:46%;border-radius:50%;background:radial-gradient(80% 100% at 45% 15%,rgba(255,255,255,.92),transparent 72%);pointer-events:none;z-index:1}.blook--lg,.blook--xl{box-shadow:inset 0 2px 4px #fffffff2,inset 0 -6px 12px #14355f24,0 0 0 3px #ffffff8c,0 10px 22px -10px var(--rarity, rgba(18, 58, 110, .45)),0 0 24px -6px var(--rarity, transparent)}.connection-notice{position:fixed;top:calc(var(--topbar-height) + 8px);left:50%;transform:translate(-50%);z-index:80;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 24px);padding:9px 16px;border-radius:var(--radius-pill);font-size:14px;font-weight:800;box-shadow:var(--e-3);animation:notice-drop var(--dur-3) var(--ease-out) both}.connection-notice.is-down{background:#fff4d6;border:1.5px solid #f0c000;color:#6b4d00}.connection-notice.is-restored{background:#e6fbef;border:1.5px solid var(--good);color:#0d6b3c}.connection-notice__elapsed{font-variant-numeric:tabular-nums;opacity:.75}.connection-notice__hint{font-weight:600;opacity:.8}.connection-notice__icon{color:var(--good);font-weight:900}.connection-notice__spinner{width:13px;height:13px;flex:none;border-radius:50%;border:2px solid rgba(107,77,0,.25);border-top-color:#b8860b;animation:notice-spin .9s linear infinite}@keyframes notice-spin{to{transform:rotate(360deg)}}@keyframes notice-drop{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.connection-notice{animation:none}.connection-notice__spinner{animation:none;border-top-color:#b8860b}}.paused-banner{position:fixed;top:calc(var(--topbar-height) + 8px);left:50%;transform:translate(-50%);z-index:79;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 24px);padding:10px 18px;border-radius:var(--radius-pill);background:#eef2ff;border:1.5px solid #b9c6ff;color:#2b3a7a;box-shadow:var(--e-3);animation:notice-drop var(--dur-3) var(--ease-out) both}.paused-banner strong{display:block;font-size:14px}.paused-banner small{display:block;margin-top:2px;font-size:12px;font-weight:600;opacity:.8}.paused-banner__icon{font-size:18px;line-height:1}@media (prefers-reduced-motion: reduce){.paused-banner{animation:none}}.card .btn--ghost{color:var(--ink);background:#10305e0b;border-color:var(--line-strong)}.card .btn--ghost:hover:not(:disabled){background:#10305e14;border-color:#10305e47}.route-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:60px 20px;color:#ffffffe6;font-weight:800}.route-loading__dot{width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:notice-spin .8s linear infinite}.crash-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.crash-screen__card{max-width:460px;padding:32px 28px;border-radius:var(--radius-lg);background:var(--panel);border:1px solid var(--line);box-shadow:var(--e-4);text-align:center}.crash-screen__emoji{font-size:52px;line-height:1;margin-bottom:12px}@media (prefers-reduced-motion: reduce){.route-loading__dot{animation:none}}.quick-start{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px;padding:14px 18px;border-radius:var(--radius);background:linear-gradient(180deg,#fff8e6,#fff3cf);border:1px solid rgba(232,160,0,.35);box-shadow:var(--e-1)}.quick-start__text{flex:1 1 240px;min-width:0}.quick-start__text strong{display:block;font-size:15px;color:#6b4d00}.quick-start__text small{display:block;margin-top:2px;font-size:12px;font-weight:600;color:#6b4d00bf}.quick-start__error{flex:1 1 100%;font-size:13px;font-weight:700;color:#a11a33}.visit-list{display:flex;flex-direction:column;gap:10px}.visit{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:#ffffffb8;border:1px solid rgba(31,123,240,.12)}.visit--pending{border-style:dashed}.visit__head{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}.visit__time{font-variant-numeric:tabular-nums;color:#6b7a90;font-size:13px;min-width:62px}.visit__who{font-weight:700}.visit__ip{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;color:#44536b}.visit__meta{display:flex;flex-wrap:wrap;gap:4px 12px;color:#6b7a90;font-size:12.5px}
