:root{--color-bg: oklch(95% .022 73);--color-ink: oklch(19% .024 50);--color-ink-soft: oklch(19% .024 50 / .68);--color-ink-faint: oklch(19% .024 50 / .16);--color-panel: oklch(99% .008 70);--color-tag-bg: oklch(91% .028 73);--color-tag-ink: oklch(32% .04 53);--color-empty-stamp: oklch(19% .024 50 / .32);--color-accent: oklch(52% .19 35);--color-accent-deep: oklch(44% .17 33);--color-accent-ring: oklch(52% .19 35 / .14);--color-accent-on: oklch(98% .01 60);--color-surface-dark: oklch(19% .024 50);--color-on-dark: oklch(97% .01 70);--color-on-dark-soft: oklch(97% .01 70 / .65);--color-accent-on-dark: oklch(78% .16 42);--font-display: "Archivo", sans-serif;--font-body: "IBM Plex Sans", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--radius-lg: 28px;--radius-md: 20px;--radius-sm: 14px;--content-width: 1160px}@font-face{font-family:Archivo;font-style:normal;font-weight:600 900;font-stretch:100%;font-display:swap;src:url(/app/assets/archivo-600-900-latin-ext-C4zznr8T.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:600 900;font-stretch:100%;font-display:swap;src:url(/app/assets/archivo-600-900-latin-E0tuGl4L.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/app/assets/ibm-plex-mono-500-latin-ext-CAhNIIs5.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/app/assets/ibm-plex-mono-500-latin-DSY6xOcd.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/app/assets/ibm-plex-mono-600-latin-ext-D38SheWl.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/app/assets/ibm-plex-mono-600-latin-BgSNZQsw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 600;font-stretch:100%;font-display:swap;src:url(/app/assets/ibm-plex-sans-400-600-latin-ext-CIII54If.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 600;font-stretch:100%;font-display:swap;src:url(/app/assets/ibm-plex-sans-400-600-latin-IvpUvPa2.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box}html{color-scheme:light}body{margin:0;background-color:var(--color-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");color:var(--color-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}h1,h2,h3,p{margin:0}.nav-lock{overflow:hidden}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}a{color:inherit}img,svg{display:block;max-width:100%}.wrap{max-width:var(--content-width);margin:0 auto;padding-inline:24px}@media(min-width:900px){.wrap{padding-inline:48px}}.tag{font:600 11px/1 var(--font-body);letter-spacing:.04em;text-transform:uppercase;padding:5px 10px;border-radius:100px;display:inline-flex;align-self:flex-start;background:var(--color-tag-bg);color:var(--color-tag-ink)}.stamp-fill{border-radius:47% 53% 51% 49%/55% 47% 53% 45%;background:radial-gradient(circle at 34% 30%,var(--color-accent),var(--color-accent-deep) 72%);box-shadow:2px 3px 7px #0000002e inset,0 0 0 1px #00000008}.stamp-empty{border-radius:50%;border:2.5px dashed var(--color-empty-stamp)}.cta-button{font-family:var(--font-display);font-weight:800;font-size:15px;padding:16px 26px;border-radius:var(--radius-sm);text-align:center;letter-spacing:.01em;background:var(--color-accent);color:var(--color-accent-on);border:none;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:transform .15s ease,box-shadow .15s ease}.cta-button:hover{transform:translateY(-2px);box-shadow:0 10px 20px -10px #0006}.cta-button:active{transform:scale(.96) rotate(-1deg);box-shadow:0 2px 6px -2px #0000004d inset}.cta-button--secondary{font-family:var(--font-display);font-weight:800;font-size:15px;padding:16px 26px;border-radius:var(--radius-sm);text-align:center;letter-spacing:.01em;background:var(--color-panel);color:var(--color-ink);border:1.5px solid var(--color-ink-faint);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.cta-button--secondary:hover{transform:translateY(-2px);box-shadow:0 10px 20px -16px #0000004d;border-color:var(--color-ink-soft)}.cta-button--secondary:active{transform:scale(.97);box-shadow:none}.cta-button--ghost{background:transparent;color:var(--color-ink-soft);font:600 14px var(--font-body);text-decoration:underline;text-underline-offset:3px;padding:0}.cta-button--ghost:hover{box-shadow:none;transform:none;color:var(--color-ink)}.cta-button--ghost:active{transform:none;box-shadow:none}.section-divider{position:relative}.section-divider:before{content:"";display:block;height:3px;margin-bottom:40px;background-image:radial-gradient(circle,var(--color-ink-faint) 1.4px,transparent 1.5px);background-size:13px 3px;background-repeat:repeat-x}.wordmark{font-family:var(--font-display);font-weight:900;letter-spacing:-.02em}.wordmark__accent{color:var(--color-accent-deep)}.logo{display:inline-flex;align-items:center;gap:8px}.logo__mark{display:block;flex:none;color:var(--color-accent-deep)}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px}.centered{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.panel-card{width:100%;max-width:380px;background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:0 24px 60px -16px #0000002e;padding:40px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px}.brand-mark{display:block;color:var(--color-accent-deep)}.panel-card__title{font-family:var(--font-display);font-weight:900;font-size:26px;letter-spacing:-.01em}.panel-card__body{font:400 15px/1.55 var(--font-body);color:var(--color-ink-soft);max-width:280px}.panel-card__legal{margin:0;font:400 12px/1.5 var(--font-body);color:var(--color-ink-soft);opacity:.75;max-width:280px;text-wrap:balance}.panel-card__legal a{color:inherit;text-underline-offset:2px}.google-button{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 15px var(--font-body);color:#1f1f1f;background:#fff;border:1px solid var(--color-ink-faint);border-radius:var(--radius-sm);padding:12px 20px;cursor:pointer}.google-button:hover{background:#f7f7f7}.button-ghost{background:transparent;border:none;color:var(--color-ink-soft);font:600 14px var(--font-body);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0}.loading-screen .brand-mark{animation:loading-pulse 1.4s ease-in-out infinite}.qr-scan-button label{cursor:pointer;gap:8px}.qr-scan-button__error{margin:8px 0 0}@keyframes loading-pulse{0%,to{opacity:.35}50%{opacity:1}}.install-hint__banner{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;max-width:480px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:12px 10px 12px 14px;background:linear-gradient(155deg,var(--color-accent),var(--color-accent-deep) 80%);border-radius:var(--radius-lg);box-shadow:0 14px 30px -10px #0006,0 0 0 1px var(--color-accent-ring) inset;animation:install-banner-land .6s cubic-bezier(.34,1.56,.64,1) both,install-banner-glow 2.6s ease-in-out .6s infinite}.install-hint__main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;background:none;border:none;margin:0;padding:0;text-align:left;cursor:pointer;font-family:var(--font-body)}.install-hint__main:active{transform:scale(.98)}.install-hint__badge{flex:none;width:36px;height:36px;border-radius:50%;background:var(--color-panel);color:var(--color-accent-deep);display:flex;align-items:center;justify-content:center}.install-hint__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.install-hint__title{font:800 15px/1.2 var(--font-display);color:var(--color-accent-on);letter-spacing:-.005em}.install-hint__subtitle{font:600 12px/1.3 var(--font-body);color:var(--color-accent-on);opacity:.85}.install-hint__actions{flex:none;display:flex;align-items:center;gap:4px}.install-hint__action{flex:none;width:26px;height:26px;border-radius:50%;background:#ffffff2e;color:var(--color-accent-on);display:flex;align-items:center;justify-content:center;border:none;padding:0;cursor:pointer}.install-hint__action:active{transform:scale(.9)}@keyframes install-banner-land{0%{transform:translateY(46px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes install-banner-glow{0%,to{box-shadow:0 14px 30px -10px #0006,0 0 0 1px var(--color-accent-ring) inset}50%{box-shadow:0 14px 40px -6px #0000008c,0 0 0 1px var(--color-accent-ring) inset}}.ios-install-hint__sheet{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;max-width:480px;margin:0 auto;background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:0 16px 40px -12px #00000047;padding:18px 20px;animation:ios-install-sheet-up .45s cubic-bezier(.22,1,.36,1) both}@keyframes ios-install-sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.ios-install-hint__handle{position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:4px;border-radius:4px;background:var(--color-ink-faint)}.ios-install-hint__close{position:absolute;top:10px;right:10px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-tag-bg);color:var(--color-ink-soft);font:600 15px/1 var(--font-body);border:none;padding:0;cursor:pointer}.ios-install-hint__steps{list-style:none;margin:0;padding:6px 0 0;display:flex;flex-direction:column}.ios-install-hint__step{display:flex;gap:12px;padding:8px 0;position:relative}.ios-install-hint__step:not(:last-child):after{content:"";position:absolute;left:15px;top:40px;bottom:-4px;width:2px;background-image:linear-gradient(var(--color-ink-faint) 60%,transparent 0%);background-size:2px 8px;background-repeat:repeat-y}.ios-install-hint__step-num{flex:none;width:32px;height:32px;border-radius:47% 53% 51% 49%/55% 47% 53% 45%;background:radial-gradient(circle at 34% 30%,var(--color-accent),var(--color-accent-deep) 72%);color:var(--color-accent-on);font:800 14px/1 var(--font-display);display:flex;align-items:center;justify-content:center}.ios-install-hint__step-body{flex:1;display:flex;align-items:center;gap:10px;padding-top:2px}.ios-install-hint__step-text{flex:1;font:600 14px/1.35 var(--font-body);color:var(--color-ink)}.ios-install-hint__chip{flex:none;display:flex;align-items:center;gap:6px;background:var(--color-accent-deep);color:var(--color-accent-on);border-radius:10px;padding:6px 8px}.ios-install-hint__chip--row{background:var(--color-tag-bg);color:var(--color-ink);border:1px solid var(--color-ink-faint);font:600 11px/1 var(--font-body);white-space:nowrap}.ios-install-hint__chip-plus{width:18px;height:18px;border-radius:5px;border:1.6px solid var(--color-ink-soft);display:flex;align-items:center;justify-content:center;color:var(--color-ink);flex:none}.ios-install-hint__chip--confirm{background:var(--color-accent);color:var(--color-accent-on);font:700 12px/1 var(--font-body);padding:7px 12px;border-radius:100px}@media(prefers-reduced-motion:reduce){.install-hint__banner,.ios-install-hint__sheet{animation:none}}.form-error{font:500 14px/1.5 var(--font-body);color:var(--color-accent-deep)}.panel-card--form{max-width:440px;align-items:stretch;text-align:left}.form{display:flex;flex-direction:column;gap:16px}.form-field{display:flex;flex-direction:column;gap:6px;text-align:left}.form-label{font:600 13px var(--font-body);color:var(--color-ink-soft)}.form-input{font:400 15px var(--font-body);color:var(--color-ink);background:var(--color-bg);border:1px solid var(--color-ink-faint);border-radius:var(--radius-sm);padding:10px 14px}.form-input:focus{outline:2px solid var(--color-accent-ring);outline-offset:1px}.form-hint{font:400 13px/1.4 var(--font-body);color:var(--color-ink-soft)}.accent-picker{display:flex;flex-wrap:wrap;gap:8px}.accent-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;padding:0;cursor:pointer}.accent-swatch--selected{border-color:var(--color-ink)}.form-field-group{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.form-field-group .form-field{flex:1 1 140px}.tier-group{display:flex;flex-direction:column;gap:8px}.tier-group__heading{display:flex;align-items:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:24px;background:#0006}.nav-shell{min-height:100dvh;display:flex;flex-direction:column}.nav-shell__bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:var(--color-panel);border-bottom:1px solid var(--color-ink-faint)}.nav-shell__toggle{display:flex;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:40px;height:40px;padding:0;border:none;background:transparent;cursor:pointer}.nav-shell__toggle-bar{display:block;width:22px;height:2px;background:var(--color-ink);transition:transform .2s ease,opacity .2s ease}.nav-shell--menu-open .nav-shell__toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-shell--menu-open .nav-shell__toggle-bar:nth-child(2){opacity:0}.nav-shell--menu-open .nav-shell__toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-shell__sidebar{position:fixed;top:0;bottom:0;left:0;z-index:20;width:min(78vw,280px);display:flex;flex-direction:column;gap:28px;padding:calc(72px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));background:var(--color-panel);border-right:1px solid var(--color-ink-faint);overflow-y:auto;visibility:hidden;transform:translate(-100%);transition:transform .25s ease,visibility .25s}.nav-shell--menu-open .nav-shell__sidebar{visibility:visible;transform:translate(0)}.nav-shell__brand,.nav-shell__backdrop{display:none}.nav-shell--menu-open .nav-shell__backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;padding:0;border:none;background:#00000059;cursor:default}.nav-shell__main{flex:1;display:flex;flex-direction:column;min-width:0}.nav-shell__section{display:flex;flex-direction:column;gap:4px}.nav-shell__section-title{font:600 11px var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink-soft);padding:0 10px;margin-bottom:4px}.nav-shell__link{display:flex;align-items:center;gap:10px;font:600 14px var(--font-body);color:var(--color-ink);text-decoration:none;padding:8px 10px;border-radius:var(--radius-sm)}.nav-shell__link:hover{background:var(--color-bg)}.nav-shell__link--active{background:var(--color-accent-ring);color:var(--color-accent-deep)}.nav-shell__link--accent{color:var(--color-accent-deep)}.nav-shell__business{display:flex;align-items:center;font:500 13px var(--font-body);color:var(--color-ink-soft);text-decoration:none;padding:6px 10px;border-radius:var(--radius-sm)}.nav-shell__business:hover{background:var(--color-bg)}.nav-shell__business--active{background:var(--color-accent-ring);color:var(--color-accent-deep)}.nav-shell__spacer{flex:1}.nav-shell__greeting{font:400 13px/1.4 var(--font-body);color:var(--color-ink-soft);padding:0 10px}.nav-shell__locale{display:flex;gap:4px;padding:0 10px}.nav-shell__locale-option{background:transparent;border:none;color:var(--color-ink-soft);font:600 12px var(--font-body);letter-spacing:.03em;padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer}.nav-shell__locale-option:hover{background:var(--color-bg)}.nav-shell__locale-option--active{background:var(--color-accent-ring);color:var(--color-accent-deep)}@media(min-width:720px){.nav-shell{flex-direction:row}.nav-shell__bar{display:none}.nav-shell__sidebar{position:static;width:240px;flex:none;padding:24px 20px;overflow-y:visible;visibility:visible;transform:none}.nav-shell__brand{display:inline-flex}.nav-shell--menu-open .nav-shell__backdrop{display:none}}.stamper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;text-align:center}.token-qr{width:min(80vw,360px);height:min(80vw,360px);fill:var(--color-ink)}.countdown{font:600 15px var(--font-body);color:var(--color-ink-soft)}.stamper__message{font:400 16px/1.5 var(--font-body);color:var(--color-ink-soft);max-width:320px}.stamp-split{display:flex;width:100%}.stamp-split__go{flex:1;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.stamp-split__more{width:56px;padding:16px 0;font-size:18px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;box-shadow:inset 1px 0 0 var(--color-accent-deep)}.stamp-split:hover .cta-button{transform:translateY(-2px)}.stamper__count{font:700 15px var(--font-body);color:var(--color-accent-deep);margin:0}.stamper__result{display:flex;flex-direction:column;align-items:center;gap:8px;width:min(100%,320px);padding:24px;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.stamper__result-line{font:800 22px/1.3 var(--font-display);color:var(--color-accent-deep)}.stamper__result-line--quiet{font-weight:500;font-size:18px;color:var(--color-ink-soft)}.stamper__result-name{font:400 16px var(--font-body);color:var(--color-ink-soft)}.stamper__result-hint{font:400 13px var(--font-body);color:var(--color-ink-soft);margin-top:8px}.count-picker{width:100%;padding:16px;background:var(--color-panel);border-radius:var(--radius-md);border:1.5px solid var(--color-ink-faint);display:flex;flex-direction:column;gap:12px}.count-picker__heading{font:500 14px var(--font-body);color:var(--color-ink-soft);margin:0}.count-picker__quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.count-picker__chip{font:800 20px var(--font-display);color:var(--color-ink);background:var(--color-bg);border:1.5px solid var(--color-ink-faint);border-radius:var(--radius-sm);padding:12px 0;min-height:48px;cursor:pointer;transition:transform .15s ease,border-color .15s ease}.count-picker__chip:hover{border-color:var(--color-accent)}.count-picker__chip:active{transform:scale(.96) rotate(-1deg)}.count-picker__other{display:flex;flex-direction:column;gap:8px}.count-picker__label{font:500 13px var(--font-body);color:var(--color-ink-soft);text-align:left}.count-picker__row{display:flex;gap:8px}.count-picker__input{width:88px;font:800 20px var(--font-display);color:var(--color-ink);text-align:center;background:var(--color-bg);border:1.5px solid var(--color-ink-faint);border-radius:var(--radius-sm);padding:12px 8px}.count-picker__submit{flex:1;font-size:14px;padding:16px 12px;white-space:normal}.count-picker__submit:disabled{background:var(--color-ink-faint);color:var(--color-ink-soft);cursor:not-allowed;transform:none;box-shadow:none}.count-picker__warning{font:600 13px var(--font-body);color:var(--color-accent-deep);margin:0;text-align:left}.redemption-scan__reward{font:700 20px var(--font-body)}.redemption-scan__business{font:500 14px var(--font-body);color:var(--color-ink-soft);margin-top:-12px}.venue-picker{width:100%;max-width:360px;display:flex;flex-direction:column;gap:10px}.venue-picker__title{font-family:var(--font-display);font-weight:900;font-size:21px;margin:0}.venue-picker__body{font:400 14px/1.5 var(--font-body);color:var(--color-ink-soft);margin:0 0 6px}.venue-picker__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.venue-picker__option{width:100%;min-height:52px;padding:14px 18px;border:1px solid var(--color-ink-faint);border-radius:var(--radius-sm);background:var(--color-panel);color:var(--color-ink);font:600 16px var(--font-body);text-align:left;cursor:pointer}.venue-picker__option:hover{border-color:var(--color-accent)}.stamper__branch{display:flex;align-items:center;gap:12px}.stamper__branch-name{font:600 15px var(--font-body)}.invite-banner{background:var(--color-surface-dark);color:var(--color-on-dark);border-radius:var(--radius-lg);margin:20px 20px 0;padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.invite-banner__eyebrow{font:600 11px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-on-dark)}.invite-banner__title{font-family:var(--font-display);font-weight:900;font-size:22px;line-height:1.15;margin:0;overflow-wrap:anywhere}.invite-banner__body{font:400 15px/1.5 var(--font-body);color:var(--color-on-dark-soft);margin:0}.invite-banner__error{font:500 14px/1.5 var(--font-body);color:var(--color-accent-on-dark);margin:0}.invite-banner__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:6px;width:100%}.invite-banner__actions .cta-button{flex:1 1 200px}.invite-banner__decline{background:none;border:none;padding:8px 0;cursor:pointer;font:600 14px var(--font-body);color:var(--color-on-dark-soft);text-decoration:underline;text-underline-offset:3px}.invite-banner__decline:hover{color:var(--color-on-dark)}.cards-page{flex:1;width:100%;max-width:480px;margin:0 auto;padding:8px 20px 48px;display:flex;flex-direction:column;gap:20px}.cards-toolbar{display:flex;gap:16px}.cards-toolbar__field{flex:1;display:flex;flex-direction:column;gap:4px}.cards-toolbar__label{font:600 10px var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink-soft)}.cards-toolbar__select{font:500 13px var(--font-body);color:var(--color-ink);background:var(--color-panel);border:1px solid var(--color-ink-faint);border-radius:var(--radius-sm);padding:8px 10px}.card-list{display:flex;flex-direction:column;gap:16px}.cards-page__scan-fab{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:20}.cards-page__scan-fab .cta-button{box-shadow:0 16px 32px -12px #0006}.cards-page__scan-fab .qr-scan-button__error{max-width:220px;text-align:right}.stamp-added-banner{margin:0;padding:10px 16px;border-radius:var(--radius-sm);background:var(--color-accent-ring);color:var(--color-accent-deep);font:700 13px var(--font-body);text-align:center;animation:stamp-added-banner-in .4s ease-out both}@keyframes stamp-added-banner-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:no-preference){.tier-ladder__dot--new{animation:stamp-land .55s cubic-bezier(.34,1.56,.64,1) both}}@keyframes stamp-land{0%{transform:scale(2.4) rotate(-14deg);opacity:0}60%{transform:scale(.92) rotate(4deg);opacity:1}80%{transform:scale(1.08) rotate(-1deg)}to{transform:scale(1) rotate(0)}}.card-tile{background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:0 16px 40px -20px #00000040;padding:20px 20px 22px;display:flex;flex-direction:column;gap:16px;text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}.card-tile:hover{transform:translateY(-2px);box-shadow:0 20px 48px -20px #00000052}.card-tile:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.card-tile__header{display:flex;align-items:center;gap:14px}.card-tile__heading{display:flex;flex-direction:column;gap:2px;min-width:0}.card-tile__business{font-family:var(--font-display);font-weight:900;font-size:19px;line-height:1.15;letter-spacing:-.01em;margin:0}.card-tile__cycle{font:500 12px var(--font-body);color:var(--color-ink-soft)}.business-mark{flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--color-accent-on);font-family:var(--font-display);font-weight:800}.business-mark--lg{width:48px;height:48px;font-size:20px}.business-mark--sm{width:28px;height:28px;font-size:13px}.business-mark--photo{border-radius:50%;object-fit:cover;box-shadow:0 0 0 2.5px var(--color-accent)}.tier-ladder{display:flex;flex-direction:column;gap:10px}.tier-ladder__segment{position:relative;display:flex;flex-direction:column;gap:6px;padding-top:10px}.tier-ladder__segment:first-child{padding-top:0}.tier-ladder__divider{position:absolute;top:0;left:0;right:0;border-top:1.5px dashed var(--color-ink-faint)}.tier-ladder__dots{display:flex;flex-wrap:wrap;gap:7px}.tier-ladder__dot{width:15px;height:15px;flex:none}.tier-ladder__caption{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font:500 13px/1.4 var(--font-body);color:var(--color-ink-soft);margin:0}.tier-ladder__badge{background:var(--color-accent);color:var(--color-accent-on)}.tier-ladder__claimed{font:600 11px var(--font-body);letter-spacing:.03em;text-transform:uppercase;color:var(--color-ink-faint)}.empty-cards{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:40px 16px}.empty-cards__blob{width:120px;height:120px;border-radius:47% 53% 51% 49%/55% 47% 53% 45%;border:3px dashed var(--color-empty-stamp);margin-bottom:8px}.empty-cards__title{font-family:var(--font-display);font-weight:900;font-size:20px;margin:0}.empty-cards__body{font:400 14px/1.5 var(--font-body);color:var(--color-ink-soft);max-width:280px;margin:0}.card-detail{flex:1;width:100%;max-width:480px;margin:0 auto;padding:20px 20px 48px;display:flex;flex-direction:column;gap:20px}.card-detail__back{align-self:flex-start;font:600 13px var(--font-body);color:var(--color-ink-soft);text-decoration:none}.card-detail__back:hover{text-decoration:underline}.card-detail__header{display:flex;align-items:center;gap:12px}.card-detail__heading{display:flex;flex-direction:column;gap:2px;min-width:0}.card-detail__business{font-family:var(--font-display);font-weight:900;font-size:26px;line-height:1.15;letter-spacing:-.01em;margin:0}.card-detail__program{font:500 14px var(--font-body);color:var(--color-ink-soft);margin:0}.card-detail__cycle{font:500 13px var(--font-body);color:var(--color-ink-soft);margin:0}.card-detail__ladder{background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:0 16px 40px -20px #00000040;padding:20px 20px 22px}@media(prefers-reduced-motion:no-preference){.card-detail__ladder--celebrating{animation:card-detail-celebrate .6s cubic-bezier(.34,1.56,.64,1) both}}@keyframes card-detail-celebrate{0%{transform:scale(1.05);box-shadow:0 0 0 0 var(--color-accent-ring)}60%{transform:scale(.98)}to{transform:scale(1);box-shadow:0 16px 40px -20px #00000040}}.card-detail__celebration{margin:0;padding:10px 16px;border-radius:var(--radius-sm);background:var(--color-accent-ring);color:var(--color-accent-deep);font:700 13px var(--font-body);text-align:center;animation:stamp-added-banner-in .4s ease-out both}.card-detail__redeemables{display:flex;flex-direction:column;gap:12px}.card-detail__pending-title{font:600 14px var(--font-body);color:var(--color-ink-soft)}.card-detail__redeemable-row{background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:0 16px 40px -20px #00000040;padding:16px 20px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.card-detail__redeemable-reward{font:700 15px var(--font-body);margin:0}.card-detail__redeemable-status{display:flex;flex-direction:column;align-items:center;gap:8px;font:400 14px/1.5 var(--font-body);color:var(--color-ink-soft)}.card-detail__collect-qr{display:flex;flex-direction:column;align-items:center;gap:12px}.business-page{flex:1;width:100%;max-width:480px;margin:0 auto;padding:20px 20px 48px;display:flex;flex-direction:column;gap:20px}.business-page__header{display:flex;align-items:center;gap:14px}.business-page__heading{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}.business-page__name{font-family:var(--font-display);font-weight:900;font-size:26px;line-height:1.15;letter-spacing:-.01em;margin:0}.business-page__program{background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:0 16px 40px -20px #00000040;padding:24px 24px 26px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.business-page__program--empty{align-items:center;text-align:center}.business-page__eyebrow{font:600 11px var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--color-accent-deep)}.business-page__program-name{font-family:var(--font-display);font-weight:900;font-size:21px;margin:0}.business-page__tier-summary{font:400 14px/1.5 var(--font-body);color:var(--color-ink-soft);margin:0}.business-page__program-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-top:8px;width:100%}.business-page__program-links{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:6px;align-self:center}.business-page__empty-blob{width:64px;height:64px;border-radius:47% 53% 51% 49%/55% 47% 53% 45%;border:3px dashed var(--color-empty-stamp)}.program-preview{align-items:stretch;text-align:left;max-width:420px}.program-preview__ladder{background:none;box-shadow:none;padding:0}.program-preview__close{align-self:center}.button-ghost--danger{color:var(--color-accent-deep);margin-top:8px}.business-stats{flex:1;width:100%;max-width:480px;margin:0 auto;padding:20px 20px 48px;display:flex;flex-direction:column;gap:16px}.business-stats__loading{font:400 14px var(--font-body);color:var(--color-ink-soft)}.business-stats__back{font:600 13px var(--font-body);color:var(--color-ink-soft);text-decoration:none;align-self:flex-start}.business-stats__header{display:flex;flex-direction:column;gap:4px}.business-stats__business{font-family:var(--font-display);font-weight:900;font-size:24px;line-height:1.15;margin:0}.business-stats__block{background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:0 16px 40px -20px #00000040;padding:22px 22px 24px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.business-stats__headline{font-family:var(--font-display);font-weight:900;font-size:60px;line-height:.95;letter-spacing:-.02em;color:var(--color-accent-deep);margin:2px 0 0}.business-stats__headline-label{font:400 14px var(--font-body);color:var(--color-ink);margin:0;max-width:22ch}.business-stats__ink{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 2px}.business-stats__mark{width:13px;height:13px;flex:none}@media(prefers-reduced-motion:no-preference){.business-stats__mark{animation:business-stats-ink .26s ease-out backwards;animation-delay:calc(var(--mark) * 9ms)}}@keyframes business-stats-ink{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.business-stats__ink-bar{width:100%;height:14px;border-radius:100px;background:linear-gradient(to right,var(--color-accent) var(--inked),var(--color-ink-faint) var(--inked))}.business-stats__counts{font:500 13px var(--font-mono);color:var(--color-ink);margin:0}.business-stats__comparison{font:400 12px var(--font-body);color:var(--color-ink-soft);margin:0}.business-stats__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px 16px;width:100%;margin-top:6px;padding-top:14px;border-top:1px solid var(--color-ink-faint)}.business-stats__figure{display:flex;flex-direction:column;gap:2px;min-width:0}.business-stats__value{font-family:var(--font-display);font-weight:900;font-size:26px;line-height:1.1;color:var(--color-ink)}.business-stats__label{font:400 12px var(--font-body);color:var(--color-ink-soft)}.business-stats__detail{font:500 12px var(--font-mono);color:var(--color-ink)}.business-stats__action{background:var(--color-accent);color:var(--color-accent-on);gap:4px}.business-stats__action-eyebrow{font:600 11px var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--color-accent-on);opacity:.85;margin:0}.business-stats__action-value{font-family:var(--font-display);font-weight:900;font-size:44px;line-height:1;margin:2px 0 0}.business-stats__action-label{font:400 14px var(--font-body);margin:0;max-width:26ch}.business-stats__note{font:400 13px var(--font-body);color:var(--color-ink-soft);margin:0}.business-stats__empty{align-items:center;text-align:center;gap:12px;padding:32px 22px 34px}.business-stats__empty-mark{width:46px;height:46px}.business-stats__empty-title{font-family:var(--font-display);font-weight:900;font-size:20px;margin:0}.business-stats__empty-body{font:400 14px var(--font-body);color:var(--color-ink-soft);margin:0;max-width:28ch}.stats-chart{margin:6px 0 0;width:100%;display:flex;flex-direction:column;gap:6px}.stats-chart__svg{width:100%;height:auto;display:block;overflow:visible}.stats-chart__hit{fill:transparent}.stats-chart__bar{fill:var(--color-accent)}.stats-chart__bar--ghost{fill:var(--color-ink-faint)}.stats-chart__bar--shown{fill:var(--color-accent-deep)}.stats-chart__tick{font:500 9px var(--font-mono);fill:var(--color-ink-soft)}.stats-chart__caption{font:500 12px var(--font-mono);color:var(--color-ink-soft)}.stats-chart__tiers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.stats-chart__tier{display:grid;grid-template-columns:1fr 90px 52px;align-items:center;gap:10px;font:400 13px var(--font-body)}.stats-chart__tier-name{min-width:0;overflow-wrap:anywhere}.stats-chart__tier-track{height:12px;border-radius:100px;background:var(--color-ink-faint);overflow:hidden}.stats-chart__tier-earned{display:block;height:100%;border-radius:100px;background:var(--color-accent-ring)}.stats-chart__tier-claimed{display:block;height:100%;border-radius:100px;background:var(--color-accent)}.stats-chart__tier-counts{font:500 12px var(--font-mono);color:var(--color-ink-soft);text-align:right;white-space:nowrap}.venues-panel{background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:0 16px 40px -20px #00000040;padding:24px;display:flex;flex-direction:column;align-items:stretch;gap:16px}.venues-panel__title{font-family:var(--font-display);font-weight:900;font-size:18px;margin:0}.venues-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.venues-panel__item{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.venues-panel__name{font:600 15px var(--font-body)}.venues-panel__address{font:400 13px/1.4 var(--font-body);color:var(--color-ink-soft)}.venues-panel__rename{width:100%}.venues-panel__actions{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%}.staff-panel{background:var(--color-panel);border-radius:var(--radius-lg);box-shadow:0 16px 40px -20px #00000040;padding:24px;display:flex;flex-direction:column;align-items:stretch;gap:16px}.staff-panel__title{font-family:var(--font-display);font-weight:900;font-size:18px;margin:0}.staff-panel__empty,.staff-panel__hint{font:400 14px/1.5 var(--font-body);color:var(--color-ink-soft);margin:0}.staff-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.staff-panel__row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}.staff-panel__mark{flex:none;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-accent-on);font-family:var(--font-display);font-weight:800;font-size:15px}.staff-panel__row--revoked .staff-panel__mark,.staff-panel__row--revoked .staff-panel__who{opacity:.45}.staff-panel__who{flex:1 1 160px;display:flex;flex-direction:column;gap:2px;min-width:0}.staff-panel__name{font:600 15px var(--font-body);overflow-wrap:anywhere}.staff-panel__email{font:400 13px var(--font-mono);overflow-wrap:anywhere}.staff-panel__scope{font:400 13px/1.4 var(--font-body);color:var(--color-ink-soft)}.staff-panel__state{font:600 12px/1 var(--font-body);color:var(--color-ink-soft)}.staff-panel__row-actions{display:flex;align-items:center;gap:14px;margin-left:auto}.staff-panel__editing-who{font:600 15px var(--font-body);margin:0}.staff-panel__form{width:100%}.staff-panel__choice{border:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.staff-panel__option{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.staff-panel__option-body{display:flex;flex-direction:column;gap:2px}.staff-panel__option-name{font:600 14px var(--font-body)}.staff-panel__venues{display:flex;flex-direction:column;gap:8px;padding-left:26px}.staff-panel__venue{display:flex;align-items:center;gap:10px;font:400 14px var(--font-body);cursor:pointer}.staff-panel__actions{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%}
