:root{--paper: #f6f4ef;--surface: #ffffff;--ink: #14181d;--muted: #566070;--line: #d6d1c4;--danger: #a3261d;--danger-bg: #fbeceb;--warn: #7a4f00;--warn-bg: #fbf1dc;--brand: #1f2a37;--on-brand: #ffffff;--brand-ink: #1f2a37;--ease-out: cubic-bezier(.23, 1, .32, 1);--radius: 14px;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100dvh;background:var(--paper);color:var(--ink);font:400 1rem/1.5 var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:color-mix(in srgb,var(--brand) 22%,white);color:var(--ink)}input{caret-color:var(--brand-ink)}:focus-visible{outline:3px solid color-mix(in srgb,var(--brand-ink) 55%,white);outline-offset:2px}h1,h2,p,figure,fieldset{margin:0}h1{font-size:1.625rem;line-height:1.15;font-weight:680;letter-spacing:-.02em;text-wrap:balance}.screen{min-height:100dvh;display:flex;flex-direction:column;padding:max(1.5rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left))}.column{width:100%;max-width:24rem;margin-inline:auto}.identity{display:flex;flex-direction:column;gap:1rem}.mark{width:3.5rem;height:3.5rem;border-radius:16px;background:var(--brand);color:var(--on-brand);display:grid;place-items:center;font-weight:700;font-size:1.25rem;letter-spacing:.02em;overflow:hidden;flex:none}.mark img{width:100%;height:100%;object-fit:cover;display:block}.lede{color:var(--muted);max-width:34ch}.form{display:flex;flex-direction:column;gap:1.125rem}.field{display:flex;flex-direction:column;gap:.375rem}.field>label{font-size:.875rem;font-weight:600}.control{position:relative}.control input,.control textarea{width:100%;min-height:3rem;padding:.5rem .875rem;font:inherit;font-size:1rem;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius);transition:border-color .15s ease}.control input:hover,.control textarea:hover{border-color:#b9b3a3}.control input:focus-visible,.control textarea:focus-visible{outline:none;border-color:var(--brand-ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-ink) 22%,transparent)}.control input[aria-invalid=true],.control textarea[aria-invalid=true]{border-color:var(--danger)}.control input.has-action{padding-right:5.25rem}.reveal{position:absolute;inset-block:.25rem;right:.25rem;min-width:4.25rem;padding:0 .75rem;border:0;border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-size:.875rem;font-weight:600;cursor:pointer}.reveal:hover{color:var(--ink)}.btn{min-height:3.25rem;padding:0 1.25rem;border:0;border-radius:var(--radius);background:var(--brand);color:var(--on-brand);font:inherit;font-weight:650;cursor:pointer;transition:transform .16s var(--ease-out),opacity .16s ease,background-color .16s ease}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn.quiet{background:transparent;color:var(--ink);border:1.5px solid var(--line)}.btn.quiet:hover:not(:disabled){border-color:#b9b3a3}.notice{padding:.75rem .875rem;border-radius:var(--radius);background:var(--danger-bg);color:var(--danger);font-size:.9375rem;font-weight:500}.notice.neutral{background:color-mix(in srgb,var(--ink) 6%,var(--paper));color:var(--ink)}.hint{font-size:.875rem;color:var(--muted)}.control textarea{display:block;padding-block:.75rem;line-height:1.45;resize:vertical;min-height:5.5rem}.control input:disabled,.control textarea:disabled{color:var(--muted);background:color-mix(in srgb,var(--surface) 60%,var(--paper))}.btn.small{min-height:2.75rem;padding:0 1rem;font-size:.9375rem}.btn.text{background:transparent;color:var(--ink);padding-inline:.75rem}.btn.text.danger{color:var(--danger)}@media(hover:hover)and (pointer:fine){.btn.text:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 6%,transparent)}}.chip{display:inline-flex;align-items:center;gap:.25rem;min-height:2.75rem;padding:0 .875rem;border:1.5px solid var(--line);border-radius:999px;color:var(--ink);font-size:.9375rem;font-weight:600;text-decoration:none;flex:none;transition:border-color .15s ease,transform .16s var(--ease-out)}.chip:hover{border-color:#b9b3a3}.chip:active{transform:scale(.97)}.chip.back{padding-left:.5rem;align-self:flex-start}.field-error{font-size:.875rem;font-weight:500;color:var(--danger)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.column.wide{max-width:24rem}.settings{display:flex;flex-direction:column;gap:2rem}.settings-head{display:flex;flex-direction:column;gap:1rem}.section{display:grid;gap:1.25rem;align-content:start}.section+.section{padding-top:2rem;border-top:1px solid var(--line)}.section-head{display:grid;gap:.25rem}.section-head h2{font-size:1.125rem;font-weight:680;line-height:1.25;letter-spacing:-.01em}.fields{display:grid;gap:1.25rem}.field>.label,.field>legend{font-size:.875rem;font-weight:600}.optional{font-weight:400;color:var(--muted)}.field-meta{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.count{flex:none;font-size:.8125rem;color:var(--muted)}.count.over{color:var(--danger);font-weight:600}.logo-row{display:flex;align-items:center;gap:1rem}.logo-thumb .mark{width:4rem;height:4rem;border-radius:18px;box-shadow:0 1px 2px #14181d14}.logo-actions{display:flex;flex-wrap:wrap;gap:.25rem .5rem}.color-row{display:flex;gap:.625rem}.color-row .control{flex:1}.swatch{flex:none;width:3rem;height:3rem;padding:.25rem;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer}.swatch::-webkit-color-swatch-wrapper{padding:0}.swatch::-webkit-color-swatch{border:0;border-radius:9px}.swatch::-moz-color-swatch{border:0;border-radius:9px}#brand-hex{font-variant-numeric:tabular-nums;text-transform:lowercase}.preview{display:grid;gap:.5rem}.preview-door{display:grid;gap:.625rem;padding:1.25rem 1.125rem 1.125rem;background:var(--paper);border:1px solid var(--line);border-radius:20px;box-shadow:0 1px 2px #14181d0d,0 8px 24px -12px #14181d2e}.preview-door .mark{width:2.75rem;height:2.75rem;border-radius:13px;font-size:1rem}.preview-copy{display:grid;gap:.125rem;margin-bottom:.375rem;min-width:0}.preview-name{font-size:1.125rem;font-weight:680;line-height:1.2;letter-spacing:-.015em;overflow-wrap:anywhere}.preview-lede{font-size:.8125rem;color:var(--muted);overflow-wrap:anywhere}.preview-input{height:2.25rem;padding:0 .625rem;display:flex;align-items:center;font-size:.75rem;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:10px}.preview-btn{height:2.5rem;margin-top:.25rem;display:grid;place-items:center;border-radius:10px;background:var(--brand);color:var(--on-brand);font-size:.875rem;font-weight:650}.warnings{margin:.75rem 0 0;padding:.75rem .875rem;list-style:none;display:grid;gap:.375rem;border-radius:var(--radius);background:var(--warn-bg);color:var(--warn);font-size:.875rem;font-weight:500}.actions{display:grid;gap:.75rem}.actions-row{display:flex;align-items:center;gap:1rem}.actions-row .btn{flex:1}.saved-slot{flex:none}.saved{display:inline-flex;align-items:center;gap:.25rem;flex:none;font-size:.9375rem;font-weight:600;color:var(--brand-ink)}.saved-enter-active{transition:opacity .2s var(--ease-out),transform .2s var(--ease-out)}.saved-leave-active{transition:opacity .4s ease}.saved-enter-from{opacity:0;transform:translateY(4px)}.saved-leave-to{opacity:0}.advanced{border:1.5px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 45%,var(--paper))}.advanced summary{min-height:3.25rem;padding:.625rem .875rem;display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:.75rem;cursor:pointer;list-style:none;border-radius:var(--radius)}.advanced summary::-webkit-details-marker{display:none}.advanced-title{font-weight:600}.advanced summary .hint{grid-column:1}.advanced .chevron{grid-column:2;grid-row:1 / span 2;color:var(--muted);transition:transform .2s var(--ease-out)}.advanced[open] .chevron{transform:rotate(180deg)}.advanced-body{display:grid;gap:1.25rem;padding:.25rem .875rem 1rem}.duration{border:0;padding:0;min-width:0}.duration>legend{padding:0;margin-bottom:.375rem}.duration-row{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.control.unit input{padding-right:2.75rem}.control.unit:after{content:attr(data-unit);position:absolute;right:.875rem;top:50%;transform:translateY(-50%);font-size:.875rem;color:var(--muted);pointer-events:none}.skeleton-stack{display:grid;gap:1rem}.skeleton{border-radius:var(--radius);background:color-mix(in srgb,var(--ink) 7%,var(--paper));animation:pulse 1.2s ease-in-out infinite alternate}@keyframes pulse{to{opacity:.55}}@media(min-width:900px){.column.wide{max-width:56rem}.identity-form{grid-template-columns:minmax(0,1fr) 18rem;column-gap:3rem}.identity-form>.section-head,.identity-form>.fields,.identity-form>.actions{grid-column:1}.identity-form>.preview-slot{grid-column:2;grid-row:1 / span 3;position:sticky;top:1.5rem;align-self:start}.settings-form{max-width:calc(100% - 21rem)}.actions-row .btn{flex:none;min-width:12rem}}.activate{display:flex;flex-direction:column;gap:1.75rem}.activate-title{display:grid;gap:.375rem}.activate-title h1{overflow-wrap:anywhere}.activate-title .lede{text-wrap:pretty}.username-card{display:flex;align-items:center;gap:.75rem;padding:.75rem .75rem .75rem 1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px #14181d0d}.username-copy{flex:1;min-width:0;display:grid;gap:.125rem}.username{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.0625rem;font-weight:600;letter-spacing:.01em;overflow-wrap:anywhere;user-select:all;-webkit-user-select:all}.copy{flex:none;display:inline-flex;align-items:center;gap:.375rem;min-width:6.5rem;justify-content:center}.copy svg{color:var(--brand-ink)}.requirement{display:inline-flex;align-items:center;gap:.375rem;transition:color .15s ease}.requirement svg{flex:none;opacity:.6}.requirement.met{color:var(--brand-ink);font-weight:500}.requirement.met svg{opacity:1}.inline-link{color:var(--brand-ink);font-weight:600;text-underline-offset:.2em;text-decoration-thickness:1.5px;display:inline-block;padding-block:.75rem;margin-block:-.75rem}.enroll-business{display:flex;align-items:center;gap:.75rem;min-width:0}.enroll-business .mark{width:2.75rem;height:2.75rem;border-radius:13px;font-size:1rem}.enroll-business-name{font-size:1.0625rem;font-weight:650;line-height:1.25;letter-spacing:-.01em;overflow-wrap:anywhere}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:.375rem;margin:1.5rem 0 2rem}.steps-bar{height:4px;border-radius:999px;background:color-mix(in srgb,var(--ink) 10%,var(--paper));transition:background-color .24s ease}.steps-bar.on{background:var(--brand-ink)}.step{display:flex;flex-direction:column;gap:1.75rem}.enroll-business+.step{margin-top:2rem}.step-head{display:grid;gap:.5rem}.step-head .lede{text-wrap:pretty}.step-head h1:focus{outline:none}.nowrap{white-space:nowrap;font-weight:600;color:var(--ink)}.tabular{font-variant-numeric:tabular-nums}.control.prefixed .prefix{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);font-weight:600;color:var(--muted);pointer-events:none}.control.prefixed input{padding-left:3.25rem}.control input::placeholder{color:#6b7280}.control input.code-input{min-height:3.5rem;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.5rem;font-weight:600;letter-spacing:.5em;text-indent:.5em;text-align:center}.resend{display:flex;justify-content:center;min-height:2.75rem;align-items:center}.btn.quiet.primary{background:var(--brand);color:var(--on-brand);border-color:transparent}.link-btn{display:inline-block;min-height:2.75rem;padding:0;margin:-.75rem 0;border:0;background:none;color:var(--brand-ink);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1.5px;cursor:pointer}.link-btn:disabled{opacity:.55;cursor:not-allowed}.link-btn.back{align-self:center;margin:0}.hint.fine{text-align:center;text-wrap:balance}.hint.center{text-align:center}.enroll .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none}.spinner{width:1.125em;height:1.125em;flex:none;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .65s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.actions-stack{display:grid;gap:1rem}.btn.wallet-apple{background:#000;color:#fff}.btn.wallet-apple:focus-visible{outline-color:#6b7280}.wallet-google{justify-self:center;display:block;border-radius:999px;-webkit-tap-highlight-color:transparent;transition:transform .16s var(--ease-out),box-shadow .2s ease}.wallet-google img{display:block;height:3.5rem;width:auto}@media(min-width:25.25rem){.wallet-google{justify-self:stretch}.wallet-google img{width:100%;height:auto}}.wallet-google:active{transform:scale(.97)}@media(hover:hover)and (pointer:fine){.wallet-google:hover{box-shadow:0 6px 16px -8px #14181d8c}}.wallet-google:focus-visible{outline-color:#6b7280;outline-offset:3px}.loyalty-card{margin:0;aspect-ratio:1.586;max-height:14rem;padding:1.125rem 1.25rem;display:flex;flex-direction:column;justify-content:space-between;border-radius:20px;background:linear-gradient(160deg,color-mix(in srgb,white 14%,transparent),transparent 55%),var(--brand);color:var(--on-brand);box-shadow:inset 0 0 0 1px color-mix(in srgb,white 16%,transparent),0 2px 4px #14181d14,0 18px 36px -18px #14181d73;overflow:hidden}.loyalty-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.loyalty-card .mark{width:2.75rem;height:2.75rem;border-radius:13px;font-size:1rem;background:color-mix(in srgb,var(--on-brand) 16%,transparent);color:var(--on-brand)}.loyalty-card-kind{font-size:.8125rem;font-weight:600;opacity:.85;text-align:right}.loyalty-card-bottom{display:grid;gap:.125rem;min-width:0}.loyalty-card-name{font-size:1.25rem;font-weight:680;letter-spacing:-.015em;line-height:1.2;overflow-wrap:anywhere}.loyalty-card-holder{font-size:.9375rem;opacity:.85;overflow-wrap:anywhere}.step-forward-enter-active,.step-back-enter-active{transition:opacity .22s var(--ease-out),transform .22s var(--ease-out)}.step-forward-leave-active,.step-back-leave-active,.step-fade-leave-active{transition:opacity .11s ease}.step-forward-enter-from{opacity:0;transform:translate(14px)}.step-back-enter-from{opacity:0;transform:translate(-14px)}.step-forward-leave-to,.step-back-leave-to,.step-fade-leave-to,.step-fade-enter-from{opacity:0}.step-fade-enter-active{transition:opacity .16s ease}.pass-in{animation:pass-in .36s var(--ease-out) 60ms both}@keyframes pass-in{0%{opacity:.001;transform:translateY(14px) scale(.96) rotate(-1.5deg)}}.enter{animation:enter .24s var(--ease-out) both}@keyframes enter{0%{opacity:.001;transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){.enter{animation:none}.btn,.wallet-google,.chip,.advanced .chevron,.requirement{transition:none}.saved-enter-from{transform:none}.skeleton{animation:none}.steps-bar,.link-btn{transition:none}.pass-in{animation:fade-in .2s ease both}.spinner{animation-duration:1.6s}}@keyframes fade-in{0%{opacity:0}}.top{margin-top:clamp(1rem,12dvh,5rem)}
