*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:#f2f2f5;color:#1a1a1a}.screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;box-sizing:border-box}.centered-message{text-align:center;color:#555}.form-card,.loyalty-card,.reward-ticket{width:340px;max-width:92vw;background:#fff;border-radius:20px;box-shadow:0 8px 30px #00000014;padding:28px 24px}.tenant-logo{width:64px;height:64px;border-radius:16px;object-fit:cover;margin-bottom:12px}.form-card h1{font-size:1.4rem;margin:0 0 4px}.form-card p{color:#666;margin:0 0 20px;font-size:.95rem}.field{margin-bottom:16px}.field-hint{font-size:.78rem;color:#888;margin:6px 0 0}.field label{display:block;font-size:.85rem;font-weight:600;margin-bottom:6px;color:#333}.field input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid #ddd;font-size:1rem}.date-input-wrap{position:relative;overflow:hidden}.date-input-icon{position:absolute;top:50%;left:14px;transform:translateY(-50%);width:18px;height:18px;color:var(--brand-color, #a8451e);pointer-events:none}.field .date-input{padding-left:42px;cursor:pointer;-webkit-min-logical-width:100%;min-width:0;max-width:100%}.submit-btn{width:100%;padding:14px;border:none;border-radius:12px;font-size:1rem;font-weight:600;color:#fff;cursor:pointer;margin-top:8px;box-shadow:0 4px 14px #00000026;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.submit-btn:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 6px 18px #0003}.submit-btn:active:not(:disabled){transform:scale(.98);box-shadow:0 2px 8px #00000026}.submit-btn:disabled{opacity:.6;cursor:default}.mode-toggle-link{display:block;width:100%;margin-top:16px;padding:0;border:none;background:none;color:#666;font-size:.85rem;text-decoration:underline;cursor:pointer;text-align:center}.find-card-message{color:#2a7a4a;font-size:.85rem;margin-top:8px;text-align:center}.error-text{color:#d33;font-size:.85rem;margin-top:8px}.error-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f102080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:200}.error-dialog-card{width:100%;max-width:360px;background:#fff;border-radius:16px;box-shadow:0 20px 50px #00000040;padding:24px 22px;text-align:center}.error-dialog-card h2{margin:0 0 10px;font-size:1.05rem;font-weight:700;color:#1a1a1a}.error-dialog-card p{margin:0 0 20px;font-size:.9rem;color:#555;line-height:1.5}.error-dialog-close-btn{width:100%;padding:12px;border:none;border-radius:12px;font-size:.95rem;font-weight:600;color:#fff;background:#2a231c;cursor:pointer}.card-page{background:#f3ede4;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow-x:hidden}.loyalty-card{color:var(--card-on, #fff8f0);position:relative;overflow:hidden;border-radius:26px;padding:20px;box-sizing:border-box;min-height:620px;min-height:min(620px,calc(100dvh - 48px));box-shadow:0 20px 44px -16px #00000052;display:flex;flex-direction:column}.loyalty-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 88% 10%,rgba(255,255,255,.22),transparent 46%);pointer-events:none}.loyalty-card-content{position:relative;z-index:1;flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:16px;overflow:hidden}.loyalty-card-header{display:flex;align-items:center;gap:14px}.loyalty-card-header.pos-center{flex-direction:column;text-align:center}.loyalty-card-header.pos-right{flex-direction:row-reverse}.wallet-dots{display:flex;justify-content:center;gap:8px;margin:-4px 0 4px}.wallet-dot{width:8px;height:8px;padding:0;border:none;border-radius:50%;background:var(--card-on-muted);opacity:.4;cursor:pointer;transition:opacity .15s,transform .15s,background .15s}.wallet-dot.is-active{opacity:1;transform:scale(1.3);background:var(--card-on)}.wallet-dot.has-reward:not(.is-active){opacity:.9;background:var(--brand-color)}.wallet-category-badge{display:inline-block;vertical-align:middle;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--card-on, inherit);background:var(--card-overlay, rgba(255, 255, 255, .18))}.card-avatar{width:64px;height:64px;border-radius:50%;flex:none;overflow:hidden;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,#ffffff59 0,#ffffff59 4px,#ffffff1f 4px,#ffffff1f 8px)}.card-avatar-img{width:100%;height:100%;object-fit:cover}.card-avatar-fallback{font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:20px;color:var(--card-on, #fff8f0)}.card-avatar-sm{width:36px;height:36px}.card-avatar-sm .card-avatar-fallback{font-size:14px}.loyalty-card-header h2{margin:0;font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:16px}.loyalty-card-header p{margin:3px 0 0;font-size:12px;color:var(--card-on-muted, rgba(255, 248, 240, .72))}.tier-status-block{display:flex;flex-direction:column;gap:10px}.tier-status-row{display:flex;align-items:center;gap:10px}.tier-badge{display:inline-block;background:var(--card-overlay, rgba(255, 255, 255, .16));color:var(--card-on, #fff8f0);font-size:11px;font-weight:700;padding:4px 11px;border-radius:100px}.tier-points{font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:26px;color:var(--card-on, #fff8f0)}.tier-progress-track{height:7px;border-radius:100px;background:var(--card-overlay, rgba(255, 255, 255, .16));overflow:hidden}.tier-progress-fill{height:100%;background:var(--card-on, #fff8f0);border-radius:100px;transition:width .3s ease}.tier-progress-label{margin:0;font-size:12px;color:var(--card-on-muted, rgba(255, 248, 240, .72))}.tier-benefits-box{background:var(--card-overlay, rgba(255, 255, 255, .16));border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.tier-benefits-box strong{font-size:11px;font-weight:700;color:var(--card-on, #fff8f0);text-transform:uppercase;letter-spacing:.3px}.tier-benefits-box p{margin:0;font-size:12px;color:var(--card-on-muted, rgba(255, 248, 240, .72));line-height:1.4}.tier-ladder{position:relative;display:flex;align-items:center;justify-content:space-between}.tier-ladder:before{content:"";position:absolute;top:15px;left:36px;right:36px;height:2px;background:var(--card-overlay, rgba(255, 255, 255, .16));z-index:0}.tier-dot-wrap{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;gap:7px}.tier-dot{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--card-overlay, rgba(255, 255, 255, .16));background:transparent;color:var(--card-on-muted, rgba(255, 248, 240, .72));font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:13px}.tier-dot.is-filled{background:var(--card-on, #fff8f0);border-color:var(--card-on, #fff8f0);color:var(--card-dot-text, #3a2409)}.tier-dot.is-current{box-shadow:0 0 0 4px var(--card-overlay, rgba(255, 255, 255, .16))}.tier-dot-label{font-size:11px;font-weight:400;opacity:.6;color:var(--card-on, #fff8f0)}.tier-dot-label.is-current{font-weight:700;opacity:1}.stamps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:4px}.stamps-grid>*{min-width:0;min-height:0}.stamp{aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;container-type:inline-size}.stamp.empty{border:1.5px dashed rgba(255,255,255,.55)}.stamp.filled{background:#fff;box-shadow:0 4px 8px #0000001f}.stamp.just-stamped,.stamp-cup.just-stamped{animation:stamp-pop .7s cubic-bezier(.34,1.56,.64,1)}@keyframes stamp-pop{0%{transform:scale(1)}30%{transform:scale(1.35);box-shadow:0 0 0 6px color-mix(in oklch,var(--brand-color, #a8451e) 35%,transparent)}60%{transform:scale(.95)}to{transform:scale(1);box-shadow:none}}.stamp-star{width:65cqw;height:65cqw;background:var(--brand-color, #a8451e);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.stamp-cup{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:1px;box-sizing:border-box}.stamp-cup img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.stamp-cup.filled img{filter:drop-shadow(0 3px 4px rgba(0,0,0,.18))}.stamp-cup.goblet:not(.filled) img{transform:scale(.85)}img.stamp-cup-logo{position:absolute;top:38%;left:20%;width:60%;height:30%;object-fit:contain;pointer-events:none}.stamp-cup.jus .stamp-cup-logo{top:55%;left:27%;width:40%;height:17%}.stamp-icon{font-size:65cqw;color:#333;line-height:1}.stamp-icon-img{width:65cqw;height:65cqw;object-fit:contain;display:block;pointer-events:none}.qr-wrapper{background:#fff;border-radius:16px;padding:16px;display:flex;justify-content:center;margin-top:16px}.qr-wrapper-card{width:160px;height:160px;background:#fff;border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto;flex:none}.install-guide-fab{position:fixed;top:50%;right:20px;z-index:250;width:56px;height:56px;border-radius:50%;border:none;background:#fff;color:#3a2a1e;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #00000059;cursor:grab;touch-action:none;--fab-drag-x: 0px;--fab-drag-y: 0px;transform:translate(calc(-50% + var(--fab-drag-x)),calc(-50% + var(--fab-drag-y)));animation:install-guide-fab-pulse 2.4s ease-in-out infinite}@keyframes install-guide-fab-pulse{0%,to{transform:translate(calc(-50% + var(--fab-drag-x)),calc(-50% + var(--fab-drag-y))) scale(1)}50%{transform:translate(calc(-50% + var(--fab-drag-x)),calc(-50% + var(--fab-drag-y))) scale(1.08)}}.ios-safari-escape-link{display:block;margin:10px auto 0;padding:6px 12px;background:#00000059;border-radius:999px;border:none;font-family:inherit;font-size:.75rem;font-weight:600;color:#fff;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.install-guide-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px}.install-guide-overlay-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;border:none;padding:0;background:#000000bf;cursor:default}.install-guide-dialog{position:relative;z-index:1;margin:0;width:100%;max-width:360px;border:none;padding:0;border-radius:20px;overflow:hidden;background:#000;box-shadow:0 20px 60px #00000080}.install-guide-video{display:block;width:100%;max-height:80vh;border-radius:20px}.install-guide-close{position:absolute;top:8px;right:8px;z-index:1;width:32px;height:32px;border-radius:50%;border:none;background:#0009;color:#fff;font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.inactive-card-banner{margin:12px 0 0;background:#dc262629;color:#fff;border-radius:12px;padding:12px;font-size:.85rem;font-weight:600;text-align:center}.reward-cta{display:flex;align-items:center;gap:12px;background:#fff8f0;border-radius:14px;padding:13px 14px;text-decoration:none;color:inherit;box-shadow:0 8px 20px #00000038,0 0 0 3px color-mix(in oklch,var(--brand-color, #fff) 35%,transparent);animation:reward-cta-pulse 2.2s ease-in-out infinite}.reward-cta:hover{filter:brightness(.98)}.reward-cta-icon{font-size:24px;line-height:1}.reward-cta-text{display:flex;flex-direction:column;gap:2px;flex:1;text-align:left}.reward-cta-text strong{font-size:14px;font-weight:800;color:var(--brand-color, #2a231c)}.reward-cta-text span{font-size:11px;color:#7a7166}.reward-cta-arrow{font-size:18px;font-weight:700;color:var(--brand-color, #2a231c)}@keyframes reward-cta-pulse{0%,to{box-shadow:0 8px 20px #00000038,0 0 0 3px color-mix(in oklch,var(--brand-color, #fff) 35%,transparent)}50%{box-shadow:0 8px 24px #00000042,0 0 0 7px color-mix(in oklch,var(--brand-color, #fff) 18%,transparent)}}.reward-cta.is-celebrating{animation:reward-cta-pop .6s cubic-bezier(.34,1.56,.64,1)}@keyframes reward-cta-pop{0%{transform:scale(1)}35%{transform:scale(1.08) rotate(-1deg)}60%{transform:scale(.98) rotate(1deg)}to{transform:scale(1) rotate(0)}}.confetti-burst{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:5}.confetti-piece{position:absolute;top:-8%;border-radius:2px;opacity:0;transform:rotate(var(--confetti-rotate, 0deg));animation-name:confetti-fall;animation-timing-function:cubic-bezier(.25,.46,.45,.94);animation-fill-mode:forwards}@keyframes confetti-fall{0%{top:-8%;transform:translate(0) rotate(var(--confetti-rotate, 0deg));opacity:1}80%{top:94%;transform:translate(calc(var(--confetti-drift, 0px) * .8)) rotate(calc(var(--confetti-rotate, 0deg) + 384deg));opacity:1}to{top:118%;transform:translate(var(--confetti-drift, 0px)) rotate(calc(var(--confetti-rotate, 0deg) + 480deg));opacity:0}}.invite-friend-box{background:var(--card-overlay, rgba(255, 255, 255, .16));border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.invite-friend-box strong{font-size:11px;font-weight:700;color:var(--card-on, #fff8f0);text-transform:uppercase;letter-spacing:.3px}.invite-friend-box p{margin:0;font-size:12px;color:var(--card-on-muted, rgba(255, 248, 240, .72));line-height:1.4}.invite-friend-link-row{display:flex;gap:8px}.invite-friend-link-row input{flex:1;min-width:0;border:none;border-radius:8px;padding:8px 10px;font-size:11px;background:#fff8f0;color:#3a2409}.invite-friend-copy-btn{border:none;border-radius:8px;padding:8px 14px;font-size:11px;font-weight:700;background:#fff8f0;color:var(--brand-color, #2a231c);cursor:pointer;white-space:nowrap}.invite-friend-copy-btn:hover{filter:brightness(.98)}.invite-friend-share-btn{border:1px solid var(--card-overlay, rgba(255, 255, 255, .35));border-radius:8px;padding:8px 14px;font-size:11px;font-weight:700;background:transparent;color:var(--card-on, #fff8f0);cursor:pointer}.invite-friend-share-btn:hover{background:var(--card-overlay, rgba(255, 255, 255, .16))}.google-review-incentive-box{background:var(--card-overlay, #f7f1e6);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.google-review-incentive-box.is-done{padding:14px}.google-review-incentive-label,.google-review-incentive-box.is-done p{margin:0;font-size:12px;font-weight:600;color:var(--card-on, #2a231c);line-height:1.4}.google-review-incentive-btn{display:inline-block;padding:10px 18px;border-radius:12px;border:none;background:#fff8f0;color:var(--brand-color, #2a231c);font-size:.85rem;font-weight:700;text-decoration:none;cursor:pointer}.google-review-incentive-btn:hover{filter:brightness(.98)}.google-review-incentive-confirm-btn{border:1px solid var(--card-overlay, #e4dccd);border-radius:12px;padding:9px 16px;font-size:.82rem;font-weight:700;background:transparent;color:var(--card-on, #2a231c);cursor:pointer}.google-review-incentive-confirm-btn:hover{background:var(--card-overlay, rgba(0, 0, 0, .05))}.google-review-incentive-confirm-btn:disabled{opacity:.6;cursor:default}.google-review-incentive-error{margin:0;font-size:11px;color:#c0392b}.back-link{display:inline-flex;align-items:center;gap:6px;color:#555;text-decoration:none;font-size:.88rem;font-weight:600;margin-bottom:16px;align-self:flex-start}.back-link:hover{color:#1a1a1a}.card-page .back-link{color:#a8451e}.card-page .back-link:hover{color:#c8632f}.page-nav-row{width:100%;max-width:420px;display:flex}.reward-ticket{padding:0;overflow:hidden;margin-bottom:20px;border-radius:26px;box-shadow:0 16px 34px -16px #2a231c38}.reward-ticket-ready{min-height:620px;display:flex;flex-direction:column}.reward-ticket-header{flex:none;display:flex;align-items:center;gap:12px;padding:16px 22px;color:var(--card-on, #fff8f0);font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:14px}.reward-ticket-body{flex:1;padding:30px 24px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;font-family:DM Sans,sans-serif}.reward-ticket-body-empty{padding:36px 24px}.reward-ticket-body-qr{padding:0 24px 8px;gap:12px}.reward-ticket-icon{font-size:2.75rem;line-height:1}.reward-ticket-icon-bubble{width:64px;height:64px;border-radius:50%;background:#f3ede4;display:flex;align-items:center;justify-content:center;font-size:28px}.reward-ticket-eyebrow{text-transform:uppercase;letter-spacing:.6px;font-size:11px;color:#a8451e;font-weight:700;margin:0}.reward-ticket-label{font-family:Bricolage Grotesque,sans-serif;font-size:20px;font-weight:800;margin:0;color:#2a231c;line-height:1.3}.reward-ticket-body-empty .reward-ticket-label{font-size:18px}.reward-ticket-divider{position:relative;flex:none;height:0;border-top:2px dashed #e4dccd;margin:0 24px}.reward-ticket-divider:before,.reward-ticket-divider:after{content:"";position:absolute;top:-11px;width:22px;height:22px;border-radius:50%;background:#f3ede4}.reward-ticket-divider:before{left:-11px}.reward-ticket-divider:after{right:-11px}.reward-ticket-instructions{margin:0;color:#8a8073;font-size:12px;line-height:1.4}.qr-wrapper-ticket{border:1px solid #eee5d6}.reward-ticket-review{margin:4px 24px 20px;padding-top:16px;border-top:1px dashed #e4dccd;text-align:center}.reward-ticket-review-message{margin:0 0 10px;color:#8a8073;font-size:12px;line-height:1.4}.reward-ticket-review-btn{display:inline-block;padding:10px 18px;border-radius:12px;border:1px solid #e4dccd;color:#2a231c;font-size:.85rem;font-weight:600;text-decoration:none}.wheel-frame{padding:28px 24px;text-align:center}.wheel-content{align-items:center}.wheel-heading{display:flex;flex-direction:column;gap:2px}.wheel-title{font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:19px;color:var(--card-on, #fff8f0)}.wheel-subtitle{font-family:DM Sans,sans-serif;font-size:12px;color:var(--card-on-muted, rgba(255, 248, 240, .72))}.wheel-outer{position:relative;width:250px;height:250px}.wheel-outer.is-done{opacity:.55}.wheel-pointer{position:absolute;top:-14px;left:50%;transform:translate(-50%);width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:20px solid #fff8f0;z-index:2;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}.wheel-svg{width:100%;height:100%;border-radius:50%;transition:transform 4s cubic-bezier(.17,.67,.16,.99);box-shadow:0 0 0 8px #fff,0 18px 34px -12px #00000059}.wheel-hub{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0003;z-index:2}.pill-btn{display:block;width:100%;border:none;cursor:pointer;padding:15px 20px;border-radius:100px;font-family:DM Sans,sans-serif;font-size:15px;font-weight:700;color:var(--brand-color, #a8451e);background:#fff;text-align:center;text-decoration:none;box-sizing:border-box;box-shadow:0 10px 20px -8px #0000004d;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.pill-btn:hover:not(:disabled){filter:brightness(.97);box-shadow:0 12px 24px -8px #00000059}.pill-btn:active:not(:disabled){transform:scale(.98)}.pill-btn:disabled{opacity:.6;cursor:default;box-shadow:none}.wheel-result-block{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%}.wheel-result-box{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;background:var(--card-overlay, rgba(255, 255, 255, .14));border-radius:18px;padding:16px 18px;width:100%;box-sizing:border-box}.wheel-result-emoji{font-size:30px;line-height:1}.wheel-result-eyebrow{font-family:DM Sans,sans-serif;font-size:11px;font-weight:700;letter-spacing:.6px;color:var(--card-on-muted, rgba(255, 248, 240, .8));text-transform:uppercase}.wheel-result-label{font-family:Bricolage Grotesque,sans-serif;font-size:21px;font-weight:800;color:var(--card-on, #fff8f0);line-height:1.25}.wheel-respin-message{margin:0 0 4px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:700;color:var(--card-on, #fff8f0);text-align:center}
