:root{color:#2b211c;background:#f3eee7;font-family:Avenir Next,Segoe UI,sans-serif;font-size:18px}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{border:0;border-radius:16px;background:#4c342d;color:#fff;min-height:56px;padding:12px 16px}button.secondary{background:#efe6dc;color:#2b211c}button:disabled{opacity:.45}.app{max-width:520px;margin:0 auto;padding:20px 16px 40px}.brand{color:#6d5c54;text-align:center;margin:8px 0 0}.guest-entry,.guest-settings{display:grid;gap:16px}.stage{min-height:46dvh;display:flex;align-items:center;justify-content:center}.place{display:grid;justify-items:center;gap:14px;text-align:center}.place-name{margin:0;font-size:22px;line-height:1.2}.place-mark{width:176px;height:176px;border-radius:50%;overflow:hidden;border:3px solid #4c342d;background:#efe6dc;box-shadow:0 10px 24px #4c342d29}.place-mark img{width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block}button.here{min-height:48px;width:auto;padding:10px 18px}.note{margin:0;color:#6d5c54}.guest textarea{width:100%;min-height:112px;border:0;border-radius:16px;padding:12px 16px;background:#fff;color:#2b211c;font:inherit}.transfer-qr{width:220px;height:220px;background:#fff;border-radius:20px;padding:12px;justify-self:center}.guest input{width:100%;min-height:56px;border:0;border-radius:16px;padding:12px 16px;background:#fff;color:#2b211c}h1{font-size:34px;line-height:1.05;margin:0 0 8px}h2{font-size:22px;margin:22px 0 8px}.muted{color:#6d5c54}.stack{display:grid;gap:10px}.card,.order{background:#fff;border-radius:20px;padding:16px}.order strong,.card strong{display:block;margin-bottom:4px}.number{font-size:64px;line-height:1;margin:8px 0}.row{display:flex;gap:8px;flex-wrap:wrap}.choice{background:#fff;color:#2b211c;border:2px solid transparent}.choice.active{border-color:#4c342d}.error{background:#f8e4dc;border-radius:14px;padding:12px}.keypad{display:grid;gap:12px;outline:none}.keypad:focus-visible{outline:3px solid #e56d46;outline-offset:4px;border-radius:20px}.keypad-readout{min-height:72px;margin:0;padding:16px;border-radius:20px;background:#fff;color:#2b211c;font-size:40px;line-height:1;letter-spacing:.14em;text-align:center;font-variant-numeric:tabular-nums;text-wrap:balance}.keypad-readout.is-empty{color:#6d5c54;font-size:22px;letter-spacing:0;line-height:1.2;display:flex;align-items:center;justify-content:center}.keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.keypad-grid button.key{min-height:64px;padding:0;font-size:28px;font-variant-numeric:tabular-nums;transition:transform 80ms ease}.keypad-grid button.key:active:not(:disabled){transform:scale(.98)}.keypad-grid button.key:focus-visible{outline:3px solid #e56d46;outline-offset:3px}.tabs{display:flex;gap:6px;overflow:auto;margin:12px 0}.tabs button{min-height:42px;background:transparent;color:#4c342d}.tabs button.active{background:#4c342d;color:#fff}code{font-size:20px}.guest .profile-header{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:8px 0 10px;background:#f3eee7}.guest .profile-header>*{flex:1 1 140px}.guest .guest-name{display:block}.guest .guest-points{color:#6d5c54;font-size:16px}.guest .store-chip{min-height:42px;background:#fff;color:#2b211c}.guest .lease-state{color:#6d5c54;font-size:14px}.guest .guest-stale{background:#efe6dc;border-radius:14px;padding:12px}.guest .store-gate h2{margin-top:0}.guest .catalog-home{display:grid;gap:18px}.drink-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}.guest h1,.guest h2,.guest h3,.guest .drink-name,.guest .guest-hero strong{text-wrap:balance}.guest .drink-detail p,.guest .guest-hero-price{text-wrap:pretty}.guest .drink-card-price,.guest .drink-card-points,.guest .guest-hero-price,.guest .drink-price,.guest .points-price,.guest .guest-option-price{font-variant-numeric:tabular-nums}.guest button{touch-action:manipulation;transition-property:transform,background-color,border-color,box-shadow,color;transition-duration:.15s;transition-timing-function:ease-out}.guest button:active:not(:disabled){transform:scale(.98)}.guest button:focus-visible{outline:3px solid #e56d46;outline-offset:3px}.guest button.pay{min-height:64px;background:#e56d46;color:#fff}.guest button.choice.active{background:#4c342d;color:#fff;border-color:#4c342d}.guest button.choice.is-needed{border-color:#e56d46}.guest button.option{min-height:58px;display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;background:#efe6dc;color:#2b211c;border:2px solid transparent;text-align:left}.guest button.option.active{background:#4c342d;color:#fff}.guest .guest-option-price{font-size:13px;opacity:.82}.guest .drink-card{display:grid;gap:6px;align-content:start;min-width:0;background:#fff;border-radius:20px;padding:10px}.guest .drink-card img,.guest .drink-detail img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px;background:#efe6dc}.guest .drink-detail img{aspect-ratio:4 / 3;border-radius:20px;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.guest .drink-card h3{font-size:16px;margin:0}.guest .drink-card p,.guest .drink-detail p{margin:0}.guest .drink-card button{width:100%;min-height:58px}.guest .drink-card.is-photo{position:relative;display:block;padding:0;overflow:hidden;border-radius:22px;background:#efe6dc}.guest .drink-card.is-photo img{display:block;border-radius:0;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.guest .drink-card-copy{position:absolute;right:0;bottom:0;left:0;padding:36px 12px 12px;background:linear-gradient(transparent,#2b211cc7);color:#fff;pointer-events:none}.guest .drink-card.is-photo h3,.guest .drink-card.is-photo p{color:#fff}.guest .drink-card-price{font-size:16px;font-weight:600}.guest .drink-card-points{font-size:13px;opacity:.92}.guest button.drink-card-hit{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:100%;padding:0;border-radius:22px;background:transparent;color:transparent}.guest button.guest-hero{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;align-items:center;width:100%;min-height:84px;margin:0 0 12px;padding:8px;border-radius:22px;background:#fff;color:#2b211c;text-align:left}.guest .guest-hero img{width:84px;height:68px;border-radius:14px;object-fit:cover;background:#efe6dc;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.guest .guest-hero small{display:block;color:#6d5c54;font-size:13px}.guest .guest-hero strong{display:block;font-size:18px}.guest .guest-tabs{display:flex;gap:8px}.guest .guest-tabs button{flex:1 1 0}.guest .eyebrow{margin:4px 0 0;color:#6d5c54;font-size:14px}.guest .guest-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.guest .guest-modes button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.guest .guest-loading{display:grid;gap:12px}.guest .guest-skel{height:180px;border-radius:22px;background:linear-gradient(90deg,#d4bba6,#f7f1ea,#d4bba6);background-size:200% 100%;animation:kiosk-shimmer 1.2s ease-in-out infinite}.guest .guest-skel-hero{height:84px}.guest .modifier-badges,.guest .recipe-values{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}.guest .modifier-badges li,.guest .recipe-values li{background:#efe6dc;border-radius:999px;padding:2px 8px;font-size:12px}.guest .drink-card.is-unavailable{opacity:.72}.guest .drink-detail{margin-top:8px}.guest .drink-price{font-size:28px;font-weight:700}.guest .points-price{font-size:16px}.kiosk{height:100dvh;overflow:hidden;background:#f3eee7;color:#2b211c;font-size:20px}.kiosk h1,.kiosk h2,.kiosk h3,.kiosk-card-name{margin:0;text-wrap:balance}.kiosk-quiet,.kiosk-hero p,.kiosk-lines p{text-wrap:pretty}.kiosk-price,.kiosk-total,.kiosk-line-price,.kiosk-amount,.kiosk-ticket,.kiosk-qty span,.kiosk-card-price,.kiosk-option-price,.kiosk-claim-code,.kiosk-profile-points{font-variant-numeric:tabular-nums}.kiosk-large{font-size:24px}.kiosk button{min-height:58px;touch-action:manipulation;transition-property:transform,background-color,border-color,box-shadow,color;transition-duration:.15s;transition-timing-function:ease-out}.kiosk button:active:not(:disabled){transform:scale(.98)}.kiosk button:focus-visible{outline:3px solid #e56d46;outline-offset:3px}.kiosk button.pay,.kiosk button.attract-action{min-height:64px;background:#e56d46;color:#fff}.kiosk button.choice{min-height:64px;background:#fff;color:#2b211c;border:2px solid transparent}.kiosk button.choice.active{border-color:#4c342d;background:#4c342d;color:#fff}.kiosk button.option{min-height:58px;min-width:58px;display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;background:#efe6dc;color:#2b211c;border:2px solid transparent;text-align:left}.kiosk button.option.active{background:#4c342d;color:#fff}.kiosk-option-price{font-size:14px;opacity:.82}.kiosk button.qty{background:#efe6dc;color:#2b211c}.kiosk button.option:disabled,.kiosk button.option.active:disabled{opacity:1;background:#efe6dc;color:#6d5c54}.kiosk-brand{margin:0;color:#4c342d;font-size:32px;font-weight:700;line-height:1;text-wrap:balance}.kiosk-wait,.kiosk-status{min-height:100dvh;display:grid;align-content:center;justify-items:center;gap:16px;padding:48px 24px;text-align:center}.kiosk-wait h1,.kiosk-status h1{font-size:48px;max-width:22ch}.kiosk-wait-inline{min-height:320px}.kiosk-attract{min-height:100dvh;display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(280px,.9fr);align-items:center;gap:40px;padding:48px 64px}.kiosk-attract .kiosk-brand{font-size:84px}.kiosk-attract h1{font-size:42px;color:#6d5c54;font-weight:600}.kiosk-attract-copy{display:grid;justify-items:start;gap:18px}.kiosk-attract .attract-action{min-width:min(100%,460px);font-size:28px;padding:16px 28px}.kiosk-attract-photo,.kiosk-hero-photo,.kiosk-card-photo,.kiosk-dialog-photo,.kiosk-config-photo,.kiosk-line-photo{background:linear-gradient(160deg,#e7d3c4,#c4a090 42%,#4c342d);overflow:hidden}.kiosk-attract-photo{border-radius:36px;min-height:460px}.kiosk-attract-photo img,.kiosk-hero-photo img,.kiosk-card-photo img,.kiosk-dialog-photo img{width:100%;height:100%;object-fit:cover;display:block;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.kiosk-attract-photo img{min-height:460px}.kiosk-shell{display:grid;grid-template-columns:200px minmax(0,1fr) 320px;grid-template-rows:minmax(0,1fr);gap:12px;height:100%;min-height:0;overflow:hidden;padding:12px}.kiosk-rail,.kiosk-cart{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden}.kiosk-rail{height:100%}.kiosk-rail .kiosk-login{margin-top:auto;align-items:flex-start}.kiosk-cart{background:#fff;border-radius:28px;padding:16px;box-shadow:0 10px 28px #4c342d14;height:100%}.kiosk-place{margin:0;color:#6d5c54}.kiosk-categories{display:grid;gap:8px}.kiosk-stage{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain}.kiosk-stage:has(.kiosk-config){display:flex;overflow:hidden}.kiosk-config{flex:1;width:100%;min-width:0;min-height:0;display:flex;flex-direction:column;gap:12px;background:#fff;border-radius:28px;padding:16px;box-shadow:0 10px 28px #4c342d14}.kiosk-config-body{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.1fr);gap:20px;align-items:start}.kiosk-config-photo{border-radius:22px;min-height:320px;overflow:hidden}.kiosk-config-photo img{width:100%;height:100%;min-height:320px;object-fit:cover;display:block}.kiosk-config-fields{display:grid;align-content:start;gap:16px;min-width:0}.kiosk-config-fields h2{margin:0 0 6px;font-size:40px;line-height:1.05;text-wrap:balance}.kiosk-config-fields p{margin:0;text-wrap:pretty}.kiosk-config-actions{display:flex;gap:8px}.kiosk .kiosk-config-actions button.choice{flex:0 0 160px;background:#efe6dc;color:#2b211c}.kiosk-config-actions .pay{flex:1;min-height:64px}.kiosk-hero{display:grid;grid-template-columns:168px minmax(0,1fr);gap:16px;align-items:center;background:#fff;border-radius:28px;padding:12px;margin-bottom:12px;box-shadow:0 10px 28px #4c342d14}.kiosk-hero-photo{border-radius:16px;aspect-ratio:1;max-height:180px}.kiosk-hero-photo img{min-height:0}.kiosk-hero-copy{min-width:0}.kiosk-hero-copy .pay{min-width:180px}.kiosk-hero h2{font-size:32px;margin:0 0 6px}.kiosk-hero p{margin:0}.kiosk-eyebrow{margin:0 0 6px;color:#6d5c54;font-size:14px;letter-spacing:.04em;text-transform:uppercase}.kiosk-price{font-size:28px;margin:8px 0}.kiosk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.kiosk button.kiosk-card{position:relative;display:block;width:100%;min-height:0;padding:0;overflow:hidden;background:#efe6dc;color:#fff;border-radius:22px;text-align:left;box-shadow:0 8px 24px #4c342d14}.kiosk button.kiosk-card:disabled{opacity:1}.kiosk-card-photo{position:relative;display:block;aspect-ratio:1}.kiosk-badge{position:absolute;top:10px;left:10px;padding:4px 8px;border-radius:999px;background:#f3eee7;color:#4c342d;font-size:13px;line-height:1.2}.kiosk-card-copy{position:absolute;right:0;bottom:0;left:0;display:grid;gap:2px;padding:36px 12px 12px;background:linear-gradient(to top,#2b211cd1,#2b211c00)}.kiosk-card-name{font-size:18px;font-weight:650;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kiosk-card-price{font-size:15px}.kiosk-card.is-unavailable .kiosk-card-photo img{filter:grayscale(.55)}.kiosk-card.is-unavailable .kiosk-card-price{color:#f3eee7}.kiosk-card.is-loading{aspect-ratio:1;border-radius:22px;background:linear-gradient(100deg,#e4d3c4 20%,#f7f1ea,#e4d3c4 64%);background-size:200% 100%;animation:kiosk-shimmer 1.2s ease-in-out infinite}.kiosk-rail>button:last-child{margin-top:auto}.kiosk-lines{list-style:none;margin:0;padding:0;display:grid;gap:10px;align-content:start;flex:1 1 auto;min-height:0;overflow:auto}.kiosk-lines li{display:grid;gap:4px}.kiosk-lines li.kiosk-line-card{grid-template-columns:72px minmax(0,1fr);gap:10px;padding:8px;border-radius:18px;background:#f3eee7}.kiosk-line-photo{width:72px;height:72px;border-radius:14px;overflow:hidden}.kiosk-line-photo img{width:100%;height:100%;object-fit:cover;display:block}.kiosk-line-copy{display:grid;gap:2px;min-width:0}.kiosk-line-copy strong{margin:0}.kiosk-line-money{display:flex;justify-content:space-between;gap:8px;margin:0;color:#2b211c;font-variant-numeric:tabular-nums}.kiosk-line-money span:last-child{color:#6d5c54}.kiosk-lines p{margin:0;color:#6d5c54}.kiosk-qty{display:flex;align-items:center;gap:8px}.kiosk-qty button{min-width:58px;width:58px;padding:0}.kiosk-line-price{margin-left:auto}.kiosk-cart>*{min-width:0}.kiosk-checkout{display:grid;gap:10px;margin-top:auto;min-width:0;width:100%}.kiosk-checkout>*{min-width:0}.kiosk-slots{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;min-width:0;max-width:100%;scrollbar-width:none}.kiosk-slots::-webkit-scrollbar{display:none}.kiosk-slots button{flex:0 0 auto;padding:8px 12px;font-size:16px}.kiosk-modes{display:flex;gap:8px;width:100%;min-width:0}.kiosk .kiosk-modes button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:76px}.kiosk-modes.is-needed button:not(.active){border-color:#e56d46}.kiosk-points{min-height:58px;background:#efe6dc;color:#2b211c}.kiosk button.kiosk-points.is-on{background:#4c342d;color:#fff}.kiosk-quiet{margin:0;color:#6d5c54}.kiosk-login{display:grid;justify-items:stretch;gap:8px}.kiosk-login-qr{width:100%;height:auto;aspect-ratio:1;background:#fff;border-radius:16px}.kiosk-profile{display:grid;gap:2px;margin:0}.kiosk-profile-points{color:#6d5c54;font-size:16px}.kiosk-total{margin:0;font-size:36px;line-height:1}.kiosk-cart .pay{margin-top:0;width:100%}.kiosk-claim{display:grid;justify-items:center;gap:4px;margin:0}.kiosk-claim-code{font-size:28px;font-weight:700;letter-spacing:.14em}.kiosk-alert{margin:0;background:#f8e4dc;border-radius:16px;padding:12px 14px}.kiosk-amount{margin:0;font-size:84px;line-height:1}.kiosk-ticket{margin:0;font-size:168px;line-height:.9;font-weight:700}.kiosk-mode{margin:0;font-size:32px}.kiosk-summary{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:22px}.kiosk-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;padding:16px;background:#2b211c73}.kiosk-dialog{width:min(960px,100%);max-height:calc(100dvh - 32px);overflow:hidden;display:flex;flex-direction:column;gap:16px;background:#fff;color:#2b211c;border-radius:32px;padding:16px;box-shadow:0 18px 50px #4c342d2e}.kiosk-dialog-head,.kiosk-dialog-actions{flex:none}.kiosk-dialog-body{display:grid;gap:16px;min-height:0;overflow:auto}.kiosk-dialog-small{width:min(520px,100%)}.kiosk-dialog-head{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;align-items:center}.kiosk-dialog-photo{border-radius:16px;min-height:140px}.kiosk-dialog-photo img{min-height:140px}.kiosk-dialog h2{margin:0 0 8px;font-size:36px}.kiosk-options{display:flex;flex-wrap:wrap;gap:8px}.kiosk-dialog-actions{display:flex;gap:8px}.kiosk-dialog-actions button{flex:1}.kiosk .kiosk-dialog-actions button.choice{background:#efe6dc}.kiosk-large .kiosk-attract .kiosk-brand{font-size:96px}.kiosk-large .kiosk-ticket{font-size:188px}.terminal{min-height:100dvh;display:grid;align-content:center;justify-items:center;gap:18px;padding:48px 24px;text-align:center;background:#1c1614;color:#f3eee7}.terminal button{min-height:64px;min-width:min(100%,360px);padding:16px 28px;background:#e56d46;color:#fff;font-size:28px;touch-action:manipulation}.terminal-brand{margin:0;color:#d9cdc4;font-size:28px}.terminal h1{margin:0;font-size:64px;max-width:14ch}.terminal-amount{margin:0;font-size:108px;line-height:.95}.terminal-approved{color:#f3eee7}.terminal-declined{color:#f0b2a2}@keyframes kiosk-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.kiosk button,.guest button,.keypad-grid button.key{transition-property:none}.kiosk button:active,.guest button:active,.keypad-grid button.key:active{transform:none}.kiosk-card.is-loading,.guest .guest-skel{animation:none}}@media(max-width:1100px){.kiosk-shell{grid-template-columns:168px minmax(0,1fr) 286px;gap:10px;padding:10px}.kiosk-config-body{grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);gap:12px}.kiosk-config-fields h2{font-size:32px}.kiosk-hero{grid-template-columns:132px minmax(0,1fr)}.kiosk-hero h2,.kiosk-brand{font-size:26px}}@media(max-width:900px){.kiosk-attract,.kiosk-hero,.kiosk-dialog-head{grid-template-columns:1fr}.kiosk-attract{padding:24px}}
