@font-face{font-family:Dreaming Outloud;src:url(/fonts/My%20Creative%20Land%20-%20Dreaming%20Outloud%20Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Dreaming Outloud;src:url(/fonts/My%20Creative%20Land%20-%20Dreaming%20Outloud%20Slanted.otf)format("opentype");font-weight:400;font-style:italic;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f0e8;--ink:#1a1a1a;--title-ink:#3b2a1a;--coffee:#c8854a;--sage:#8baf8e;--white:#fdfaf5;--blush:#efd0d0;--font-title:"Dreaming Outloud", "Baloo 2", sans-serif;--font-display:"Dreaming Outloud", "Baloo 2", sans-serif;--font-body:"Dreaming Outloud", "Baloo 2", sans-serif}html,body{height:100%}body{background-color:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");margin:0;overflow-x:hidden}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}.app{width:100%;min-height:100vh}.font-display{font-family:var(--font-display)}.font-body{font-family:var(--font-body)}@keyframes steamRise1{0%{opacity:.6;transform:translateY(0)translate(0)scaleX(1)}50%{opacity:.3;transform:translateY(-18px)translate(3px)scaleX(1.3)}to{opacity:0;transform:translateY(-36px)translate(1px)scaleX(.8)}}@keyframes steamRise2{0%{opacity:.5;transform:translateY(0)translate(0)scaleX(1)}50%{opacity:.25;transform:translateY(-22px)translate(-3px)scaleX(1.2)}to{opacity:0;transform:translateY(-42px)translate(-2px)scaleX(.9)}}@keyframes steamRise3{0%{opacity:.4;transform:translateY(0)scaleX(1)}50%{opacity:.2;transform:translateY(-15px)translate(2px)scaleX(1.4)}to{opacity:0;transform:translateY(-30px)translate(3px)scaleX(.7)}}@keyframes flagWave{0%,to{transform-origin:0 100%;transform:rotate(-4deg)}50%{transform-origin:0 100%;transform:rotate(4deg)}}@keyframes wiggleItem{0%,to{transform:rotate(0)}25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}}@keyframes drawCircle{0%{stroke-dashoffset:360px}to{stroke-dashoffset:0}}@keyframes drawPath{0%{stroke-dashoffset:1200px}to{stroke-dashoffset:0}}@keyframes slideInUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes receiptSlide{0%{opacity:0;transform:translateY(-60px)rotate(-1deg)}60%{opacity:1;transform:translateY(6px)rotate(.3deg)}to{opacity:1;transform:translateY(0)rotate(0)}}@keyframes stampIn{0%{opacity:0;transform:scale(1.4)rotate(-8deg)}60%{opacity:1;transform:scale(.95)rotate(1deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes confettiFall{0%{opacity:1;transform:translateY(-10px)rotate(0)scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(110vh)rotate(720deg)scale(.8)}}@keyframes pulseSteam{0%,to{opacity:.5;transform:scaleY(1)}50%{opacity:.2;transform:scaleY(1.3)}}@keyframes peekUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes chalkFadeIn{0%{opacity:0;letter-spacing:2px}to{opacity:1;letter-spacing:0}}@keyframes celebrationDraw{0%{stroke-dashoffset:1200px;opacity:1}to{stroke-dashoffset:0;opacity:1}}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)rotate(0)}50%{opacity:1;transform:scale(1)rotate(180deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes truckIdle{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.landing{cursor:default;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px 20px 32px;animation:.6s both fadeIn;display:flex}.landing-title{font-family:var(--font-title);color:var(--title-ink);text-align:center;letter-spacing:.02em;margin-bottom:10px;font-size:clamp(52px,10vw,96px);font-weight:700;line-height:1;animation:.7s .1s both slideInDown}.landing-subtitle{font-family:var(--font-title);color:var(--title-ink);opacity:.55;letter-spacing:.01em;text-transform:lowercase;text-align:center;margin-bottom:12px;font-size:clamp(14px,2.2vw,18px);font-weight:400;animation:.7s .3s both fadeIn}.truck-wrapper{cursor:pointer;width:100%;max-width:360px;transition:transform .3s;position:relative}.truck-wrapper:hover{transform:scale(1.02)}.truck-wrapper svg{width:100%;height:auto;max-height:min(44vh,400px);display:block}.steam-group,.steam-group-2,.steam-group-3{display:none}.flag-anim{transform-origin:405px 135px;animation:2s ease-in-out infinite flagWave}.barista-peek{transition:transform .35s cubic-bezier(.34,1.56,.64,1);overflow:hidden;transform:translateY(100%)}.truck-wrapper:hover .barista-peek{transform:translateY(0)}.cta-label{font-family:var(--font-title);color:var(--title-ink);text-align:center;background:var(--blush);cursor:pointer;letter-spacing:.02em;border:none;border-radius:58% 42% 52% 48%/44% 56%;margin-top:12px;padding:13px 48px;font-size:clamp(17px,2.4vw,22px);font-weight:500;transition:transform .25s cubic-bezier(.34,1.56,.64,1),background .2s,border-radius .4s;animation:.7s .6s both fadeIn;display:inline-block}.cta-label:hover{background:#e4b8b8;border-radius:48% 52% 46% 54%/52% 44% 56% 48%;transform:scale(1.06)rotate(-.8deg)}.menu-screen{flex-direction:column;align-items:center;min-height:100vh;padding:40px 20px 130px;animation:.5s both fadeIn;display:flex;position:relative}.menu-home-btn{background:var(--blush);width:42px;height:42px;color:var(--title-ink);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .18s,transform .25s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;top:20px;right:24px}.menu-home-btn:hover{background:#e4b8b8;transform:scale(1.12)}.menu-header{text-align:center;margin-bottom:28px;animation:.5s .1s both slideInDown}.menu-title{font-family:var(--font-title);color:var(--title-ink);font-size:clamp(42px,7vw,68px);font-weight:700;line-height:1}.menu-tagline{font-family:var(--font-display);color:var(--title-ink);opacity:.6;margin-top:6px;font-size:clamp(16px,2.2vw,20px)}.menu-divider{display:none}.menu-sections{grid-template-columns:1fr 1fr;align-items:start;gap:20px;width:100%;max-width:880px;animation:.5s .2s both slideInUp;display:grid}@media (width<=640px){.menu-sections{grid-template-columns:1fr;gap:20px}}.menu-card{background:var(--white);border:2px solid var(--title-ink);border-radius:16px;overflow:hidden}.menu-card-header{padding:20px 20px 14px}.menu-section-title{font-family:var(--font-title);color:var(--title-ink);font-size:32px;font-weight:700;line-height:1}.menu-section-sub{font-family:var(--font-display);color:var(--title-ink);opacity:.6;margin-top:4px;font-size:15px}.menu-card-divider{background:var(--coffee);opacity:.5;height:1.5px}.menu-items-list{flex-direction:column;display:flex}.menu-item{cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-bottom:1px solid #c8854a47;align-items:center;gap:12px;padding:12px 20px;transition:background .15s;display:flex}.menu-item:last-child{border-bottom:none}.menu-item:hover{background:#c8854a12}.menu-item.selected{background:#fef8f0}.menu-item-icon{flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.menu-item-icon img{object-fit:contain;width:68px;height:68px}.menu-item-info{flex:1;min-width:0}.menu-item-name{font-family:var(--font-title);color:var(--title-ink);font-size:20px;font-weight:600;line-height:1.2}.menu-item-detail{font-family:var(--font-display);color:var(--title-ink);opacity:.55;margin-top:2px;font-size:13px}.menu-item-time{font-family:var(--font-title);color:var(--title-ink);white-space:nowrap;margin-right:8px;font-size:20px;font-weight:600}.select-btn{background:var(--blush);width:34px;height:34px;color:var(--title-ink);font-family:var(--font-body);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0 0 2px;font-size:22px;font-weight:400;line-height:1;transition:background .18s,transform .18s,color .18s;display:flex}.select-btn:hover{background:#e4b8b8;transform:scale(1.1)}.select-btn.selected{background:var(--coffee);color:var(--white);font-size:18px}.preview-btn{background:var(--blush);width:34px;height:34px;color:var(--title-ink);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .18s,color .18s,transform .18s;display:flex}.preview-btn:hover:not(:disabled){background:#e4b8b8;transform:scale(1.1)}.preview-btn.previewing{background:var(--coffee);color:var(--white);animation:1.2s ease-in-out infinite pulse}.preview-btn:disabled{opacity:.25;cursor:default}.order-bar{background:var(--white);z-index:100;border-top:1.5px solid #3b2a1a33;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px 18px;animation:.4s both slideInUp;display:flex;position:fixed;bottom:0;left:0;right:0}.order-summary{font-family:var(--font-display);color:var(--title-ink);flex:1;min-width:0;font-size:18px}.order-summary-highlight{color:var(--coffee)}.order-btn{font-family:var(--font-display);color:var(--title-ink);background:var(--blush);cursor:pointer;white-space:nowrap;border:none;border-radius:58% 42% 52% 48%/44% 56%;flex-shrink:0;padding:11px 32px;font-size:18px;font-weight:600;transition:background .2s,transform .25s cubic-bezier(.34,1.56,.64,1),border-radius .4s}.order-btn:hover:not(:disabled){background:#e4b8b8;border-radius:48% 52% 46% 54%/52% 44% 56% 48%;transform:scale(1.06)rotate(-.8deg)}.order-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.timer-screen{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;animation:.4s both fadeIn;display:flex}.receipt-card{background:var(--white);border:1.5px solid var(--ink);width:100%;max-width:340px;font-family:var(--font-body);padding:24px 32px;animation:.6s cubic-bezier(.34,1.56,.64,1) both receiptSlide;position:relative}.receipt-card:before{content:"";background:repeating-linear-gradient(90deg, var(--white) 0px, var(--white) 8px, transparent 8px, transparent 14px);height:8px;position:absolute;top:-8px;left:0;right:0}.receipt-header{text-align:center;font-family:var(--font-body);letter-spacing:3px;text-transform:uppercase;opacity:.6;margin-bottom:12px;font-size:11px}.receipt-divider{font-family:var(--font-body);color:var(--ink);opacity:.3;text-align:center;letter-spacing:1px;margin:8px 0;font-size:10px;overflow:hidden}.receipt-title{font-family:var(--font-display);text-align:center;letter-spacing:4px;color:var(--ink);white-space:nowrap;font-size:28px;font-weight:700}.receipt-drink{justify-content:space-between;align-items:baseline;margin:8px 0;font-size:13px;display:flex}.receipt-drink-name{font-weight:700}.receipt-drink-time{color:var(--coffee);font-size:15px;font-weight:700}.receipt-snack{color:var(--ink);opacity:.65;margin:2px 0 8px;font-size:12px}.receipt-thanks{text-align:center;opacity:.5;margin-top:8px;font-size:12px;font-style:italic}.timer-display{text-align:center;margin-top:36px;animation:.5s .5s both scaleIn}.timer-digits{font-family:var(--font-display);color:var(--ink);letter-spacing:4px;font-size:clamp(80px,20vw,140px);font-weight:700;line-height:1;transition:color .3s}.timer-digits.paused{color:var(--coffee);opacity:.7}.timer-digits.almost-done{color:var(--coffee)}.timer-zzz{font-family:var(--font-display);color:var(--sage);margin-top:4px;font-size:28px;animation:1.5s ease-in-out infinite bounce}.steam-puff{pointer-events:none;background:radial-gradient(circle,#c8854a4d 0%,#0000 70%);border-radius:50%;width:60px;height:60px;animation:.8s ease-out forwards sparkle;position:absolute}.timer-controls{align-items:center;gap:20px;margin-top:28px;animation:.5s .8s both fadeIn;display:flex}.ctrl-btn{border:2px solid var(--ink);background:var(--white);cursor:pointer;width:48px;height:48px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;transition:background .2s,transform .15s;display:flex}.ctrl-btn:hover{background:var(--ink);color:var(--white);transform:scale(1.1)}.ctrl-btn svg{width:20px;height:20px}.ctrl-btn.muted{opacity:.45}.completion-screen{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:60px 20px 40px;animation:.4s both fadeIn;display:flex;position:relative;overflow:hidden}.completion-illustration{display:none}.completion-illustration svg{width:100%;height:auto}.completion-banner{font-family:var(--font-display);color:var(--title-ink);text-align:center;margin:0 0 28px;font-size:clamp(48px,9vw,80px);font-weight:700;animation:.5s cubic-bezier(.34,1.56,.64,1) .3s both stampIn}.completion-order{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:48px;margin:0 0 48px;animation:.6s .6s both fadeIn;display:flex}.completion-order-item{flex-direction:column;align-items:center;gap:14px;animation:.5s both slideInUp;display:flex}.completion-order-item:nth-child(2){animation-delay:.15s}.completion-order-item img{object-fit:contain;filter:drop-shadow(0 8px 16px #3b2a1a1f);width:140px;height:140px}.completion-order-name{font-family:var(--font-title);color:var(--title-ink);opacity:.8;text-align:center;font-size:22px}.completion-actions{gap:16px;animation:.5s 1s both slideInUp;display:flex}.btn-primary{font-family:var(--font-display);color:var(--title-ink);background:var(--blush);cursor:pointer;border:none;border-radius:58% 42% 52% 48%/44% 56%;padding:13px 40px;font-size:20px;font-weight:600;transition:transform .25s cubic-bezier(.34,1.56,.64,1),background .2s,border-radius .4s}.btn-primary:hover{background:#e4b8b8;border-radius:48% 52% 46% 54%/52% 44% 56% 48%;transform:scale(1.06)rotate(-.8deg)}.btn-secondary{font-family:var(--font-display);color:var(--title-ink);cursor:pointer;background:#e8ddd5;border:none;border-radius:42% 58% 48% 52%/56% 44%;padding:13px 36px;font-size:20px;font-weight:600;transition:transform .25s cubic-bezier(.34,1.56,.64,1),background .2s,border-radius .4s}.btn-secondary:hover{background:#d5c9bf;border-radius:52% 48% 54% 46%/44% 56%;transform:scale(1.06)rotate(.8deg)}.confetti-container{pointer-events:none;z-index:50;position:fixed;inset:0}.confetti-bean{border-radius:50%/60% 60% 40% 40%;width:8px;height:12px;animation:linear forwards confettiFall;position:absolute}.celebrate-path{stroke-dasharray:1200;stroke-dashoffset:1200px;animation:1.2s ease-out forwards celebrationDraw}.celebrate-path-2{stroke-dasharray:900;stroke-dashoffset:900px;animation:1s ease-out .2s forwards celebrationDraw}.celebrate-path-3{stroke-dasharray:700;stroke-dashoffset:700px;animation:.9s ease-out .4s forwards celebrationDraw}.visually-hidden{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}
