:root {
  --blue:#004ebe; --deep:#003d95; --sky:#c0edff; --lime:#b6d000; --mango:#f1c155; --pink:#dd60a2; --lavender:#7e88f3;
  --ink:#171717; --muted:#595959;
  --paper:#f5faff; --line:#d4e2ed; --silver:#e8f6ff; --shell:clamp(1.25rem,5vw,5rem);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:8rem}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Nagel VF","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased}
body.dialog-open{overflow:hidden}
a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,label{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;color:inherit}img{display:block;max-width:100%}p,h1,h2,h3,h4,figure{margin:0}
a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:3px;box-shadow:0 0 0 3px white}
input:focus-visible+span{outline:3px solid var(--blue);outline-offset:3px}
.skip-link{position:fixed;z-index:100;top:.75rem;left:1rem;padding:.8rem 1.2rem;background:white;color:var(--blue);transform:translateY(-160%)}
.skip-link:focus{transform:none}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:white;color:var(--ink);padding:0 var(--shell);position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line)}
.brand{flex-shrink:0;display:block;padding:1.4rem 1.2rem;margin-left:-1.2rem}.brand img{width:9.5rem;height:auto}
.site-nav{display:flex;flex-wrap:wrap;gap:1.6rem;font-size:.9375rem}.site-nav a{padding:.6rem 0}
.site-nav a:hover{box-shadow:inset 0 -2px var(--blue)}
.header-play{display:flex;gap:1.3rem;align-items:center;padding:.65rem 1.05rem;border:1px solid var(--blue);background:var(--blue);color:white;border-radius:3rem;font-size:.875rem;white-space:nowrap}
.header-play:hover{background:var(--deep);border-color:var(--deep)}.header-play span{font-size:1.25rem}
.preview-note{padding:.55rem var(--shell);background:var(--sky);font-size:.8125rem;color:var(--blue);display:flex;justify-content:center;flex-wrap:wrap;gap:.3rem .8rem;line-height:1.6}
.preview-note span{font-weight:750;letter-spacing:.08em;font-size:.75rem}
.eyebrow{font-size:.8125rem;font-weight:700;letter-spacing:.09em;line-height:1.6}
.hero{position:relative;isolation:isolate;background:var(--blue);color:white;display:grid;grid-template-columns:1fr 1fr;gap:2rem 5%;padding:3.5rem var(--shell) 1.5rem;overflow:hidden}
.hero::before{content:"";pointer-events:none;position:absolute;z-index:-1;width:56vw;height:56vw;border:1px solid #ffffff15;border-radius:50%;left:-35vw;top:5rem}
.hero-copy{padding:1rem 0 2rem;align-self:center}
.hero-copy>.eyebrow{display:flex;align-items:center;gap:.8rem;color:var(--sky)}.cross{font-size:1.7rem;font-weight:300}
.hero h1{font-size:clamp(3.5rem,7.6vw,7.6rem);font-weight:700;letter-spacing:-.065em;line-height:1.02;margin:1.45rem 0 1.5rem}
.hero h1>span{display:block}.hero h1>.hero-accent{color:var(--sky)}
.hero-lead{color:var(--sky);font-size:1.0625rem;line-height:1.6;max-width:27rem}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-height:3.3rem;padding:.9rem 1.4rem;border-radius:4rem;font-weight:650;font-size:.9375rem;transition:transform 180ms,background 180ms;border:1px solid transparent}
.button span{font-weight:400;font-size:1.2rem}.button:hover{transform:translateY(-3px)}
.button-white{background:white;color:var(--blue)}.button-blue{background:var(--blue);color:white}
.hero-copy>.button{margin-top:1.75rem;min-width:14.5rem}
.drink-lab{--lab-surface:#e7eaf1;color:var(--ink);background:var(--lab-surface);border:1px solid #fff;box-shadow:0 24px 70px #00002b30,inset 0 0 0 7px #ffffff32;border-radius:2rem 2rem 4rem 2rem;position:relative;max-width:38rem;width:100%;justify-self:center;align-self:center;overflow:hidden}
.lab-top{display:flex;justify-content:space-between;padding:1.2rem 1.5rem;font-family:Consolas,monospace;font-size:.75rem;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid #8088a126}
/* Paint the backdrop inside the isolated stage. Otherwise multiply sees
   transparency and the photograph's white rectangle moves with the cup. */
.lab-stage{height:clamp(20rem,31vw,31rem);position:relative;isolation:isolate;background:var(--lab-surface);overflow:hidden}
.hero-cup{position:absolute;inset:var(--hero-inset,0);z-index:2;mix-blend-mode:multiply;pointer-events:none}
.hero-drink{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:perspective(900px) rotateX(var(--hero-rx,0deg)) rotateY(var(--hero-ry,0deg));transition:transform 250ms ease-out,opacity 180ms;pointer-events:none}
.drink-lab{--flavour-glow:var(--lavender);--hero-sway:-2deg;--hero-counter:2deg;--hero-time:6s}
.drink-lab[data-flavour="strawberry"]{--flavour-glow:var(--pink);--hero-sway:-3deg;--hero-counter:1deg}
.drink-lab[data-flavour="mango-cream"]{--flavour-glow:var(--mango);--hero-sway:2deg;--hero-counter:-2deg;--hero-time:6.8s}
.drink-lab[data-flavour="oreo"]{--flavour-glow:var(--lavender);--hero-sway:-1deg;--hero-counter:2deg;--hero-time:7.2s}
.drink-lab[data-flavour="tropical-mix"]{--flavour-glow:var(--mango);--hero-sway:2deg;--hero-counter:-2deg;--hero-time:6.8s;--hero-inset:4.25%}
.drink-lab[data-flavour="coconut-cloud"]{--flavour-glow:var(--sky);--hero-sway:-1deg;--hero-counter:2deg;--hero-time:7.2s}
.lab-stage::before{content:"";position:absolute;inset:12% 9%;border-radius:50%;background:radial-gradient(ellipse,var(--flavour-glow),transparent 68%);opacity:.42;transition:background 400ms;pointer-events:none}
.lab-stage::after{content:"";position:absolute;left:32%;bottom:3%;width:36%;height:5%;border-radius:50%;background:radial-gradient(ellipse,#47517f40,transparent 70%);pointer-events:none}
.hero-loading .hero-drink{opacity:0}
@media(prefers-reduced-motion:no-preference){
 .hero-motion .hero-cup{animation:hero-levitate var(--hero-time) ease-in-out infinite;animation-play-state:paused}
 .hero-motion .orbit-one{animation:hero-orbit-one 18s linear infinite;animation-play-state:paused}
 .hero-motion .orbit-two{animation:hero-orbit-two 23s linear infinite;animation-play-state:paused}
 .hero-motion .lab-stage::before{animation:hero-aura var(--hero-time) ease-in-out infinite;animation-play-state:paused}
 .hero-motion .lab-stage::after{animation:hero-shadow var(--hero-time) ease-in-out infinite;animation-play-state:paused}
 .hero-running .hero-cup,.hero-running .lab-orbit,.hero-running .lab-stage::before,.hero-running .lab-stage::after{animation-play-state:running}
 .dialog-open .hero-cup,.dialog-open .lab-orbit,.dialog-open .lab-stage::before,.dialog-open .lab-stage::after{animation-play-state:paused}
}
@keyframes hero-levitate{0%,100%{transform:translate3d(0,4px,0) rotate(var(--hero-sway)) scale(.96)}50%{transform:translate3d(0,-9px,0) rotate(var(--hero-counter)) scale(.98)}}
@keyframes hero-orbit-one{from{transform:rotate(-24deg)}to{transform:rotate(336deg)}}
@keyframes hero-orbit-two{from{transform:rotate(28deg)}to{transform:rotate(-332deg)}}
@keyframes hero-aura{0%,100%{transform:scale(.92);opacity:.3}50%{transform:scale(1.08);opacity:.55}}
@keyframes hero-shadow{0%,100%{transform:scaleX(1);opacity:.8}50%{transform:scaleX(.78);opacity:.45}}
.lab-orbit{position:absolute;border:1px solid #9ca7c462;border-radius:50%;left:9%;top:16%;width:82%;height:70%;transform:rotate(-24deg);z-index:1}
.orbit-two{width:76%;height:43%;top:29%;left:12%;transform:rotate(28deg)}
.lab-label{position:absolute;left:1rem;top:40%;writing-mode:vertical-rl;font:.75rem Consolas,monospace;letter-spacing:.17em;color:var(--blue)}
.lab-product{display:flex;align-items:center;justify-content:space-between;margin:0 1.5rem;padding:1.1rem 0 1rem;border-top:1px solid #9aa3b747;gap:1rem}
.lab-product p{font:.75rem Consolas,monospace;letter-spacing:.09em;color:var(--muted)}
.lab-product h2{font-size:clamp(1.6rem,2.3vw,2.4rem);line-height:1.2;letter-spacing:-.04em;margin-top:.2rem}
.round-button{border:1px solid #283267;background:transparent;width:3rem;height:3rem;flex-shrink:0;border-radius:50%;font-size:1.5rem}
.round-button:hover{background:var(--blue);color:white}
.lab-product{margin-bottom:1rem}
.lab-product>div{min-width:0}.lab-product h2{overflow-wrap:anywhere;min-height:2.4em}
.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:1rem;border-top:1px solid #ffffff35;padding-top:1.3rem;margin-top:1.5rem;font-size:.8125rem;letter-spacing:.045em;color:#e0e5ff}
.hero-bottom>a{letter-spacing:0}.hero-bottom>a span{margin-left:1rem}
.section-shell{padding:5.5rem var(--shell)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2.5rem}
.section-heading :is(h1,h2){font-size:clamp(2.35rem,4.25vw,4.4rem);line-height:1.08;letter-spacing:-.055em;margin-top:1.1rem;font-weight:650}
.section-heading :is(h1,h2) span{color:var(--blue)}
.section-heading>p{font-size:1rem;color:var(--muted);max-width:25rem;line-height:1.7}
.menu-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1rem 0;margin-bottom:1.75rem;font-size:.875rem}
.menu-toolbar>p:first-child{font:.8125rem Consolas,monospace;letter-spacing:.04em}
.menu-toolbar>p:first-child span{color:var(--muted);margin-left:.5rem}
.menu-toolbar>p:last-child{display:flex;align-items:center;gap:.8rem}
.menu-toolbar strong{border-radius:1.2rem;background:var(--blue);color:white;padding:.35rem .75rem;font-size:.875rem}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.7rem 1.5rem}
.product-card{min-width:0}
/* Labels have their own rows; only the empty photo background is cropped. */
.product-image{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:minmax(1.5rem,auto) minmax(0,1fr) minmax(2.4rem,auto);gap:.45rem .6rem;position:relative;border:1px solid var(--line);border-radius:1.2rem;overflow:hidden;width:100%;height:clamp(19rem,29vw,29rem);padding:1.1rem;background:white;isolation:isolate;text-align:left;transition:border-color 250ms,box-shadow 350ms}
.product-photo{grid-area:2/1/3/-1;position:relative;min-width:0;min-height:0;overflow:hidden;display:block;isolation:isolate}
.product-photo>img{position:absolute;z-index:1;left:50%;top:50%;height:var(--cup-photo-height,100%);width:auto;max-width:none;transform:translate(-50%,-50%);transition:transform 420ms cubic-bezier(.2,.7,.2,1);mix-blend-mode:multiply;pointer-events:none}
.product-photo::before,.product-photo::after{content:"";position:absolute;pointer-events:none;opacity:0}
.product-photo::before{inset:0;z-index:0;background:radial-gradient(ellipse at var(--cup-light-x,50%) var(--cup-light-y,45%),#c0edffbc 0%,#c0edff55 35%,transparent 72%);transition:opacity 350ms}
.product-photo::after{inset:-15% -65%;z-index:2;background:linear-gradient(112deg,transparent 39%,#ffffff00 44%,#ffffffa8 49%,#ffffff40 53%,transparent 60%)}
.product-image:hover,.product-image:focus-visible{border-color:var(--blue)}
.product-image:focus-visible{box-shadow:0 0 0 5px #004ebe12}
.product-code,.product-type{font:.75rem/1.4 Consolas,monospace;letter-spacing:.035em;color:#5b637a;min-width:0;overflow-wrap:anywhere}
.product-code{grid-area:1/1/2/-1;align-self:center}.product-type{grid-area:3/1;align-self:center}
/* Its source cup fills 90% of the image; the other catalog cups fill about 82%. */
[data-catalog-id="tropical-mix"] .product-photo{--cup-photo-height:91.5%}
.product-plus{grid-area:3/2;align-self:center;justify-self:end;border:1px solid var(--line);background:#fff;width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;font-size:1.5rem;line-height:1;transition:background 250ms,color 250ms,border-color 250ms,transform 350ms}
.product-image:focus-visible .product-plus{background:var(--blue);color:white;border-color:var(--blue)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .product-image.cup-hovering{border-color:var(--blue);box-shadow:0 16px 36px -16px #004ebe30,inset 0 0 0 1px #004ebe18}
  .cup-hovering .product-photo::before{opacity:1}
  .cup-hovering .product-photo::after{animation:cup-reflection 850ms ease-out both}
  .cup-hovering .product-photo>img{will-change:transform;transform:translate(calc(-50% + var(--cup-dx,0px)),calc(-50% - 3px + var(--cup-dy,0px))) perspective(900px) rotateX(var(--cup-rx,0deg)) rotateY(var(--cup-ry,0deg)) rotateZ(var(--cup-rz,0deg)) scale(1.04);transition-duration:180ms}
  .cup-hovering .product-plus{background:var(--blue);color:white;border-color:var(--blue);transform:rotate(90deg) scale(1.06)}
}
@keyframes cup-reflection{0%{transform:translateX(-55%);opacity:0}20%{opacity:.8}80%{opacity:.55}100%{transform:translateX(55%);opacity:0}}
@media(hover:none) and (prefers-reduced-motion:no-preference),(pointer:coarse) and (prefers-reduced-motion:no-preference){
  .product-card:nth-child(even) .cup-reveal{--cup-reveal-delay:90ms}
  .product-image.cup-reveal{animation:cup-mobile-frame 1300ms ease-out var(--cup-reveal-delay,0ms) both}
  .cup-reveal .product-photo>img{will-change:transform;animation:cup-mobile-pop 1300ms cubic-bezier(.2,.7,.2,1) var(--cup-reveal-delay,0ms) both}
  .cup-reveal .product-photo::before{animation:cup-mobile-halo 1300ms ease-out var(--cup-reveal-delay,0ms) both}
  .cup-reveal .product-photo::after{animation:cup-reflection 950ms ease-out calc(var(--cup-reveal-delay,0ms) + 130ms) both}
  .cup-reveal .product-plus{animation:cup-mobile-plus 1300ms ease-out var(--cup-reveal-delay,0ms) both}
}
@keyframes cup-mobile-pop{0%,100%{transform:translate(-50%,-50%) rotate(0) scale(1)}32%{transform:translate(-50%,calc(-50% - 4px)) rotate(-2deg) scale(1.045)}65%{transform:translate(-50%,calc(-50% - 2px)) rotate(1.5deg) scale(1.025)}}
@keyframes cup-mobile-halo{0%,100%{opacity:0}30%{opacity:1}70%{opacity:.65}}
@keyframes cup-mobile-frame{0%,100%{border-color:var(--line);box-shadow:none}30%,65%{border-color:var(--blue);box-shadow:inset 0 0 0 1px #004ebe18}}
@keyframes cup-mobile-plus{0%,100%{background:white;color:var(--ink);border-color:var(--line);transform:rotate(0) scale(1)}35%,65%{background:var(--blue);color:white;border-color:var(--blue);transform:rotate(90deg) scale(1.06)}}
.product-info{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem .15rem 0}
.product-info h3{font-size:1.3rem;letter-spacing:-.035em;font-weight:650}
.product-info div>p{font-size:.875rem;color:var(--muted);margin-top:.3rem}
.price{font-size:1.4rem;line-height:1.2;font-weight:650;text-align:right;flex-shrink:0}
.price>span{display:block;font-size:.75rem;font-weight:400;color:var(--muted);margin-top:.3rem}
.menu-note{margin-top:2rem;font-size:.8125rem;color:var(--muted);max-width:58rem}
.manifesto{background:#e9edf6;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:3rem;padding-bottom:3rem}
.manifesto>div{display:grid;grid-template-columns:1fr 1fr;gap:5%;align-items:center;margin-top:1.5rem}
.manifesto h2{font-size:clamp(2rem,3.2vw,3.5rem);line-height:1.1;letter-spacing:-.045em}
.manifesto p:not(.eyebrow){max-width:31rem;line-height:1.8;color:var(--muted)}
.benefit-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.benefit-card{padding:2.2rem;border-radius:1.5rem;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start}
.loyalty{background:var(--blue);color:white;border:1px solid var(--blue)}
.loyalty-formula{display:flex;gap:1.5rem;align-items:center;font-size:clamp(6rem,12vw,12rem);line-height:1.2;font-weight:700;letter-spacing:-.07em;min-height:13rem;padding:.5rem 0}
.loyalty-formula i{font-size:.4em;font-style:normal;font-weight:300;color:#b9c4fc}
.silver-text{background:linear-gradient(125deg,#fff 20%,#b3bfd8 46%,#fff 52%,#c2ccd9 80%);background-clip:text;-webkit-background-clip:text;color:transparent}
.benefit-card h3{font-size:1.65rem;line-height:1.2;letter-spacing:-.035em;margin-top:.7rem}
.benefit-card h3+p{font-size:1rem;max-width:32rem;line-height:1.7;margin-top:1rem;margin-bottom:1.5rem}
.benefit-card .button{margin-top:auto}
.benefit-card .benefit-note{font-size:.8125rem;line-height:1.6;max-width:31rem;margin-top:1.3rem}
.loyalty .benefit-note{color:var(--sky)}
.rush{border:1px solid #c8d0e2;background:linear-gradient(125deg,#f4f7fc,#d9dfec 52%,#fff);color:var(--ink)}
.rush .benefit-note{color:var(--muted)}
.rush-title{font-size:clamp(3.6rem,6.4vw,6.5rem);line-height:1.02;font-weight:750;letter-spacing:-.055em;padding:1.5rem 0 1rem;min-height:13rem;color:var(--blue)}
.rush-title>span{-webkit-text-stroke:1.5px var(--blue);color:transparent}
.locations{background:white;border-top:1px solid var(--line)}
.location-list>a{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;gap:1.5rem;border-top:1px solid var(--line);padding:1.4rem .5rem;transition:background 200ms}
.location-list>a:last-child{border-bottom:1px solid var(--line)}.location-list>a:hover{background:var(--silver)}
.location-city{font:.8125rem Consolas,monospace;letter-spacing:.06em;color:var(--muted)}
.location-list strong{display:block;font-size:1.3rem;font-weight:550;letter-spacing:-.025em}
.location-list small{font-size:.875rem;display:block;color:var(--muted);margin-top:.2rem}
.map-link{font-size:.875rem;justify-self:end;white-space:nowrap;color:var(--blue)}
.map-link>span{font-size:1.4rem;margin-left:1rem}
.site-footer{background:var(--blue);color:white;padding-top:3rem;padding-bottom:1.5rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem}
.footer-brand{padding:2rem 1.85rem;margin:-1rem 0 -1rem -1.85rem;align-self:center}.site-footer img{width:15rem;height:auto}
.footer-links{display:flex;gap:1.8rem;align-items:center;font-size:.9375rem}
.footer-links>a:hover{text-decoration:underline}
.footer-bottom{display:flex;width:100%;justify-content:space-between;gap:1rem;border-top:1px solid #ffffff40;padding-top:1.5rem;font-size:.8125rem;color:var(--sky)}
dialog{padding:0;border:1px solid #c6ccdd;border-radius:1.5rem;background:var(--paper);color:var(--ink);max-width:66rem;width:calc(100% - 2.5rem);max-height:90svh;max-height:90dvh;overscroll-behavior:contain;box-shadow:0 35px 150px #00033e44}
dialog::backdrop{background:#081039aa;backdrop-filter:blur(5px)}
.dialog-close{position:sticky;display:grid;place-items:center;margin:.75rem .75rem -3.5rem auto;top:.75rem;z-index:3;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid #c7cddd;background:white;color:var(--ink);font-size:1.8rem;line-height:1}
.dialog-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr)}
.dialog-visual{background:white;position:sticky;top:0;align-self:start;height:34rem;overflow:hidden}
.dialog-visual>img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.dialog-copy{padding:2.5rem 2.5rem 2rem;min-width:0}
.dialog-copy h2{font-size:2.4rem;line-height:1.12;letter-spacing:-.05em;margin:.75rem 2rem 1rem 0}
.dialog-copy>p:not(.eyebrow){color:var(--muted)}
.size-options{border:0;padding:0;margin:1.5rem 0 .8rem;display:flex;gap:.6rem}
.size-options legend{font-size:.875rem;margin-bottom:.6rem}
.size-options label{flex:1;position:relative;cursor:pointer}
.size-options input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.size-options label>span{display:flex;justify-content:space-between;gap:.6rem;padding:.75rem .9rem;border:1px solid #c8cde0;border-radius:.7rem;font-size:.875rem}
.size-options input:checked+span{border-color:var(--blue);background:var(--silver);color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.dialog-price{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0 1rem;margin-bottom:1.2rem;border-bottom:1px solid var(--line)}
.dialog-price>span{font-size:.875rem;color:var(--muted)}
.dialog-price strong{font-size:1.8rem;color:var(--blue)}
.dialog-copy h3{font-size:1.05rem;margin-bottom:.5rem}
.dialog-copy .ingredient-note{font-size:.8125rem;margin-top:.6rem;line-height:1.6}
.allergen-note{margin:1.2rem 0;padding:1rem;border:1px solid var(--line);border-radius:.75rem;background:white}
.allergen-note p{font-size:.9375rem;font-weight:600}
.dialog-location{width:100%}

.menu-jump{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1.5rem}
.menu-jump a{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:.85rem;background:white;transition:border-color 180ms,background 180ms}
.menu-jump a:hover{border-color:var(--blue);background:var(--silver)}
.menu-jump span{font-size:1.0625rem;font-weight:650}.menu-jump strong{font-size:.875rem;font-weight:500;color:var(--blue)}
.menu-category{margin-top:2.5rem;scroll-margin-top:8rem}
.menu-category+.menu-category{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--line)}
.menu-category-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}
.menu-category-heading h2{font-size:2rem;line-height:1.15;letter-spacing:-.045em}
.menu-category-heading p{color:var(--muted);font-size:.9375rem}.menu-category-heading p span{white-space:nowrap}
.menu-family-heading{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin:1.5rem 0 1rem}
.product-grid+.menu-family-heading{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.menu-family-heading strong{font-size:1.15rem}.menu-family-heading span{color:var(--muted);font-size:.875rem}
.dialog-copy .single-size-note{font-size:.875rem;color:var(--blue);margin-top:.25rem}
.size-options label[hidden],#single-size-note[hidden]{display:none}

@keyframes float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-.4rem) rotate(-1deg)}}
@media(min-width:1600px){
  .hero{padding-top:4rem;padding-bottom:2rem;column-gap:8%}.hero-copy{justify-self:center}.hero h1{font-size:8rem}.drink-lab{max-width:39rem}
  .hero-bottom{margin-top:2rem}.section-shell{padding-left:max(var(--shell),calc((100vw - 1440px)/2));padding-right:max(var(--shell),calc((100vw - 1440px)/2))}
}
@media(max-width:1000px){
  .site-header{gap:1rem}.site-nav{gap:1rem}.brand img{width:8.5rem}.header-play{font-size:.875rem;gap:.65rem}
  .hero{gap:2rem 3%;padding-top:2.5rem}.hero h1{font-size:clamp(3.5rem,8vw,6rem)}.hero-lead{font-size:1rem}
  .lab-top{padding:1rem}.lab-product{margin:0 1rem 1rem}.lab-stage{height:25rem}
  .product-grid{gap:2rem 1rem}.product-info{gap:.5rem;flex-wrap:wrap}.product-info h3{font-size:1.2rem}
  .product-image{height:22rem}.benefit-card{padding:1.6rem}.section-shell{padding-top:4rem;padding-bottom:4rem}
  .dialog-copy{padding:2.5rem 1.5rem 1.5rem}
}
@media(max-width:780px){
  html{scroll-padding-top:8.5rem}
  .site-header{padding:0 1.25rem .2rem;flex-wrap:wrap;gap:0 1rem}
  .brand{padding:1.1rem 1rem;margin-left:-1rem}.brand img{width:8rem}.header-play{padding:.3rem .8rem;min-height:2.75rem;font-size:.875rem;gap:.6rem;white-space:normal}
  .site-nav{order:3;width:100%;justify-content:space-between;gap:.75rem;font-size:.875rem}.site-nav a{padding:.6rem .15rem;min-height:2.75rem}
  .preview-note{font-size:.75rem;padding:.6rem 1.25rem;display:block;text-align:center}.preview-note span{display:block;font-size:.75rem}
  .hero{grid-template-columns:1fr;padding:1.7rem 1.25rem 1.2rem;gap:1.7rem}
  .hero-copy{padding:0}.hero-copy>.eyebrow{font-size:.75rem;gap:.5rem}
  .hero h1{font-size:clamp(3.25rem,11.5vw,5.8rem);margin:.75rem 0 1rem;line-height:1.05}
  .hero h1>span:nth-child(1),.hero h1>span:nth-child(2){display:inline}
  .hero h1>.hero-accent{white-space:nowrap}
  .hero-lead{font-size:1rem;max-width:27rem}
  .hero-copy>.button{margin-top:1.1rem;min-height:3rem;padding:.7rem 1.15rem;font-size:.9375rem}
  .drink-lab{max-width:30rem;border-radius:1.3rem 1.3rem 3rem 1.3rem}
  .lab-top{padding:.75rem 1rem;font-size:.75rem}.lab-stage{height:clamp(16rem,65vw,22rem)}
  .lab-product{padding:.8rem 0;margin:0 1.1rem 1rem}.lab-product h2{font-size:1.55rem}
  .round-button{width:2.75rem;height:2.75rem}
  .hero-bottom{margin-top:0;font-size:.75rem;gap:.5rem;flex-wrap:wrap;padding-top:1rem}
  .hero-bottom>a{font-size:.875rem}
  .section-shell{padding:3.3rem 1.25rem}
  .section-heading{display:block;margin-bottom:1.5rem}.section-heading :is(h1,h2){font-size:clamp(2.3rem,9vw,3.6rem);margin-top:.8rem}
  .section-heading>p{font-size:1rem;margin-top:1rem}
  .menu-jump{gap:.5rem}.menu-jump a{padding:.8rem .6rem;border-radius:.7rem}.menu-jump span{font-size:.875rem;line-height:1.3}.menu-jump strong{font-size:.8125rem}
  .menu-category{scroll-margin-top:8.5rem;margin-top:2rem}.menu-category+.menu-category{margin-top:2.8rem;padding-top:1.5rem}
  .menu-category-heading{gap:.5rem;margin-bottom:1rem}.menu-category-heading h2{font-size:1.7rem}.menu-category-heading p{font-size:.875rem}
  .menu-family-heading{flex-direction:column;gap:.25rem}
  .menu-toolbar{display:block;padding:.75rem 0}.menu-toolbar>p:first-child{font-size:.75rem}
  .menu-toolbar>p:last-child{margin-top:.65rem;font-size:.875rem}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8rem .75rem}
  .product-image{height:clamp(17rem,58vw,23rem);border-radius:.9rem;padding:.7rem;grid-template-rows:minmax(1.5rem,auto) minmax(0,1fr) minmax(2.25rem,auto);column-gap:.5rem}
  .product-code{font-size:.75rem;letter-spacing:0}
  .product-type{font-size:.75rem;line-height:1.5}
  .product-plus{width:2rem;height:2rem;font-size:1.3rem}
  .product-info{flex-direction:column;padding-top:.7rem;gap:.5rem}
  .product-info h3{font-size:1.1rem;line-height:1.25}.product-info div>p{font-size:.875rem;line-height:1.45}
  .price{display:flex;align-items:baseline;gap:.35rem;font-size:1.1rem}.price>span{font-size:.75rem;margin:0}
  .menu-note{font-size:.8125rem;line-height:1.7;margin-top:1.5rem}
  .manifesto{padding-top:2.5rem;padding-bottom:2.5rem}.manifesto>div{grid-template-columns:1fr;gap:1.2rem;margin-top:1rem}
  .manifesto h2{font-size:2.3rem}
  .benefit-grid{grid-template-columns:1fr;gap:1rem}.benefit-card{padding:1.6rem;border-radius:1.2rem}
  .loyalty-formula{font-size:8rem;min-height:auto;padding:.5rem 0;gap:1.25rem}.rush-title{font-size:4.7rem;min-height:auto}
  .benefit-card h3{font-size:1.5rem}.benefit-card .button{font-size:.9375rem}
  .location-list>a{grid-template-columns:1fr auto;gap:.2rem .7rem;padding:1rem 0}
  .location-city{grid-column:1;font-size:.75rem}.location-list>a>span:nth-child(2){grid-column:1;grid-row:2}
  .location-list strong{font-size:1.15rem}.map-link{grid-column:2;grid-row:1/3;font-size:.875rem}
  .map-link>span{margin-left:.25rem;font-size:1.2rem}
  .site-footer{padding-top:2.5rem;padding-bottom:1.4rem;gap:1.7rem}.site-footer img{width:12rem}.footer-brand{padding:1.7rem 1.5rem;margin:-.7rem 0 -.7rem -1.5rem}
  .footer-links{width:100%;flex-wrap:wrap;gap:.75rem 1.3rem;font-size:.9375rem}
  .footer-bottom{flex-wrap:wrap;font-size:.8125rem;gap:.7rem}.footer-bottom>p:nth-child(2){display:none}
  dialog{width:calc(100% - 1rem);max-height:94svh;max-height:94dvh;border-radius:1.3rem}
  .dialog-layout{grid-template-columns:1fr}.dialog-visual{position:relative;height:16rem}.dialog-copy{padding:1.3rem}
  .dialog-copy h2{font-size:2rem;margin-right:0}.dialog-copy>.eyebrow{font-size:.75rem}
  .size-options label>span{font-size:.875rem;padding:.8rem .7rem}.dialog-close{margin:.65rem .65rem -3.4rem auto}
}
@media(max-width:370px){
  .hero h1{font-size:3.1rem}.hero h1>span:nth-child(1),.hero h1>span:nth-child(2){display:block}
  .product-grid{grid-template-columns:1fr}.product-image{height:23rem}.product-info{flex-direction:row}
  .site-header{column-gap:.5rem}.header-play{font-size:.75rem;padding:.3rem .6rem;gap:.4rem}.brand img{width:6.25rem}.hero-bottom>span{display:none}
  .size-options{flex-wrap:wrap}.size-options label{min-width:100%}
  .loyalty-formula{font-size:6.5rem;gap:1rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Live catalog: never expose stale initial prices while the current menu loads. */
[hidden]{display:none!important}
.catalog-pending .hero-drink,.catalog-pending .lab-product{visibility:hidden}
#catalog-status{padding:1.25rem 0;color:var(--muted)}
#catalog-status .button{margin-top:1rem}
#site-notice:empty{display:none}
.product-photo.full-photo>img{width:100%;height:100%;object-fit:contain;max-width:100%}
.hero-drink.full-photo{object-fit:contain}

/* Dedicated menu page; the homepage only renders the animated showcase. */
.site-nav a[aria-current="page"]{box-shadow:inset 0 -2px var(--blue)}
.menu-back{display:inline-block;margin-bottom:.25rem;color:var(--blue);font-size:.875rem;min-height:2.75rem;padding:.6rem 0}
.menu-page .menu-section{padding-top:.75rem}
.menu-page .section-heading{margin-bottom:.6rem}
.menu-page .section-heading h1{font-size:clamp(1.8rem,3.5vw,2.6rem);line-height:1.15;margin-top:.25rem}
.menu-categories{display:flex;gap:.2rem;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--blue) transparent;position:sticky;top:var(--menu-header-height,5.5rem);z-index:20;background:var(--paper);padding:.4rem 0 .45rem;border-bottom:1px solid var(--line)}
.menu-categories button{flex:0 0 auto;display:flex;align-items:center;gap:.55rem;min-height:2.75rem;border:1px solid transparent;border-radius:2rem;background:transparent;padding:.5rem .75rem;font-size:.9375rem;font-weight:600;white-space:nowrap}
.menu-categories button:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.menu-categories button:hover{border-color:var(--line);background:white}
.menu-categories button[aria-pressed="true"]{background:var(--blue);color:white;border-color:var(--blue)}
.menu-page #catalog-products{margin-top:.25rem;scroll-margin-top:calc(var(--menu-header-height,5.5rem) + 4.5rem)}
.menu-empty{padding:2rem 0 .5rem;max-width:34rem;color:var(--muted)}
.menu-page .product-info{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:.2rem;padding:.2rem 0 0;flex:0}
.product-copy{min-width:0;overflow-wrap:anywhere}
.product-prices{display:flex;flex-wrap:wrap;gap:.15rem .5rem;margin:0;padding-top:.25rem;border-top:1px solid var(--line)}
.product-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem}
.product-price dt{font-size:.875rem;color:var(--muted)}
.product-price dd{margin:0;font-size:1.2rem;line-height:1.4;font-weight:650;white-space:nowrap}
.product-price dd span{font-size:.875rem;font-weight:400}
/* Compact catalog: keep the cup, name and size prices together. */
.menu-page .product-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr));gap:.25rem}
.menu-page .product-card{display:flex;flex-direction:column;padding:.25rem;background:white;border:1px solid var(--line);border-radius:.65rem}
.menu-page .product-image{height:clamp(8rem,11vw,10rem);grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);padding:0;gap:0;border:0;border-radius:.65rem;flex-shrink:0}
.menu-page .product-code,.menu-page .product-type{display:none}
.menu-page .product-photo{grid-area:1/1/-1/-1}
.menu-page .product-plus{position:absolute;right:.4rem;bottom:.4rem;width:1.75rem;height:1.75rem;font-size:1.2rem;z-index:3}
.menu-page .product-info h3{font-size:1.0625rem;line-height:1.25;letter-spacing:-.02em}
.menu-page .product-copy>p{font-size:.875rem;line-height:1.35;margin-top:.15rem}
.menu-page .product-price dd{font-size:1.0625rem}
@media(max-width:780px){
 .menu-page .menu-section{padding-left:1rem;padding-right:1rem}
 .menu-page .product-grid{gap:.1875rem}
 .menu-page .product-card{padding:.2rem;border-radius:.55rem}
 .menu-page .product-image{height:clamp(6.5rem,26vw,8rem)}
 .menu-categories{top:var(--menu-header-height,7rem)}
 .menu-categories button{flex:0 0 auto;font-size:.875rem;padding:.5rem .6rem}
 .menu-page .product-info h3{font-size:1rem}
}
@media(max-width:600px){
 .menu-page .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.lab-stage #catalog-status{position:absolute;inset:0;z-index:3;padding:2rem 1.5rem;align-content:center;text-align:center}

/* Separate reference page, laid out from the owner's PIMS screenshot. */
.nutrition-link{display:inline-block;color:var(--blue);font-size:.9375rem;text-decoration:underline;text-underline-offset:.2em;padding:.65rem 0}
.menu-page .section-heading{flex-wrap:wrap;gap:.15rem 1.5rem}
.dialog-nutrition-link{display:block;margin:0 0 1rem}
.nutrition-page{background:var(--paper)}
.nutrition-page .nutrition-section{padding:.75rem clamp(1rem,3vw,3.5rem) 3rem}
.nutrition-page .section-heading{margin-bottom:.6rem}
.nutrition-page .section-heading h1{font-size:clamp(1.8rem,3vw,2.75rem);margin-top:.25rem}
.nutrition-intro{max-width:50rem;color:var(--muted);font-size:.9375rem;line-height:1.6;margin-bottom:1.25rem}
.nutrition-search{position:relative;max-width:40rem;margin-bottom:.75rem}
.nutrition-search input{width:100%;min-width:0;min-height:3.4rem;padding:.75rem 1.25rem .75rem 3.2rem;border:1px solid var(--line);border-radius:2rem;background:white;color:var(--ink);font:inherit;font-size:1rem}
.nutrition-search input::placeholder{color:var(--muted);opacity:1}
.nutrition-search-icon{position:absolute;top:50%;left:1.15rem;transform:translateY(-50%);width:1.2rem;height:1.2rem;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;pointer-events:none}
.nutrition-search input:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.nutrition-categories{display:flex;gap:.65rem;max-width:100%;overflow-x:auto;position:sticky;top:var(--menu-header-height,5.5rem);z-index:20;background:var(--paper);padding:.4rem 0 1rem;border-bottom:1px solid var(--line);margin-bottom:.6rem}
.nutrition-categories button{flex:0 0 auto;padding:.7rem 1.25rem;min-height:3rem;font-size:.9375rem;font-weight:650;white-space:nowrap;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:2rem}
.nutrition-categories button:hover{background:white}
.nutrition-categories button[aria-pressed="true"]{background:var(--blue);color:white;border-color:var(--blue)}
.nutrition-categories button:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.nutrition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start;scroll-margin-top:calc(var(--menu-header-height,5.5rem) + 5rem)}
.recipe-card{display:grid;grid-template-columns:5.5rem minmax(0,1fr);grid-template-rows:auto 1fr auto;column-gap:1rem;row-gap:.7rem;min-height:15.5rem;padding:1.25rem;background:white;border-radius:1.5rem;scroll-margin-top:calc(var(--menu-header-height,5.5rem) + 5rem)}
.recipe-image{grid-column:1;grid-row:1/4;width:100%;height:13rem;overflow:hidden;align-self:start;background:white}
.recipe-image img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.recipe-image.full-photo img{object-fit:contain}
.recipe-name{grid-column:2;margin:0;font-size:1.15rem;font-weight:750;line-height:1.25;letter-spacing:-.025em;text-transform:uppercase;overflow-wrap:anywhere}
.recipe-tables{grid-column:2;min-width:0;align-self:start}
.compact-table-scroll{max-width:100%;overflow-x:auto}
.compact-table-scroll+.compact-table-scroll{margin-top:.7rem}
.compact-table-scroll:focus-visible,.nutrition-scroll:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.compact-nutrition-table{width:100%;min-width:20.5rem;border-collapse:collapse;table-layout:auto;font-variant-numeric:tabular-nums;line-height:1.3}
.compact-nutrition-table caption{text-align:left;font-size:.875rem;font-weight:600;padding-bottom:.35rem}
.compact-nutrition-table th,.compact-nutrition-table td{text-align:right;padding:.3rem .2rem}
.compact-nutrition-table th:first-child{text-align:left;padding-left:0}
.compact-nutrition-table thead th{font-size:.8125rem;color:var(--muted);font-weight:700;border-bottom:1px solid var(--line)}
.compact-nutrition-table thead th span{font-weight:400}
.compact-nutrition-table tbody th,.compact-nutrition-table td{font-size:.9375rem;font-weight:650;vertical-align:top}
.compact-nutrition-table tbody tr:first-child th,.compact-nutrition-table tbody tr:first-child td{padding-top:.55rem}
.recipe-portion,.recipe-portion-price{display:inline-block;white-space:nowrap}
.recipe-portion-price{color:var(--blue);margin-left:.35rem}
.recipe-disclosure{grid-column:2;border-top:1px solid var(--line);min-width:0}
.recipe-disclosure>summary{display:flex;align-items:center;justify-content:flex-start;gap:.55rem;list-style:none;cursor:pointer;min-height:2.75rem;padding:.75rem 0 0;font-size:.875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.recipe-disclosure>summary::-webkit-details-marker{display:none}
.recipe-disclosure>summary::after{content:"";width:.5rem;height:.5rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-.15rem) rotate(45deg)}
.recipe-disclosure[open]>summary::after{transform:translateY(.1rem) rotate(225deg)}
.recipe-disclosure>summary:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:.25rem}
.recipe-disclosure-content{padding:1rem 0 .25rem;min-width:0}
.recipe-card h3{font-size:1rem;font-weight:650;margin-bottom:.6rem}
.recipe-composition{font-size:.9375rem;line-height:1.65;overflow-wrap:anywhere}
.recipe-summary{margin-bottom:1rem;font-size:1rem}
.recipe-full-composition{color:var(--muted)}
.recipe-full-composition p+p{margin-top:.8rem}
.recipe-note{font-size:.875rem;line-height:1.6;color:var(--muted);margin-top:.8rem;overflow-wrap:anywhere}
.recipe-colorants{border-top:1px solid var(--line);padding-top:.75rem}
.recipe-full-nutrition{margin-top:1.25rem}
.nutrition-scroll{max-width:100%;overflow-x:auto}
.nutrition-scroll+.nutrition-scroll{margin-top:1.25rem}
.nutrition-table{width:100%;border-collapse:collapse;font-size:.875rem;line-height:1.45;font-variant-numeric:tabular-nums}
.nutrition-table caption{text-align:left;font-size:.9375rem;font-weight:600;margin:.2rem 0 .6rem}
.nutrition-table th,.nutrition-table td{padding:.55rem .4rem;border-bottom:1px solid var(--line);text-align:right;vertical-align:top}
.nutrition-table th:first-child{text-align:left;padding-left:0}
.nutrition-table thead th{color:var(--muted);font-weight:500}
.nutrition-table tbody th{font-weight:400}
.nutrition-table tbody tr:first-child{font-weight:650;color:var(--blue)}
.nutrition-table td{min-width:5.5rem}
.recipe-allergens{margin-bottom:1rem;padding:.75rem;background:var(--silver);border-radius:.5rem;font-size:.9375rem}
.recipe-allergens h3{margin-bottom:.3rem}
.recipe-unavailable,.nutrition-empty,#nutrition-status{padding:1rem 0;color:var(--muted);font-size:1rem}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Public contact details supplied by the owner. */
.contact-section{background:white;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:7%;align-items:center;padding-top:4rem;padding-bottom:4rem}
.contact-section h2{font-size:clamp(2.4rem,4vw,4.3rem);letter-spacing:-.055em;line-height:1.05;font-weight:650;margin-top:1rem}
.contact-section h2 span{color:var(--blue)}
.contact-list{border-top:1px solid var(--line);min-width:0}
.contact-list>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem 1rem;padding:1.1rem 0;border-bottom:1px solid var(--line);align-items:center}
.contact-list>a>span:first-child{grid-column:1;color:var(--muted);font-size:.75rem;font-weight:650;letter-spacing:.07em}
.contact-list strong{grid-column:1;font-size:clamp(1.15rem,2vw,1.65rem);font-weight:600;letter-spacing:-.025em;overflow-wrap:anywhere}
.contact-list>a>span:last-child{grid-column:2;grid-row:1/3;color:var(--blue);font-size:1.5rem}
.contact-list>a:hover strong{color:var(--blue)}
.footer-links{flex-wrap:wrap;justify-content:flex-end;gap:.9rem 1.5rem}
@media(max-width:780px){.contact-section{grid-template-columns:1fr;gap:1.8rem;padding:3rem 1.25rem}.footer-links{justify-content:flex-start}}
@media(max-width:370px){.site-nav{gap:.3rem;font-size:.8125rem}.site-nav a{padding:.6rem 0}}
@media(max-width:1100px){.nutrition-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:780px){.nutrition-categories{top:var(--menu-header-height,7rem)}.nutrition-categories button{font-size:.875rem;padding:.65rem 1rem}.recipe-card{padding:1rem;border-radius:1.25rem}}
@media(max-width:600px){.recipe-card{grid-template-columns:3.5rem minmax(0,1fr);grid-template-rows:auto auto auto;min-height:0;column-gap:.75rem;row-gap:.55rem}.recipe-image{grid-row:1;height:5rem}.recipe-name{align-self:center;font-size:1.0625rem}.recipe-tables,.recipe-disclosure{grid-column:1/-1}.compact-nutrition-table{min-width:20rem}.recipe-portion-price{margin-left:0;display:block}.nutrition-grid{gap:.75rem}}
@media(max-width:370px){.compact-nutrition-table{min-width:0}.compact-nutrition-table thead th span{display:block}.compact-nutrition-table th,.compact-nutrition-table td{padding-left:.1rem;padding-right:.1rem}}
