:root{--bg: #0C1117;--panel: #11181F;--line: #1F2A35;--ink: #E8EEF4;--mut: #7E8C9A;--fresh: #E6DBBE;--maxw: 560px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:IBM Plex Sans,system-ui,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}a{color:inherit}button{font-family:inherit}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:10px;padding:14px 18px 8px;max-width:var(--maxw);width:100%;margin:0 auto}.brand{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.brand .dot{color:var(--fresh)}.topbar .as-of{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--mut)}.topbar .spacer{flex:1}.iconbtn{background:none;border:1px solid var(--line);color:var(--mut);border-radius:8px;width:34px;height:30px;cursor:pointer;font-size:16px;line-height:1}.iconbtn:hover{color:var(--ink);border-color:var(--mut)}.progress-wrap{max-width:var(--maxw);width:100%;margin:0 auto;padding:0 18px;display:flex;align-items:center;gap:10px}.progress{flex:1;height:3px;background:var(--line);border-radius:3px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--fresh);opacity:.65;transition:width .35s ease}.progress-label{font-size:10.5px;color:var(--mut);font-family:IBM Plex Mono,monospace;white-space:nowrap}.rank-pill{font-size:10.5px;color:var(--fresh);border:1px solid var(--line);border-radius:99px;padding:2px 9px;white-space:nowrap}.stage{flex:1;display:flex;align-items:center;justify-content:center;padding:14px 16px 0;width:100%}.cardframe{width:100%;max-width:var(--maxw);position:relative;touch-action:pan-y}.badge-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px;min-height:22px}.fresh-badge{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:#3a2f10;background:var(--fresh);border-radius:99px;padding:3px 9px}.cotd-badge{display:inline-flex;align-items:center;font-size:10.5px;font-weight:600;color:var(--domain, var(--fresh));border:1px solid var(--domain, var(--line));border-radius:99px;padding:3px 9px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.estimate-badge{display:inline-block;font-size:10px;color:var(--mut);border:1px dashed var(--mut);border-radius:99px;padding:2px 8px;margin-top:8px}.disclaimer{font-size:9.5px;color:#6b6258;margin-top:8px;text-align:left}.anim{animation:slide-next .26s ease}.anim-prev{animation:slide-prev .26s ease}@keyframes slide-next{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}@keyframes slide-prev{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.anim,.anim-prev{animation:fadein .2s ease}.progress>i{transition:none}}@keyframes fadein{0%{opacity:0}to{opacity:1}}.bottom{max-width:var(--maxw);width:100%;margin:10px auto 0;padding:12px 16px calc(16px + env(safe-area-inset-bottom))}.more-btn{width:100%;border:none;border-radius:12px;background:var(--panel);border:1px solid var(--line);color:var(--ink);font-size:15px;font-weight:600;padding:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.more-btn:hover{border-color:var(--mut);background:#131b23}.more-btn .arrow{color:var(--domain, var(--fresh));transition:color .3s ease}.hint{text-align:center;font-size:10.5px;color:var(--mut);margin-top:8px;font-family:IBM Plex Mono,monospace}.hint-touch{display:none}.hint-keys{display:inline}@media (pointer: coarse){.hint-keys{display:none}.hint-touch{display:inline}}.endstate{max-width:var(--maxw);margin:0 auto;text-align:center;padding:48px 24px}.endstate h2{font-size:20px;margin:0 0 10px;color:var(--ink)}.endstate p{color:var(--mut);font-size:13px;line-height:1.6;margin:0 0 6px}.endstate .big{font-size:44px;font-weight:700;color:var(--fresh);font-variant-numeric:tabular-nums}.endstate .restart{margin-top:22px;background:none;border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:11px 18px;cursor:pointer;font-size:13px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:40}.sheet{background:var(--panel);border:1px solid var(--line);border-bottom:none;border-radius:16px 16px 0 0;width:100%;max-width:var(--maxw);padding:16px 18px calc(20px + env(safe-area-inset-bottom));animation:sheetup .2s ease}@keyframes sheetup{0%{transform:translateY(16px);opacity:.6}to{transform:none;opacity:1}}.sheet h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);margin:4px 0 12px}.sheet .opt{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer;font-size:14px}.sheet .opt:last-child{border-bottom:none}.sheet .opt .on{color:var(--fresh);font-size:12px}.chips{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 4px}.chip{font-size:12px;border:1px solid var(--line);color:var(--mut);border-radius:99px;padding:5px 11px;cursor:pointer;background:none}.chip.active{color:#0c1117;border-color:var(--fresh)}.feedwrap{max-width:1100px;margin:0 auto;padding:8px 14px 40px}.feed-top{display:flex;align-items:center;gap:12px;padding:10px 4px}.feed-top h2{font-size:15px;margin:0}.backbtn{background:none;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:7px 12px;cursor:pointer;font-size:13px}
