@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--blue:#9dcfd9;--ice:#d9edf0;--paper:#f5f9f8;--ink:#173d46;--line:#173d462b;--body:'DM Sans',Arial,sans-serif;--display:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--body);overflow-x:clip}a{color:inherit}button,input{font:inherit}button,a,input,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #245e8b;outline-offset:6px}[hidden]{display:none!important}.skip{position:absolute;top:-100px;z-index:100;background:white;padding:15px}.skip:focus{top:0}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;z-index:60;background:var(--ink);transform:scaleX(var(--page-progress,0));transform-origin:left}.announcement{text-align:center;background:var(--ink);color:var(--paper);padding:8px 15px;font-size:.8rem}header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 5%;background:#b9dfe6e8;backdrop-filter:blur(20px);border-bottom:1px solid transparent;transition:padding .3s,background .3s,border-color .3s}body.scrolled header{padding-top:15px;padding-bottom:15px;background:#f5f9f8e8;border-color:var(--line)}.wordmark{font:800 clamp(1.5rem,2.7vw,2.2rem)/1 var(--display);letter-spacing:-.075em;text-decoration:none}nav{display:flex;gap:30px}nav a,.nav-cta{font-size:.875rem;font-weight:600;text-decoration:none;position:relative}nav a:after{content:'';position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}nav a:hover:after,nav a[aria-current]:after{transform:scaleX(1)}.nav-cta{border:1px solid var(--ink);padding:9px 16px;border-radius:99px}.nav-cta span{margin-left:15px}.hero{height:calc(100svh - 112px);min-height:680px;max-height:1050px;background:var(--blue);position:relative;isolation:isolate;overflow:clip}.hero-scene{height:100%;position:relative;background:radial-gradient(ellipse at 74% 44%,#e7f4f5 0,#cae6eb 30%,#a8d6df 62%,var(--blue) 100%)}.hero-type{position:absolute;font:800 20vw/.85 var(--display);letter-spacing:-.075em;white-space:nowrap;left:4%;bottom:4%;color:#f5f9f864;z-index:-0;transform:translateY(calc(var(--hero-progress,0)*50px));pointer-events:none}.hero-copy{position:relative;padding:7vh 0 100px 6%;width:56%;z-index:2;transform:translateY(calc(var(--hero-progress,0)*-85px));opacity:calc(1 - var(--hero-progress,0)*.65)}.eyebrow{font-size:.75rem;letter-spacing:.14em;font-weight:700;margin:0 0 24px}h1,h2{font-family:var(--display);font-weight:700;line-height:1.04;letter-spacing:-.06em;margin:0}h1{font-size:clamp(3.6rem,6.4vw,7rem)}h1 em,h2 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.06em}h1 em{display:block}.intro{font-size:1.1rem;margin:28px 0;line-height:1.7}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:30px;background:var(--ink);color:var(--paper);padding:17px 25px;border:1px solid var(--ink);border-radius:50px;text-decoration:none;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .35s,background .35s,box-shadow .35s}.button:hover{transform:translateY(-4px);background:#285d68;box-shadow:0 12px 25px #173d461c}.button span{display:inline-block;transition:transform .35s}.button:hover span{transform:translate(3px,-3px)}.hero-product{position:absolute;right:3%;top:0;width:47%;height:90%;display:flex;align-items:center;justify-content:center;transform:translateY(calc(var(--hero-progress,0)*80px)) rotate(calc(-9deg + var(--hero-progress,0)*15deg)) scale(calc(1 - var(--hero-progress,0)*.08))}.hero-product img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(14px 26px 24px #173d4626)}.orbit-label{position:absolute;right:0;bottom:18%;width:120px;height:120px;border-radius:50%;background:var(--paper);display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:1.65rem;line-height:1.3;transform:rotate(9deg)}.orbit-label small{font-size:.6rem;letter-spacing:.08em;margin-top:5px}.hero-bottom{position:absolute;bottom:30px;left:6%;right:6%;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:.7rem;font-weight:600;letter-spacing:.06em}.hero-bottom a{font-size:.875rem;letter-spacing:0;text-decoration:none}.hero-bottom a span{margin-left:15px}.ribbon{overflow:hidden;padding:24px 0;background:var(--paper)}.ribbon-track{width:max-content;display:flex;align-items:center;gap:48px;transform:translateX(calc(var(--ribbon-shift,0)*-1px));font-size:.9rem;letter-spacing:.15em;font-weight:600}.ribbon i{font-style:normal;font-size:1.5rem;color:#6da5b0}.section{padding:110px 6%}.shop{display:grid;grid-template-columns:1.12fr 1fr;gap:8%;align-items:center;background:linear-gradient(var(--paper),#e9f3f4)}.product-visual{position:relative;min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-height:600px}.product-tag{position:absolute;left:0;top:0;font-size:.75rem;letter-spacing:.15em}.product-backword{position:absolute;left:0;top:23%;font:700 clamp(4rem,7.3vw,8rem)/.96 var(--display);color:#b7d7dd;letter-spacing:-.065em}.product-visual>img{width:100%;height:530px;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(12px 20px 20px #173d4620);transform:rotate(var(--product-rotate,-5deg));transition:opacity .22s,filter .4s}.product-visual>img.switching{opacity:0}.caption{position:relative;font-size:.75rem;text-align:center;color:#47656c;margin:20px 0 0}.product-copy h2{font-size:clamp(2.8rem,4vw,4.3rem)}.price{font-size:1.6rem;margin:22px 0 15px}.price span{font-size:.875rem;margin-left:8px}.product-copy>p{max-width:500px}.product-facts{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}.product-facts span{font-size:.8rem;border-bottom:1px solid var(--line);padding:0 10px 5px 0}fieldset{border:0;padding:0;margin:25px 0}legend{padding:0;font-size:.875rem}.swatches{display:flex;gap:10px;margin-top:14px}.swatches label{position:relative;cursor:pointer;display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:10px 20px;border-radius:99px;transition:background .25s,border .25s;font-size:.875rem}.swatches label:has(input:checked){background:white;border-color:var(--ink)}.swatches label:hover{background:#fff9}.swatches input{position:absolute;opacity:0;width:30px;height:30px}.swatch{width:24px;height:24px;border:1px solid #78989e;border-radius:50%;display:block}.swatch.blue{background:var(--blue)}.swatch.clear{background:white}.swatches label:has(input:focus-visible){outline:3px solid #245e8b;outline-offset:4px}.launch-note{margin:28px 0 22px}.launch-note p{font-size:.9rem;margin:6px 0}.full{width:100%}.small{font-size:.8rem;margin-top:12px;color:#47656c}.story{height:150svh;min-height:950px;position:relative;background:var(--ink);color:var(--paper);border-radius:64px 64px 0 0;margin-top:-1px}.story-sticky{position:sticky;top:70px;min-height:calc(100svh - 70px);padding:8vh 7% 6vh;display:flex;flex-direction:column;justify-content:center}.story-statement{font-size:clamp(3rem,6.8vw,7.5rem);line-height:1.13;max-width:1100px}.story-statement span,.story-statement em{color:#71939a;transition:color .25s}.story-statement .lit{color:var(--paper)}.story-statement em.lit{color:var(--blue)}.story-bottom{display:grid;grid-template-columns:1fr 1fr;gap:13%;margin-top:55px;font-size:1.05rem}.story-bottom p{max-width:390px;margin-top:0}.text-link{font-size:.95rem;text-underline-offset:7px;transition:color .2s}.text-link:hover{color:#78c7d7}.faq{display:grid;grid-template-columns:1fr 1.15fr;gap:8%;padding-top:130px;padding-bottom:130px}.faq h2{font-size:clamp(2.5rem,4.5vw,4.8rem)}details{border-bottom:1px solid var(--line);padding:24px 0}details:first-child{border-top:1px solid var(--line)}summary{position:relative;list-style:none;cursor:pointer;font-weight:500;padding-right:35px}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:3px;top:0;font-size:1.5rem;font-weight:400;line-height:1;transition:transform .3s}details[open] summary:after{transform:rotate(45deg)}details[open] p{animation:answer-in .35s ease-out}details p{color:#47656c;font-size:.95rem;margin-bottom:0}@keyframes answer-in{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}footer{background:var(--blue);padding:85px 6% 25px;border-radius:64px 64px 0 0;overflow:hidden}.footer-invite{text-align:center;padding-bottom:75px}.footer-invite h2{font-size:clamp(3rem,5.5vw,6rem);margin-bottom:30px}.footer-invite h2 em{white-space:nowrap}.light{background:var(--paper);color:var(--ink);border-color:transparent}.light:hover{background:white}.footer-top,.footer-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center}.footer-top p{font-family:Georgia,serif;font-style:italic;font-size:1.5rem}.footer-top a{font-size:.9rem;text-underline-offset:6px}.footer-brand{font:800 15.8vw/1.35 var(--display);letter-spacing:-.075em;white-space:nowrap;transform:translateX(calc(var(--footer-shift,0)*1px));color:var(--ink)}.footer-bottom{border-top:1px solid var(--line);padding-top:20px;font-size:.75rem}.footer-bottom a{text-decoration:none}.motion-toggle{position:fixed;right:16px;bottom:16px;border:1px solid #173d4638;background:#f5f9f8ed;color:var(--ink);backdrop-filter:blur(12px);border-radius:99px;padding:8px 13px;z-index:55;font-size:.75rem;cursor:pointer}.motion-ready [data-reveal]{opacity:0;transform:translateY(40px);filter:blur(5px);transition:opacity .8s,transform 1s cubic-bezier(.2,.7,.2,1),filter .8s}.motion-ready [data-reveal].revealed{opacity:1;transform:none;filter:blur(0)}.motion-ready .product-copy{transition-delay:.12s}#purchase-form{border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.quantity-label{display:block;font-size:.875rem;margin-bottom:8px}#quantity{width:85px;padding:10px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--ink)}#stopper-option{display:flex;gap:10px;align-items:center;margin-top:20px;font-size:.875rem}#stopper{width:18px;height:18px;accent-color:var(--ink)}.order-total{font-weight:600}#checkout-error:empty{display:none}
@media(min-width:1700px){.hero-copy{padding-top:10vh}.hero-product{right:7%;width:42%}}@media(max-width:800px){html{scroll-padding-top:85px}.announcement{font-size:.75rem}header{padding:18px 6%}nav{display:none}.nav-cta{font-size:.75rem;padding:7px 12px}.hero{height:auto;min-height:930px;max-height:none}.hero-scene{min-height:930px}.hero-copy{padding:40px 7% 0;width:100%}h1{font-size:clamp(3.1rem,11vw,5.5rem)}h1 em{display:inline}.intro{font-size:1rem;margin:20px 0}.hero-product{right:8%;top:365px;width:84%;height:460px}.hero-type{bottom:8%;font-size:20vw;left:2%}.orbit-label{width:95px;height:95px;font-size:1.4rem;right:-10px;bottom:22%}.orbit-label small{font-size:.5rem}.hero-bottom{bottom:26px;left:7%;right:7%;font-size:.6rem}.hero-bottom>span:first-child{display:none}.hero-bottom a{font-size:.8rem}.ribbon{padding:20px 0}.ribbon-track{gap:28px;font-size:.75rem}.section{padding:65px 7%}.shop{grid-template-columns:1fr;gap:40px}.product-visual{min-height:470px}.product-visual>img{height:430px}.product-backword{font-size:20vw;top:27%}.product-copy h2{font-size:2.9rem}.story{min-height:900px;height:135svh;border-radius:36px 36px 0 0}.story-sticky{top:65px;min-height:calc(100svh - 65px);padding:55px 7%}.story-statement{font-size:clamp(2.7rem,9.5vw,4rem)}.story-bottom{grid-template-columns:1fr;gap:20px;margin-top:35px;font-size:.95rem}.story-bottom p{max-width:none}.faq{grid-template-columns:1fr;gap:30px;padding-top:70px;padding-bottom:80px}.faq h2{font-size:2.9rem}footer{padding:60px 7% 80px;border-radius:36px 36px 0 0}.footer-invite{padding-bottom:35px}.footer-invite h2{font-size:3.1rem}.footer-top{flex-direction:column;gap:6px;align-items:flex-start}.footer-top p{margin:0}.footer-brand{font-size:15.6vw;margin:22px 0}.footer-bottom{flex-wrap:wrap;font-size:.75rem;gap:12px}.eyebrow{font-size:.7rem;letter-spacing:.1em}.caption{font-size:.7rem}.motion-ready [data-reveal]{transform:translateY(24px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-copy,.hero-product,.hero-type,.ribbon-track,.footer-brand{transform:none!important}.hero-copy{opacity:1!important}.story-statement span,.story-statement em{color:inherit}.motion-ready [data-reveal]{opacity:1!important;filter:none!important;transform:none!important}}
body.motion-paused .hero-copy,body.motion-paused .hero-product,body.motion-paused .hero-type,body.motion-paused .ribbon-track,body.motion-paused .footer-brand{transform:none!important}body.motion-paused .hero-copy{opacity:1!important}body.motion-paused [data-reveal]{opacity:1!important;filter:none!important;transform:none!important}body.motion-paused .story-statement span,body.motion-paused .story-statement em{color:inherit}body.motion-paused *,body.motion-paused *:before,body.motion-paused *:after{animation:none!important;transition:none!important}html:has(body.motion-paused){scroll-behavior:auto}
/* Supplied photographs: preserve the full composition while crossfading colours. */
.photo-stack{position:relative;isolation:isolate;overflow:hidden;border-radius:28px;background:#e5e5e8;box-shadow:0 24px 55px #173d4620}
.photo-stack .colour-photo{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0;transform:scale(.97) translateX(12px);transition:opacity .5s ease,transform .7s cubic-bezier(.2,.7,.2,1);filter:none;pointer-events:none}
.photo-stack .colour-photo.active{opacity:1;transform:scale(1) translateX(0);z-index:1}
.hero-product{right:5%;width:43%;height:76%;top:8%;transform:translateY(calc(var(--hero-progress,0)*60px)) rotate(calc(-4deg + var(--hero-progress,0)*7deg))}
.hero-photo-stack{width:100%;aspect-ratio:1;max-height:100%}
.hero-product .orbit-label{z-index:2;right:-25px;bottom:1%;box-shadow:0 12px 30px #173d4617;transform:rotate(4deg)}
.product-visual{min-height:0;align-self:center;padding-top:48px}
.product-photo-stack{width:100%;aspect-ratio:1;transform:rotate(calc(var(--product-rotate,-5deg)*.35));transition:transform .15s linear}
.product-visual .caption{margin-top:22px;font-size:.875rem}
@media(max-width:800px){.hero-product{right:9%;width:82%;top:425px;height:auto}.hero-photo-stack{aspect-ratio:1}.hero-product .orbit-label{right:-12px;bottom:2%}.hero,.hero-scene{min-height:calc(500px + 82vw)}.product-visual{padding-top:40px;min-height:0}.product-photo-stack{transform:none}.story{height:auto;min-height:0}.story-sticky{position:relative;top:auto;min-height:0;padding:75px 7%}.story-statement span,.story-statement em{color:var(--paper)}}
@media(prefers-reduced-motion:reduce){.photo-stack .colour-photo{transition:none!important;transform:none!important}.product-photo-stack{transform:none!important}}
body.motion-paused .product-photo-stack{transform:none!important}
@media(max-height:650px) and (min-width:801px){.story{height:auto;min-height:0}.story-sticky{position:relative;top:auto;padding-top:70px;padding-bottom:70px;min-height:0}}
.product-visual fieldset{align-self:center;text-align:center;margin:20px 0 0}.product-visual legend{margin:auto}.product-visual .swatches{justify-content:center}
/* Keep controls stationary while their surrounding content fades into view. */
.motion-ready [data-reveal]:has(a,button,input,summary){transform:none}

/* Product photography and a separate interactive product design preview. */
.product-view-switch{display:flex;gap:.5rem;margin:1rem 0;justify-content:center}
.product-view-switch button,.spin-buttons button{font:inherit;font-size:.9rem;border:1px solid #9fb8bc;border-radius:999px;padding:.65rem 1.1rem;background:transparent;color:var(--ink,#193c44);cursor:pointer}
.product-view-switch button[aria-pressed=true],.spin-buttons button[aria-pressed=true]{background:#193c44;color:#fff;border-color:#193c44}
.product-view-switch button:focus-visible,.spin-buttons button:focus-visible,#cup-stage:focus-visible,#cup-angle:focus-visible{outline:3px solid #2b8595;outline-offset:4px}
.product-photo-stack[hidden],#cup-viewer[hidden]{display:none!important}
#cup-viewer{border-radius:24px;background:radial-gradient(ellipse at 45% 35%,#a9c9ce 0%,#7fabb6 70%,#6e99a4 100%);overflow:hidden;padding:1rem;color:#102f38}
#cup-stage{width:100%;height:clamp(350px,40vw,530px);touch-action:pan-y;cursor:grab}
#cup-stage:active{cursor:grabbing}
#cup-stage canvas{display:block;width:100%;height:100%}
#viewer-status{text-align:center;margin:.5rem 0;color:#143740}
.spin-buttons{display:flex;justify-content:center;gap:.6rem}
.spin-buttons button{border-color:#3e6874;background:#eaf4f3}
#cup-angle{display:block;max-width:300px;width:90%;margin:1rem auto;accent-color:#193c44}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){#cup-stage{height:370px}.product-view-switch{margin-top:.8rem}}

/* Final launch polish: legible details and a hero that follows its content. */
.announcement,.eyebrow,.product-tag,.product-facts span,.small,.footer-bottom,.motion-toggle{font-size:.875rem}
.hero-bottom{font-size:.75rem}
.no-script{margin:0;padding:12px 6%;background:#fff;text-align:center}
body:not(.motion-ready) .story-statement span{color:var(--paper)}
body:not(.motion-ready) .story-statement em{color:var(--blue)}
@media(max-width:800px){
  .hero,.hero-scene{height:auto;min-height:0;max-height:none}
  .hero-scene{display:flex;flex-direction:column;gap:28px;padding-bottom:28px}
  .hero-copy{padding:38px 7% 0;transform:none!important;opacity:1!important}
  .hero-product{position:relative;inset:auto;width:78%;height:auto;margin:0 auto 12px;transform:rotate(-3deg)}
  .hero-type{bottom:6%;z-index:0}
  .hero-bottom{position:relative;inset:auto;margin:0 7%;flex-wrap:wrap;z-index:2}
  .hero-bottom>span{font-size:.75rem}
  .hero-photo-stack{aspect-ratio:1;flex-shrink:0}
  .orbit-label small{font-size:.625rem;letter-spacing:0}
  .nav-cta{font-size:.875rem}
  .story-bottom{font-size:1rem}
  .footer-bottom{gap:16px}
}
@media(max-width:380px){
  .wordmark{font-size:1.4rem}
  .nav-cta span{margin-left:4px}
  header{gap:12px}
  h1{font-size:2.8rem}
  .product-copy h2,.faq h2{font-size:2.5rem}
}
