@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Grand+Hotel&family=Nunito:wght@700;800;900;1000&display=swap');
:root{--ink:#4a2214;--cream:#fff3e5;--peach:#f7d9c0;--coral:#cf735c;--ease:cubic-bezier(.22,.8,.22,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--cream);font-family:'DM Sans',sans-serif}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,.carousel:focus-visible{outline:3px solid var(--coral);outline-offset:5px}header{position:absolute;z-index:20;top:0;width:100%;height:112px;padding:20px 4.3%;display:flex;align-items:center;gap:24px}.brand{font-family:'Nunito',sans-serif;font-weight:1000;font-size:29px;line-height:1;display:flex;align-items:center;gap:6px;white-space:nowrap;letter-spacing:-1.4px}.brand small{display:block;font:700 9px 'DM Sans',sans-serif;letter-spacing:3px;margin:9px 0 0 12px}.logo-cookie{font-size:37px}nav{display:flex;gap:30px;margin:auto;font-size:15px}nav a{padding:12px 0}nav a:first-child{border-bottom:3px solid #ad513a}.button{background:var(--ink);border:0;color:#fff7ef;border-radius:40px;padding:18px 27px;display:inline-flex;gap:22px;align-items:center;font-weight:700;font-size:16px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px);background:#6c3424}.bag{border:0;background:none;font-size:31px;position:relative}.bag span{font-size:11px;background:var(--ink);color:white;position:absolute;right:-2px;top:0;padding:3px 5px;border-radius:20px}#menu{display:none}.hero{position:relative;height:min(900px,68vw);min-height:730px;overflow:hidden;background:#ffecda url('assets/bakery.png') center/cover}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#fff0e3c9,transparent 75%)}.hero-copy{position:absolute;z-index:6;left:4.3%;top:18%;width:32%}.eyebrow{background:#f6d5be;border-radius:30px;padding:10px 15px;font-size:10px;font-weight:800;letter-spacing:1px;display:inline-block;white-space:nowrap}h1{font-family:'Nunito',sans-serif;font-size:clamp(50px,5.2vw,87px);font-weight:1000;line-height:1.02;letter-spacing:-3px;margin:18px 0 22px;position:relative}.heart{font-family:'Grand Hotel',cursive;font-size:55px;position:absolute;right:-30px;bottom:8px;transform:rotate(15deg)}.hero-copy p{font-size:clamp(16px,1.4vw,22px);line-height:1.55;max-width:470px;margin-bottom:25px}.handwritten{position:absolute;top:21%;right:14%;z-index:5;font:clamp(29px,3.1vw,50px)/1.03 'Grand Hotel',cursive;transform:rotate(-8deg);text-align:center}.handwritten span{font-size:.88em}.handwritten i{display:block;font-style:normal;font-size:58px}.girl{position:absolute;left:30%;top:8%;width:52%;height:70%;z-index:2;pointer-events:none}.torso{position:absolute;left:23%;top:0;width:54%;height:100%;background-image:url('assets/character.png');background-size:300% 100%;background-position:center;background-repeat:no-repeat}.arm{position:absolute;top:61%;width:43%;height:36%;background:url('assets/character.png') left center/320% 290% no-repeat;will-change:transform}.arm-left{left:-7%;transform-origin:95% 35%;background-position:left center}.arm-right{right:-7%;transform-origin:5% 35%;background-position:right center}.doodle{position:absolute;z-index:3;color:#d77659;font:60px 'Grand Hotel';pointer-events:none}.d1{right:29%;top:46%;transform:rotate(12deg)}.d2{left:35%;top:58%;font-size:28px}.carousel{position:absolute;bottom:1%;height:41%;width:100%;z-index:8;touch-action:pan-y}.orbit{position:absolute;bottom:15%;left:8%;width:84%;height:32%;border-bottom:4px solid #fff8db;border-radius:50%;box-shadow:0 13px 15px -13px #fff8bd,0 18px 35px -8px #ffbe88;background:radial-gradient(ellipse,#ffc98855,transparent 65%)}.cookie-slide{position:absolute;left:50%;bottom:20%;width:23%;height:85%;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;transition:transform .85s var(--ease),opacity .8s,filter .8s;will-change:transform;transform-origin:center bottom;cursor:pointer}.cookie-art{width:100%;height:85%;background-image:url('assets/cookies.png');background-size:500% 100%;background-repeat:no-repeat;filter:drop-shadow(0 16px 10px #74371922)}.cookie-label{padding:13px 22px;background:#ffedda;border-radius:35px;text-align:center;white-space:nowrap;font-weight:700;font-size:17px;box-shadow:0 8px 30px #7944290b}.cookie-label small{display:block;font-size:13px;color:#a86444;font-weight:400;margin-top:3px}.arrow{position:absolute;top:40%;width:52px;height:52px;border-radius:50%;border:0;background:#fff0e3e8;font-size:38px;line-height:1;z-index:12;box-shadow:0 2px 15px #6b351210}.prev{left:14%}.next{right:14%}.arrow:hover{background:white;transform:scale(1.07)}.carousel-bottom{position:absolute;bottom:0;left:0;width:100%;display:flex;align-items:center;justify-content:center;gap:13px;font-size:11px;color:#6e3d27}#motion{background:#fff1dc;border:0;border-radius:50%;width:27px;height:27px;font-size:12px}#dots{display:flex;gap:8px}#dots button{width:7px;height:7px;padding:0;border:0;background:#bd9174;border-radius:50%}#dots button[aria-current=true]{background:var(--ink);width:20px;border-radius:10px}.promise{display:flex;justify-content:space-evenly;gap:15px;padding:25px;background:#efc9ac;font-size:13px;font-weight:600}.section{padding:90px 6%}.section-heading{text-align:center;margin-bottom:40px}.kicker{font-size:10px;font-weight:800;letter-spacing:2.5px;color:#ad6547}h2{font:1000 clamp(32px,3.1vw,49px)/1.12 'Nunito',sans-serif;letter-spacing:-1.7px;margin:12px 0 16px}.section p{line-height:1.8}.section-heading p{color:#936b55}.products{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.product{background:#f9e4d0;border-radius:100px 100px 18px 18px;padding:18px 18px 23px;text-align:center}.product .cookie-art{height:180px}.product h3{font:900 19px 'Nunito';margin:15px 0 5px}.product p{font-size:12px;min-height:44px;line-height:1.6;color:#92634b}.product button{border:1px solid #ad7d60;background:transparent;border-radius:30px;padding:10px 16px;font-size:12px;font-weight:700}.product button:hover{background:var(--ink);color:white}.story{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;background:#f6dfc8}.story-art{height:430px;position:relative;border-radius:50% 50% 30px 30px;background:#f9ebd9;overflow:hidden}.mini-girl{position:absolute;width:70%;height:100%;left:15%;top:0;background:url('assets/character.png') center/300% 100% no-repeat}.story-art span{position:absolute;bottom:10px;width:100%;text-align:center;background:#ffeddc;font:32px 'Grand Hotel';padding:8px}.story p{color:#835842;max-width:510px}.text-link{font-weight:700;background:none;border:0;text-decoration:underline;text-underline-offset:5px}.box-grid{display:grid;grid-template-columns:1fr 1fr;max-width:850px;gap:28px;margin:auto}.box-grid article{text-align:center;background:#fae4d0;padding:35px;border:1px solid #ebc5a9;border-radius:22px}.box-emoji{font-size:55px}.box-grid h3{font:900 28px 'Nunito';margin:16px 0}.contact{text-align:center;background:#f6dfc8}.contact form{max-width:700px;margin:30px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:18px;text-align:left}.contact label{font-size:12px;font-weight:700}.contact input,.contact textarea{display:block;width:100%;border:1px solid #d9b79a;background:#fff5e9;border-radius:12px;padding:14px;margin-top:8px;color:var(--ink)}.wide{grid-column:1/-1}textarea{height:110px;resize:vertical}form .button{justify-self:start}#form-status{font-size:12px}footer{padding:35px 6%;display:flex;align-items:center;gap:30px;flex-wrap:wrap}footer .brand{font-size:21px}footer span,footer small,footer>a:last-child{font-size:11px}footer small{color:#937258}dialog{border:0;border-radius:24px;background:#fff2e2;color:var(--ink);padding:35px;max-width:520px;width:90%;box-shadow:0 20px 80px #47241555}dialog::backdrop{background:#391f1666;backdrop-filter:blur(5px)}.close{position:absolute;right:15px;top:10px;border:0;background:none;font-size:30px}.box-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e8cdb5;padding:12px 0;font-size:14px}.box-row button{border:0;background:#f4d5ba;border-radius:50%;width:28px;height:28px;margin-left:12px}.preview-note{font-size:11px;line-height:1.6;color:#90694e}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,30px);padding:14px 25px;background:var(--ink);color:white;border-radius:40px;z-index:50;font-size:13px;opacity:0;transition:.3s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.girl{left:25%;width:65%}.cookie-art{height:auto;aspect-ratio:1;background-size:500% auto;flex-shrink:0}.girl .torso,.girl .arm{inset:0;width:100%;height:100%;background-size:100% 100%;background-position:center}.girl .torso{clip-path:polygon(18% 0,82% 0,82% 60%,69% 62%,69% 100%,32% 100%,32% 62%,18% 60%)}.girl .arm-left{clip-path:polygon(0 60%,32% 60%,32% 100%,0 100%);transform-origin:31% 72%}.girl .arm-right{clip-path:polygon(69% 60%,100% 60%,100% 100%,69% 100%);transform-origin:70% 72%}.mini-girl{background-size:100% auto;background-position:center top;width:150%;left:-25%;clip-path:polygon(20% 0,80% 0,80% 60%,68% 60%,68% 100%,32% 100%,32% 60%,20% 60%)}
@media(min-width:1700px){.hero{height:960px}.girl{left:31%;width:50%}}@media(max-width:1150px){header{gap:16px}.brand{font-size:23px}nav{gap:16px;font-size:13px}.order{font-size:13px;padding:15px 20px}.hero{min-height:690px}.hero-copy{width:35%;top:20%}.eyebrow{font-size:8px}.handwritten{right:6%}.girl{left:30%;width:59%;top:12%;height:65%}.products{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){html{scroll-padding-top:20px}header{height:85px;padding:18px 5%;gap:12px}.brand{font-size:23px;letter-spacing:-1px}.brand small{font-size:7px;letter-spacing:2px}.logo-cookie{font-size:30px}.order{display:none}.bag{margin-left:auto;font-size:26px}#menu{display:block;border:0;background:none;font-size:24px}nav{display:none;position:absolute;top:77px;left:4%;right:4%;background:#fff3e6;border-radius:16px;padding:15px;box-shadow:0 12px 30px #613a2922}nav.open{display:flex;flex-direction:column;gap:3px}nav a{padding:8px}.hero{height:950px;min-height:0;background-position:65% center}.hero-copy{top:110px;left:7%;width:86%;text-align:center}.eyebrow{font-size:8px;letter-spacing:.7px;padding:9px 13px}h1{font-size:53px;letter-spacing:-2px;margin:15px 0}h1 br{display:none}.heart{display:none}.hero-copy p{font-size:16px;line-height:1.55;max-width:350px;margin:0 auto 18px}.hero-copy .button{font-size:13px;padding:14px 22px}.girl{top:36%;left:3%;width:94%;height:47%}.handwritten{top:39%;right:3%;font-size:23px;z-index:3}.handwritten i{font-size:31px}.d1{right:6%;top:64%;font-size:40px}.d2{left:8%;top:65%}.carousel{height:29%;bottom:1%}.cookie-slide{width:53%;height:86%;bottom:23%}.cookie-label{font-size:15px;padding:10px 16px}.cookie-label small{font-size:11px}.prev{left:5%}.next{right:5%}.arrow{width:43px;height:43px}.orbit{left:-20%;width:140%;bottom:17%}.carousel-bottom{flex-wrap:wrap;bottom:1%;gap:10px}.carousel-bottom>span{width:100%;text-align:center;font-size:10px}.promise{font-size:10px;padding:17px 10px;flex-wrap:wrap;gap:10px}.promise span:last-child{display:none}.section{padding:58px 6%}.products{grid-template-columns:repeat(2,1fr);gap:12px}.product{padding:12px 12px 20px}.product .cookie-art{height:150px}.product h3{font-size:17px}.product:last-child{grid-column:1/-1;width:50%;justify-self:center}.story{grid-template-columns:1fr;gap:30px}.story-art{height:340px}.story>div:last-child{text-align:center}.story p{font-size:14px}.box-grid{grid-template-columns:1fr}.box-grid article{padding:25px}.contact form{grid-template-columns:1fr}.wide{grid-column:auto}footer{justify-content:center;text-align:center;gap:18px}footer small{width:100%}.toast{max-width:92%;white-space:nowrap;font-size:11px}}
@media(max-width:760px){h1{font-size:44px}h1 br{display:initial}.hero-copy{top:110px}.girl{top:45%;left:-10%;width:120%;height:32%}.handwritten{top:41%;font-size:21px}.cookie-slide{width:48%}.hero-copy .button{position:relative;z-index:5}.carousel{height:27%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Smaller cookies leave room for the baker’s open-hand shuffle. */
.carousel .cookie-slide{width:16%;transition:none;bottom:20%}.carousel .cookie-label{font-size:14px;padding:10px 17px}.carousel .cookie-label small{font-size:11px}.carousel .prev{left:9%;top:54%}.girl .torso,.girl .arm,.mini-girl{background-image:url(assets/character-shirt.png)}
@media(max-width:760px){.carousel .cookie-slide{width:34%;bottom:23%}.carousel .cookie-label{font-size:12px;padding:8px 12px}.carousel .cookie-label small{font-size:10px}.carousel .prev{left:4%;top:56%}}

/* Sweet Keet travels through her story and steps forward for the finale. */
.keet-journey{position:relative;isolation:isolate;background:#f6dfc8}.keet-stage{position:sticky;top:40px;height:680px;margin-bottom:-680px;z-index:2;pointer-events:none;overflow:hidden}.keet-mascot{position:absolute;left:5%;top:24px;width:38%;height:600px;object-fit:contain;object-position:center;transform-origin:center bottom;will-change:transform;filter:drop-shadow(0 20px 17px #6e3e1820)}.keet-journey .story{min-height:760px;position:relative;background:transparent}.keet-journey .story>div:last-child{position:relative;z-index:3}.keet-journey .story-art{height:560px;background:none;border-radius:0;overflow:visible;position:relative;z-index:1}.keet-journey .story-art .keet-name{position:absolute;top:35px;left:0;background:none;font:75px 'Grand Hotel';color:#d89a73;transform:rotate(-7deg)}.keet-journey .story-art .happy-heart{position:absolute;bottom:0;left:0;font:29px 'Grand Hotel';background:none;white-space:nowrap}.keet-journey .boxes{min-height:790px;position:relative;z-index:3;background:#fff4e4b3;padding-left:45%}.keet-journey .boxes h2{font-size:38px}.keet-journey .box-grid{gap:18px}.keet-journey .box-grid article{padding:28px 16px;background:#fae4d0e8}.keet-journey .box-grid .button{font-size:12px;padding:14px 16px;gap:8px}.keet-finale{position:relative;min-height:1000px;padding:60px 6% 40px;background:linear-gradient(#f6dfc8,#ffe9d2);text-align:center}.finale-copy{position:relative;z-index:1;max-width:900px;margin:auto}.finale-copy h2{font-size:clamp(32px,3.4vw,49px);margin-top:14px}.finale-copy p{font-size:23px;font-family:'Grand Hotel'}.keet-backdrop{position:absolute;top:35%;left:0;width:100%;font:1000 clamp(100px,15vw,220px)/.88 'Nunito';letter-spacing:-8px;color:#e1af8a80;z-index:0}.finale-action{position:absolute;left:0;bottom:70px;width:100%;z-index:5;display:flex;align-items:center;flex-direction:column;gap:16px}.finale-action>span{font:26px 'Grand Hotel'}.keet-journey.is-forward .keet-stage{z-index:4}.keet-journey.is-forward .keet-mascot{filter:drop-shadow(0 30px 24px #6e3e182b)}
@media(max-width:1000px) and (min-width:761px){.keet-journey .boxes{padding-left:40%}.keet-journey .box-grid{grid-template-columns:1fr}.keet-journey .box-grid article{padding:18px}.keet-journey .boxes{min-height:980px}}
@media(max-width:760px){.keet-stage{top:15px;height:520px;margin-bottom:-520px}.keet-mascot{left:0;width:70%;height:450px;top:0}.keet-journey .story{min-height:1020px;display:block;padding-top:20px}.keet-journey .story-art{height:500px}.keet-journey .story-art .keet-name{font-size:60px;top:15px;left:auto;right:0;width:auto}.keet-journey .story-art .happy-heart{font-size:25px;bottom:15px}.keet-journey .story>div:last-child{margin-top:25px}.keet-journey .boxes{min-height:1050px;padding:60px 6%;background:#fff4e4e8}.keet-journey .boxes .section-heading,.keet-journey .box-grid{position:relative;z-index:3}.keet-journey .boxes .section-heading{margin-bottom:35px}.keet-journey .box-grid{grid-template-columns:1fr}.keet-journey .box-grid article{padding:28px}.keet-journey .boxes h2{font-size:34px}.keet-finale{min-height:1080px;padding-top:55px}.finale-copy h2{font-size:31px;line-height:1.16}.finale-copy p{font-size:24px}.keet-backdrop{top:36%;font-size:110px;letter-spacing:-5px}.finale-action{bottom:70px}.finale-action .button{font-size:14px}.keet-journey.is-forward .keet-stage{top:15px}}
@media(prefers-reduced-motion:reduce){.keet-stage{position:absolute;top:20px;width:100%;margin-bottom:0}.keet-mascot{will-change:auto}.keet-journey.is-forward .keet-stage{z-index:2}}

.keet-stage{height:min(850px,calc(100vh - 40px));margin-bottom:calc(-1 * min(850px,calc(100vh - 40px)))}.keet-mascot{height:min(560px,calc(100vh - 100px))}
@media(max-width:760px){.keet-stage{height:min(740px,calc(100svh - 15px));margin-bottom:calc(-1 * min(740px,calc(100svh - 15px)))}.keet-mascot{height:400px}}

.keet-journey .boxes{background:linear-gradient(90deg,transparent 35%,#fff4e4 48%)}.keet-journey .story-art .keet-name{top:0}.keet-journey .story-art .happy-heart{bottom:-22px}
@media(max-width:760px){.keet-journey .boxes{background:#fff4e450}.keet-journey .story-art .happy-heart{bottom:10px}}

.keet-journey{overflow:clip}

.keet-mascot{height:min(500px,calc(100vh - 260px))}.finale-copy{z-index:5;background:#fce5cced;border-radius:24px;padding:12px 24px}.finale-copy h2{font-size:clamp(30px,3vw,44px)}.finale-copy p{margin-bottom:8px}
@media(max-width:760px){.keet-mascot{height:400px}.finale-copy{padding:12px 15px}.finale-copy h2{font-size:29px}}

/* A compact oval ring turns each cookie toward the baker as it circles. */
.carousel .cookie-slide{left:57%;bottom:24%;width:15%}.carousel .cookie-art{transform-style:preserve-3d;backface-visibility:visible;will-change:transform}.carousel .cookie-label{position:relative;z-index:1}.carousel .orbit{left:27%;width:60%;bottom:22%;height:44%;border:2px solid #fff1d68c;border-bottom:4px solid #fff8db}.carousel .prev{left:25%;z-index:120}.carousel-bottom{z-index:120}
@media(max-width:760px){.carousel .cookie-slide{left:50%;width:32%;bottom:24%}.carousel .orbit{left:8%;width:84%;height:43%;bottom:22%}.carousel .prev{left:5%}}

/* Three matching poses follow the scroll, with a kiss at the settled finale. */
.keet-pose{position:absolute;left:50%;top:0;height:100%;aspect-ratio:627/836;transform:translateX(-50%);background:url('assets/sweet-keet-poses-shirt.png') 0 0/300% 100% no-repeat;opacity:0;transition:opacity .32s ease}.pose-up{background-position:50% 0}.pose-kiss{background-position:100% 0}.keet-mascot[data-pose=hips] .pose-hips,.keet-mascot[data-pose=up] .pose-up,.keet-mascot[data-pose=kiss] .pose-kiss{opacity:1}.kiss-heart{position:absolute;left:30%;top:37%;color:#db7569;font:40px 'Nunito';opacity:0}.keet-mascot[data-pose=kiss] .kiss-heart{animation:keet-kiss 1.6s ease-out both}@keyframes keet-kiss{0%{opacity:0;transform:translate(0,0) scale(.5)}25%{opacity:1}100%{opacity:0;transform:translate(-65px,-65px) scale(1.3)}}
@media(prefers-reduced-motion:reduce){.kiss-heart{display:none}}

.keet-journey.is-forward .finale-copy{z-index:1}

/* Sweet Keet presents the custom-cookie form from its right side. */
.contact-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr);gap:4%;align-items:center;max-width:1100px;margin:20px auto 0}.contact .contact-layout form{width:100%;margin:0;max-width:none}.contact-baker{position:relative;text-align:center;align-self:end}.contact-baker img{display:block;width:100%;height:500px;object-fit:contain;filter:drop-shadow(0 15px 16px #6e3e1820)}.contact-baker span{display:block;font:30px 'Grand Hotel';margin:8px 0 0}
@media(max-width:760px){.contact-layout{display:flex;flex-direction:column-reverse;gap:25px}.contact-baker{align-self:center;width:85%;max-width:330px}.contact-baker img{height:320px}.contact-baker span{font-size:26px}.contact .contact-layout form{margin:0}}


/* One sticky mascot travels all the way into the form. */
.keet-mascot{transform-origin:center top}.pose-present{aspect-ratio:2/3;background:url('assets/sweet-keet-present-shirt.png') center/contain no-repeat}.keet-mascot[data-pose=present] .pose-present{opacity:1}.keet-stage{overflow:visible}.keet-journey .contact{position:relative;background:transparent}.contact-landing{height:500px;width:100%}.contact form,.contact>h2,.contact>p,.contact>.kicker{position:relative;z-index:5}
@media(max-width:760px){.contact-landing{height:320px}.contact-baker{width:85%}}
@media(prefers-reduced-motion:reduce){.contact-landing{background:url('assets/sweet-keet-present-shirt.png') center/contain no-repeat}.keet-mascot .pose-present{display:none}}

