:root{--cream:#fffaf0;--ink:#193d47;--blue:#50b3e2;--yellow:#ffb83f;--muted:#566970;--line:#d8ddd6}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'Trebuchet MS',Arial,sans-serif;line-height:1.65}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;width:100%;object-fit:cover}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #147caf;outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.04;letter-spacing:-.045em}p{color:var(--muted)}.announcement{background:var(--yellow);display:flex;align-items:center;justify-content:center;gap:12px;font-size:13px;font-weight:bold;padding:10px 20px;letter-spacing:.015em}.little-sun{width:12px;height:12px;border:2px solid var(--ink);border-radius:50%}.site-header{height:105px;padding:15px 5.5%;display:flex;align-items:center;gap:36px;background:var(--cream);position:relative;z-index:10;border-bottom:1px solid rgba(25,61,71,.1)}.brand{width:205px;margin-right:auto}.brand img{object-fit:contain}.site-header nav{display:flex;gap:32px;font-weight:bold;font-size:14px}.site-header nav a{position:relative}.site-header nav a:after{content:'';position:absolute;bottom:-5px;left:0;width:0;height:2px;background:var(--blue);transition:width .25s}.site-header nav a:hover:after{width:100%}.button{display:inline-flex;gap:30px;align-items:center;justify-content:center;background:var(--ink);color:white;border:1px solid var(--ink);border-radius:100px;padding:17px 27px;font-size:14px;font-weight:bold;line-height:1.5;transition:transform .25s,box-shadow .25s,background .25s}.button:hover{transform:translateY(-4px) rotate(-1deg);box-shadow:4px 6px 0 var(--yellow)}.button span[aria-hidden]{font-size:22px;line-height:1}.button.small{padding:11px 23px}.menu-toggle{display:none}.hero{padding:58px 6% 66px;min-height:680px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:45px;overflow:hidden}.eyebrow{font-size:11px;font-weight:bold;letter-spacing:.18em;color:var(--ink);margin-bottom:24px}.hero h1{font-size:clamp(68px,7.5vw,113px);line-height:.93;margin:0 0 30px;font-weight:900;letter-spacing:-.065em}.hero h1>span{display:block}.hero h1 .accent{color:#db7826;font-family:Georgia,serif;font-style:italic;letter-spacing:-.065em}.hero-description{max-width:375px;font-size:17px;line-height:1.7;margin-bottom:26px}.hero-note{font-size:12px;margin:18px 0 0}.hero-art{height:540px;position:relative}.photo-main{position:absolute;right:0;top:0;width:74%;height:94%;border-radius:190px 190px 28px 28px;overflow:hidden;transform:rotate(7deg);box-shadow:14px 17px 0 #e8ebde;animation:bob 7s ease-in-out infinite}.photo-main img{height:100%;object-position:center 57%;transform:scale(1.12)}.photo-secondary{position:absolute;left:-4%;bottom:0;width:41%;height:56%;border:8px solid var(--cream);border-radius:120px 120px 22px 22px;overflow:hidden;transform:rotate(-12deg);box-shadow:0 10px 25px #193d4719;animation:bob2 6s ease-in-out infinite}.photo-secondary img{height:100%}.round-stamp{position:absolute;right:-2%;bottom:-3%;background:var(--yellow);width:126px;height:126px;border-radius:50%;display:grid;place-items:center;border:2px dashed var(--ink);outline:7px solid var(--yellow);transform:rotate(14deg);font-weight:900;line-height:1.25;letter-spacing:.06em;text-align:center;white-space:pre-line}.spark{position:absolute;color:var(--ink);font-size:66px;line-height:1;animation:twinkle 9s ease-in-out infinite}.spark-one{left:8%;top:5%}.spark-two{right:-5%;top:44%;font-size:38px;color:#df7c25}.ribbon{display:flex;align-items:center;justify-content:space-around;gap:35px;background:var(--blue);padding:22px 24px;font-weight:900;font-size:20px;letter-spacing:-.025em;white-space:nowrap;overflow:hidden}.ribbon span[aria-hidden]{font-size:30px}.section{padding:90px 6%}h2{font-size:clamp(42px,5vw,68px);margin-bottom:23px}h3{font-size:26px}.section-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.section-top .eyebrow{margin-bottom:13px}.section-top h2{margin-bottom:15px}.slider-controls{display:flex;gap:10px}.round{width:48px;height:48px;border-radius:50%;border:1px solid var(--ink);background:transparent;font-size:22px;transition:.2s}.round:hover{background:var(--yellow);transform:rotate(-8deg)}.flavor-track{display:flex;gap:25px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#a6c6ca transparent;padding:4px 2px 24px}.flavor-card{flex:0 0 calc((100% - 75px)/4);min-width:230px;scroll-snap-align:start}.flavor-photo{height:300px;position:relative;border-radius:130px 130px 17px 17px;overflow:hidden;background:#c6e9f2}.flavor-photo img{height:100%;transition:transform .6s}.flavor-card:hover .flavor-photo img{transform:scale(1.07)}.flavor-open{position:absolute;right:15px;bottom:15px;width:42px;height:42px;border:0;border-radius:50%;font-size:24px;background:var(--cream)}.flavor-card h3{font-size:21px;margin:22px 0 10px}.flavor-card details{font-size:14px}.flavor-card summary{cursor:pointer;color:var(--muted)}.flavor-card details p{margin:16px 0}.flavor-card details a{text-decoration:underline;font-weight:bold}.pops-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:22px;font-size:12px;color:var(--muted)}.text-link{border-bottom:1px solid currentColor;padding-bottom:5px;font-size:14px;font-weight:bold;display:inline-block;color:var(--ink)}.natural{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center;background:#e3f3f7}.natural-photo{height:500px;position:relative}.natural-photo img{height:100%;border-radius:190px 190px 30px 30px;background:#9dc4cd}.photo-caption{position:absolute;bottom:24px;left:50%;transform:translateX(-50%) rotate(-6deg);background:var(--yellow);padding:8px 22px;border-radius:5px;font-weight:bold;white-space:nowrap}.natural-copy p:not(.eyebrow){font-size:18px;max-width:480px}.button-row{display:flex;align-items:center;gap:28px;margin-top:30px}.about{display:grid;grid-template-columns:1.1fr 1fr;gap:9%;align-items:center}.about-copy p:not(.eyebrow){font-size:15px;line-height:1.9}.about-photo{position:relative}.about-photo img{height:440px;border-radius:30px 160px 30px 30px;background:#ece8d9}.signature{position:absolute;right:-15px;bottom:-25px;background:var(--yellow);padding:16px 30px;font:italic 30px Georgia;transform:rotate(-7deg);border-radius:50%}.stuart{padding-top:30px;display:grid;grid-template-columns:1fr 1.6fr;gap:9%;align-items:center}.stuart-art{max-width:300px;margin:auto;width:100%;animation:bob2 8s infinite}.stuart-art img{min-height:240px;object-fit:contain}.stuart p:not(.eyebrow){font-size:15px;line-height:1.9}.services{background:#ffecbf;text-align:center}.center .eyebrow{margin-bottom:16px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;text-align:left;margin:45px 0 36px}.service-card{background:var(--cream);padding:35px;border-radius:22px;transition:transform .25s}.service-card:hover{transform:translateY(-8px) rotate(-1deg)}.service-number{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--blue);font-size:14px;font-weight:bold;margin-bottom:36px}.service-card:nth-of-type(2) .service-number{background:var(--yellow)}.service-card:nth-of-type(3) .service-number{background:#efb3a2}.service-card p{font-size:15px;line-height:1.8}.contact-banner{display:flex;align-items:center;justify-content:space-between;background:var(--blue);padding-top:60px;padding-bottom:60px}.contact-banner h2{margin:0}.light{background:var(--cream);color:var(--ink)}.footer-main{display:grid;grid-template-columns:1.3fr 1fr .6fr 1fr;gap:45px;padding-top:65px;padding-bottom:60px}.footer-main h3{font-size:21px;line-height:1.25;margin-bottom:20px}.footer-main h4{font-size:13px;margin:20px 0 3px}.footer-main p,.footer-main a{font-size:12px;line-height:1.85}.footer-main p{white-space:pre-line}.footer-main a{display:block;margin-bottom:6px}.footer-brand img{width:200px;margin-bottom:25px}.socials{display:flex;flex-wrap:wrap;gap:4px 15px;margin-top:28px}.footer-bottom{border-top:1px solid var(--line);margin:0 6%;padding:23px 0;display:flex;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.skip{position:fixed;top:-100px;left:10px;background:white;padding:15px;z-index:100}.skip:focus{top:10px}.reveal{transition:transform .75s,opacity .75s}.motion-ready .reveal:not(.visible){opacity:0;transform:translateY(24px)}@keyframes bob{0%,100%{transform:translateY(0) rotate(7deg)}50%{transform:translateY(-11px) rotate(5deg)}}@keyframes bob2{0%,100%{transform:translateY(0) rotate(-10deg)}50%{transform:translateY(-8px) rotate(-7deg)}}@keyframes twinkle{0%,100%{transform:rotate(0deg) scale(1)}50%{transform:rotate(35deg) scale(.85)}}
@media(min-width:1600px){.hero,.section,.site-header{padding-left:max(6%,calc((100vw - 1400px)/2));padding-right:max(6%,calc((100vw - 1400px)/2))}.hero{gap:90px}}@media(max-width:1050px){.site-header nav{gap:20px}.hero{gap:20px;min-height:600px}.hero-art{height:450px}.hero h1{font-size:80px}.round-stamp{width:105px;height:105px;font-size:13px}.footer-main{grid-template-columns:1fr 1fr}.section{padding:70px 6%}.flavor-card{flex-basis:calc((100% - 50px)/3)}.natural-photo{height:430px}.button-row{gap:20px;flex-wrap:wrap}}@media(max-width:700px){html{scroll-padding-top:25px}.announcement{font-size:11px;text-align:center;padding:9px 16px;line-height:1.5}.little-sun{flex-shrink:0}.site-header{height:88px;padding:14px 6%;gap:16px}.brand{width:160px}.header-shop{margin-left:auto}.button.small{padding:10px 16px;gap:15px;font-size:12px}.menu-toggle{display:flex;flex-direction:column;gap:6px;justify-content:center;width:30px;height:40px;border:0;background:none;padding:0}.menu-toggle i{height:2px;width:27px;background:var(--ink);transform-origin:center;transition:transform .28s cubic-bezier(.22,1,.36,1)}.menu-toggle[aria-expanded=true] i:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] i:last-child{transform:translateY(-4px) rotate(-45deg)}.site-header nav{display:flex;flex-direction:column;gap:22px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px);transition:opacity .24s ease,transform .28s cubic-bezier(.22,1,.36,1),visibility 0s linear .28s;position:absolute;left:0;right:0;top:88px;background:var(--cream);border-bottom:1px solid var(--line);padding:25px 6%;box-shadow:0 10px 15px #193d4710}.site-header nav.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}.hero{display:flex;flex-direction:column;padding:24px 6% 28px;gap:20px;min-height:0;align-items:stretch}.eyebrow{font-size:10px;letter-spacing:.14em;margin-bottom:20px}.hero h1{font-size:clamp(54px,16vw,68px);line-height:.94;margin-bottom:18px}.hero .eyebrow{margin-bottom:14px}.hero-description{font-size:15px;max-width:330px;margin-bottom:18px}.hero .button{font-size:13px;padding:15px 22px}.hero-note{font-size:11px;margin-top:12px}.hero-art{height:clamp(230px,64vw,290px);width:72%;max-width:300px;flex:none;align-self:center;margin:8px 0 0}.photo-main{width:73%;height:95%;right:1%}.photo-secondary{left:-2%;height:57%;width:43%;border-width:6px}.round-stamp{bottom:0;right:-5%;height:76px;width:76px;font-size:10px;outline-width:4px}.spark-one{font-size:49px;left:5%}.spark-two{font-size:29px;right:-6%}.ribbon{justify-content:flex-start;font-size:16px;gap:25px;padding:17px 20px}.ribbon span[aria-hidden]{font-size:23px}.section{padding:58px 6%}h2{font-size:44px}.section-top{gap:10px;align-items:flex-start}.section-top p:not(.eyebrow){font-size:14px}.slider-controls{padding-top:35px;gap:7px}.round{width:38px;height:38px}.flavor-track{gap:18px;margin-right:-6vw;padding-right:6vw}.flavor-card{flex-basis:74%;min-width:0}.flavor-photo{height:330px}.flavor-card h3{font-size:23px}.pops-bottom{font-size:10px;gap:15px}.text-link{font-size:12px}.natural,.about,.stuart{grid-template-columns:1fr;gap:35px}.natural-copy{grid-row:1}.natural-copy p:not(.eyebrow){font-size:16px}.natural-photo{height:400px}.about-photo img{height:300px;border-radius:25px 120px 25px 25px}.about-copy p:not(.eyebrow),.stuart p:not(.eyebrow){font-size:14px;line-height:1.85}.signature{right:0;font-size:25px}.stuart{padding-top:20px}.stuart-art{max-width:180px;grid-row:2}.stuart-art img{min-height:160px}.service-grid{grid-template-columns:1fr;gap:15px;margin-top:30px}.service-card{padding:25px}.service-number{float:right;margin:0 0 10px 20px}.service-card h3{font-size:29px;margin:10px 0 20px}.service-card p{margin-bottom:0}.contact-banner{align-items:flex-start;flex-direction:column;gap:25px}.contact-banner h2{font-size:47px;max-width:300px}.footer-main{gap:30px 25px}.footer-brand,.newsletter{grid-column:1/-1}.footer-brand img{width:180px}.footer-brand p{max-width:450px}.footer-main h3{font-size:19px}.footer-bottom{font-size:9px;gap:25px}.newsletter h3{font-size:27px;max-width:250px}.newsletter .text-link{display:inline-block}.socials a{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal:not(.visible){opacity:1;transform:none}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* Mobile: balance the copy within the first screen, with artwork below it.
   Small viewport units keep layout stable as browser chrome hides on scroll.
   Keep the viewport reservation and photo clearance independent of text size. */
@media (max-width:700px){
  .hero{gap:40px;padding-bottom:48px}
  .hero-copy{
    min-height:calc(100vh - 112px);
    min-height:calc(100svh - 112px);
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    padding:12px 0 64px;
  }
  .hero .eyebrow{font-size:11px;letter-spacing:.14em;margin-bottom:24px}
  .hero h1{
    font-size:clamp(64px,20vw,92px);
    font-size:clamp(64px,min(20vw,12svh),92px);
    line-height:.96;
    margin-bottom:28px;
  }
  .hero-description{font-size:17px;line-height:1.65;max-width:360px;margin-bottom:28px}
  .hero .button{font-size:15px;padding:17px 27px;min-height:58px}
  .hero-note{font-size:12px;margin:18px 0 0}
  .hero-art{height:395px;width:90%;max-width:380px;margin:8px 0 0}
}

/* Short screens retain comfortable controls without forcing the copy to fit. */
@media (max-width:700px) and (max-height:700px){
  .hero-copy{padding-top:4px;padding-bottom:44px}
  .hero .eyebrow{margin-bottom:18px}
  .hero h1{margin-bottom:22px}
  .hero-description{font-size:16px;margin-bottom:22px}
  .hero-note{margin-top:14px}
}
