:root{color:#191a16;font-synthesis:none;text-rendering:optimizelegibility;--ink:#191a16;--paper:#f6f5f1;--surface:#fff;--acid:#d8ff65;--muted:#707268;--line:#dcdcd4;background:#f6f5f1;font-family:Inter,ui-rounded,SF Pro Rounded,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--paper)}body{background:radial-gradient(circle at 90% 0%, #d8ff653d, transparent 28rem), var(--paper);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{width:min(100%,720px);min-height:100vh;padding:max(20px, env(safe-area-inset-top)) 20px max(36px, env(safe-area-inset-bottom));margin:0 auto}.app-shell--locked{overscroll-behavior:none;height:100dvh;min-height:0;position:fixed;inset:0;overflow:hidden}.screen{animation:.18s ease-out enter}.app-loading{place-content:center;justify-items:center;min-height:calc(100dvh - 56px);display:grid}.app-loading .empty-state__cards{margin:0 34px 28px 0}.app-loading h1{letter-spacing:-.055em;margin:0;font-size:2rem}@keyframes enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.topbar{justify-content:space-between;align-items:center;gap:16px;margin:8px 0 30px;display:flex}.topbar--compact{text-align:center;grid-template-columns:52px 1fr 52px;margin-bottom:24px;display:grid}.topbar h1{letter-spacing:-.055em;margin:2px 0 0;font-size:clamp(1.8rem,7vw,2.6rem)}.topbar--compact h1{letter-spacing:-.035em;font-size:1.4rem}.topbar__spacer{width:52px}.eyebrow{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.76rem;font-weight:800}.icon-button{width:52px;height:52px;color:var(--ink);cursor:pointer;background:#ebeae5;border:0;border-radius:50%;place-items:center;font-size:1.85rem;line-height:1;display:grid}.icon-button--dark{background:var(--ink);color:var(--acid)}.back-chevron{border-bottom:2.5px solid;border-left:2.5px solid;width:13px;height:13px;margin-left:4px;transform:rotate(45deg)}.cards-header{top:max(0px, env(safe-area-inset-top));z-index:12;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f6f5f1f0;margin:-8px -20px 18px;padding:16px 20px 12px;position:sticky;box-shadow:0 1px #191a1612}.card-jump-field{width:min(100%,310px);color:var(--muted);background:#fff;border:1px solid #191a161a;border-radius:14px;grid-column:1/-1;grid-template-columns:auto 1fr;align-items:center;gap:8px;margin:0 auto;padding:8px 13px;display:grid;box-shadow:0 5px 16px #191a160f}.card-jump-field input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:0;padding:0;font-size:.9rem}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:16px;padding:16px 20px;font-weight:800}.primary-button{background:var(--ink);color:#fff;box-shadow:0 10px 24px #191a162e}.primary-button--full{width:100%;margin-top:4px}.secondary-button{background:var(--acid);width:100%;color:var(--ink)}.empty-state{flex-direction:column;justify-content:center;align-items:flex-start;min-height:65vh;padding-bottom:10vh;display:flex}.empty-state h2{letter-spacing:-.06em;max-width:560px;margin:10px 0 12px;font-size:clamp(2rem,9vw,3.8rem);line-height:.98}.empty-state>p:not(.eyebrow){max-width:470px;color:var(--muted);margin:0 0 26px;font-size:1.05rem;line-height:1.5}.empty-state__cards{width:160px;height:106px;margin:0 0 36px 10px;position:relative}.empty-state__cards span{background:var(--ink);border-radius:20px;position:absolute;inset:0;transform:rotate(-8deg)}.empty-state__cards span:nth-child(2){background:#ff6b61;transform:translate(18px,6px)rotate(2deg)}.empty-state__cards span:nth-child(3){background:var(--acid);transform:translate(34px,15px)rotate(11deg)}.card-grid,.brand-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px;display:grid}.tile-button{min-width:0;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;position:relative}.tile-button--matched .brand-card{outline:3px solid var(--acid);outline-offset:3px}.tile-button__label{text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;padding:8px 4px 0;font-size:.88rem;font-weight:750;display:block;overflow:hidden}.pin-badge{background:var(--acid);width:29px;height:29px;color:var(--ink);border-radius:50%;place-items:center;font-size:.9rem;display:grid;position:absolute;top:9px;right:9px;box-shadow:0 4px 12px #191a1633}.brand-card{aspect-ratio:1.58;border-radius:21px;place-items:center;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0000000f,0 5px 13px #22231d0f}.brand-card img{object-fit:cover;width:100%;height:100%}.brand-card__wordmark{letter-spacing:-.035em;text-align:center;text-transform:uppercase;max-width:82%;font-size:clamp(.92rem,4.8vw,1.45rem);font-weight:900}.brand-card__plus{background:#ffffff8c;border-radius:50%;place-items:center;width:62px;height:62px;font-size:2.2rem;display:grid}.brand-card--compact{aspect-ratio:2.25;margin-bottom:26px}.brand-card--compact .brand-card__wordmark{font-size:1.8rem}.search-field{border:1px solid var(--line);background:#ffffffb8;border-radius:17px;align-items:center;gap:10px;margin-bottom:24px;padding:0 17px;display:flex}.search-field>span{font-size:1.6rem;transform:rotate(-20deg)}.search-field input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;padding:16px 0}.section-label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 14px;font-size:.78rem;font-weight:800}.screen--form{padding-bottom:24px}.card-form{gap:18px;display:grid}.field{gap:8px;font-size:.9rem;font-weight:800;display:grid}.field input,.field select{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:15px;outline:none;padding:16px}.field input:focus,.field select:focus{border-color:var(--ink);box-shadow:0 0 0 3px #d8ff65bf}.divider{color:var(--muted);align-items:center;gap:12px;font-size:.78rem;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.helper-text,.privacy-note,.detail-hint{color:var(--muted);text-align:center;margin:-8px 0 0;font-size:.8rem;line-height:1.45}.form-error{color:#b52121;text-align:center;margin:0;font-size:.84rem;font-weight:700}.barcode-preview{background:#fff;border-radius:16px;place-items:center;min-height:126px;padding:12px;display:grid;overflow:auto}.barcode-preview canvas{max-width:100%;display:block;height:auto!important}.barcode-preview canvas.is-hidden{display:none}.text-button{cursor:pointer;background:0 0;border:0;font-size:.78rem;font-weight:800}.text-button--danger{color:#bd2222}.loyalty-card{background:#fff;border-radius:28px;margin-top:10vh;overflow:hidden;box-shadow:0 22px 60px #191a1624}.loyalty-card__header{justify-content:space-between;align-items:center;padding:24px;font-size:1.25rem;font-weight:900;display:flex}.brand-name{text-transform:uppercase}.offline-pill{letter-spacing:.08em;text-transform:uppercase;background:#ffffff2e;border-radius:99px;padding:8px 11px;font-size:.68rem}.loyalty-card__code{text-align:center;padding:34px 20px 30px}.loyalty-card__code p{letter-spacing:.1em;overflow-wrap:anywhere;margin:18px 0 0;font-size:clamp(1.05rem,5vw,1.5rem)}.detail-hint{max-width:360px;margin:24px auto 0}.detail-hint--listening{color:#356300;font-weight:800}.pin-toggle{width:min(100%,360px);margin:24px auto 0;display:block}.detail-screen{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.detail-screen .topbar{flex:none;margin-bottom:12px}.detail-screen .loyalty-card{flex:0 auto;min-height:0;margin:auto 0}.detail-screen .loyalty-card__code{padding:clamp(14px,4dvh,34px) 20px clamp(14px,3.5dvh,30px)}.detail-screen .barcode-preview{min-height:0}.detail-screen .barcode-preview canvas{max-height:24dvh;width:auto!important}.detail-screen .pin-toggle{flex:none;margin-top:16px}.detail-screen .detail-hint{flex:none;margin-top:14px}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.start-actions{justify-items:start;gap:6px;width:min(100%,340px);display:grid}.start-actions__alt{color:var(--muted);padding:12px 2px}.voice-button{background:var(--acid);color:var(--ink);cursor:pointer;border:0;border-radius:15px;align-items:center;gap:10px;padding:12px 16px;font-weight:850;display:inline-flex}.voice-button--active{background:#ff6b61}.voice-mic{border:2px solid;border-radius:8px;width:12px;height:18px;position:relative}.voice-mic:before{content:"";border-bottom:2px solid;border-left:2px solid;border-right:2px solid;border-radius:0 0 10px 10px;height:11px;position:absolute;bottom:-5px;left:-6px;right:-6px}.voice-mic:after{content:"";border-bottom:2px solid;width:4px;height:5px;position:absolute;bottom:-9px;left:3px}.voice-status{max-width:330px;color:var(--muted);margin:4px 0 0;font-size:.78rem;line-height:1.4}.home-card-art{width:min(100%,340px);height:174px;margin-top:30px;position:relative}.home-card-art__card{border-radius:24px;width:250px;height:142px;display:block;position:absolute}.home-card-art__card--back{background:var(--acid);top:13px;left:66px;transform:rotate(8deg)}.home-card-art__card--middle{background:#ff6b61;top:18px;left:7px;transform:rotate(-8deg)}.home-card-art__card--front{background:linear-gradient(135deg,#625ee8,#332d9b);top:17px;left:35px;overflow:hidden;transform:rotate(-1deg);box-shadow:0 18px 38px #29257747}.home-card-art__card--front:after{content:"";border:26px solid #ffffff24;border-radius:50%;width:128px;height:128px;position:absolute;top:-42px;right:-28px}.home-card-art__chip{background:linear-gradient(90deg, transparent 47%, #191a1659 48% 52%, transparent 53%), linear-gradient(transparent 47%, #191a1659 48% 52%, transparent 53%), var(--acid);border-radius:9px;width:44px;height:34px;position:absolute;top:28px;left:27px}.home-card-art__barcode{opacity:.92;background:repeating-linear-gradient(90deg,#fff 0 3px,#0000 3px 7px,#fff 7px 9px,#0000 9px 14px);width:112px;height:36px;position:absolute;bottom:27px;right:27px}.modal{z-index:30;background:#0d0e0c80;place-items:end center;padding:20px;display:grid;position:fixed;inset:0}.modal__panel{width:min(100%,460px);max-height:88vh;padding:24px 22px max(24px, env(safe-area-inset-bottom));background:var(--surface);border-radius:26px;gap:10px;animation:.2s ease-out enter;display:grid;overflow-y:auto;box-shadow:0 24px 60px #191a164d}.modal__panel h2{letter-spacing:-.04em;margin:0;font-size:1.5rem}.modal__intro{text-align:left;margin:0 0 6px}.modal__panel .secondary-button[disabled]{opacity:.45;cursor:default}.modal__close{color:var(--muted);margin-top:4px}.acquisition-actions__alt{width:100%;color:var(--muted);margin-top:10px;display:block}.scanner{z-index:40;padding:max(20px, env(safe-area-inset-top)) 20px max(28px, env(safe-area-inset-bottom));color:#fff;background:#0d0e0c;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:fixed;inset:0;overflow:hidden}.scanner__video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.scanner__frame{aspect-ratio:1.7;border:2px solid var(--acid);border-radius:20px;width:min(82vw,420px);position:relative;box-shadow:0 0 0 100vmax #0d0e0c8c}.scanner__hint,.scanner__error{text-align:center;text-shadow:0 1px 6px #0009;max-width:340px;margin:0;font-size:.92rem;font-weight:700;line-height:1.45;position:relative}.scanner__error{color:#ffc9c4}.scanner__close{min-width:160px;color:var(--ink);background:#fff;position:relative}.banner-stack{left:50%;bottom:max(16px, env(safe-area-inset-bottom));z-index:20;pointer-events:none;gap:10px;width:min(100% - 32px,520px);display:grid;position:fixed;transform:translate(-50%)}.app-banner{pointer-events:auto;background:var(--surface);border-radius:22px;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;animation:.22s ease-out enter;display:flex;box-shadow:0 18px 44px #191a1638}.app-banner__text p:not(.eyebrow){color:var(--muted);margin:6px 0 0;font-size:.86rem;line-height:1.4}.app-banner__actions{flex-shrink:0;justify-items:center;gap:6px;display:grid}.app-banner__actions .primary-button{padding:12px 18px;font-size:.9rem}.app-banner__actions .primary-button[disabled]{opacity:.6;cursor:default}.app-banner__actions .text-button{color:var(--muted)}.app-banner__actions .text-button[disabled]{opacity:.5;cursor:default}.install-banner__actions button:disabled{cursor:wait;opacity:.65}.update-banner{z-index:30;border-color:#d8ff65cc}@media (width>=620px){.brand-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand-card__wordmark{font-size:1.25rem}}@media (prefers-reduced-motion:reduce){.screen{animation:none}}
