:root{color:#181818;font-synthesis:none;--ink:#181818;--muted:#68665f;--paper:#fff;--accent:#ff4554;--line:#d5d2ca;--mono:"SFMono-Regular", Menlo, Consolas, monospace;background:#eceae5;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.4}*{box-sizing:border-box}html,body{min-width:280px}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.app-shell{border-right:1px solid var(--line);border-left:1px solid var(--line);background:var(--paper);flex-direction:column;width:min(100%,520px);min-height:100svh;margin:0 auto;display:flex}.site-header{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:center;gap:12px;min-height:70px;padding:0 26px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;display:inline-flex}.brand-mark{background:var(--accent);width:34px;height:34px;color:var(--ink);letter-spacing:-.1em;place-items:center;font-size:1.375rem;font-weight:800;line-height:1;display:grid}.brand-name{letter-spacing:-.055em;font-size:1.25rem;font-weight:760}.session-menu{flex:none;position:relative}.menu-trigger{border:1px solid var(--line);width:44px;min-height:44px;color:var(--ink);background:#fff;place-items:center;padding:0;display:grid}.menu-trigger:hover{background:#f4f2ed}.menu-trigger>.menu-icon{color:var(--ink);gap:4px;display:grid}.menu-icon i{background:currentColor;width:18px;height:2px;display:block}.menu-popover{z-index:5;border:1px solid var(--line);background:var(--paper);width:min(250px,100vw - 40px);padding:8px;position:absolute;top:calc(100% + 9px);right:0;box-shadow:0 10px 24px #1818181c}.menu-popover .logout-block{margin:0}.menu-popover .secondary{border-color:#0000;min-height:48px}.content-frame{flex:1;padding:38px 26px 52px}.desk,.auth-view{width:100%}.eyebrow{color:var(--muted);font-family:var(--mono);letter-spacing:.02em;text-transform:uppercase;margin:0 0 20px;font-size:.6875rem;font-weight:600}.eyebrow strong{color:var(--ink);margin-left:7px;font-weight:700}h1{overflow-wrap:anywhere;letter-spacing:-.065em;max-width:440px;margin:0;font-size:clamp(2.75rem,9vw,3.75rem);font-weight:760;line-height:.98}.heading-dot{color:var(--accent)}.customer-name{font-size:clamp(2.5rem,8vw,3.5rem)}.intro-copy,.auth-view>p:not(.eyebrow,.notice,.small){color:#55524d;max-width:380px;margin:14px 0 28px;font-size:1rem;line-height:1.45}.scan-card{border:1px solid var(--ink);overflow:hidden}.scan-activate{background:#fff;min-height:0;padding:0;display:block}.scan-activate:hover,.scan-activate:not(:disabled):active{background:#fff}.scan-activate:not(:disabled):hover .scan-visual{background:#ebe9e3}.scan-activate:not(:disabled):active .scan-visual{background:#dedbd3}.scan-visual{background:#f1efe9;place-items:center;min-height:240px;display:grid}.scan-trigger{background:var(--ink);color:#fff;justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:14px 18px;display:flex}button.scan-activate>.scan-trigger{color:#fff;font-size:.9375rem;font-weight:670;line-height:1.4}.scan-trigger>span{color:var(--accent);font-size:1.25rem;font-weight:400;line-height:1}.scan-activate:disabled .scan-trigger{color:#77746e;background:#e4e1da}.scan-activate:disabled .scan-trigger>span{color:#77746e}.scan-target{aspect-ratio:1;width:174px;position:relative}.target-corner{border:0 solid var(--ink);width:25%;height:25%;position:absolute}.top-left{border-top-width:4px;border-left-width:4px;top:0;left:0}.top-right{border-top-width:4px;border-right-width:4px;top:0;right:0}.bottom-left{border-bottom-width:4px;border-left-width:4px;bottom:0;left:0}.bottom-right{border-bottom-width:4px;border-right-width:4px;bottom:0;right:0}.target-center{color:var(--ink);font-family:var(--mono);font-size:2.375rem;font-weight:300;position:absolute;top:50%;left:50%;transform:translate(-50%,-53%)}button,.button{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;text-align:left;border-radius:0;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:58px;padding:14px 18px;font-size:.9375rem;font-weight:670;text-decoration:none;display:flex}button:hover,.button:hover{background:#343434}button:not(:disabled):active,.button:active{background:var(--accent);color:var(--ink);transform:scale(.985)}button:focus-visible,.button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button>span,.button>span{color:var(--accent);font-size:1.25rem;font-weight:400;line-height:1}.scan-card>button{border:0;border-top:1px solid var(--ink)}.secondary{color:var(--ink);background:#fff}.secondary:hover{background:#f4f2ed}.secondary>span{color:var(--ink)}button:disabled{cursor:not-allowed}button:disabled:not(:has(.button-spinner)){color:#77746e;background:#e4e1da;border-color:#bcb7ad}button:disabled:not(:has(.button-spinner))>span{color:#77746e}.button-spinner{width:18px;height:18px;color:inherit;border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;margin-left:auto;animation:.75s linear infinite turn}button:disabled:has(.button-spinner){opacity:.82;cursor:progress}.camera{aspect-ratio:1;background:var(--ink);position:relative;overflow:hidden}.camera video{object-fit:cover;width:100%;height:100%;display:block}.scan-guide{border:3px solid var(--accent);pointer-events:none;position:absolute;inset:16%}.loading-visual{min-height:200px;margin-top:26px}.loading-symbol{font-size:5.625rem;animation:2.2s linear infinite turn}@keyframes turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading-symbol{animation:none}}.customer-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 22px;margin-bottom:24px;display:flex}.customer-name{flex:200px}.points-summary{flex-direction:column;align-items:flex-end;gap:2px;padding-bottom:3px;display:flex}.points-summary span{color:var(--muted);font-family:var(--mono);text-transform:uppercase;white-space:nowrap;font-size:.6875rem;font-weight:600}.points-summary strong{letter-spacing:-.055em;font-size:2rem;line-height:1}.primary-actions{gap:10px;display:grid}.primary-actions .secondary{border-color:var(--line)}.more-options{margin-top:12px}.more-toggle{min-height:48px;color:var(--ink);background:#fff;border:0;padding:10px 0;position:relative}.more-toggle:before{border-top:1px solid var(--line);content:"";position:absolute;top:0;left:12px;right:12px}.more-toggle:hover{background:#fff}.more-toggle:not(:disabled):active{background:#f1efe9}.more-toggle>span{color:var(--ink)}.more-content{gap:8px;padding:8px 0 0;display:grid}.more-content .secondary{border-color:var(--line)}.more-content .small{margin:0 0 5px}.operation-panel{border:1px solid var(--ink);margin-top:25px;padding:19px}.operation-panel h2{letter-spacing:-.04em;margin:0 0 18px;font-size:1.4375rem;line-height:1.1}.operation-panel p{margin:10px 0}.operation-panel label{margin-bottom:8px;font-size:.8125rem;font-weight:650;display:block}.operation-panel input{border:1px solid var(--ink);width:100%;min-height:54px;font:inherit;border-radius:0;padding:12px 14px;font-size:1.375rem}.operation-panel input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.operation-panel>button{margin-top:18px}.operation-panel .reward-option{min-height:66px;color:var(--ink);background:#fff;margin-top:-1px}.operation-panel .reward-option:hover{background:#fff0f1}.operation-panel .reward-option:active{background:#dedbd3}.operation-panel .reward-option span{color:var(--muted);white-space:nowrap;font-size:.75rem}.operation-back,.operation-rescan{margin-top:13px}.operation-rescan{margin-top:56px}.small{color:var(--muted);margin:18px 0 16px;font-size:.75rem;line-height:1.4}.auth-view{padding-top:10px}.auth-view>p:not(.eyebrow,.notice,.small){margin-bottom:30px}.logout-block{margin-top:12px}.logout-block .secondary{min-height:52px}.notice{border-left:3px solid var(--accent);color:#842932;background:#fff0f1;margin:22px 0;padding:13px 15px;font-size:.875rem;line-height:1.4}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-family:var(--mono);text-align:center;padding:18px 26px 22px;font-size:.625rem}@media (prefers-reduced-motion:reduce){button:not(:disabled):active,.button:active{transform:none}.button-spinner{border-top-color:#0000;border-right-color:currentColor;animation:none}}@media (width<=520px){:root{font-size:19px}.app-shell{border:0}.site-header{min-height:64px;padding:0 20px}.content-frame{padding:30px 20px 42px}.site-footer{padding:17px 20px 20px}.customer-name{font-size:clamp(45px,8vw,63px)}.points-summary span{font-size:12.375px}.points-summary strong{font-size:36px}}@media (width<=340px){.brand-name{font-size:1.125rem}.scan-target{width:150px}.scan-visual{min-height:210px}}
