:root{--bg-0: #0f1f1c;--bg-1: #17332d;--ink: #f3f7f4;--muted: #b7c7c0;--accent: #d8a35e;--accent-ink: #24180a;--panel: rgba(255, 255, 255, .06);--ok: #7dcea0;--danger: #f0a8a0;--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#2a5a4d 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#3a2f1d 0%,transparent 45%),linear-gradient(160deg,var(--bg-0),var(--bg-1))}#app{min-height:100vh;padding:1.5rem 1.25rem 2rem}.shell{max-width:28rem;margin:0 auto}.brand{font-family:var(--font-display);font-size:1.65rem;letter-spacing:-.02em;margin:0 0 .35rem;opacity:0;transform:translateY(8px);animation:rise .5s ease forwards}.lead{margin:0 0 1.5rem;color:var(--muted);font-size:.98rem;line-height:1.45;opacity:0;animation:rise .5s ease 80ms forwards}.streak-num{font-family:var(--font-display);font-size:clamp(3.5rem,16vw,5rem);line-height:.95;margin:0;opacity:0;animation:rise .6s ease .12s forwards,pulse 2.4s ease .7s infinite}.meta{margin:.75rem 0 1.75rem;color:var(--muted);font-size:.92rem}.section-title{margin:0 0 .75rem;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.rewards{display:grid;gap:.75rem}.reward{display:grid;gap:.45rem;padding:.9rem 1rem;background:var(--panel);border:1px solid rgba(255,255,255,.08)}.reward h3{margin:0;font-size:1rem}.reward p{margin:0;color:var(--muted);font-size:.9rem}.reward .code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ok);font-size:.95rem}button{appearance:none;border:0;border-radius:0;background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:700;padding:.7rem 1rem;cursor:pointer}button:disabled{opacity:.55;cursor:default}.status{display:inline-block;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.error{color:var(--danger);line-height:1.4}@keyframes rise{to{opacity:1;transform:none}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}
