@layer app-legacy{:root{color-scheme:light dark;--bg:#0b0c0f;--fg:#f5f5f7;--muted:#9a9aa2;--accent:#ffb020;--danger:#ff5a5f;--card-bg:rgba(20,20,24,0.88);--token-brass:#e9b44c;--token-signal:#ffd98a}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.4}main{min-height:100dvh}button{font:inherit;cursor:pointer}a{color:var(--accent)}.page{max-width:32rem;margin:0 auto;padding:2rem 1.25rem 3rem}.page h1{font-size:1.5rem;margin-bottom:.75rem}.page p{color:var(--muted)}.scanner{position:relative;width:100%;height:100dvh;overflow:hidden;background:#000}.scanner canvas,.scanner video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scanner-hint{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(2rem + env(safe-area-inset-bottom, 0px));max-width:min(22rem,calc(100% - 2.5rem));margin:0;padding:.7rem 1.15rem;border-radius:999px;text-align:center;font-size:.9375rem;line-height:1.35;color:rgb(255 255 255/.92);background:rgb(10 10 12/.55);border:1px solid rgb(255 255 255/.1);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);pointer-events:none}.scanner-hint-active{color:var(--token-signal);border-color:rgb(233 180 76/.4);background:rgb(24 16 4/.6)}.scanner-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:1.5rem}.scanner-overlay-bottom{align-items:flex-end;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom, 0px));pointer-events:none}.scanner-overlay-bottom>*{pointer-events:auto}.card{background:var(--card-bg);border-radius:1rem;padding:1.5rem;max-width:22rem;width:100%;text-align:center;box-shadow:0 10px 30px rgb(0 0 0/.35)}.card h2{margin:0 0 .5rem;font-size:1.15rem}.card p{color:var(--muted);margin:0 0 1rem}.error-detail{font-size:.75rem;color:var(--muted);opacity:.75;word-break:break-word;margin:-.5rem 0 1rem}.reward-sheet{display:flex;align-items:center;gap:1rem;width:100%;max-width:26rem;padding:.85rem .85rem .85rem 1.15rem;border-radius:1.15rem;background:linear-gradient(180deg,rgb(28 24 18/.82),rgb(14 12 10/.88));border:1px solid rgb(233 180 76/.28);box-shadow:inset 0 1px 0 0 rgb(255 217 138/.14),0 18px 40px -12px rgb(0 0 0/.7);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);animation:reward-sheet-in .42s cubic-bezier(.16,1,.3,1) both}.reward-sheet-copy{display:flex;flex-direction:column;gap:.1rem;min-width:0}.reward-sheet-eyebrow{font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgb(255 217 138/.62)}.reward-sheet .label{font-size:1.375rem;font-weight:800;letter-spacing:-.01em;line-height:1.15;color:var(--token-signal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reward-sheet-cta{margin-left:auto;flex:0 0 auto;background:linear-gradient(180deg,#ffd07a 0,var(--accent) 60%,#e08f0b 100%);box-shadow:0 6px 18px -6px rgb(255 176 32/.65)}.reward-sheet-cta:active{transform:translateY(1px)}@keyframes reward-sheet-in{0%{opacity:0;transform:translateY(1.25rem) scale(.97)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.reward-sheet{animation:none}}.btn{display:inline-block;border:none;border-radius:.6rem;padding:.85rem 1.5rem;font-size:1rem;font-weight:600;background:var(--accent);color:#1a1300}.btn:disabled{opacity:.6;cursor:default}.btn-secondary{background:transparent;color:var(--fg);border:1px solid var(--muted)}.btn-danger-context{color:var(--danger)}.coupon-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.75rem;letter-spacing:.08em;background:rgb(255 255 255/.08);border-radius:.5rem;padding:.75rem 1rem;margin:.5rem 0 1rem}form.magic-link{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem}form.magic-link input{padding:.65rem .75rem;border-radius:.5rem;border:1px solid var(--muted);background:rgb(255 255 255/.05);color:var(--fg);font-size:1rem}.coupon-list{list-style:none;padding:0;margin:1.5rem 0 0;display:flex;flex-direction:column;gap:.75rem}.coupon-list li{border:1px solid rgb(255 255 255/.12);border-radius:.75rem;padding:1rem}.coupon-list .meta{color:var(--muted);font-size:.9rem;margin-top:.35rem}}