:root{--onyx: #121212;--shadow-grey: #0a0a0a;--graphite: #1c1c1c;--celadon: #3ecf8e;--emerald: #24b47e;--bg: var(--onyx);--bg-card: #1c1c1c;--bg-elevated: #242424;--text: #fafafa;--text-muted: rgba(250, 250, 250, .5);--accent: var(--celadon);--accent-2: var(--emerald);--accent-3: var(--celadon);--success: var(--celadon);--warning: #f2c14e;--danger: #f07178;--gradient: linear-gradient(135deg, var(--celadon) 0%, var(--emerald) 100%);--gradient-soft: rgba(62, 207, 142, .1);--accent-glow: rgba(62, 207, 142, .18);--accent-glow-soft: rgba(62, 207, 142, .08);--border: rgba(255, 255, 255, .045);--border-strong: rgba(255, 255, 255, .08);--radius: 12px;--radius-sm: 8px;--radius-md: 10px;--radius-full: 999px;--safe-bottom: env(safe-area-inset-bottom, 0px);--nav-height: 72px;--font: "Outfit", system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100dvh;overflow-x:hidden;line-height:1.5;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 90% 50% at 50% -20%,rgba(62,207,142,.06),transparent 58%),linear-gradient(180deg,#141414,#121212,#101010);pointer-events:none;z-index:0}#app{position:relative;z-index:1;min-height:100dvh;max-width:480px;margin:0 auto}.page{padding:20px 20px calc(var(--nav-height) + var(--safe-bottom) + 20px);min-height:100dvh;animation:fadeUp .35s ease}.page.no-nav{padding-bottom:calc(var(--safe-bottom) + 20px)}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}h1{font-size:1.75rem;font-weight:800;letter-spacing:-.02em;line-height:1.2}h2{font-size:1.25rem;font-weight:700}.gradient-text{color:var(--accent)}.subtitle{color:var(--text-muted);font-size:.95rem;margin-top:6px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 24px;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:1rem;font-weight:600;line-height:1;cursor:pointer;transition:transform .15s,opacity .15s;width:100%;touch-action:manipulation}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#0a0a0a;box-shadow:none;font-weight:700}.btn-primary:active{background:var(--emerald)}.btn-ghost{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border-strong)}.btn-sm{min-height:40px;padding:0 16px;font-size:.875rem;width:auto}.input-group{margin-bottom:16px}.input-group label{display:block;font-size:.8rem;font-weight:600;color:var(--text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}.input{width:100%;min-height:52px;padding:0 18px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:1.1rem;outline:none;transition:border-color .2s}.input:focus{border-color:var(--accent)}.input::placeholder{color:#ececec59}.phone-prefix-field{display:flex;align-items:stretch;min-height:52px;overflow:hidden;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color .2s}.phone-prefix-field:focus-within{border-color:var(--accent)}.phone-prefix{display:flex;align-items:center;flex-shrink:0;padding-left:16px;color:var(--text-muted);font-size:1.1rem;font-weight:600;line-height:1}.phone-prefix-input{flex:1;min-width:0;min-height:50px;padding:0 14px 0 8px;border:none;background:transparent;color:var(--text);font-family:var(--font);font-size:1.1rem;outline:none}.phone-prefix-input::placeholder{color:#ececec59}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;background:var(--gradient-soft);color:var(--accent);border:1px solid rgba(62,207,142,.18)}.toast-host{position:fixed;top:max(14px,env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;width:min(100% - 28px,360px)}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;width:100%;padding:14px 14px 14px 12px;background:#1a1a1a;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);box-shadow:0 12px 40px #00000073,0 0 0 1px #ffffff08 inset;color:#f8fafc;font-size:.9rem;font-weight:500;line-height:1.4;opacity:0;transform:translateY(-10px);transition:opacity .22s ease,transform .28s cubic-bezier(.22,1,.36,1)}.toast.toast-in{opacity:1;transform:translateY(0)}.toast.toast-out{opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .22s ease}.toast-icon{flex-shrink:0;width:22px;height:22px;margin-top:1px;color:var(--accent);filter:none;line-height:0}.toast-icon svg{display:block;width:22px;height:22px}.toast-error .toast-icon{color:var(--danger);filter:none}.toast-message{flex:1;min-width:0;margin:0;color:#f8fafc}.toast-close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:-2px -2px 0 0;padding:0;border:none;border-radius:6px;background:transparent;color:#f8fafc66;cursor:pointer;transition:color .15s ease,background .15s ease}.toast-close:hover,.toast-close:focus-visible{color:#f8fafcd9;background:#ffffff0f;outline:none}.toast-close svg{width:14px;height:14px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;height:calc(var(--nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:#121212f0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-around;z-index:50}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 16px;color:var(--text-muted);text-decoration:none;font-size:.7rem;font-weight:600;transition:color .2s;min-width:64px}.nav-item.active{color:var(--accent)}.nav-item .icon{font-size:1.4rem}.stamp-grid{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.stamp-dot{width:44px;height:44px;min-width:44px;min-height:44px;flex-shrink:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.1rem;background:var(--bg-elevated);border:2px dashed rgba(255,255,255,.15);transition:all .3s;box-sizing:border-box}.stamp-dot.filled{background:transparent;border:none;box-shadow:none;animation:pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes pop{0%{transform:scale(.5)}70%{transform:scale(1.15)}to{transform:scale(1)}}.empty-state{text-align:center;padding:48px 20px;color:var(--text-muted)}.empty-state .emoji{font-size:3rem;margin-bottom:12px}.spinner,.loader{--color-1: rgba(255, 255, 255, .15);--color-2: rgba(255, 255, 255, .25);--color-3: rgba(255, 255, 255, .35);--color-4: rgba(255, 255, 255, .5);--color-5: rgba(255, 255, 255, .75);--size: .6px;border:calc(24 * var(--size)) solid;border-color:var(--color-1) var(--color-2) var(--color-3) var(--color-4);border-radius:50%;display:block;box-sizing:border-box;flex-shrink:0;margin-inline:auto;animation:spinner-anim 1s linear infinite}.spinner-wrap{display:flex;align-items:center;justify-content:center;width:100%;min-height:40vh;padding:40px 0}.spinner:before,.spinner:after,.loader:before,.loader:after{content:none;display:none}@keyframes spinner-anim{0%{border-color:var(--color-1) var(--color-2) var(--color-3) var(--color-5)}33%{border-color:var(--color-5) var(--color-1) var(--color-2) var(--color-3)}66%{border-color:var(--color-3) var(--color-5) var(--color-1) var(--color-2)}to{border-color:var(--color-2) var(--color-3) var(--color-5) var(--color-1)}}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:12px;align-items:center}.flex-1{flex:1}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-4{margin-bottom:16px}.text-center{text-align:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:90;display:flex;align-items:flex-end;justify-content:center;padding:0 12px calc(var(--safe-bottom) + 8px);animation:fadeUp .25s ease}.modal-sheet{width:100%;max-width:480px;border-radius:var(--radius) var(--radius) 0 0;padding:8px 20px calc(var(--safe-bottom) + 20px);animation:fadeUp .3s ease}.modal-sheet h2{margin-bottom:10px;font-size:1.35rem}.sheet-handle{width:42px;height:4px;border-radius:var(--radius-full);background:var(--border-strong);margin:0 auto 16px}.sheet-lead{margin:0 0 18px}.claim-phone{color:var(--accent)}.otp-boxes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:8px 0 4px}.otp-box{width:100%;aspect-ratio:1;min-height:48px;padding:0;border:1.5px solid rgba(255,255,255,.18);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text);font-family:var(--font);font-size:1.35rem;font-weight:700;text-align:center;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;caret-color:var(--accent)}.otp-box:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow-soft);background:#2a2a2a}@media(max-width:380px){.otp-boxes{gap:6px}.otp-box{font-size:1.15rem;border-radius:10px}}.stamp-card{--stamp-ink: rgba(255, 255, 255, .96);--stamp-ink-soft: rgba(255, 255, 255, .62);--stamp-slot: rgba(255, 255, 255, .1);--stamp-slot-border: rgba(255, 255, 255, .28);position:relative;isolation:isolate;overflow:hidden;color:var(--stamp-ink);border-radius:var(--radius);padding:22px 20px 24px;background:linear-gradient(165deg,#ffffff2e,#ffffff0d 38%,#ffffff14),#1212167a;backdrop-filter:blur(26px) saturate(165%);-webkit-backdrop-filter:blur(26px) saturate(165%);border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 1px #ffffff61,inset 0 -1px #ffffff0f,0 22px 56px #00000073,0 12px 40px var(--accent-glow-soft);-webkit-mask-image:-webkit-radial-gradient(white,black);mask-image:radial-gradient(#fff,#000)}.stamp-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;background:radial-gradient(ellipse 85% 70% at 12% 8%,color-mix(in srgb,var(--accent) 70%,transparent) 0%,transparent 58%),radial-gradient(ellipse 80% 65% at 92% 92%,color-mix(in srgb,var(--accent-2) 65%,transparent) 0%,transparent 55%),linear-gradient(145deg,color-mix(in srgb,var(--accent) 34%,transparent) 0%,transparent 48%,color-mix(in srgb,var(--accent-2) 28%,transparent) 100%);opacity:.9;pointer-events:none}.stamp-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;background:linear-gradient(115deg,rgba(255,255,255,.3) 0%,transparent 26%,transparent 64%,rgba(255,255,255,.07) 100%),radial-gradient(circle at 1px 1px,rgba(255,255,255,.12) 1px,transparent 0);background-size:auto,14px 14px;opacity:.5;mix-blend-mode:soft-light;pointer-events:none}.stamp-card>*{position:relative;z-index:1}.stamp-card-large{padding:30px 24px 32px}.stamp-card-header{margin-bottom:20px}.stamp-card-business{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--stamp-ink-soft);margin:0}.stamp-card-program{font-size:1.4rem;font-weight:800;margin:4px 0 0;line-height:1.15;letter-spacing:-.02em;text-shadow:0 2px 18px rgba(0,0,0,.25)}.stamp-card-reward{margin:16px 0 0;font-size:.95rem;font-weight:600;line-height:1.4;color:var(--stamp-ink-soft)}.stamp-card-reward strong{font-weight:800;color:#fff;text-shadow:0 0 20px var(--accent-glow)}.stamp-grid-compact{gap:8px}.stamp-card .stamp-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:16px 0;width:100%}.stamp-card .stamp-dot{width:100%;height:auto;min-width:0;min-height:0;max-width:none;aspect-ratio:1;justify-self:center;align-self:center;background:var(--stamp-slot);border:1.5px dashed var(--stamp-slot-border);box-shadow:inset 0 1px #ffffff14}.stamp-card .stamp-dot.filled{background:transparent;border:none;box-shadow:none;animation:pop .4s cubic-bezier(.34,1.56,.64,1)}.stamp-dot-sm{width:34px;height:34px;min-width:34px;min-height:34px}.stamp-check,.stamp-gift{display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:0}.stamp-check svg{width:100%;height:100%;display:block;color:var(--accent);filter:drop-shadow(0 2px 8px var(--accent-glow-soft))}.stamp-gift{position:relative;width:100%;height:100%}.stamp-gift .gift-svg{width:72%;height:72%;display:block;color:var(--accent);overflow:visible;filter:drop-shadow(0 0 8px var(--accent-glow))}.stamp-gift .gift-lid{transform-origin:center bottom;transform-box:fill-box;animation:gift-lid-lift 2.6s cubic-bezier(.45,.05,.25,1) infinite}.stamp-gift .gift-body{animation:gift-body-glow 2.6s ease-in-out infinite}.stamp-gift-spark{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 6px var(--accent);opacity:0;pointer-events:none;animation:gift-spark 2.6s ease-in-out infinite}.stamp-gift-spark.s1{top:8%;right:12%;animation-delay:.15s}.stamp-gift-spark.s2{top:18%;left:10%;width:3px;height:3px;animation-delay:.55s}.stamp-gift-spark.s3{bottom:16%;right:18%;width:3px;height:3px;animation-delay:.95s}.stamp-card .stamp-check svg{color:#fff;filter:drop-shadow(0 0 10px var(--accent-glow)) drop-shadow(0 2px 6px rgba(0,0,0,.35))}.stamp-dot-sm .stamp-check svg{width:100%;height:100%}.stamp-dot-sm .stamp-gift .gift-svg{width:70%;height:70%}.stamp-dot.reward:not(.filled){background:#3ecf8e1f;border:1.5px solid rgba(62,207,142,.45);box-shadow:0 0 0 2px #3ecf8e14,0 0 16px var(--accent-glow-soft);animation:gift-slot-breathe 2.6s ease-in-out infinite;overflow:visible}.stamp-dot.reward:not(.filled) .stamp-gift .gift-svg{color:var(--accent)}.stamp-card .stamp-dot.reward:not(.filled){background:#ffffff24;border:1.5px solid rgba(255,255,255,.5);box-shadow:0 0 0 2px #ffffff0f,0 0 18px var(--accent-glow-soft),inset 0 1px #fff3;animation:gift-slot-breathe-glass 2.6s ease-in-out infinite}.stamp-card .stamp-dot.reward:not(.filled) .stamp-gift .gift-svg{color:#fff;filter:drop-shadow(0 0 12px var(--accent-glow)) drop-shadow(0 2px 6px rgba(0,0,0,.3))}@keyframes gift-lid-lift{0%,18%,to{transform:translateY(0) rotate(0)}32%{transform:translateY(-2.2px) rotate(-7deg)}42%{transform:translateY(-1.6px) rotate(5deg)}52%{transform:translateY(-2px) rotate(-3deg)}64%{transform:translateY(0) rotate(0)}}@keyframes gift-body-glow{0%,to{opacity:1}35%,50%{opacity:.88}}@keyframes gift-spark{0%,22%,70%,to{opacity:0;transform:scale(.4)}32%,48%{opacity:1;transform:scale(1)}}@keyframes gift-slot-breathe{0%,to{box-shadow:0 0 0 2px #3ecf8e14,0 0 12px var(--accent-glow-soft)}40%{box-shadow:0 0 0 3px #3ecf8e29,0 0 22px var(--accent-glow)}}@keyframes gift-slot-breathe-glass{0%,to{box-shadow:0 0 0 2px #ffffff0f,0 0 14px var(--accent-glow-soft),inset 0 1px #fff3}40%{box-shadow:0 0 0 3px #ffffff1f,0 0 24px var(--accent-glow),inset 0 1px #ffffff47}}@media(prefers-reduced-motion:reduce){.stamp-gift .gift-lid,.stamp-gift .gift-body,.stamp-gift-spark,.stamp-dot.reward:not(.filled),.stamp-card .stamp-dot.reward:not(.filled){animation:none!important}}.claim-success-card .stamp-card{margin-top:18px}.claim-success-card h1{margin-bottom:0}.home-page{padding-top:12px}.home-header{margin-bottom:14px}.home-header h1{margin:0;font-size:1.55rem;font-weight:800;letter-spacing:-.03em;line-height:1.15;color:var(--text)}.login-kicker{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:6px}.stamp-list{display:flex;flex-direction:column;gap:16px}.stamp-list-card{position:relative;width:100%;text-align:left;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:linear-gradient(155deg,#ffffff24,#ffffff08 42%,#ffffff0d),#202020b8;backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);box-shadow:inset 0 1px #ffffff2e,0 14px 40px #00000052,0 0 0 1px #3ecf8e0a;padding:20px 18px 18px;color:var(--text);font-family:var(--font);cursor:pointer;overflow:hidden;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease;touch-action:manipulation;animation:card-rise .45s ease both}.stamp-list-card:nth-child(1){animation-delay:.04s}.stamp-list-card:nth-child(2){animation-delay:.1s}.stamp-list-card:nth-child(3){animation-delay:.16s}.stamp-list-card:nth-child(4){animation-delay:.22s}.stamp-list-card:nth-child(5){animation-delay:.28s}.stamp-list-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(ellipse 70% 55% at 0% 0%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 60%),linear-gradient(115deg,transparent 18%,rgba(255,255,255,.07) 46%,transparent 72%);pointer-events:none}.stamp-list-card:after{content:"";position:absolute;top:0;left:18px;right:18px;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.55;pointer-events:none}.stamp-list-card:active{transform:scale(.985);border-color:#3ecf8e52;box-shadow:inset 0 1px #fff3,0 10px 28px #0000005c,0 0 24px var(--accent-glow-soft)}.stamp-list-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.stamp-list-business{margin:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fafafa8c}.stamp-list-progress{font-size:1.05rem;font-weight:800;letter-spacing:-.02em;color:var(--accent);text-shadow:0 0 18px var(--accent-glow)}.stamp-list-title{position:relative;z-index:1;font-size:1.28rem;font-weight:800;letter-spacing:-.025em;line-height:1.15;margin:0 0 14px;color:#fff}.stamp-list-card .stamp-grid{position:relative;z-index:1;margin:0}.stamp-list-reward{position:relative;z-index:1;margin-top:14px;font-size:.9rem;font-weight:500;line-height:1.4;color:#fafafa8c}.stamp-list-reward strong{color:#fff;font-weight:700}@keyframes card-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stamp-list-card .stamp-dot.filled .stamp-check{position:relative;overflow:hidden;border-radius:50%;animation:check-pop-in .45s cubic-bezier(.34,1.56,.64,1) both}.stamp-list-card .stamp-dot.filled .stamp-check:after{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:linear-gradient(110deg,transparent 28%,rgba(255,255,255,.7) 48%,transparent 68%);transform:translate(-130%) rotate(12deg);animation:stamp-check-shimmer 1.1s ease-out .18s both;pointer-events:none}.stamp-list-card .stamp-dot.filled:nth-child(1) .stamp-check{animation-delay:.04s}.stamp-list-card .stamp-dot.filled:nth-child(1) .stamp-check:after{animation-delay:.12s}.stamp-list-card .stamp-dot.filled:nth-child(2) .stamp-check{animation-delay:.1s}.stamp-list-card .stamp-dot.filled:nth-child(2) .stamp-check:after{animation-delay:.22s}.stamp-list-card .stamp-dot.filled:nth-child(3) .stamp-check{animation-delay:.16s}.stamp-list-card .stamp-dot.filled:nth-child(3) .stamp-check:after{animation-delay:.32s}.stamp-list-card .stamp-dot.filled:nth-child(4) .stamp-check{animation-delay:.22s}.stamp-list-card .stamp-dot.filled:nth-child(4) .stamp-check:after{animation-delay:.42s}.stamp-list-card .stamp-dot.filled:nth-child(5) .stamp-check{animation-delay:.28s}.stamp-list-card .stamp-dot.filled:nth-child(5) .stamp-check:after{animation-delay:.52s}.stamp-list-card .stamp-dot.filled:nth-child(6) .stamp-check{animation-delay:.34s}.stamp-list-card .stamp-dot.filled:nth-child(6) .stamp-check:after{animation-delay:.62s}.stamp-list-card .stamp-dot.filled:nth-child(7) .stamp-check{animation-delay:.4s}.stamp-list-card .stamp-dot.filled:nth-child(7) .stamp-check:after{animation-delay:.72s}.stamp-list-card .stamp-dot.filled:nth-child(8) .stamp-check{animation-delay:.46s}.stamp-list-card .stamp-dot.filled:nth-child(8) .stamp-check:after{animation-delay:.82s}.stamp-list-card .stamp-dot.filled:nth-child(9) .stamp-check{animation-delay:.52s}.stamp-list-card .stamp-dot.filled:nth-child(9) .stamp-check:after{animation-delay:.92s}.stamp-list-card .stamp-dot.filled:nth-child(10) .stamp-check{animation-delay:.58s}.stamp-list-card .stamp-dot.filled:nth-child(10) .stamp-check:after{animation-delay:1.02s}@keyframes check-pop-in{0%{opacity:0;transform:scale(.35)}70%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes stamp-check-shimmer{0%{transform:translate(-130%) rotate(12deg);opacity:0}20%{opacity:1}to{transform:translate(130%) rotate(12deg);opacity:0}}.empty-state-icon{display:flex;justify-content:center;margin-bottom:12px;color:var(--text-muted)}.empty-state-icon svg{width:40px;height:40px;opacity:.55}.btn .icon-svg{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.btn .icon-svg svg{width:1.15rem;height:1.15rem;display:block}.claim-page{padding:0;min-height:100dvh;display:flex;flex-direction:column}.claim-backdrop{flex:1;padding:28px 20px 120px;display:flex;align-items:center;justify-content:center}.claim-scene{width:100%;max-width:360px}.claim-scene-dim{opacity:.45;filter:blur(1px)}.claim-loading{text-align:center}.claim-status{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 24px);transform:translate(-50%);width:min(calc(100% - 40px),360px);text-align:center;z-index:40}.claim-auto{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 24px);transform:translate(-50%);width:min(calc(100% - 40px),360px);z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;animation:fadeUp .28s ease}.claim-auto-text{margin:0;flex:1;min-width:0;font-size:.9rem;line-height:1.35;color:var(--text)}.claim-auto-text strong{font-weight:700}.claim-auto-switch{flex-shrink:0;width:auto;min-height:36px;padding:0 10px;font-size:.85rem}.stamp-celebrate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#08080ab8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transition:opacity .22s ease;pointer-events:none}.stamp-celebrate.is-on{opacity:1}.stamp-celebrate.is-out{opacity:0;transition:opacity .28s ease}.stamp-celebrate-bloom{position:absolute;width:min(78vw,340px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--accent-glow) 0%,transparent 68%);transform:scale(.2);opacity:0}.stamp-celebrate.is-on .stamp-celebrate-bloom{animation:celebrate-bloom 1.2s cubic-bezier(.2,.8,.2,1) forwards}.stamp-celebrate-core{position:relative;width:132px;height:132px;display:flex;align-items:center;justify-content:center}.stamp-celebrate-ring,.stamp-celebrate-ring-2{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 70%,white);opacity:0;transform:scale(.55)}.stamp-celebrate.is-on .stamp-celebrate-ring{animation:celebrate-ring .9s cubic-bezier(.16,1,.3,1) .12s forwards}.stamp-celebrate.is-on .stamp-celebrate-ring-2{animation:celebrate-ring 1.05s cubic-bezier(.16,1,.3,1) .28s forwards}.stamp-celebrate-mark{position:relative;z-index:2;width:104px;height:104px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(160deg,#ffffff47,#ffffff0f),color-mix(in srgb,var(--accent) 78%,#111);box-shadow:inset 0 1px #ffffff73,0 0 0 6px color-mix(in srgb,var(--accent) 22%,transparent),0 16px 42px #0006,0 0 48px var(--accent-glow);transform:scale(.2);opacity:0}.stamp-celebrate.is-on .stamp-celebrate-mark{animation:celebrate-mark .78s cubic-bezier(.34,1.56,.64,1) .08s forwards}.stamp-celebrate-mark svg{width:72%;height:72%;display:block;filter:drop-shadow(0 2px 8px rgba(0,0,0,.35));transform:scale(.4);opacity:0}.stamp-celebrate.is-on .stamp-celebrate-mark svg{animation:celebrate-check .55s cubic-bezier(.34,1.56,.64,1) .32s forwards}.stamp-celebrate-label{margin-top:28px;font-size:1.15rem;font-weight:800;letter-spacing:-.01em;color:#fff;text-shadow:0 0 24px var(--accent-glow);opacity:0;transform:translateY(12px)}.stamp-celebrate.is-on .stamp-celebrate-label{animation:celebrate-label .45s ease-out .48s forwards}.stamp-celebrate-particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.stamp-celebrate-dot{position:absolute;left:50%;top:46%;width:8px;height:8px;margin:-4px;border-radius:50%;background:var(--accent);opacity:0;box-shadow:0 0 12px var(--accent-glow)}.stamp-celebrate.is-on .stamp-celebrate-dot{animation:celebrate-dot .95s cubic-bezier(.15,.85,.25,1) forwards}.stamp-celebrate-dot.d1{--dx: -72px;--dy: -108px;animation-delay:.28s;background:#fff}.stamp-celebrate-dot.d2{--dx: 84px;--dy: -96px;animation-delay:.3s;width:6px;height:6px}.stamp-celebrate-dot.d3{--dx: -108px;--dy: -24px;animation-delay:.34s}.stamp-celebrate-dot.d4{--dx: 112px;--dy: -18px;animation-delay:.32s;background:#fff;width:7px;height:7px}.stamp-celebrate-dot.d5{--dx: -78px;--dy: 86px;animation-delay:.36s}.stamp-celebrate-dot.d6{--dx: 74px;--dy: 98px;animation-delay:.38s;background:#fff}.stamp-celebrate-dot.d7{--dx: -24px;--dy: -126px;animation-delay:.3s;width:5px;height:5px}.stamp-celebrate-dot.d8{--dx: 18px;--dy: 118px;animation-delay:.4s;width:6px;height:6px}.stamp-celebrate-dot.d9{--dx: -126px;--dy: 42px;animation-delay:.35s}.stamp-celebrate-dot.d10{--dx: 128px;--dy: 48px;animation-delay:.37s;background:#fff;width:5px;height:5px}.stamp-celebrate-dot.d11{--dx: -48px;--dy: -78px;animation-delay:.42s;width:4px;height:4px}.stamp-celebrate-dot.d12{--dx: 56px;--dy: -70px;animation-delay:.44s}.stamp-celebrate-dot.d13{--dx: -58px;--dy: 58px;animation-delay:.41s;background:#fff;width:4px;height:4px}.stamp-celebrate-dot.d14{--dx: 62px;--dy: 64px;animation-delay:.43s;width:5px;height:5px}@keyframes celebrate-bloom{0%{transform:scale(.2);opacity:0}35%{opacity:.95}to{transform:scale(1.35);opacity:.35}}@keyframes celebrate-ring{0%{transform:scale(.55);opacity:.9}to{transform:scale(1.7);opacity:0}}@keyframes celebrate-mark{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.12);opacity:1}to{transform:scale(1);opacity:1}}@keyframes celebrate-check{0%{transform:scale(.35) rotate(-12deg);opacity:0}60%{transform:scale(1.18) rotate(4deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes celebrate-label{to{opacity:1;transform:translateY(0)}}@keyframes celebrate-dot{0%{opacity:0;transform:translate(0) scale(.4)}18%{opacity:1}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.15)}}.claim-success{padding:0;position:relative;overflow:hidden;min-height:100dvh;display:flex;flex-direction:column}.claim-success-quiet .claim-success-bg{flex:1;padding:28px 20px 140px}.claim-success-actions{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 20px);transform:translate(-50%);width:min(calc(100% - 40px),360px);z-index:40;opacity:0;transition:opacity .28s ease}.claim-success-actions.is-in{opacity:1}.claim-success-card{position:relative;z-index:2}.claim-success-kicker{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:4px}.scan-camera-page{display:flex;flex-direction:column;gap:16px}.scan-camera-header h1{margin-bottom:4px}.scan-camera-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px}.scan-camera-frame{position:relative;width:min(88vw,320px);aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:#000;box-shadow:0 0 40px var(--accent-glow-soft),0 12px 40px #00000073}.scan-camera-video{width:100%;height:100%;object-fit:cover}.scan-camera-mask{position:absolute;top:16px;right:16px;bottom:16px;left:16px;border:2px solid rgba(255,255,255,.65);border-radius:20px;corner-shape:squircle;box-shadow:0 0 0 999px #00000059;pointer-events:none}.scan-camera-hint,.scan-camera-note{margin-top:14px;font-size:.88rem}.scan-secure-warn{margin-bottom:16px;border-color:#e8b86d59;background:#e8b86d14}.scan-secure-title{font-weight:700;margin-bottom:8px;color:var(--warning)}.scan-secure-url{margin:12px 0;word-break:break-all}.scan-secure-url code{display:block;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-elevated);font-size:.82rem;color:var(--accent)}.scan-secure-steps{font-size:.85rem;line-height:1.45}.program-page{padding:16px 20px calc(var(--safe-bottom) + 24px)}.program-back{width:46px;height:46px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:linear-gradient(145deg,#ffffff1a,#ffffff08),#2d2d2d8c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);display:inline-flex;align-items:center;justify-content:center;margin-bottom:18px;cursor:pointer;box-shadow:inset 0 1px #ffffff1f}.program-back .icon-svg{display:flex;align-items:center;justify-content:center;width:22px;height:22px;line-height:0;margin-left:-1px}.program-back .icon-svg svg{width:22px;height:22px;display:block;stroke-width:2.75}.program-hero{margin-bottom:22px;padding:0;overflow:visible;background:none}.program-actions{text-align:center;background:none;border:none;padding:0;display:flex;flex-direction:column;align-items:center}.program-hint{margin:0 0 14px;font-size:.88rem;color:var(--text-muted);line-height:1.4}.btn-inline{width:auto;min-width:0;padding-inline:28px;margin-inline:auto}.btn-glass{position:relative;overflow:hidden;isolation:isolate;color:#fff;font-weight:700;background:linear-gradient(165deg,#ffffff2e,#ffffff0d 45%,#ffffff1a),color-mix(in srgb,var(--accent) 28%,rgba(18,18,22,.55));border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 1px #ffffff59,0 10px 28px #00000047,0 0 28px var(--accent-glow-soft);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}.btn-glass:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;background:radial-gradient(ellipse 90% 120% at 15% 0%,color-mix(in srgb,var(--accent) 45%,transparent),transparent 55%),radial-gradient(ellipse 80% 100% at 90% 100%,color-mix(in srgb,var(--accent-2) 35%,transparent),transparent 55%);pointer-events:none}.btn-glass:active{background:linear-gradient(165deg,#ffffff24,#ffffff0a 45%,#ffffff14),color-mix(in srgb,var(--accent) 34%,rgba(18,18,22,.6))}.btn-glass>*{position:relative;z-index:1}.program-actions .btn{gap:10px}.program-actions .btn .icon-svg{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.program-actions .btn .icon-svg svg{width:1.2rem;height:1.2rem;display:block}.cta-panel{display:flex;flex-direction:column;gap:12px;margin:0 0 22px}.cta-maps-card{position:relative;overflow:hidden;padding:18px 16px 16px;border-radius:18px;text-align:center;color:#fff;background:radial-gradient(120% 80% at 10% 0%,rgba(66,133,244,.35),transparent 55%),radial-gradient(90% 70% at 100% 100%,rgba(52,168,83,.28),transparent 50%),linear-gradient(165deg,#ffffff1f,#ffffff08),#161618eb;border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px #ffffff1f,0 14px 36px #00000047}.cta-maps-card-compact{padding:16px 14px 14px}.cta-maps-kicker{margin:0 0 4px;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#ffffff9e}.cta-maps-title{margin:0 0 14px;font-size:1.05rem;font-weight:700;line-height:1.25}.cta-stars{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:14px}.cta-star{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:12px;background:#ffffff0f;color:#ffffff47;cursor:pointer;transition:transform .15s ease,color .15s ease,background .15s ease}.cta-star svg{width:22px;height:22px;fill:currentColor;display:block}.cta-star.filled{color:#fbbc04;background:#fbbc041f}.cta-star.active{transform:scale(1.08)}.cta-star:active{transform:scale(.95)}.cta-maps-go{width:100%;min-height:44px;padding:0 16px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-sm);background:#ffffff14;color:#ffffff8c;font-family:var(--font);font-size:.88rem;font-weight:700;cursor:not-allowed;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .15s ease}.cta-maps-go.ready{cursor:pointer;color:#141414;background:linear-gradient(135deg,#fbbc04,#f9ab00);border-color:transparent;box-shadow:none}.cta-maps-go.ready:active{transform:scale(.98)}.cta-social-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cta-social-row-single{grid-template-columns:1fr}.cta-chip{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 14px;border-radius:var(--radius-sm);text-decoration:none;color:#fff;font-weight:700;font-size:.92rem;border:1px solid rgba(255,255,255,.14);transition:transform .15s ease}.cta-chip:active{transform:scale(.98)}.cta-chip .icon-svg{display:inline-flex;line-height:0}.cta-chip .icon-svg svg{width:1.15rem;height:1.15rem;display:block}.cta-chip-instagram{background:linear-gradient(165deg,#ffffff1a,#ffffff08),linear-gradient(135deg,#f58529,#dd2a7b 50%,#8134af)}.cta-chip-whatsapp{background:linear-gradient(165deg,#ffffff1a,#ffffff08),linear-gradient(135deg,#25d366,#128c7e)}.cta-panel-modal{margin-bottom:0}.login-page{position:relative;min-height:100dvh;max-width:480px;margin:0 auto;padding:0;background:transparent;overflow:hidden;animation:fadeUp .4s ease}.login-hero{position:relative;width:100%;height:min(38vh,300px);overflow:hidden;background:#0e0e0e}.login-hero-pattern{--lp-r: 3em;--lp-s: 8.485281374em;--lp-p: 1em;--lp-q: 2em;--lp-sl: calc(var(--lp-q) + 1px) calc(var(--lp-r) - .5px), transparent calc(var(--lp-r) + .5px);--lp-hi: #2a3830;--lp-lo: #0c0c0c;position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(var(--lp-hi) var(--lp-p),var(--lp-lo) calc(var(--lp-p) + 1px) var(--lp-q),var(--lp-hi) var(--lp-sl)) calc(var(--lp-s) * .5) calc(var(--lp-s) * .5),repeating-conic-gradient(var(--lp-lo) 0% 25%,transparent 0% 50%) calc(var(--lp-s) * .25) calc(var(--lp-s) * .25),radial-gradient(var(--lp-lo) var(--lp-p),var(--lp-hi) calc(var(--lp-p) + 1px) var(--lp-q),var(--lp-lo) var(--lp-sl));background-size:var(--lp-s) var(--lp-s),calc(var(--lp-s) * 2) calc(var(--lp-s) * 2);background-blend-mode:lighten}.login-hero-fade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(18,18,18,.15) 0%,rgba(18,18,18,.4) 40%,rgba(18,18,18,.88) 78%,var(--bg) 100%);pointer-events:none}.login-body{position:relative;z-index:1;margin-top:-40px;padding:0 24px calc(var(--safe-bottom) + 28px)}.login-back{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0 0 12px -8px;padding:0;border:none;border-radius:10px;background:transparent;color:var(--text);cursor:pointer;line-height:0}.login-back .icon-svg svg,.login-back svg{width:22px;height:22px;display:block}.login-back:disabled{opacity:.45;cursor:not-allowed}.login-brand-block{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:20px}.login-brand-mark{width:52px;height:52px;display:block;object-fit:contain}.login-brand-name{margin:0;font-size:1.65rem;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--text)}.login-title{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.03em;line-height:1.15;color:var(--text)}.login-lead{margin:10px 0 0;color:var(--text-muted);font-size:.95rem;font-weight:450;line-height:1.5}.login-phone-em{color:var(--text);font-weight:700}.login-underline-field{display:flex;align-items:center;gap:12px;margin-top:36px;padding-bottom:12px;border-bottom:1.5px solid rgba(255,255,255,.55)}.login-cc{flex-shrink:0;color:var(--text);font-size:1.15rem;font-weight:600;letter-spacing:.01em}.login-underline-input{flex:1;min-width:0;border:none;background:transparent;color:var(--text);font-family:var(--font);font-size:1.15rem;font-weight:500;outline:none;padding:0;min-height:36px}.login-underline-input::placeholder{color:#f8fafc59;font-weight:450}.login-underline-input:disabled{opacity:.6}.login-page .otp-boxes{margin-top:32px}.login-continue{margin-top:28px;min-height:54px;border-radius:var(--radius-sm);background:#2a2a2a;color:#f8fafc66;box-shadow:none;font-weight:600;opacity:1}.login-continue.ready:not(:disabled){background:var(--accent);color:#0b1a12;box-shadow:none}.login-continue:disabled{opacity:1;cursor:not-allowed}.login-continue.ready:not(:disabled):active{background:var(--emerald)}.login-resend{margin:18px 0 0;text-align:center;color:var(--text-muted);font-size:.9rem}.login-resend strong{color:var(--text);font-weight:700}.login-divider{display:flex;align-items:center;gap:14px;margin:22px 0 16px;color:#f8fafc59;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#ffffff1a}.login-scan-btn{min-height:52px;font-weight:600}.login-scan-btn .icon-svg svg{width:1.15rem;height:1.15rem}.login-legal{margin:22px 0 0;text-align:center;color:#f8fafc61;font-size:.72rem;line-height:1.5}.login-legal-link{display:inline;padding:0;border:none;background:none;color:var(--text);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.nav-icon{display:flex;align-items:center;justify-content:center;line-height:0}.nav-item .nav-icon svg{width:22px;height:22px}
