:root{--nv-deep: #0e1e4a;--nv-lavender: #b4aae5;--nv-900: #081231;--nv-800: #0e1e4a;--nv-700: #1b2a68;--nv-600: #2f2f8d;--nv-500: #4a3fae;--nv-400: #6f61c9;--nv-300: #9288db;--nv-200: #b4aae5;--nv-100: #ded9f4;--ok: #16a34a;--ok-bright: #22c55e;--warn: #f59e0b;--warn-bright: #fbbf24;--bad: #dc2626;--bad-bright: #ef4444;--glass-bg: rgba(255, 255, 255, .09);--glass-bg-strong: rgba(255, 255, 255, .14);--glass-line: rgba(255, 255, 255, .22);--glass-blur: blur(20px) saturate(165%);--r-sm: 12px;--r-md: 18px;--r-lg: 26px;--r-xl: 34px;--pad: 16px;--safe-top: env(safe-area-inset-top, 0px);--safe-bot: env(safe-area-inset-bottom, 0px);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Roboto Mono", Menlo, monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:#fff;background:var(--nv-900);overscroll-behavior-y:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select{font-family:inherit;font-size:inherit;color:inherit}.bg-nuvora{position:fixed;inset:0;z-index:-1;background:radial-gradient(120% 80% at 12% -10%,var(--nv-500) 0%,transparent 58%),radial-gradient(110% 70% at 92% 4%,var(--nv-600) 0%,transparent 52%),linear-gradient(168deg,var(--nv-800) 0%,var(--nv-900) 62%,#060d24 100%)}.bg-brand{position:fixed;inset:0;z-index:-1;background:radial-gradient(120% 78% at 14% -8%,var(--brand-glow) 0%,transparent 60%),radial-gradient(120% 70% at 88% 2%,var(--brand-accent-soft) 0%,transparent 48%),linear-gradient(170deg,var(--brand-bg) 0%,var(--brand-bg-deep) 100%)}.glass{background:var(--glass-bg);border:1px solid var(--glass-line);border-radius:var(--r-lg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:inset 0 1px #ffffff4d,0 18px 40px -22px #000000bf}.glass-soft{background:#ffffff0f;border:1px solid rgba(255,255,255,.14);border-radius:var(--r-md)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.glass{background:#101638db}}.screen{min-height:100%;display:flex;flex-direction:column;padding:calc(var(--safe-top) + 10px) var(--pad) calc(var(--safe-bot) + 18px);max-width:560px;margin:0 auto;width:100%}.screen-center{justify-content:center;gap:16px}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:10px}.spread{display:flex;align-items:center;justify-content:space-between;gap:10px}.grow{flex:1;min-width:0}.appbar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--r-md);margin-bottom:12px;background:var(--glass-bg);border:1px solid var(--glass-line);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.appbar-logo{height:30px;width:auto;flex:none;display:block}.appbar-brand{font-size:15px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar-sub{font-size:12px;color:var(--nv-100);opacity:.82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}h1{font-size:26px;line-height:1.15;margin:0;letter-spacing:-.02em;font-weight:800}h2{font-size:18px;margin:0;font-weight:700;letter-spacing:-.01em}p{margin:0;line-height:1.45}.muted{color:var(--nv-100);opacity:.78;font-size:14px}.tiny{font-size:12px;opacity:.7}.label{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.72}.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:62px;padding:14px 20px;border:0;border-radius:var(--r-md);font-size:19px;font-weight:800;letter-spacing:-.01em;cursor:pointer;transition:transform .12s ease,filter .12s ease,opacity .12s ease;text-decoration:none;text-align:center}.btn:active:not(:disabled){transform:scale(.975);filter:brightness(1.08)}.btn:disabled{opacity:.42;cursor:default}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--nv-500),var(--nv-600));box-shadow:inset 0 1px #ffffff57,0 12px 28px -14px #4a3faef2}.btn-ghost{color:#fff;background:var(--glass-bg-strong);border:1px solid var(--glass-line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.btn-ok{color:#04240f;background:linear-gradient(135deg,var(--ok-bright),var(--ok));box-shadow:inset 0 1px #fff6}.btn-reward{color:#3b2503;background:linear-gradient(135deg,var(--warn-bright),var(--warn));box-shadow:inset 0 1px #ffffff80}.btn-danger{color:#fff;background:linear-gradient(135deg,var(--bad-bright),var(--bad))}.btn-lg{min-height:76px;font-size:22px;border-radius:var(--r-lg)}.btn-sm{min-height:46px;font-size:15px;padding:8px 16px;border-radius:var(--r-sm);width:auto}.btn-link{background:none;border:0;padding:6px 2px;font-size:14px;font-weight:600;color:var(--nv-200);text-decoration:underline;text-underline-offset:3px;cursor:pointer;width:auto;min-height:40px}.field{display:flex;flex-direction:column;gap:6px}.input{width:100%;min-height:60px;padding:14px 16px;border-radius:var(--r-md);border:1px solid rgba(255,255,255,.22);background:#ffffff14;color:#fff;font-size:17px;outline:none;transition:border-color .15s ease,background .15s ease}.input::placeholder{color:#ffffff73}.input:focus{border-color:var(--nv-200);background:#ffffff24}.input-code{font-family:var(--mono);font-size:34px;font-weight:800;letter-spacing:.22em;text-align:center;text-transform:uppercase;min-height:76px;padding-left:.22em}.input-pin{font-family:var(--mono);font-size:34px;letter-spacing:.4em;text-align:center;min-height:72px;padding-left:.4em}.alert{padding:12px 14px;border-radius:var(--r-md);font-size:15px;font-weight:600;line-height:1.35;border:1px solid}.alert-bad{background:#dc26262e;border-color:#f8717180;color:#fee2e2}.alert-warn{background:#f59e0b29;border-color:#fbbf2473;color:#fef3c7}.alert-info{background:#b4aae524;border-color:#b4aae566;color:var(--nv-100)}.viewfinder{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:var(--r-lg);overflow:hidden;background:#000;border:1px solid rgba(255,255,255,.16)}.viewfinder video{width:100%;height:100%;object-fit:cover;display:block}.viewfinder-off{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;text-align:center;background:linear-gradient(160deg,#2f2f8d8c,#081231e6)}.reticle{position:absolute;inset:16%;border-radius:20px;box-shadow:0 0 0 9999px #00000057;pointer-events:none}.reticle:before,.reticle:after{content:"";position:absolute;inset:0;border-radius:20px;border:3px solid rgba(255,255,255,.9);clip-path:polygon(0 0,34% 0,34% 3px,3px 3px,3px 34%,0 34%,0 100%,34% 100%,34% calc(100% - 3px),3px calc(100% - 3px),3px 66%,0 66%)}.reticle:after{transform:scaleX(-1)}.scanline{position:absolute;left:16%;right:16%;height:2px;background:linear-gradient(90deg,transparent,var(--nv-200),transparent);animation:sweep 2.4s ease-in-out infinite;pointer-events:none}@keyframes sweep{0%,to{top:18%;opacity:.25}50%{top:80%;opacity:1}}.camera-badge{position:absolute;top:10px;left:10px;padding:5px 11px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;background:#0000008c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.camera-badge.live{color:#86efac}.result{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;padding:calc(var(--safe-top) + 20px) 20px calc(var(--safe-bot) + 20px);animation:pop .14s ease-out;overflow-y:auto}@keyframes pop{0%{opacity:.55;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.result-ok{background:linear-gradient(165deg,#15803d,#14532d)}.result-reward{background:linear-gradient(165deg,#d97706,#7c2d12)}.result-bad{background:linear-gradient(165deg,#b91c1c,#601010)}.result-neutral{background:linear-gradient(165deg,var(--nv-600) 0%,var(--nv-900) 100%)}.result-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px}.result-icon{font-size:72px;line-height:1}.result-headline{font-size:clamp(38px,12vw,56px);font-weight:900;letter-spacing:-.035em;line-height:1.02;margin:0;text-shadow:0 2px 18px rgba(0,0,0,.3)}.result-name{font-size:clamp(22px,6.5vw,30px);font-weight:700;opacity:.97}.result-note{font-size:16px;opacity:.9;max-width:30ch}.result-actions{display:flex;flex-direction:column;gap:10px;padding-top:14px}.stamps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.stamps.tight{gap:7px}.stamp{aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;border:2px dashed rgba(255,255,255,.3);background:#ffffff0f;color:#ffffff6b}.stamp.filled{border:2px solid transparent;background:var(--stamp-filled, var(--warn));color:#fff;box-shadow:0 6px 16px -8px #000c,inset 0 1px #ffffff73}.stamp.just-added{animation:stamped .45s cubic-bezier(.34,1.56,.64,1)}@keyframes stamped{0%{transform:scale(.2) rotate(-22deg);opacity:0}60%{transform:scale(1.16) rotate(4deg);opacity:1}to{transform:scale(1) rotate(0)}}.card-hero{border-radius:var(--r-xl);padding:22px;background:var(--glass-bg-strong);border:1px solid var(--glass-line);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:inset 0 1px #ffffff57,0 30px 60px -30px #000000d9}.brand-logo{height:52px;width:auto;max-width:190px;object-fit:contain;display:block}.brand-monogram{height:52px;width:52px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;background:#ffffff29;border:1px solid var(--glass-line)}.count-big{font-size:clamp(44px,15vw,68px);font-weight:900;letter-spacing:-.04em;line-height:1}.qr-frame{background:#fff;border-radius:var(--r-md);padding:12px;display:flex;align-items:center;justify-content:center}.qr-frame img,.qr-frame canvas{width:100%;height:auto;max-width:220px;display:block;image-rendering:pixelated}.code-chip{font-family:var(--mono);font-size:30px;font-weight:800;letter-spacing:.2em;padding:12px 8px 12px calc(8px + .2em);border-radius:var(--r-md);text-align:center;background:#ffffff24;border:1px solid var(--glass-line)}.wallet-btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:62px;border-radius:var(--r-md);font-size:17px;font-weight:700;text-decoration:none;border:1px solid rgba(255,255,255,.22)}.wallet-apple{background:#000;color:#fff}.wallet-google{background:#fff;color:#1f1f1f;border-color:#00000024}.footer{display:flex;align-items:center;justify-content:center;gap:7px;padding:22px 0 4px;font-size:12px;letter-spacing:.02em;opacity:.55}.footer img{height:15px;width:auto;display:block}.list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:15px 16px;border-radius:var(--r-md);background:#ffffff12;border:1px solid rgba(255,255,255,.14);text-align:left;cursor:pointer;min-height:62px}.list-row:active{background:#ffffff24}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:#ffffff26;border:1px solid rgba(255,255,255,.2)}.chip-reward{background:#fbbf2438;border-color:#fbbf2480;color:#fde68a}.divider{display:flex;align-items:center;gap:12px;margin:4px 0;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;opacity:.55}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#ffffff38}.spin{width:26px;height:26px;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;animation:rot .7s linear infinite}@keyframes rot{to{transform:rotate(360deg)}}.center{text-align:center}.pulse{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
