@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-SemiBold.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/montserrat_bold.ttf) format("truetype");font-weight:700 800;font-display:swap}:root{--bg: #0c0c0d;--bg-soft: #131314;--card: #171718;--card-2: #101011;--line: #2a2a2c;--line-soft: #202022;--text: #f4f4f5;--muted: #8a8a8f;--muted-2: #6a6a70;--value: #c9c9cf;--gold: #d9c07a;--green: #6ecb8b;--radius: 22px;--radius-sm: 14px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Montserrat,Segoe UI,system-ui,-apple-system,sans-serif;font-weight:600;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{max-width:940px;margin:0 auto;min-height:100vh;padding:22px 18px 56px;background:radial-gradient(1100px 520px at 78% -8%,rgba(255,255,255,.05),transparent 60%),radial-gradient(760px 420px at 8% 108%,rgba(255,255,255,.035),transparent 60%)}.boot,.error{padding:64px 16px;text-align:center;color:var(--muted)}.error{color:#e08585;white-space:pre-wrap}.brand{text-align:center;letter-spacing:.5em;font-weight:800;font-size:13px;color:var(--muted-2);text-transform:uppercase;margin-bottom:18px;padding-left:.5em}.hero{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius);padding:22px;margin-bottom:16px}.hero-top{display:flex;align-items:center;gap:14px}.icon-tile{width:60px;height:60px;flex:none;border-radius:var(--radius-sm);background:var(--card-2);border:1px solid var(--line-soft);display:flex;align-items:center;justify-content:center;overflow:hidden}.icon-tile img{width:100%;height:100%;object-fit:cover}.icon-tile.emoji{font-size:28px}.hero-name{font-weight:800;font-size:19px;letter-spacing:.2px}.hero-sub{color:var(--muted);font-size:12.5px;margin-top:2px}.mock-badge{margin-left:auto;align-self:flex-start;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);border:1px solid var(--line);padding:4px 8px;border-radius:8px;font-weight:700}.score-row{display:flex;gap:12px;margin-top:18px}.score-card{flex:1;background:var(--card-2);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:12px 14px}.score-card .v{font-size:22px;font-weight:800;letter-spacing:.3px}.score-card .l{font-size:11px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.1em;margin-top:3px}.score-card.rank .v{color:var(--gold)}.bar{height:6px;background:#0c0c0d;border:1px solid var(--line-soft);border-radius:99px;margin-top:16px;overflow:hidden}.bar>span{display:block;height:100%;background:linear-gradient(90deg,#d7d7db,#9a9aa0);border-radius:99px}.bar-label{display:flex;justify-content:space-between;font-size:11px;color:var(--muted-2);margin-top:7px;text-transform:uppercase;letter-spacing:.08em}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.tabs button{flex:1 1 0;min-width:76px;background:var(--bg-soft);color:var(--muted);border:1px solid var(--line-soft);border-radius:12px;padding:10px 6px;font-family:inherit;font-size:12px;font-weight:700;letter-spacing:0;cursor:pointer;transition:.12s}.tabs button:hover{color:var(--text)}.tabs button.active{background:#242427;color:#fff;border-color:#3a3a3e}.section-timer{font-size:11.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.1em;margin:0 2px 12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}.card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;transition:border-color .12s,opacity .12s}.card:hover{border-color:var(--line)}.card.done{opacity:.5}.card.next{border-color:#3d3d42;box-shadow:inset 0 0 0 1px #ffffff0a}.card-head{display:flex;gap:13px;align-items:flex-start}.card-title{font-weight:800;font-size:16px;line-height:1.25;letter-spacing:.2px}.card-title .sub{display:block;color:var(--muted);font-weight:800}.card-desc{font-size:12.5px;color:var(--value);margin-top:14px;font-weight:600}.card-desc b{color:var(--muted-2);font-weight:700}.card-foot{display:flex;align-items:center;gap:10px;margin-top:16px}.reward-label{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--muted-2);text-transform:uppercase;white-space:nowrap}.reward-value{font-size:13px;font-weight:800;color:var(--value);white-space:nowrap}.reward-value .u{color:var(--muted-2);font-weight:700}.metric-badge{margin-left:auto;font-size:10.5px;color:var(--muted-2);white-space:nowrap;border:1px solid var(--line-soft);border-radius:7px;padding:3px 7px;font-weight:700}.card-action{margin-top:16px;display:flex;gap:8px;align-items:center}.btn{font-family:inherit;font-weight:800;font-size:12px;letter-spacing:.04em;border-radius:11px;padding:10px 16px;cursor:pointer;transition:.12s;background:#242427;color:#f4f4f5;border:1px solid #38383d}.btn:hover{background:#2c2c30}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:transparent;color:var(--muted-2);border-color:var(--line-soft)}.btn.ghost:hover{color:var(--muted)}.done-mark{color:var(--green);font-weight:800;font-size:13px;letter-spacing:.03em}.lb{display:flex;flex-direction:column;gap:8px}.lb-row{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:12px 16px}.lb-row.me{border-color:#3d3d42;background:#1c1c1e}.lb-rank{width:26px;text-align:center;font-weight:800;font-size:15px;color:var(--muted-2)}.lb-rank.top{color:var(--gold)}.lb-av{width:34px;height:34px;border-radius:50%;background:var(--card-2);flex:none;object-fit:cover}.lb-name{flex:1;font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-pts{font-weight:800;color:var(--value);font-size:14px}.lb-pts .u{color:var(--muted-2);font-weight:700;font-size:11px}.lb-sep{text-align:center;color:var(--muted-2);letter-spacing:.3em;padding:4px 0}.hint{font-size:11px;color:var(--muted-2);margin-top:20px;text-align:center;line-height:1.5}@media (max-width: 520px){#app{padding:16px 12px 44px}.grid{grid-template-columns:1fr}.score-card .v{font-size:19px}.tabs button{flex:1 1 calc(50% - 4px)}}
