:root{--bg: #0b0d14;--surface: #161a26;--surface-2: #1c2130;--surface-3: #252b3d;--border: rgba(255, 255, 255, .08);--text: #e8ebf2;--muted: #9aa3b8;--accent: #5b8cff;--accent-2: #8b5bff;--good: #34d399;--bad: #ff4d5e;--radius: 14px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(1200px 620px at 50% -12%,#181d31,var(--bg) 62%);background-attachment:fixed;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit}.app{min-height:100dvh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:20;padding:16px 16px 14px;background:linear-gradient(180deg,#0b0d14f2,#0b0d14c7);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.header__top{max-width:1180px;margin:0 auto 12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px}.header__lead{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;min-width:0}.header__actions{display:flex;align-items:center;gap:8px}.brand{display:flex;align-items:center;gap:9px}.brand__name{font-size:15px;font-weight:800;letter-spacing:-.01em;white-space:nowrap}.userchip{display:inline-flex;align-items:center;gap:8px;max-width:200px;padding:3px 11px 3px 3px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border)}.userchip__avatar{width:26px;height:26px;flex:none;border-radius:50%;object-fit:cover;background:var(--surface-3);display:grid;place-items:center;overflow:hidden}.userchip__avatar--fallback{font-size:12px;font-weight:800;color:var(--text);background:linear-gradient(135deg,var(--accent),var(--accent-2))}.userchip__name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scoreboard{display:inline-flex;align-items:center;flex-wrap:wrap;gap:7px;padding:7px 13px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:13px;color:var(--muted);line-height:1}.sb__label{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);opacity:.75;margin-right:1px}.sb strong{color:var(--text);font-weight:800}.sb--out strong{color:var(--bad)}.sb__sep{opacity:.35}.set-name{max-width:1100px;margin:0 auto;text-align:center;font-weight:800;letter-spacing:-.02em;line-height:1.08;font-size:clamp(1.55rem,1rem + 3vw,3rem);text-wrap:balance;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.set-sub{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 12px;margin-top:10px}.set-hint{margin:0;color:var(--muted);font-size:14px}.set-ref{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);font-size:13px;font-weight:600;text-decoration:none;transition:color .15s ease,border-color .15s ease,background .15s ease}.set-ref:hover{color:var(--text);border-color:var(--accent);background:var(--surface-3)}.set-ref svg{opacity:.85}@media(max-width:640px){.header{padding:9px 12px}.header__top{margin-bottom:8px;gap:6px 10px}.header__lead{gap:6px 10px;flex:1 1 100%}.header__actions{gap:6px;margin-left:auto}.brand{gap:7px}.brand__name{font-size:13px}.scoreboard{padding:4px 9px;gap:4px;font-size:11.5px}.sb__label{display:none}.userchip{padding:0;border:none;background:none}.userchip__name{display:none}.userchip__avatar{width:30px;height:30px}.iconbtn{width:34px;height:34px;font-size:15px}.set-name{font-size:clamp(1.35rem,.85rem + 2.4vw,1.7rem);line-height:1.12}.set-sub{margin-top:6px;gap:4px 10px}.set-hint{font-size:12.5px}.set-hint__instr{display:none}.set-ref{padding:3px 9px;font-size:12px}.content{padding:12px 12px 120px}}.content{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:22px 16px 132px}.card-grid{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}@media(min-width:560px){.card-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:760px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:18px}}.card{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;margin:0;padding:0;background:transparent;color:inherit;text-align:left;cursor:pointer;display:block;border-radius:var(--radius);animation:cardIn .5s cubic-bezier(.2,.7,.3,1) both}@keyframes cardIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.card__frame{position:relative;aspect-ratio:300 / 420;border-radius:12px;overflow:hidden;background:#0a0a0f;box-shadow:0 6px 20px #00000073;transition:transform .18s ease,box-shadow .18s ease}.card:hover .card__frame{transform:translateY(-4px) scale(1.015);box-shadow:0 16px 36px #0000008c}.card:focus-visible{outline:none}.card:focus-visible .card__frame{outline:3px solid var(--accent);outline-offset:2px}.card__media{width:100%;height:100%;object-fit:cover;display:block;transition:filter .55s ease,opacity .55s ease,transform .55s ease}.card.is-invalid .card__media{filter:grayscale(.9) blur(5px) brightness(.45);opacity:.6;transform:scale(.99)}.stamp{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .3s ease}.card.is-invalid .stamp{opacity:1}.stamp__mark{display:flex;flex-direction:column;align-items:center;gap:2px;color:#f34;border:3px solid #ff3344;border-radius:12px;padding:8px 15px;background:#1900062e;box-shadow:0 0 0 2px #ff334438;text-shadow:0 1px 1px rgba(0,0,0,.45);transform:rotate(-15deg)}.stamp__x{font-size:clamp(22px,6vw,34px);line-height:1;font-weight:900}.stamp__label{font-size:clamp(10px,2.6vw,13px);font-weight:900;letter-spacing:3px}.card.just-rejected .card__frame{animation:punch .42s ease}@keyframes punch{0%{transform:scale(1)}18%{transform:scale(.93) rotate(-1.5deg)}42%{transform:scale(1.035) rotate(1deg)}70%{transform:scale(.99)}to{transform:scale(1)}}.card.just-rejected .stamp{opacity:1}.card.just-rejected .stamp__mark{animation:stampIn .5s cubic-bezier(.2,1.5,.35,1) both}@keyframes stampIn{0%{transform:rotate(-34deg) scale(2.4);opacity:0}55%{transform:rotate(-12deg) scale(.86);opacity:1}75%{transform:rotate(-16deg) scale(1.06)}to{transform:rotate(-15deg) scale(1)}}.particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.particle{position:absolute;left:50%;top:45%;width:9px;height:9px;margin:-4px 0 0 -4px;border-radius:2px;background:var(--bad);transform:rotate(var(--a)) translateY(0);animation:particle .68s cubic-bezier(.15,.6,.3,1) forwards}.particle:nth-child(3n){background:#ffd23b}.particle:nth-child(4n){background:#fff;width:6px;height:6px}@keyframes particle{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1)}to{opacity:0;transform:rotate(var(--a)) translateY(calc(-1 * var(--d))) scale(.2)}}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;font:inherit;font-weight:700;border-radius:11px;padding:11px 18px;white-space:nowrap;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 6px 18px #5b8cff59}.btn--primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 26px #5b8cff73}.btn--ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn--ghost:hover:not(:disabled){background:var(--surface-3)}.iconbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--text);width:38px;height:38px;border-radius:10px;cursor:pointer;font-size:16px;display:grid;place-items:center;transition:background .15s ease}.iconbtn:hover{background:var(--surface-3)}.bottomnav{position:sticky;bottom:0;z-index:20;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(0deg,#0b0d14fa,#0b0d14b8);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border)}.bottomnav__inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:10px}.bottomnav__left{display:flex;gap:8px}.bottomnav__summary{margin-left:auto;display:flex;align-items:center;gap:4px;color:var(--muted);font-weight:700;font-size:14px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot--kept{background:var(--good)}.dot--removed{background:var(--bad);margin-left:10px}@media(max-width:560px){.bottomnav__inner{flex-wrap:wrap}.btn--primary{order:3;flex:1 1 100%;text-align:center}}.statusview{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:40px 20px;text-align:center;color:var(--muted)}.statusview__title{margin:0;color:var(--text);font-weight:700;font-size:18px}.statusview p{margin:0}.spinner{width:38px;height:38px;border-radius:50%;border:3px solid var(--surface-3);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.complete{flex:1;width:100%;max-width:620px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;text-align:center}.complete__badge{font-size:64px;animation:pop .6s cubic-bezier(.2,1.5,.35,1) both}@keyframes pop{0%{transform:scale(0)}to{transform:scale(1)}}.complete__title{margin:0;font-size:clamp(1.8rem,5vw,2.6rem);font-weight:800;letter-spacing:-.02em}.complete__sub{margin:0;color:var(--muted)}.complete__list{list-style:none;width:100%;margin:18px 0;padding:0;display:flex;flex-direction:column;gap:8px}.complete__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-align:left}.complete__name{font-weight:600;font-size:14px}.complete__count{display:flex;align-items:center;gap:4px;color:var(--muted);font-weight:700;font-size:14px;white-space:nowrap}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.login__card{width:100%;max-width:400px;display:flex;flex-direction:column;padding:32px 28px;border-radius:20px;background:linear-gradient(180deg,var(--surface),#12151f);border:1px solid var(--border);box-shadow:0 30px 80px #00000080;animation:cardIn .5s cubic-bezier(.2,.7,.3,1) both}.login__brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:22px}.login__product{font-size:19px;font-weight:800;letter-spacing:-.01em}.login__title{margin:0 0 6px;text-align:center;font-size:21px;font-weight:800;letter-spacing:-.02em}.login__sub{margin:0 0 22px;text-align:center;color:var(--muted);font-size:14px}.field{display:block;margin-bottom:14px}.field__label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--muted)}.field__input{width:100%;padding:12px 14px;border-radius:11px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:15px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field__input::placeholder{color:#5f6679}.field__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5b8cff40}.field__input:disabled{opacity:.6}.login__error{margin-bottom:14px;padding:9px 12px;border-radius:10px;font-size:13px;color:#ff8a96;background:#ff4d5e1f;border:1px solid rgba(255,77,94,.4)}.login__submit{width:100%;margin-top:4px;padding:13px;font-size:15px}.login__foot{margin:18px 0 0;text-align:center;color:var(--muted);font-size:12px}.lb{flex:1;width:100%;max-width:640px;margin:0 auto;padding:22px 16px 60px}.lb__head{text-align:center}.lb__title{margin:0;font-size:clamp(1.6rem,1rem + 3vw,2.4rem);font-weight:900;letter-spacing:-.02em}.lb__sub{margin:6px 0 0;color:var(--muted);font-size:14px}.lb__stats{margin-top:12px;display:inline-flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:6px 14px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:13px;color:var(--muted)}.lb__stats strong{color:var(--text)}.lb__statsep{opacity:.4}.lb__live{display:inline-flex;align-items:center;gap:5px;color:var(--good);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:11px}.lb__live-dot{width:7px;height:7px;border-radius:50%;background:var(--good);animation:lbPulse 1.6s ease-out infinite}@keyframes lbPulse{0%{box-shadow:0 0 #34d39999}70%{box-shadow:0 0 0 6px #34d39900}to{box-shadow:0 0 #34d39900}}.lb__podium{display:flex;align-items:flex-end;justify-content:center;gap:10px;margin:28px auto 0;max-width:520px}.lb__spot{position:relative;flex:1 1 0;min-width:0;max-width:168px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}.lb__crown{font-size:26px;line-height:1;margin-bottom:-2px;filter:drop-shadow(0 2px 6px rgba(255,200,0,.5));animation:lbBounce 2.2s ease-in-out infinite}@keyframes lbBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.lb__avatar{width:54px;height:54px;flex:none;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--surface-3)}.lb__avatar--fallback{font-size:20px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2))}.lb__avatar--podium{border:3px solid var(--border);box-shadow:0 6px 18px #0006}.lb__spot--gold .lb__avatar--podium{width:68px;height:68px;border-color:#ffd34d;box-shadow:0 0 0 4px #ffd34d33,0 8px 22px #00000080}.lb__spot--silver .lb__avatar--podium{border-color:#d8dee8}.lb__spot--bronze .lb__avatar--podium{border-color:#e6a86b}.lb__medal{font-size:20px;line-height:1}.lb__spot-name{display:flex;align-items:center;justify-content:center;gap:6px;max-width:100%;font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb__pedestal{width:100%;margin-top:6px;border-radius:12px 12px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#1a1205}.lb__pedestal-score{font-size:24px;font-weight:900;line-height:1}.lb__pedestal-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.72}.lb__spot--gold .lb__pedestal{height:104px;background:linear-gradient(180deg,#ffe27a,#d99a1f)}.lb__spot--silver .lb__pedestal{height:78px;background:linear-gradient(180deg,#e7ecf3,#9aa3b8)}.lb__spot--bronze .lb__pedestal{height:60px;background:linear-gradient(180deg,#f0bd86,#b06f33)}.lb__spot.is-you .lb__avatar--podium{outline:2px dashed var(--accent);outline-offset:3px}.lb__you{flex:none;font-size:10px;font-weight:800;letter-spacing:.06em;color:#fff;background:var(--accent);border-radius:999px;padding:2px 6px}.lb__list{list-style:none;margin:18px auto 0;padding:0;max-width:520px;display:flex;flex-direction:column;gap:8px}.lb__row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.lb__row.is-you{border-color:var(--accent);background:linear-gradient(90deg,rgba(91,140,255,.12),var(--surface))}.lb__rank{width:26px;flex:none;text-align:center;font-weight:800;font-size:15px;color:var(--muted)}.lb__row .lb__avatar{width:36px;height:36px;font-size:15px}.lb__name{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-weight:600}.lb__name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb__score{flex:none;display:flex;align-items:baseline;gap:5px}.lb__score strong{color:var(--bad);font-size:17px;font-weight:800}.lb__score-label{color:var(--muted);font-size:12px}.lb__empty{text-align:center;padding:30px 20px;color:var(--muted)}.lb__empty-emoji{font-size:48px}.lb__empty .statusview__title{margin:12px 0 4px}.iconbtn--active{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:transparent;color:#fff}@media(max-width:640px){.lb{padding:14px 12px 48px}.lb__podium{gap:6px}.lb__spot{max-width:none}.lb__avatar{width:46px;height:46px;font-size:17px}.lb__spot--gold .lb__avatar--podium{width:58px;height:58px}.lb__pedestal-score{font-size:20px}.lb__spot-name{font-size:12.5px}.lb__spot--gold .lb__pedestal{height:90px}.lb__spot--silver .lb__pedestal{height:66px}.lb__spot--bronze .lb__pedestal{height:52px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important}.card__media{transition:filter .25s ease,opacity .25s ease!important}}
