.guest-app{--g-bg:#fff1de;--g-surface:#fffcf7;--g-text:#1a0e05;--g-text-2:#7a4e30;--g-muted:#9c7a5e;--g-accent:#e64505;--g-accent-2:#ff7200;--g-accent-ink:#fcfcfc;--g-grad:linear-gradient(135deg,#ff7200,#e64505);--g-grad-soft:linear-gradient(135deg,#ffe7cc,#ffd9bd);--g-border:#f0ddc4;--g-radius:22px;--g-radius-sm:14px;--g-shadow:0 10px 34px rgba(230,69,5,.16);--g-shadow-card:0 3px 14px rgba(160,80,20,.08);--g-success:#2c9e5a;min-height:100vh;position:relative;overflow-x:hidden;background-color:var(--g-bg);color:var(--g-text);font-family:var(--font-inter),system-ui,sans-serif;-webkit-tap-highlight-color:transparent}.guest-app:before{background:radial-gradient(ellipse 70% 60% at 20% 30%,rgba(255,114,0,.28),transparent 60%),radial-gradient(ellipse 55% 70% at 80% 68%,rgba(230,69,5,.24),transparent 60%),radial-gradient(ellipse 80% 50% at 50% 12%,rgba(255,190,90,.2),transparent 55%);animation:bg-mesh-drift 10s ease-in-out infinite alternate}.guest-app:after,.guest-app:before{content:"";position:fixed;inset:-25%;pointer-events:none;z-index:0;will-change:transform}.guest-app:after{background:radial-gradient(ellipse 60% 80% at 70% 22%,rgba(255,114,0,.2),transparent 55%),radial-gradient(ellipse 50% 60% at 30% 80%,rgba(230,69,5,.18),transparent 50%);animation:bg-mesh-drift 14s ease-in-out 2s infinite alternate-reverse}@keyframes bg-mesh-drift{0%{transform:translate(0) scale(1)}25%{transform:translate(8%,-6%) scale(1.05)}50%{transform:translate(-5%,10%) scale(1.08)}75%{transform:translate(10%,5%) scale(1.03)}to{transform:translate(-8%,-8%) scale(1.06)}}.guest-app h1,.guest-app h2,.guest-app h3{font-family:var(--font-display),var(--font-inter),system-ui,sans-serif;font-weight:800;letter-spacing:-.02em}.g-card{background:var(--g-surface);border:1px solid var(--g-border);border-radius:var(--g-radius);box-shadow:var(--g-shadow-card),inset 0 1px 0 hsla(0,0%,100%,.9);animation:card-fade .4s ease-out both}@keyframes card-fade{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes card-enter{0%{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.g-loyalty{background:var(--g-grad);color:#fff;border-radius:24px;padding:22px 24px;box-shadow:var(--g-shadow);position:relative;overflow:hidden;animation:card-enter .5s cubic-bezier(.34,1.56,.64,1) both}.g-loyalty:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,hsla(0,0%,100%,.4) 47%,hsla(0,0%,100%,.6) 50%,hsla(0,0%,100%,.4) 53%,transparent 70%);transform:translateX(-140%) skewX(-15deg);animation:loyalty-shimmer 4.5s ease-in-out infinite;pointer-events:none}@keyframes loyalty-shimmer{0%{transform:translateX(-140%) skewX(-15deg)}45%,to{transform:translateX(220%) skewX(-15deg)}}.g-loyalty:before{content:"";position:absolute;right:18px;bottom:14px;width:132px;height:50px;background:url(/bm/wordmark_white.png) no-repeat 100% 100%/contain;opacity:.18;pointer-events:none}.g-loyalty .g-pts{font-size:46px;font-weight:800;line-height:1;letter-spacing:-.03em;position:relative;z-index:1}.g-btn{width:100%;height:52px;border:none;border-radius:var(--g-radius-sm);background:var(--g-accent);color:var(--g-accent-ink);font-family:var(--font-display),var(--font-inter),system-ui,sans-serif;font-size:16px;font-weight:800;cursor:pointer;transition:transform .12s cubic-bezier(.34,1.56,.64,1),opacity .12s ease,box-shadow .12s ease,background .12s ease;box-shadow:0 6px 16px rgba(230,69,5,.3)}.g-btn:active{transform:scale(.96);background:#c93a02}.g-btn:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}.g-btn-ghost{width:100%;background:none;border:none;color:var(--g-muted);font-size:14px;font-weight:600;padding:12px;cursor:pointer}.g-input{width:100%;height:52px;border:1.5px solid var(--g-border);border-radius:var(--g-radius-sm);background:var(--g-surface);padding:0 16px;font-size:16px;color:var(--g-text);outline:none;transition:border-color .15s ease}.g-input:focus{border-color:var(--g-accent)}.g-label{display:block;font-size:13px;font-weight:600;color:var(--g-text-2);margin-bottom:7px}.g-section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g-muted);margin:0 0 10px 4px}.g-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px}.g-row+.g-row{border-top:1px solid var(--g-border)}.g-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700}.g-chip-cash{background:hsla(0,0%,100%,.22);color:#fff}.g-nav{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:448px;display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-radius:24px;box-shadow:0 10px 34px rgba(29,20,16,.16);padding:8px 6px;z-index:50}.g-tab{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0;border-radius:16px;font-size:11px;font-weight:600;color:var(--g-muted);transition:color .15s ease,background .15s ease}.g-tab.active{color:var(--g-accent);background:var(--g-grad-soft)}.g-grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.g-tile{border-radius:18px;padding:16px;min-height:96px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--g-shadow-card)}.g-tile-emoji{font-size:24px}.g-tile-title{font-size:14px;font-weight:700;line-height:1.2}.g-tile-sub{font-size:11px;opacity:.85}.g-qr{background:#fff;border-radius:16px;padding:10px;line-height:0;box-shadow:0 4px 14px rgba(29,20,16,.1)}.g-cat{border-radius:18px;aspect-ratio:1/.82;position:relative;display:flex;align-items:flex-end;padding:14px;box-shadow:var(--g-shadow-card)}.g-cat,.g-cat-label{overflow:hidden;min-width:0}.g-cat-label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;position:relative;z-index:1;font-weight:700;font-size:15px;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.35)}.g-cat-emoji{position:absolute;inset:0;display:grid;place-items:center;font-size:52px;opacity:.92}.g-cat-img{width:100%;height:100%;object-fit:cover;z-index:0}.g-cat-img,.g-cat:before{position:absolute;inset:0}.g-cat:before{content:"";background:linear-gradient(0deg,rgba(0,0,0,.34),transparent 55%);z-index:1}.g-progress{height:8px;border-radius:999px;background:var(--g-border);overflow:hidden;margin-top:10px}.g-progress-fill{height:100%;border-radius:999px;background:var(--g-grad);transition:width .3s ease}.g-alert{border-radius:var(--g-radius-sm);padding:11px 14px;font-size:14px;font-weight:600;text-align:center}.g-alert-error{background:#ffeceb;color:#d83a2c}.g-alert-ok{background:#e7f8ef;color:var(--g-success)}.g-alert-info{background:var(--g-grad-soft);color:var(--g-accent)}.g-cartbar{position:fixed;bottom:86px;left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:448px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--g-grad);color:#fff;font-weight:700;font-size:15px;padding:14px 18px;border-radius:18px;box-shadow:var(--g-shadow);z-index:49}.g-cartbar-count{background:hsla(0,0%,100%,.22);padding:4px 10px;border-radius:999px;font-size:14px}.g-add-btn{flex-shrink:0;width:38px;height:38px;border-radius:12px;background:var(--g-grad);color:#fff;font-size:22px;font-weight:700;line-height:1;box-shadow:var(--g-shadow-card)}.g-add-btn:active{transform:scale(.94)}.g-stepper{display:flex;align-items:center;gap:10px}.g-stepper button{width:32px;height:32px;border-radius:10px;background:var(--g-grad-soft);color:var(--g-accent);font-size:20px;font-weight:700;line-height:1}.g-stepper span{min-width:18px;text-align:center;font-weight:800}.g-seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--g-border);padding:4px;border-radius:14px}.g-seg button{padding:10px 0;border-radius:10px;font-weight:700;font-size:14px;color:var(--g-text-2)}.g-seg button.active{background:#fff;color:var(--g-accent);box-shadow:var(--g-shadow-card)}.g-badge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}.g-badge-wait{background:#fff4e8;color:#d97706}.g-badge-go{background:var(--g-grad-soft);color:var(--g-accent)}.g-badge-ok{background:#eafaf1;color:var(--g-success)}.g-badge-off{background:#f1eae6;color:var(--g-muted)}.bm-wordmark{width:auto;height:52px}.bm-mascot,.bm-wordmark{display:block;margin:0 auto;-webkit-user-select:none;user-select:none}.bm-mascot{width:var(--bm-mascot-size,120px);height:auto;filter:drop-shadow(0 8px 16px rgba(74,38,12,.18));pointer-events:none;transform-origin:bottom center;will-change:transform;animation:mascot-idle 3.4s ease-in-out infinite}@keyframes mascot-idle{0%{transform:translateY(0) scaleY(1) scaleX(1) rotate(0deg)}18%{transform:translateY(-8px) scaleY(1.05) scaleX(.97) rotate(-1.5deg)}36%{transform:translateY(-4px) scaleY(1.02) scaleX(.99) rotate(1deg)}54%{transform:translateY(-9px) scaleY(1.06) scaleX(.96) rotate(-1deg)}72%{transform:translateY(-4px) scaleY(1.02) scaleX(.99) rotate(1.5deg)}90%{transform:translateY(-1px) scaleY(1) scaleX(1) rotate(0deg)}to{transform:translateY(0) scaleY(1) scaleX(1) rotate(0deg)}}.bm-mascot--sm{--bm-mascot-size:72px}.bm-mascot--md{--bm-mascot-size:120px}.bm-mascot--lg{--bm-mascot-size:168px}.bm-slogan{font-family:var(--font-display),var(--font-inter),system-ui,sans-serif;font-weight:800;color:var(--g-accent);letter-spacing:-.01em}@keyframes bm-bounce{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-16px) scale(1.05)}70%{transform:translateY(-6px) scale(.98)}to{transform:translateY(0) scale(1)}}.bm-mascot--enter{animation:bm-bounce .6s cubic-bezier(.34,1.56,.64,1) .15s both,mascot-idle 3.4s ease-in-out .8s infinite}.bm-mascot--wave{transform-origin:38% 90%;animation:mascot-wave 1.5s ease-in-out infinite}@keyframes mascot-wave{0%{transform:rotate(-6deg) translateY(0)}20%{transform:rotate(9deg) translateY(-3px)}40%{transform:rotate(-4deg) translateY(0)}60%{transform:rotate(9deg) translateY(-3px)}80%{transform:rotate(-2deg) translateY(0)}to{transform:rotate(-6deg) translateY(0)}}@keyframes bm-float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes bm-shake{0%,to{transform:translateX(0) rotate(0)}25%{transform:translateX(-4px) rotate(-7deg)}75%{transform:translateX(4px) rotate(7deg)}}.bm-mascot--float{animation:bm-float 3.2s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.bm-mascot,.bm-mascot--enter,.bm-mascot--float,.bm-mascot--wave,.g-loyalty:after,.guest-app:after,.guest-app:before{animation:none}}.g-card{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.g-card:active{transform:translateY(-2px)}