
:root{
  --ivory:#fffaf4;
  --paper:#fffdf9;
  --cream:#f5e4d8;
  --cream-2:#eed2c1;
  --blush:#e6a3a5;
  --rose:#c96d79;
  --rose-deep:#a84c5c;
  --cocoa:#3b251d;
  --espresso:#24150f;
  --gold:#b99558;
  --ink:#2b1913;
  --muted:#725d55;
  --line:rgba(43,25,19,.20);
  --white:#fffdf9;
  --max:1540px;
  --display:"Sora","Avenir Next",Avenir,"Segoe UI",Arial,sans-serif;
  --sans:"DM Sans",Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--espresso)}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.16;background-image:radial-gradient(rgba(57,32,23,.22) .48px,transparent .58px);background-size:5px 5px;mix-blend-mode:multiply}
img{display:block;width:100%;height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit}
::selection{background:var(--blush);color:var(--espresso)}

.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}
.skip-link{position:fixed;z-index:10000;left:18px;top:18px;transform:translateY(-180%);background:var(--espresso);color:white;padding:12px 18px;text-decoration:none}
.skip-link:focus{transform:none}
:focus-visible{outline:2px solid var(--rose-deep);outline-offset:4px}

/* Header: deliberately graphic, not a floating app bar */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,250,244,.92);border-bottom:1px solid rgba(43,25,19,.12);backdrop-filter:blur(18px);transition:background .25s ease}
.header-shell{width:min(var(--max),calc(100% - 52px));height:104px;margin:0 auto;display:grid;grid-template-columns:94px 1fr;align-items:center;gap:38px}
.brand{display:block;width:82px;height:82px;position:relative;z-index:2}
.brand img{width:100%;height:100%;object-fit:cover;border-radius:50%;box-shadow:0 8px 32px rgba(60,32,22,.15)}
.site-nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(18px,2vw,38px)}
.nav-link{font-size:14px;font-weight:600;text-decoration:none;letter-spacing:.025em;position:relative;padding:14px 0}
.nav-link::after{content:"";position:absolute;left:0;bottom:7px;width:100%;height:1px;background:var(--rose-deep);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav-link:hover::after,.nav-link.is-active::after{transform:scaleX(1)}
.nav-cta{display:inline-flex;align-items:center;min-height:48px;padding:0 22px;text-decoration:none;background:var(--espresso);color:var(--ivory);font-size:14px;font-weight:700;border:1px solid var(--espresso);transition:background .2s ease,color .2s ease,transform .2s ease}
.nav-cta:hover{background:var(--rose-deep);border-color:var(--rose-deep);transform:translateY(-2px)}
.menu-toggle{display:none;border:0;background:none;width:48px;height:48px;padding:10px;cursor:pointer}
.menu-toggle span:not(.sr-only){height:1.5px;background:var(--espresso);display:block;margin:7px 0}

h1,h2,h3{font-family:var(--display);font-weight:400;line-height:.88;letter-spacing:-.045em;margin:0;text-wrap:balance}
h1{font-size:clamp(74px,10.4vw,184px)}
h2{font-size:clamp(54px,6.7vw,108px)}
h3{font-size:clamp(34px,3.4vw,54px)}
p{margin:0 0 1.18em}
em{font-weight:400;color:var(--rose-deep)}
.section-pad{width:min(var(--max),calc(100% - 88px));margin:0 auto;padding:clamp(108px,10vw,180px) 0}
.button-row{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:14px 26px;border:1px solid currentColor;border-radius:0;background:transparent;text-decoration:none;font-weight:700;font-size:14px;letter-spacing:.025em;transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease}
.button:hover{transform:translateY(-3px)}
.button-primary{background:var(--espresso);color:var(--ivory);border-color:var(--espresso)}
.button-primary:hover{background:var(--rose-deep);border-color:var(--rose-deep)}
.button-dark{background:var(--espresso);color:var(--ivory);border-color:var(--espresso)}
.button-dark:hover{background:transparent;color:var(--espresso)}
.button-light{background:var(--ivory);color:var(--espresso);border-color:var(--ivory)}
.button-light:hover{background:transparent;color:var(--ivory)}
.text-link{display:inline-block;text-decoration:none;font-weight:700;position:relative;padding-bottom:7px}
.text-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:left;transition:transform .22s ease}
.text-link:hover{color:var(--rose-deep)}
.text-link:hover::after{transform:scaleX(.55)}

/* HOME — campaign-style hero */
.home-hero{position:relative;min-height:calc(100svh - 104px);background:var(--espresso);color:var(--ivory);display:grid;grid-template-columns:minmax(430px,.8fr) minmax(0,1.2fr);overflow:hidden}
.hero-copy{position:relative;z-index:3;padding:clamp(72px,7.5vw,140px) clamp(36px,6.5vw,120px);display:flex;flex-direction:column;justify-content:center}
.hero-kicker{display:none}
.hero-copy h1{font-size:clamp(80px,9.8vw,170px);max-width:860px;line-height:.82;letter-spacing:-.055em}
.hero-copy h1 em{display:block;color:var(--blush);padding-left:.16em}
.hero-lede{font-size:clamp(19px,1.45vw,25px);line-height:1.48;max-width:590px;color:#f3ded4;margin:40px 0 34px}
.hero-copy .button-primary{background:var(--blush);color:var(--espresso);border-color:var(--blush)}
.hero-copy .button-primary:hover{background:var(--ivory);border-color:var(--ivory)}
.hero-copy .text-link{color:var(--ivory)}
.hero-image{position:relative;margin:0;min-height:680px;overflow:hidden;clip-path:polygon(10% 0,100% 0,100% 100%,0 100%)}
.hero-image::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(36,21,15,.35),transparent 26%),linear-gradient(0deg,rgba(36,21,15,.3),transparent 30%)}
.hero-image img{position:absolute;inset:-2%;width:104%;height:104%;object-fit:cover;object-position:center;transform:scale(1.015);animation:heroDrift 12s ease-in-out infinite alternate}
@keyframes heroDrift{to{transform:scale(1.07) translate3d(-1%,1%,0)}}
.hero-image figcaption{position:absolute;z-index:3;right:36px;bottom:30px;width:min(340px,50%);padding:0 0 9px;border-bottom:1px solid rgba(255,255,255,.7);background:transparent;box-shadow:none;color:white;font-size:13px;line-height:1.5;text-align:right}
.hero-trust{position:absolute;left:clamp(36px,6.5vw,120px);right:clamp(36px,6.5vw,120px);bottom:28px;display:flex;gap:28px;flex-wrap:wrap;padding-top:17px;border-top:1px solid rgba(255,255,255,.22);font-size:13px;color:#ddc6bb}
.hero-trust span+span::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--blush);margin:0 24px 3px 0}

/* brand movement */
.brand-marquee{overflow:hidden;background:var(--blush);color:var(--espresso);border-top:1px solid var(--espresso);border-bottom:1px solid var(--espresso)}
.brand-marquee-track{display:flex;width:max-content;white-space:nowrap;animation:marquee 26s linear infinite}
.brand-marquee span{font-family:var(--display);font-size:clamp(58px,7.6vw,124px);line-height:.94;padding:.18em .38em .22em;letter-spacing:-.045em}
.brand-marquee i{font-style:italic;color:var(--ivory)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Editorial service index — rows, not cards */
.quick-find{position:relative}
.quick-find h2{max-width:1080px;margin-bottom:74px}
.quick-find-grid{border-top:1px solid var(--line)}
.quick-find-grid a{position:relative;display:grid;grid-template-columns:.68fr 1fr minmax(140px,240px);gap:36px;align-items:center;min-height:168px;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;overflow:hidden}
.quick-find-grid strong{font-family:var(--display);font-size:clamp(40px,4.4vw,70px);font-weight:400;line-height:.92;position:relative;z-index:2}
.quick-find-grid span{font-size:17px;max-width:650px;color:var(--muted);position:relative;z-index:2}
.quick-find-grid img{height:118px;object-fit:cover;transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .3s ease;filter:saturate(.9)}
.quick-find-grid a:hover strong{color:var(--rose-deep)}
.quick-find-grid a:hover img{transform:scale(1.08);filter:saturate(1.08)}

/* big photographic break */
.craft-strip{display:grid;grid-template-columns:1.48fr .74fr .74fr;height:min(74vw,900px);min-height:620px;background:var(--espresso);gap:3px;overflow:hidden}
.craft-strip figure{margin:0;overflow:hidden;background:var(--cream)}
.craft-strip img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.craft-strip figure:hover img{transform:scale(1.035)}
.craft-strip figure:nth-of-type(2){transform:translateY(8%);height:84%}
.craft-strip figure:nth-of-type(3){align-self:end;height:76%}

/* Garden feature: poster composition */
.feature-split{position:relative;display:grid;grid-template-columns:1.18fr .82fr;min-height:820px;overflow:hidden}
.feature-image{position:relative;min-height:680px;overflow:hidden}
.feature-image img{width:100%;height:100%;object-fit:cover}
.feature-copy{position:relative;padding:clamp(82px,8vw,148px) clamp(48px,7vw,124px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.feature-copy h2{margin-bottom:38px;max-width:760px}
.feature-copy p{font-size:clamp(18px,1.35vw,22px);max-width:640px}
.feature-rose{background:var(--blush);color:var(--espresso)}
.feature-rose .feature-image::after{content:"GARDEN";position:absolute;z-index:2;left:-.04em;bottom:-.18em;font-family:var(--display);font-size:clamp(110px,17vw,300px);line-height:.8;color:rgba(255,250,244,.77);letter-spacing:-.07em;pointer-events:none}
.feature-cream{background:var(--cream)}
.price-note{margin-top:10px;padding-top:24px;border-top:1px solid rgba(43,25,19,.28)}

/* Number cake editorial collage */
.number-story{position:relative;display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(60px,8vw,150px);align-items:center;overflow:hidden}
.number-copy{position:relative;z-index:3}
.number-copy h2{margin-bottom:34px}
.number-copy p{font-size:20px;color:var(--muted);max-width:620px}
.number-strip{position:relative;display:block;min-height:760px}
.number-strip img{position:absolute;object-fit:cover;box-shadow:0 32px 80px rgba(52,30,21,.18);border:8px solid var(--paper)}
.number-strip img:nth-child(1){width:45%;height:64%;left:2%;top:8%;z-index:2;transform:rotate(-5deg)}
.number-strip img:nth-child(2){width:44%;height:61%;right:5%;top:2%;z-index:1;transform:rotate(5deg)}
.number-strip img:nth-child(3){width:42%;height:58%;left:32%;bottom:0;z-index:3;transform:rotate(1deg)}

.delivery-showcase{position:relative;min-height:880px;color:white;background:var(--espresso);overflow:hidden}
.delivery-showcase-media{position:absolute;inset:0;min-height:0}
.delivery-showcase-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,14,10,.82) 0%,rgba(28,14,10,.55) 35%,rgba(28,14,10,.12) 68%,rgba(28,14,10,.28) 100%)}
.delivery-showcase-media img{width:100%;height:100%;object-fit:cover}
.delivery-showcase-copy{position:relative;z-index:2;min-height:880px;width:min(var(--max),calc(100% - 88px));margin:0 auto;padding:clamp(100px,11vw,190px) 0;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start}
.delivery-showcase-copy h2{font-size:clamp(70px,9vw,150px);max-width:970px;color:var(--ivory)}
.delivery-showcase-copy p{font-size:20px;max-width:560px;color:#f1ddd2;margin:30px 0 36px}

.story-home{display:grid;grid-template-columns:1.15fr .55fr;gap:clamp(80px,9vw,170px);align-items:center}
.story-copy h2{margin-bottom:34px;max-width:1000px}
.story-copy p{font-size:21px;max-width:800px;color:var(--muted)}
.story-portrait{position:relative}
.story-portrait::before{content:"";position:absolute;left:-34px;top:34px;width:100%;height:100%;border:1px solid var(--gold);z-index:-1}
.story-portrait img{width:100%;max-width:none;aspect-ratio:.8;object-fit:cover;box-shadow:none}

.community-feature{width:min(var(--max),calc(100% - 88px));margin:0 auto;padding:clamp(110px,10vw,180px) 0;display:grid;grid-template-columns:1fr minmax(380px,.68fr);align-items:center;gap:clamp(70px,10vw,180px);border-top:1px solid var(--line)}
.community-feature-copy h2{font-size:clamp(70px,8vw,132px);margin-bottom:34px}
.community-feature-copy p{font-size:20px;max-width:760px;color:var(--muted)}
.community-feature-poster{margin:0;position:relative;transform:rotate(2deg)}
.community-feature-poster::before{content:"";position:absolute;inset:24px -24px -24px 24px;background:var(--blush);z-index:-1}
.community-feature-poster img{width:100%;max-width:540px;margin-left:auto;box-shadow:0 36px 80px rgba(55,31,22,.17)}

.home-contact{position:relative;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:80px;align-items:end}
.home-contact h2{font-size:clamp(64px,8vw,130px);max-width:1100px}
.home-contact p{max-width:760px;font-size:20px;color:var(--muted);margin-top:28px}

/* GENERAL PAGE HEROES */
.page-hero,.menu-hero,.corporate-hero{position:relative;display:grid;grid-template-columns:.78fr 1.22fr;min-height:780px;background:var(--espresso);color:var(--ivory);overflow:hidden}
.page-title,.menu-hero>div:first-child,.corporate-copy{position:relative;z-index:2;padding:clamp(72px,7vw,130px) clamp(40px,6.2vw,115px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.page-title h1,.menu-hero h1,.corporate-copy h1{font-size:clamp(74px,8.4vw,142px);line-height:.85}
.page-title p,.menu-hero>div:first-child>p,.corporate-copy>p{font-family:var(--display);font-size:clamp(28px,2.8vw,46px);line-height:1.06;color:var(--blush);margin:34px 0;max-width:700px}
.page-hero-media,.menu-hero-img,.corporate-media,.delivery-image{position:relative;min-height:780px;overflow:hidden;clip-path:polygon(8% 0,100% 0,100% 100%,0 100%)}
.page-hero-media::after,.menu-hero-img::after,.corporate-media::after,.delivery-image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(36,21,15,.22),transparent 38%);pointer-events:none}
.page-hero-media img,.menu-hero-img img,.corporate-media img,.delivery-image img{width:100%;height:100%;object-fit:cover}
.page-hero-image .page-hero-media{clip-path:none}

.intro-wide h2{max-width:1260px;margin-bottom:72px}
.two-col-copy{display:grid;grid-template-columns:1fr 1fr;gap:clamp(50px,7vw,120px);max-width:1350px}
.two-col-copy p{font-size:20px;color:var(--muted)}

.price-band{background:var(--blush);color:var(--espresso);padding:clamp(72px,7vw,110px) max(44px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;border-top:1px solid var(--espresso);border-bottom:1px solid var(--espresso)}
.price-band strong{display:block;font-family:var(--display);font-size:clamp(52px,6vw,94px);font-weight:400;line-height:.9}
.price-band span{display:block;margin-top:18px;font-size:18px}
.price-band p{font-size:18px;margin:0;max-width:680px}

.gallery-mosaic{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:stretch}
.gallery-mosaic figure{margin:0;overflow:hidden;min-height:520px;background:var(--cream)}
.gallery-mosaic figure.wide{grid-row:span 2;min-height:1100px}
.gallery-mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.gallery-mosaic figure:hover img{transform:scale(1.03)}
.gallery-mosaic figure:nth-child(2){margin-top:80px}
.gallery-mosaic figure:nth-child(3){margin-bottom:80px}

.pullapart{display:grid;grid-template-columns:1.05fr .85fr;gap:clamp(70px,9vw,160px);border-top:1px solid var(--line)}
.pullapart h2{margin-bottom:34px}.pullapart p{font-size:20px;color:var(--muted)}
.pullapart-details{align-self:center;border-left:1px solid var(--line);padding-left:clamp(38px,5vw,84px)}
.note-section{width:min(1120px,calc(100% - 88px));margin:0 auto;padding:0 0 clamp(110px,10vw,180px)}
.note-section h2{font-size:clamp(48px,5vw,76px);margin-bottom:26px}.note-section p{color:var(--muted)}

.closing-cta{position:relative;background:var(--espresso);color:var(--ivory);padding:clamp(100px,11vw,190px) max(44px,calc((100vw - var(--max))/2));overflow:hidden}
.closing-cta::after{content:"SWEET";position:absolute;right:-.05em;bottom:-.26em;font-family:var(--display);font-size:clamp(150px,24vw,430px);line-height:1;color:rgba(230,163,165,.07);letter-spacing:-.08em;pointer-events:none}
.closing-cta h2{position:relative;z-index:2;max-width:1120px;font-size:clamp(68px,8.2vw,136px)}
.closing-cta p{position:relative;z-index:2;max-width:720px;margin:32px 0;color:#e8d2c8;font-size:20px}.closing-cta .button{position:relative;z-index:2}

/* Cupcakes */
.menu-section{position:relative}
.menu-heading{display:grid;grid-template-columns:1.1fr .72fr;gap:80px;align-items:end;margin-bottom:72px}
.menu-heading p{font-size:20px;color:var(--muted);max-width:560px}
.flavor-list{border-top:1px solid var(--line)}
.flavor-list section{display:grid;grid-template-columns:.7fr 1.3fr;gap:60px;padding:32px 0;border-bottom:1px solid var(--line)}
.flavor-list h3{font-size:clamp(34px,3.4vw,54px)}
.flavor-list p{color:var(--muted);margin:7px 0 0;font-size:18px}
.cupcake-studio{display:grid;grid-template-columns:1.2fr .62fr .72fr;min-height:720px;background:var(--espresso);color:white;overflow:hidden}
.cupcake-studio-media{overflow:hidden;min-height:720px}.cupcake-studio-media img{width:100%;height:100%;object-fit:cover}
.cupcake-studio-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(60px,6vw,110px) clamp(38px,4.8vw,82px)}
.cupcake-studio-copy h2{font-size:clamp(52px,5.6vw,90px);margin-bottom:30px}.cupcake-studio-copy p{color:#ecd8cf;font-size:19px}
.dozen-band{display:grid;grid-template-columns:1fr 1fr auto;gap:48px;align-items:center;padding:clamp(74px,7vw,112px) max(44px,calc((100vw - var(--max))/2));background:var(--blush);color:var(--espresso)}
.dozen-band h2{font-size:clamp(48px,5vw,82px)}.dozen-band p{margin:0;max-width:680px}
.policy-link{display:grid;grid-template-columns:.72fr 1.28fr;gap:80px;border-top:1px solid var(--line)}
.policy-link p{font-size:20px;color:var(--muted)}

/* Garden */
.garden-hero{grid-template-columns:.72fr 1.28fr}
.garden-duo{display:grid;grid-template-columns:1fr 1fr;min-height:780px;background:var(--cream)}
.garden-duo img{width:100%;height:86%;object-fit:cover;align-self:start}.garden-duo img:nth-child(2){height:86%;align-self:end}
.garden-pricing{display:grid;grid-template-columns:1fr 1fr;background:var(--blush);border-top:1px solid var(--espresso);border-bottom:1px solid var(--espresso)}
.garden-pricing>div{padding:clamp(74px,7vw,120px) max(40px,calc((100vw - var(--max))/2));}
.garden-pricing>div:first-child{padding-right:clamp(40px,5vw,90px)}
.garden-pricing>div:last-child{padding-left:clamp(40px,5vw,90px);border-left:1px solid rgba(43,25,19,.28)}
.garden-pricing h2{font-size:clamp(44px,4.8vw,78px);margin-bottom:24px}.garden-pricing strong{font-family:var(--display);font-weight:400;font-size:34px}.garden-pricing p{max-width:620px}
.planning-note h2{max-width:960px;margin-bottom:28px}.planning-note p{max-width:940px;color:var(--muted);font-size:20px}

/* Delivery */
.delivery-image{padding:0;background:var(--cream)}
.delivery-scene{position:relative;height:min(67vw,900px);min-height:680px;overflow:hidden;background:var(--espresso)}
.delivery-scene>img{width:100%;height:100%;object-fit:cover}
.delivery-scene::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(28,14,10,.66),transparent 55%)}
.delivery-scene>div{position:absolute;z-index:2;left:max(44px,calc((100vw - var(--max))/2));bottom:55px;width:min(800px,calc(100% - 88px));background:transparent;color:white;padding:0}
.delivery-scene h2{font-size:clamp(62px,7.7vw,126px)}.delivery-scene p{font-size:19px;color:#f0ddd3;max-width:620px;margin-top:22px}
.delivery-rates h2{margin-bottom:58px}.rate-list{border-top:1px solid var(--line);margin-bottom:36px}.rate-list div{display:flex;justify-content:space-between;gap:24px;padding:23px 0;border-bottom:1px solid var(--line);font-size:19px}.rate-list strong{color:var(--rose-deep)}.delivery-rates>p{max-width:920px;color:var(--muted)}
.delivery-perfect{display:grid;grid-template-columns:1fr 1fr;gap:100px;padding:clamp(96px,9vw,150px) max(44px,calc((100vw - var(--max))/2));background:var(--espresso);color:white}.delivery-perfect h2{margin-bottom:30px}.delivery-perfect p{color:#ead4ca;font-size:19px}.plain-list{display:grid;grid-template-columns:1fr 1fr;align-content:center}.plain-list span{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.17)}

/* Corporate */
.corporate-uses h2{max-width:1200px;margin-bottom:70px}.plain-list.columns{grid-template-columns:repeat(3,1fr);gap:0 44px;border-top:1px solid var(--line)}.plain-list.columns span{color:var(--ink);border-bottom:1px solid var(--line)}
.cover-cupcakes img{object-position:center}

/* About */
.about-hero{position:relative;display:grid;grid-template-columns:1.1fr .62fr;align-items:center;gap:clamp(70px,9vw,160px);min-height:760px}
.about-hero::before{content:"OUR STORY";position:absolute;right:-.02em;top:.02em;font-family:var(--display);font-size:clamp(110px,18vw,310px);line-height:.8;color:rgba(201,109,121,.075);letter-spacing:-.07em;z-index:-1;white-space:nowrap}
.about-hero p{font-family:var(--display);font-size:clamp(30px,3vw,48px);line-height:1.05;color:var(--rose-deep);margin-top:38px;max-width:900px}
.about-hero img{width:100%;max-width:480px;aspect-ratio:.8;object-fit:cover;box-shadow:28px 28px 0 var(--blush)}
.founder-story{border-top:1px solid var(--line)}.founder-story h2{margin-bottom:72px}.story-columns{columns:2;column-gap:90px}.story-columns p{break-inside:avoid;font-size:20px;color:var(--muted)}
blockquote{font-family:var(--display);font-size:clamp(52px,6.6vw,106px);line-height:.98;text-align:left;color:var(--rose-deep);margin:100px 0 0;max-width:1250px;letter-spacing:-.04em}
.about-photo-band{display:grid;grid-template-columns:.8fr 1.35fr .85fr;height:720px;background:var(--espresso);gap:3px;overflow:hidden}.about-photo-band img{width:100%;height:100%;object-fit:cover}.about-photo-band img:first-child{height:78%;align-self:start}.about-photo-band img:last-child{height:82%;align-self:end}

/* FAQ / Policy */
.faq-hero,.policy-hero{padding-top:clamp(120px,11vw,200px);padding-bottom:80px}.faq-hero h1,.policy-hero h1{font-size:clamp(78px,10.5vw,176px)}.faq-hero p,.policy-hero p{max-width:790px;color:var(--muted);font-size:21px;margin-top:38px}
.faq-list{padding-top:0;max-width:1240px}.faq-list details{border-top:1px solid var(--line)}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{list-style:none;cursor:pointer;padding:32px 70px 32px 0;font-family:var(--display);font-size:clamp(32px,3.2vw,52px);line-height:1.06;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-family:var(--sans);font-size:30px;font-weight:300;color:var(--rose-deep)}.faq-list details[open] summary::after{content:"−"}.faq-list details div{max-width:880px;padding:0 0 32px;color:var(--muted);font-size:18px}
.policy-sections{padding-top:0;max-width:1240px}.policy-sections section{display:grid;grid-template-columns:.62fr 1.38fr;gap:80px;border-top:1px solid var(--line);padding:38px 0}.policy-sections section:last-child{border-bottom:1px solid var(--line)}.policy-sections h2{font-size:clamp(34px,3.4vw,54px)}.policy-sections p{color:var(--muted);margin:0}

/* Contact */
.contact-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(70px,9vw,160px);align-items:start}.contact-intro{position:sticky;top:150px}.contact-intro h1{font-size:clamp(72px,8.4vw,138px)}.contact-intro>p{font-size:20px;margin-top:34px;max-width:600px;color:var(--muted)}.contact-direct{margin-top:50px;padding-top:28px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.contact-direct a{font-size:20px;font-weight:700}.contact-direct p{color:var(--muted);margin-top:12px}
.inquiry-form{background:var(--cream);padding:clamp(38px,5vw,78px);box-shadow:24px 24px 0 var(--blush)}.inquiry-form label{display:flex;flex-direction:column;gap:9px;font-weight:700;font-size:14px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}.inquiry-form>label{margin-bottom:24px}.inquiry-form input,.inquiry-form select,.inquiry-form textarea{width:100%;border:0;border-bottom:1px solid rgba(43,25,19,.35);background:transparent;color:var(--ink);border-radius:0;padding:15px 0;min-height:52px;outline-offset:4px}.inquiry-form textarea{resize:vertical;min-height:170px}.inquiry-form .consent{display:grid;grid-template-columns:auto 1fr;align-items:start;font-weight:500;line-height:1.45;gap:11px}.inquiry-form .consent input{width:19px;min-height:0;height:19px;margin-top:2px}.form-note{font-size:13px;color:var(--muted);margin-top:16px}
.contact-photo-band{height:660px;display:grid;grid-template-columns:.76fr .92fr 1.32fr;gap:3px;background:var(--espresso);overflow:hidden}.contact-photo-band img{width:100%;height:100%;object-fit:cover}.contact-photo-band img:first-child{height:80%;align-self:start}.contact-photo-band img:nth-child(2){height:88%;align-self:end}
.contact-facts{display:grid;grid-template-columns:repeat(3,1fr);background:var(--blush);color:var(--espresso);padding:0 max(44px,calc((100vw - var(--max))/2));border-top:1px solid var(--espresso);border-bottom:1px solid var(--espresso)}.contact-facts>div{padding:70px 44px}.contact-facts>div+div{border-left:1px solid rgba(43,25,19,.25)}.contact-facts h2{font-size:clamp(36px,3.7vw,58px);margin-bottom:16px}.contact-facts p{margin:0}

.not-found{min-height:72vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.not-found p{font-size:21px;color:var(--muted);margin:32px 0}

/* Footer as final brand moment */
.site-footer{background:var(--espresso);color:var(--ivory);position:relative;overflow:hidden}
.site-footer::before{content:"CUPCAKE BLVD";position:absolute;left:-.04em;bottom:-.22em;font-family:var(--display);font-size:clamp(110px,19vw,340px);line-height:.8;letter-spacing:-.07em;color:rgba(230,163,165,.055);white-space:nowrap;pointer-events:none}
.footer-main{position:relative;z-index:2;width:min(var(--max),calc(100% - 88px));margin:0 auto;padding:96px 0 76px;display:grid;grid-template-columns:1.45fr repeat(3,.65fr);gap:70px}.footer-brand img{width:148px;border-radius:50%;margin-bottom:26px}.footer-brand p{color:#ddc5ba;max-width:350px;font-family:var(--display);font-size:27px;line-height:1.15}.footer-block{display:flex;flex-direction:column;gap:11px}.footer-block h2{font-family:var(--sans);font-size:14px;text-transform:none;letter-spacing:.02em;margin-bottom:16px;color:var(--blush);font-weight:700}.footer-block a{color:#f7e9e2;text-decoration:none;font-size:15px}.footer-block a:hover{color:var(--blush)}.footer-bottom{position:relative;z-index:2;width:min(var(--max),calc(100% - 88px));margin:0 auto;border-top:1px solid rgba(255,255,255,.14);padding:24px 0 38px;display:flex;justify-content:space-between;gap:30px;color:#bda49a;font-size:13px}.footer-bottom p{margin:0}

/* reveal motion, applied by JS; content remains visible without JS */
.reveal-ready main>section{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.2,1)}
.reveal-ready main>section.is-visible{opacity:1;transform:none}
.reveal-ready main>section.home-hero{opacity:1;transform:none}

@media (max-width:1180px){
  .site-nav{gap:17px}.nav-link{font-size:13px}.header-shell{width:calc(100% - 40px)}
  .home-hero{grid-template-columns:.92fr 1.08fr}.hero-copy{padding-left:50px;padding-right:38px}.hero-trust{left:50px;right:38px}
  .feature-copy{padding:80px 60px}.footer-main{grid-template-columns:1.25fr 1fr 1fr}.footer-block:last-child{grid-column:2/span 2}
  .cupcake-studio{grid-template-columns:1fr .8fr}.cupcake-studio-copy{grid-column:2;grid-row:1}.cupcake-studio-media:last-child{grid-column:1/span 2;min-height:500px;height:500px}
}

@media (max-width:900px){
  body{font-size:17px}body::before{opacity:.1}.site-header{background:rgba(255,250,244,.97)}
  .header-shell{height:82px;width:calc(100% - 28px);grid-template-columns:64px 1fr}.brand{width:62px;height:62px}.menu-toggle{display:block;justify-self:end}.site-nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--ivory);padding:26px 22px 34px;flex-direction:column;align-items:stretch;gap:4px;border-bottom:1px solid var(--line);box-shadow:0 24px 50px rgba(43,25,19,.12)}.site-nav.is-open{display:flex}.nav-link,.nav-cta{padding:14px 8px;font-size:16px}.nav-link::after{display:none}.nav-cta{text-align:center;justify-content:center;margin-top:10px}
  .section-pad{width:calc(100% - 40px);padding:92px 0}
  .home-hero,.page-hero,.menu-hero,.corporate-hero,.feature-split,.number-story,.delivery-perfect,.contact-layout,.about-hero{grid-template-columns:1fr}
  .home-hero{min-height:0}.hero-copy{min-height:650px;padding:78px 24px 100px}.hero-copy h1{font-size:clamp(76px,20vw,130px)}.hero-image{min-height:590px;clip-path:none}.hero-image figcaption{right:20px;bottom:20px}.hero-trust{left:24px;right:24px;bottom:28px}
  .brand-marquee span{font-size:72px}
  .quick-find-grid a{grid-template-columns:1fr minmax(120px,180px);gap:24px;min-height:150px}.quick-find-grid span{grid-column:1}.quick-find-grid img{grid-column:2;grid-row:1/span 2;height:110px}
  .craft-strip{grid-template-columns:1.1fr .9fr;height:auto;min-height:0}.craft-strip figure{min-height:460px}.craft-strip figure:nth-of-type(2){transform:none;height:auto}.craft-strip figure:nth-of-type(3){grid-column:1/span 2;height:470px}
  .feature-split{min-height:0}.feature-image{min-height:600px}.feature-copy{padding:80px 24px}.feature-rose .feature-image::after{font-size:180px}
  .number-story{gap:50px}.number-strip{min-height:620px}.number-strip img{border-width:6px}
  .delivery-showcase{min-height:740px}.delivery-showcase-copy{min-height:740px;width:calc(100% - 40px);padding:90px 0}.story-home{grid-template-columns:1fr;gap:70px}.story-portrait{width:min(78vw,520px)}
  .community-feature{width:calc(100% - 40px);grid-template-columns:1fr;gap:64px}.community-feature-poster img{margin:0 auto}.home-contact{grid-template-columns:1fr;gap:38px}
  .page-title,.menu-hero>div:first-child,.corporate-copy{min-height:560px;padding:76px 24px}.page-hero-media,.menu-hero-img,.corporate-media,.delivery-image{min-height:590px;clip-path:none}
  .two-col-copy,.price-band,.pullapart,.menu-heading,.flavor-list section,.policy-link,.policy-sections section{grid-template-columns:1fr;gap:28px}.price-band{padding:68px 24px}.gallery-mosaic{grid-template-columns:1fr 1fr}.gallery-mosaic figure.wide{grid-column:1/span 2;grid-row:auto;min-height:760px}.gallery-mosaic figure{min-height:430px}.gallery-mosaic figure:nth-child(2),.gallery-mosaic figure:nth-child(3){margin:0}.pullapart-details{border-left:0;border-top:1px solid var(--line);padding:30px 0 0}.note-section{width:calc(100% - 40px)}
  .garden-duo{min-height:560px}.garden-pricing{grid-template-columns:1fr}.garden-pricing>div{padding:68px 24px}.garden-pricing>div:last-child{border-left:0;border-top:1px solid rgba(43,25,19,.25)}
  .delivery-scene,.delivery-scene>img{height:600px;min-height:600px}.delivery-scene>div{left:24px;bottom:28px;width:calc(100% - 48px)}.plain-list.columns{grid-template-columns:1fr 1fr}.story-columns{columns:1}.about-hero::before{display:none}.about-hero img{width:min(82vw,500px)}.about-photo-band{height:auto;grid-template-columns:1fr 1fr}.about-photo-band img{min-height:420px}.about-photo-band img:last-child{grid-column:1/span 2;height:480px}.contact-intro{position:static}.contact-photo-band{height:auto;grid-template-columns:1fr 1fr}.contact-photo-band img{min-height:390px}.contact-photo-band img:last-child{grid-column:1/span 2;height:470px}.contact-facts{grid-template-columns:1fr}.contact-facts>div{padding:48px 24px}.contact-facts>div+div{border-left:0;border-top:1px solid rgba(43,25,19,.22)}
  .footer-main{width:calc(100% - 40px);grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/span 2}.footer-block:last-child{grid-column:auto}.footer-bottom{width:calc(100% - 40px)}
}

@media (max-width:580px){
  body{font-size:16px}.section-pad{width:calc(100% - 28px);padding:76px 0}h1{font-size:clamp(66px,20vw,104px)}h2{font-size:clamp(50px,15vw,78px)}
  .hero-copy{min-height:610px;padding:64px 16px 110px}.hero-copy h1{font-size:clamp(70px,22vw,106px)}.hero-lede{font-size:18px;margin:30px 0}.hero-image{min-height:470px}.hero-image figcaption{left:16px;right:16px;width:auto;text-align:left}.hero-trust{left:16px;right:16px;gap:7px;display:grid}.hero-trust span+span::before{display:none}
  .brand-marquee span{font-size:54px}.quick-find h2{margin-bottom:48px}.quick-find-grid a{grid-template-columns:1fr;gap:8px;min-height:0;padding:26px 0}.quick-find-grid strong{font-size:44px}.quick-find-grid span{grid-column:auto;font-size:16px}.quick-find-grid img{grid-column:auto;grid-row:auto;height:190px;margin-top:14px}
  .craft-strip{grid-template-columns:1fr}.craft-strip figure,.craft-strip figure:nth-of-type(3){grid-column:auto;min-height:370px;height:370px}.craft-strip figure:first-of-type{height:470px}.feature-image{min-height:450px}.feature-rose .feature-image::after{font-size:112px}.feature-copy{padding:64px 16px}
  .number-strip{min-height:660px}.number-strip img:nth-child(1){width:58%;height:49%;left:0;top:3%}.number-strip img:nth-child(2){width:56%;height:45%;right:0;top:29%}.number-strip img:nth-child(3){width:58%;height:48%;left:13%;bottom:0}.delivery-showcase{min-height:680px}.delivery-showcase-copy{min-height:680px;width:calc(100% - 28px);padding:70px 0}.delivery-showcase-copy h2{font-size:68px}.story-portrait{width:100%}.story-portrait::before{left:-14px;top:14px}.community-feature{width:calc(100% - 28px)}.community-feature-poster::before{inset:12px -12px -12px 12px}.home-contact{gap:30px}
  .page-title,.menu-hero>div:first-child,.corporate-copy{min-height:500px;padding:64px 16px}.page-title h1,.menu-hero h1,.corporate-copy h1{font-size:clamp(66px,20vw,100px)}.page-hero-media,.menu-hero-img,.corporate-media,.delivery-image{min-height:460px}.gallery-mosaic{grid-template-columns:1fr}.gallery-mosaic figure.wide,.gallery-mosaic figure{grid-column:auto;min-height:470px}.garden-duo{grid-template-columns:1fr;min-height:0}.garden-duo img,.garden-duo img:nth-child(2){height:420px}.dozen-band{grid-template-columns:1fr;padding:64px 16px;gap:28px}.cupcake-studio{grid-template-columns:1fr}.cupcake-studio-media,.cupcake-studio-media:last-child{grid-column:auto;min-height:430px;height:430px}.cupcake-studio-copy{grid-column:auto;grid-row:auto;padding:64px 16px}.plain-list,.plain-list.columns{grid-template-columns:1fr}.about-photo-band{grid-template-columns:1fr}.about-photo-band img,.about-photo-band img:last-child{grid-column:auto;height:360px;min-height:0}.field-pair{grid-template-columns:1fr}.inquiry-form{padding:30px 20px;box-shadow:12px 12px 0 var(--blush)}.contact-photo-band{grid-template-columns:1fr}.contact-photo-band img,.contact-photo-band img:last-child{grid-column:auto;height:340px;min-height:0}.footer-main{width:calc(100% - 28px);grid-template-columns:1fr}.footer-brand{grid-column:auto}.footer-bottom{width:calc(100% - 28px);flex-direction:column}
}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* =====================================================================
   V4 — image-led, proportion-first brand refinement
   The source photography is intentionally displayed at its native aspect
   ratio wherever possible. Color comes from the cakes themselves.
   ===================================================================== */
:root{
  --pink:#f0a9c0;
  --pink-soft:#f7c8d7;
  --raspberry:#a83f68;
  --lavender:#c6b8ea;
  --lavender-soft:#e6def7;
  --lavender-deep:#745998;
  --sky:#bcd9ec;
  --sky-soft:#dcecf6;
  --butter:#f3cf75;
  --butter-soft:#f8e7ac;
  --peach:#efaa7e;
  --peach-soft:#f7d3bb;
}

body{background:#fffaf3}
body::before{opacity:.075}
.site-header{background:rgba(255,250,243,.94);border-bottom-color:rgba(59,37,29,.10)}
.header-shell{height:96px}
.brand{width:76px;height:76px}
.brand img{object-fit:contain;background:transparent;box-shadow:0 7px 24px rgba(60,32,22,.12)}
.nav-cta{background:var(--raspberry);border-color:var(--raspberry)}
.nav-cta:hover{background:var(--espresso);border-color:var(--espresso)}

/* Homepage hero — brand slogan first, photography kept whole */
.home-hero{
  min-height:760px;
  background:var(--pink-soft);
  color:var(--espresso);
  grid-template-columns:minmax(0,.93fr) minmax(520px,1.07fr);
  overflow:hidden;
  isolation:isolate;
}
.home-hero::before{
  content:"";
  position:absolute;
  right:0;top:0;bottom:0;
  width:48%;
  background:var(--lavender);
  z-index:-2;
}
.home-hero::after{
  content:"";
  position:absolute;
  width:min(38vw,610px);aspect-ratio:1;
  border-radius:50%;
  right:-8vw;top:-15vw;
  background:var(--butter);
  z-index:-1;
}
.hero-copy{
  min-height:760px;
  padding:clamp(68px,7vw,112px) clamp(42px,6vw,104px) 130px max(44px,calc((100vw - var(--max))/2));
  justify-content:center;
}
.hero-copy h1{font-size:clamp(72px,7.65vw,136px);line-height:.82;letter-spacing:-.055em;max-width:900px;color:var(--espresso)}
.hero-copy h1 span{display:block}
.hero-copy h1 span:nth-child(2){white-space:nowrap}
.hero-copy h1 span:last-child{padding-left:.46em}
.hero-copy h1 em{display:inline;color:var(--raspberry)}
.hero-lede{font-size:clamp(18px,1.35vw,23px);line-height:1.5;max-width:560px;color:#5f4035;margin:34px 0 30px}
.hero-copy .button-primary{background:var(--espresso);border-color:var(--espresso);color:white}
.hero-copy .button-primary:hover{background:var(--raspberry);border-color:var(--raspberry)}
.hero-copy .text-link{color:var(--espresso)}
.hero-trust{left:max(44px,calc((100vw - var(--max))/2));right:auto;bottom:26px;width:min(620px,calc(47vw - 80px));color:#65483e;border-color:rgba(59,37,29,.25)}
.hero-trust span+span::before{background:var(--raspberry)}
.hero-image{
  position:relative;
  min-height:760px;
  padding:44px clamp(58px,6vw,106px) 58px clamp(52px,5vw,90px);
  overflow:visible;
  clip-path:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.hero-image::before{display:none}
.hero-image img{
  position:static;
  width:min(100%,620px);
  height:auto;
  max-height:650px;
  object-fit:contain;
  object-position:center;
  transform:none;
  animation:none;
  box-shadow:18px 22px 0 rgba(255,250,243,.92);
}
.hero-image figcaption{
  position:static;
  width:min(100%,620px);
  margin-top:24px;
  padding:0;
  color:#493128;
  border:0;
  font-size:14px;
  text-align:right;
}
.hero-secondary-image{
  position:absolute;
  z-index:5;
  right:clamp(18px,2.8vw,52px);
  bottom:38px;
  width:clamp(190px,18vw,320px);
  margin:0;
  background:var(--ivory);
  padding:9px;
  box-shadow:0 22px 55px rgba(64,37,27,.18);
  transform:rotate(2.5deg);
}
.hero-secondary-image img{width:100%;height:auto;aspect-ratio:400/267;object-fit:contain}
.hero-secondary-image figcaption{font-family:var(--display);font-size:20px;line-height:1;padding:9px 6px 5px;color:var(--espresso)}

.brand-marquee{background:var(--butter);border-color:rgba(59,37,29,.5)}
.brand-marquee i{color:var(--raspberry)}

/* Service rows become full-color editorial bands, not cards. */
.quick-find{width:100%;padding-left:0;padding-right:0;max-width:none}
.quick-find>h2{width:min(var(--max),calc(100% - 88px));margin-left:auto;margin-right:auto;color:var(--espresso)}
.quick-find-grid{border:0}
.quick-find-grid a{
  padding:30px max(44px,calc((100vw - var(--max))/2));
  grid-template-columns:minmax(280px,.68fr) minmax(300px,1fr) minmax(160px,250px);
  border:0;border-top:1px solid rgba(59,37,29,.18);
  min-height:188px;
}
.quick-find-grid a:last-child{border-bottom:1px solid rgba(59,37,29,.18)}
.quick-find-grid a:nth-child(1){background:var(--butter-soft)}
.quick-find-grid a:nth-child(2){background:var(--lavender-soft)}
.quick-find-grid a:nth-child(3){background:var(--pink-soft)}
.quick-find-grid a:nth-child(4){background:var(--sky-soft)}
.quick-find-grid strong{font-size:clamp(42px,4.2vw,68px)}
.quick-find-grid span{color:#63483f}
.quick-find-grid img{justify-self:end;width:auto;max-width:240px;height:auto;max-height:145px;object-fit:contain;filter:none;box-shadow:7px 8px 0 rgba(255,255,255,.72)}
.quick-find-grid a:hover img{transform:translateY(-4px) rotate(1deg);filter:none}
.quick-find-grid a:hover strong{color:var(--raspberry)}

/* Photographic journal: each source keeps its real shape. */
.craft-strip{
  height:auto;min-height:0;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  align-items:start;
  gap:clamp(18px,2.3vw,38px);
  padding:clamp(80px,8vw,140px) max(44px,calc((100vw - var(--max))/2));
  background:var(--sky);
  overflow:visible;
}
.craft-strip figure{height:auto!important;min-height:0!important;transform:none!important;overflow:visible;background:transparent}
.craft-strip figure:nth-of-type(1){grid-column:1/8}
.craft-strip figure:nth-of-type(2){grid-column:9/13;margin-top:105px}
.craft-strip figure:nth-of-type(3){grid-column:5/11;margin-top:-36px;z-index:2}
.craft-strip img{width:100%;height:auto;object-fit:contain;box-shadow:12px 14px 0 rgba(255,250,243,.78)}
.craft-strip figure:hover img{transform:none}

/* Garden: color and space around the photo rather than cropping it. */
.feature-split{min-height:0;grid-template-columns:1fr 1fr}
.feature-image{min-height:0;display:flex;align-items:center;justify-content:center;padding:clamp(60px,7vw,118px);overflow:visible;background:var(--lavender)}
.feature-image img{width:min(100%,720px);height:auto;object-fit:contain;box-shadow:14px 16px 0 rgba(255,250,243,.78)}
.feature-rose{background:var(--pink-soft)}
.feature-rose .feature-image::after{display:none}
.feature-copy{padding:clamp(75px,8vw,130px) clamp(46px,7vw,110px)}

/* Number cake collage: no forced aspect ratios. */
.number-story{background:#fffaf3}
.number-strip{min-height:720px}
.number-strip img{height:auto;object-fit:contain;border:8px solid var(--paper)}
.number-strip img:nth-child(1){width:44%;height:auto;left:1%;top:9%}
.number-strip img:nth-child(2){width:43%;height:auto;right:4%;top:3%}
.number-strip img:nth-child(3){width:39%;height:auto;left:34%;bottom:1%}

/* The evening van is naturally 2:1 — let it be the composition. */
.delivery-showcase{min-height:0;aspect-ratio:2/1;background:var(--espresso)}
.delivery-showcase-media img{width:100%;height:100%;object-fit:cover;object-position:center}
.delivery-showcase-copy{min-height:0;height:100%;padding:8vw 0 5vw;justify-content:flex-end}
.delivery-showcase-copy h2{font-size:clamp(60px,7vw,116px)}

.story-home{background:var(--sky-soft);width:100%;max-width:none;padding:clamp(90px,9vw,150px) max(44px,calc((100vw - var(--max))/2));grid-template-columns:1.2fr minmax(300px,440px);gap:clamp(65px,9vw,150px)}
.story-copy p{color:#604940}
.story-portrait{width:100%;max-width:440px;justify-self:end}
.story-portrait::before{background:var(--butter);border:0;left:-24px;top:24px}
.story-portrait img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.community-feature{width:100%;max-width:none;padding:clamp(100px,9vw,160px) max(44px,calc((100vw - var(--max))/2));background:var(--butter-soft);border-top:0}
.community-feature-copy p{color:#604940}
.community-feature-poster::before{background:var(--pink)}
.home-contact{width:100%;max-width:none;padding:clamp(100px,9vw,160px) max(44px,calc((100vw - var(--max))/2));background:var(--lavender-soft);border-top:0}

/* Interior-page image treatment: generous colored stages, natural ratios. */
.page-hero,.menu-hero,.corporate-hero{min-height:680px;background:var(--espresso)}
.page-hero-media,.menu-hero-img,.corporate-media,.delivery-image{
  min-height:680px;
  clip-path:none;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(34px,4.5vw,72px);
  background:var(--lavender-soft);
}
.page-hero-media::after,.menu-hero-img::after,.corporate-media::after,.delivery-image::after{display:none}
.page-hero-media img,.menu-hero-img img,.corporate-media img,.delivery-image img{
  width:min(100%,900px);
  height:auto;
  max-height:650px;
  object-fit:contain;
  box-shadow:12px 14px 0 rgba(255,255,255,.72);
}
.menu-hero-img{background:var(--pink-soft)}
.corporate-media{background:var(--butter-soft)}
.delivery-image{background:var(--sky-soft)}
.price-band{background:var(--lavender-soft)}
.closing-cta{background:var(--raspberry)}
.closing-cta::after{color:rgba(255,255,255,.07)}

/* Number cakes gallery as a real editorial wall. */
.gallery-mosaic{grid-template-columns:repeat(12,1fr);gap:clamp(22px,3vw,48px);align-items:start}
.gallery-mosaic figure,.gallery-mosaic figure.wide{min-height:0;margin:0;overflow:visible;background:transparent;grid-row:auto}
.gallery-mosaic figure:nth-child(1){grid-column:1/8}
.gallery-mosaic figure:nth-child(2){grid-column:8/13;margin-top:90px}
.gallery-mosaic figure:nth-child(3){grid-column:2/7;margin-top:-20px}
.gallery-mosaic figure:nth-child(4){grid-column:7/12;margin-top:35px}
.gallery-mosaic img{width:100%;height:auto;object-fit:contain;box-shadow:10px 12px 0 var(--lavender-soft)}
.gallery-mosaic figure:hover img{transform:none}

/* Cupcakes studio respects both source photos. */
.cupcake-studio{grid-template-columns:1.35fr .65fr;grid-template-rows:auto auto;min-height:0;padding:clamp(70px,7vw,115px) max(44px,calc((100vw - var(--max))/2));gap:34px;background:var(--sky)}
.cupcake-studio-media{min-height:0;height:auto;overflow:visible}
.cupcake-studio-media:first-child{grid-column:1;grid-row:1/3;align-self:center}
.cupcake-studio-media:last-child{grid-column:2;grid-row:2;height:auto!important;min-height:0!important}
.cupcake-studio-media img{width:100%;height:auto;object-fit:contain;box-shadow:10px 12px 0 rgba(255,250,243,.82)}
.cupcake-studio-copy{grid-column:2;grid-row:1;padding:0;justify-content:end;color:var(--espresso)}
.cupcake-studio-copy p{color:#5e473f}
.dozen-band{background:var(--pink-soft)}

/* Garden duo: no artificial equal-height crop. */
.garden-duo{min-height:0;gap:clamp(22px,3vw,50px);padding:clamp(60px,7vw,110px) max(44px,calc((100vw - var(--max))/2));background:var(--lavender-soft);align-items:start}
.garden-duo img,.garden-duo img:nth-child(2){width:100%;height:auto;object-fit:contain;align-self:auto;box-shadow:10px 12px 0 rgba(255,255,255,.78)}
.garden-duo img:nth-child(2){margin-top:90px}
.garden-pricing{background:var(--pink-soft)}

/* Delivery wide image is already 2:1. */
.delivery-scene{height:auto;min-height:0;aspect-ratio:2/1}
.delivery-scene>img{height:100%;object-fit:cover}
.delivery-perfect{background:var(--lavender-deep)}

/* Corporate feature source is 3:2; don't force it into a tall crop. */
.feature-cream{background:var(--butter-soft)}
.cover-cupcakes{background:var(--pink-soft)}

/* About / contact image bands become natural-ratio editorial layouts. */
.about-hero{min-height:0;background:var(--lavender-soft);width:100%;max-width:none;padding-left:max(44px,calc((100vw - var(--max))/2));padding-right:max(44px,calc((100vw - var(--max))/2));padding-top:clamp(90px,9vw,145px);padding-bottom:clamp(90px,9vw,145px)}
.about-hero::before{color:rgba(116,89,152,.07)}
.about-hero img{width:100%;max-width:400px;height:auto;aspect-ratio:auto;object-fit:contain;box-shadow:18px 20px 0 var(--pink)}
.about-photo-band{height:auto;grid-template-columns:.9fr 1.25fr .85fr;align-items:start;gap:clamp(18px,2.5vw,38px);padding:clamp(70px,7vw,110px) max(44px,calc((100vw - var(--max))/2));background:var(--sky)}
.about-photo-band img,.about-photo-band img:first-child,.about-photo-band img:last-child{width:100%;height:auto;min-height:0;align-self:auto;object-fit:contain}
.about-photo-band img:nth-child(2){margin-top:80px}
.about-photo-band img:nth-child(3){margin-top:25px}

.inquiry-form{background:var(--sky-soft);box-shadow:20px 20px 0 var(--pink)}
.contact-photo-band{height:auto;grid-template-columns:.86fr .92fr 1.3fr;align-items:start;gap:clamp(18px,2.5vw,38px);padding:clamp(70px,7vw,110px) max(44px,calc((100vw - var(--max))/2));background:var(--butter-soft)}
.contact-photo-band img,.contact-photo-band img:first-child,.contact-photo-band img:nth-child(2),.contact-photo-band img:last-child{width:100%;height:auto;min-height:0;grid-column:auto;align-self:auto;object-fit:contain}
.contact-photo-band img:nth-child(2){margin-top:75px}
.contact-facts{background:var(--pink-soft)}

/* More deliberate color rhythm for otherwise text-heavy pages. */
.faq-hero{background:var(--sky-soft);width:100%;max-width:none;padding-left:max(44px,calc((100vw - var(--max))/2));padding-right:max(44px,calc((100vw - var(--max))/2))}
.policy-hero{background:var(--lavender-soft);width:100%;max-width:none;padding-left:max(44px,calc((100vw - var(--max))/2));padding-right:max(44px,calc((100vw - var(--max))/2))}
.site-footer::before{color:rgba(198,184,234,.07)}
.footer-block h2{color:var(--pink)}

@media (max-width:1180px){
  .home-hero{grid-template-columns:.95fr 1.05fr;min-height:700px}.hero-copy,.hero-image{min-height:700px}.hero-copy{padding-left:40px;padding-right:35px}.hero-copy h1{font-size:clamp(68px,8.5vw,108px)}
  .hero-trust{left:40px;width:calc(47vw - 60px)}
  .hero-secondary-image{width:220px;right:18px;bottom:28px}
  .page-hero,.menu-hero,.corporate-hero{min-height:620px}.page-hero-media,.menu-hero-img,.corporate-media,.delivery-image{min-height:620px}
}

@media (max-width:900px){
  .header-shell{height:82px}.brand{width:62px;height:62px}
  .home-hero{grid-template-columns:1fr;min-height:0;background:var(--pink-soft)}
  .home-hero::before{top:auto;left:0;right:0;bottom:0;width:100%;height:48%;background:var(--lavender)}
  .home-hero::after{width:58vw;right:-18vw;top:48%}
  .hero-copy{min-height:0;padding:72px 24px 92px;justify-content:flex-start}
  .hero-copy h1{font-size:clamp(72px,14vw,118px);max-width:760px}.hero-copy h1 span:nth-child(2){white-space:normal}.hero-copy h1 span:last-child{padding-left:.28em}
  .hero-trust{position:static;width:auto;margin-top:56px;padding-top:18px}
  .hero-image{min-height:0;padding:54px 24px 100px;overflow:hidden}.hero-image img{width:min(82vw,560px);max-height:none}
  .hero-secondary-image{right:20px;bottom:32px;width:min(38vw,245px)}
  .quick-find>h2{width:calc(100% - 40px)}.quick-find-grid a{padding:28px 20px;grid-template-columns:1fr minmax(130px,190px);gap:20px}.quick-find-grid span{grid-column:1}.quick-find-grid img{grid-column:2;grid-row:1/span 2;max-width:190px;max-height:128px}
  .craft-strip{grid-template-columns:repeat(2,1fr);padding:75px 20px;gap:22px}.craft-strip figure:nth-of-type(1){grid-column:1/3}.craft-strip figure:nth-of-type(2){grid-column:1;margin-top:0}.craft-strip figure:nth-of-type(3){grid-column:2;margin-top:70px}
  .feature-split{grid-template-columns:1fr}.feature-image{padding:60px 24px}.number-strip{min-height:600px}
  .delivery-showcase{aspect-ratio:auto}.delivery-showcase-media{position:relative}.delivery-showcase-media img{height:auto;object-fit:contain}.delivery-showcase-media::after{display:none}.delivery-showcase-copy{height:auto;width:100%;padding:66px 20px;background:var(--espresso)}
  .story-home{grid-template-columns:1fr;padding:90px 20px}.story-portrait{justify-self:start}
  .community-feature,.home-contact{padding-left:20px;padding-right:20px}
  .page-hero,.menu-hero,.corporate-hero{grid-template-columns:1fr;min-height:0}.page-title,.menu-hero>div:first-child,.corporate-copy{min-height:0}.page-hero-media,.menu-hero-img,.corporate-media,.delivery-image{min-height:0;padding:50px 24px}.page-hero-media img,.menu-hero-img img,.corporate-media img,.delivery-image img{max-height:none;width:min(100%,680px)}
  .gallery-mosaic{grid-template-columns:1fr 1fr}.gallery-mosaic figure:nth-child(n){grid-column:auto;margin:0}.gallery-mosaic figure:nth-child(1),.gallery-mosaic figure:nth-child(4){grid-column:1/3}.gallery-mosaic figure:nth-child(3){margin-top:60px}
  .cupcake-studio{grid-template-columns:1fr;padding:70px 20px}.cupcake-studio-media:first-child,.cupcake-studio-copy,.cupcake-studio-media:last-child{grid-column:1;grid-row:auto}.cupcake-studio-copy{padding:25px 0}
  .garden-duo{padding:60px 20px}.garden-duo img:nth-child(2){margin-top:55px}
  .delivery-scene{aspect-ratio:auto;height:auto}.delivery-scene>img{height:auto;object-fit:contain}.delivery-scene::after{display:none}.delivery-scene>div{position:static;width:100%;padding:55px 20px;background:var(--espresso)}
  .about-photo-band,.contact-photo-band{padding:70px 20px;grid-template-columns:1fr 1fr}.about-photo-band img:nth-child(2),.contact-photo-band img:nth-child(2){margin-top:50px}.about-photo-band img:nth-child(3),.contact-photo-band img:nth-child(3){grid-column:1/3;width:min(75%,620px);margin:20px auto 0}
  .faq-hero,.policy-hero{padding-left:20px;padding-right:20px}
}

@media (max-width:580px){
  .hero-copy{padding:58px 16px 74px}.hero-copy h1{font-size:clamp(62px,18vw,88px);line-height:.85}.hero-lede{font-size:17px}.hero-trust{margin-top:44px}
  .hero-image{padding:38px 16px 92px}.hero-image img{width:min(88vw,470px);box-shadow:10px 12px 0 rgba(255,250,243,.9)}.hero-image figcaption{font-size:12px;text-align:left}.hero-secondary-image{width:42vw;right:12px;bottom:24px;padding:6px}.hero-secondary-image figcaption{font-size:16px}
  .quick-find>h2{width:calc(100% - 28px)}.quick-find-grid a{grid-template-columns:1fr;padding:30px 14px}.quick-find-grid span,.quick-find-grid img{grid-column:auto;grid-row:auto}.quick-find-grid img{justify-self:start;width:auto;max-width:68vw;max-height:none;margin-top:12px}
  .craft-strip{grid-template-columns:1fr;padding:58px 14px}.craft-strip figure:nth-of-type(n){grid-column:1;margin:0}.craft-strip figure:nth-of-type(2){width:72%;margin-left:auto}.craft-strip figure:nth-of-type(3){width:88%;margin-top:16px}
  .feature-image{padding:48px 14px}.number-strip{min-height:560px}.number-strip img{border-width:5px}
  .gallery-mosaic{grid-template-columns:1fr}.gallery-mosaic figure:nth-child(n){grid-column:1;margin:0}.gallery-mosaic figure:nth-child(2),.gallery-mosaic figure:nth-child(4){width:86%;margin-left:auto}.gallery-mosaic figure:nth-child(3){width:90%;margin-top:10px}
  .garden-duo{grid-template-columns:1fr;padding:48px 14px}.garden-duo img:nth-child(2){margin-top:25px}
  .about-photo-band,.contact-photo-band{grid-template-columns:1fr;padding:55px 14px}.about-photo-band img:nth-child(n),.contact-photo-band img:nth-child(n){grid-column:1;width:100%;margin:0 0 22px}.about-photo-band img:first-child,.contact-photo-band img:first-child{width:82%}.about-hero{padding-left:14px;padding-right:14px}.faq-hero,.policy-hero{padding-left:14px;padding-right:14px}
}

/* Native-resolution guardrails: small source files are never blown up into blurry hero art. */
.delivery-image img[src$="delivery-van-field.webp"]{max-width:400px}
.story-portrait img[src$="tyiesha-delivery.webp"],.about-hero img[src$="tyiesha-delivery.webp"]{max-width:400px}
.feature-image img[src$="garden-cake-pastel.webp"],.feature-image img[src$="garden-cake-bright.webp"],.garden-duo img{max-width:600px}
.gallery-mosaic img[src$="number-cake-36.webp"],.gallery-mosaic img[src$="number-cake-32.webp"],.gallery-mosaic img[src$="number-cake-21-chocolate.webp"],.gallery-mosaic img[src$="number-cake-1-lavender.webp"]{max-width:388px;margin-left:auto;margin-right:auto}
.number-strip img[src$="number-cake-32.webp"],.number-strip img[src$="number-cake-21-chocolate.webp"],.number-strip img[src$="number-cake-1-lavender.webp"]{max-width:388px}
.community-feature-poster img{max-width:400px}
.cupcake-studio-media:last-child img{max-width:400px;margin-left:auto;margin-right:auto}
.delivery-showcase-media{display:flex;align-items:stretch;justify-content:center;background:var(--espresso)}
.delivery-showcase-media img{max-width:1240px}
/* Final hero proportion pass */
.home-hero{grid-template-columns:1.05fr .95fr}
.hero-copy h1{font-size:clamp(70px,6vw,112px);max-width:760px}
.hero-copy h1 span:nth-child(2){white-space:normal;padding-left:.20em}
.hero-copy h1 span:last-child{padding-left:.40em}
.hero-image img{width:min(100%,540px)}
@media (max-width:1180px){.home-hero{grid-template-columns:1fr 1fr}.hero-copy h1{font-size:clamp(66px,7vw,94px)}.hero-image img{width:min(100%,500px)}}
@media (max-width:900px){.home-hero{grid-template-columns:1fr}.hero-copy h1{font-size:clamp(70px,13vw,108px)}.hero-copy h1 span:nth-child(2){padding-left:.10em}.hero-copy h1 span:last-child{padding-left:.22em}.hero-image img{width:min(82vw,540px)}}
@media (max-width:580px){.hero-copy h1{font-size:clamp(60px,17vw,82px)}}
.feature-image img[src$="cupcake-finishing.webp"]{max-width:400px}

/* =====================================================================
   V5 — sharper typography + premium playful motion
   ===================================================================== */
:root{
  --display:"Sora","Avenir Next",Avenir,"Segoe UI",Arial,sans-serif;
  --sans:"Manrope",Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --motion:cubic-bezier(.16,1,.3,1);
  --motion-soft:cubic-bezier(.22,.72,.2,1);
}

body{font-family:var(--sans);letter-spacing:.006em}
h1,h2,h3{
  font-family:var(--display);
  font-weight:400;
  line-height:.94;
  letter-spacing:.018em;
  font-kerning:normal;
  text-rendering:optimizeLegibility;
}
h1{letter-spacing:.012em}
h2{letter-spacing:.016em}
h3{letter-spacing:.02em}
.hero-copy h1{line-height:.89;letter-spacing:.016em}
.hero-copy h1 em{font-style:normal;letter-spacing:.035em}
.brand-marquee span{letter-spacing:.025em;line-height:1}
.brand-marquee i{font-style:normal;letter-spacing:.06em}
.quick-find-grid strong{letter-spacing:.018em;line-height:.98}
.page-title p,.menu-hero>div:first-child>p,.corporate-copy>p,.about-hero p{letter-spacing:.018em;line-height:1.14}
blockquote{letter-spacing:.018em;line-height:1.04}
.faq-list summary{letter-spacing:.012em;line-height:1.12}
.footer-brand p{letter-spacing:.016em;line-height:1.22}
.feature-rose .feature-image::after,.about-hero::before,.closing-cta::after,.site-footer::before{letter-spacing:.025em}

.nav-link,.nav-cta,.button,.footer-block h2{
  letter-spacing:.105em;
  text-transform:uppercase;
}
.nav-link{font-size:12px;font-weight:700}
.nav-cta,.button{font-size:12px;font-weight:800}
.footer-block h2{font-size:11px;letter-spacing:.14em}
.text-link{letter-spacing:.035em}
.hero-lede,.quick-find-grid span,.feature-copy p,.story-copy p,.community-feature-copy p{letter-spacing:.004em}

/* A little more air around the biggest statements. */
.hero-copy h1 span+span{margin-top:.045em}
.quick-find>h2,.feature-copy h2,.number-copy h2,.story-copy h2,.community-feature-copy h2,.home-contact h2{line-height:.97}

/* Buttons feel tactile rather than app-like. */
.button,.nav-cta{
  position:relative;
  overflow:hidden;
  will-change:transform;
  transition:transform .45s var(--motion),background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .45s var(--motion);
}
.button::before,.nav-cta::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.34) 46%,transparent 72%);
  transform:translateX(-145%) skewX(-16deg);
  transition:transform .7s var(--motion);
  pointer-events:none;
}
.button:hover::before,.nav-cta:hover::before{transform:translateX(145%) skewX(-16deg)}
.button:hover,.nav-cta:hover{box-shadow:0 12px 28px rgba(73,43,34,.13)}

/* Hero motion stays proportional: we move the stage, never stretch the photo. */
.home-hero::after{animation:premiumOrb 9s ease-in-out infinite alternate;will-change:transform}
.hero-image,.hero-secondary-image{will-change:transform}
.hero-image{transition:transform .9s var(--motion)}
.hero-secondary-image{transition:transform .85s var(--motion),box-shadow .45s ease}
.hero-secondary-image:hover{box-shadow:0 30px 70px rgba(64,37,27,.24)}
@keyframes premiumOrb{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(-18px,22px,0) scale(1.035)}
}

/* Branded opening / closing curtain. */
.motion-ready body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:9998;
  pointer-events:none;
  background:linear-gradient(135deg,var(--raspberry) 0 34%,var(--lavender-deep) 34% 68%,var(--butter) 68% 100%);
  transform-origin:top;
  animation:pageCurtainIn .82s var(--motion) .06s both;
}
.motion-ready body.page-leaving::after{animation:pageCurtainOut .34s cubic-bezier(.65,0,.35,1) both}
@keyframes pageCurtainIn{0%{transform:scaleY(1)}100%{transform:scaleY(0)}}
@keyframes pageCurtainOut{0%{transform:scaleY(0)}100%{transform:scaleY(1)}}

/* Homepage entrance sequence. */
.motion-ready .home-hero .hero-copy h1 span{
  opacity:0;
  clip-path:inset(0 0 100% 0);
  transform:translate3d(0,34px,0);
  animation:heroTypeReveal 1.05s var(--motion) forwards;
}
.motion-ready .home-hero .hero-copy h1 span:nth-child(1){animation-delay:.24s}
.motion-ready .home-hero .hero-copy h1 span:nth-child(2){animation-delay:.36s}
.motion-ready .home-hero .hero-copy h1 span:nth-child(3){animation-delay:.48s}
@keyframes heroTypeReveal{
  to{opacity:1;clip-path:inset(-10% -4% -12% -4%);transform:none}
}
.motion-ready .home-hero .hero-lede,
.motion-ready .home-hero .button-row,
.motion-ready .home-hero .hero-trust{
  opacity:0;
  transform:translateY(18px);
  animation:heroFade .82s var(--motion) forwards;
}
.motion-ready .home-hero .hero-lede{animation-delay:.63s}
.motion-ready .home-hero .button-row{animation-delay:.72s}
.motion-ready .home-hero .hero-trust{animation-delay:.82s}
@keyframes heroFade{to{opacity:1;transform:none}}
.motion-ready .home-hero .hero-image img{
  opacity:0;
  clip-path:inset(100% 0 0 0);
  transform:translateY(16px) scale(.985);
  animation:heroImageReveal 1.12s var(--motion) .3s forwards;
}
@keyframes heroImageReveal{to{opacity:1;clip-path:inset(-2%);transform:none}}
.motion-ready .home-hero .hero-secondary-image{
  opacity:0;
  animation:secondaryPhotoIn .9s var(--motion) .8s forwards;
}
@keyframes secondaryPhotoIn{
  from{opacity:0;transform:translateY(28px) rotate(6deg) scale(.94)}
  to{opacity:1;transform:rotate(2.5deg)}
}

/* Interior hero entrance. */
.motion-ready main>.page-hero h1,
.motion-ready main>.menu-hero h1,
.motion-ready main>.corporate-hero h1,
.motion-ready main>.about-hero h1,
.motion-ready main>.faq-hero h1,
.motion-ready main>.policy-hero h1,
.motion-ready .contact-intro h1{
  opacity:0;
  clip-path:inset(0 0 100% 0);
  transform:translateY(26px);
  animation:heroTypeReveal .95s var(--motion) .26s forwards;
}
.motion-ready main>.page-hero img,
.motion-ready main>.menu-hero img,
.motion-ready main>.corporate-hero img,
.motion-ready main>.about-hero img{
  opacity:0;
  clip-path:inset(0 100% 0 0);
  animation:sideImageReveal 1.05s var(--motion) .34s forwards;
}
@keyframes sideImageReveal{to{opacity:1;clip-path:inset(-2%)}}

/* Scroll choreography. JS only adds classes; content remains visible without JS. */
.motion-ready .motion-item{
  opacity:0;
  transform:translate3d(0,30px,0);
  transition:opacity .85s var(--motion),transform 1s var(--motion),clip-path 1.05s var(--motion),filter .8s ease;
  transition-delay:var(--motion-delay,0ms);
}
.motion-ready .motion-item.motion-image{
  transform:translate3d(0,20px,0) scale(.985);
  clip-path:inset(7% 0 8% 0);
}
.motion-ready .motion-item.motion-left{transform:translate3d(-34px,0,0)}
.motion-ready .motion-item.motion-right{transform:translate3d(34px,0,0)}
.motion-ready .motion-item.is-revealed{
  opacity:1;
  transform:none;
  clip-path:inset(-2%);
  filter:none;
}

/* Image interaction: restrained editorial movement. */
.quick-find-grid img,.craft-strip img,.feature-image img,.number-strip img,.gallery-mosaic img,
.story-portrait img,.community-feature-poster img,.garden-duo img,.cupcake-studio-media img,
.about-photo-band img,.contact-photo-band img,.page-hero-media img,.menu-hero-img img,
.corporate-media img,.delivery-image img{
  transition:transform .8s var(--motion),box-shadow .8s var(--motion),filter .6s ease;
  will-change:transform;
}
.quick-find-grid a:hover img{transform:translate3d(0,-7px,0) rotate(.7deg) scale(1.012)}
.craft-strip figure:hover img,.gallery-mosaic figure:hover img,.garden-duo img:hover,.about-photo-band img:hover,.contact-photo-band img:hover{transform:translate3d(0,-6px,0) scale(1.012)}
.feature-image img:hover,.story-portrait img:hover,.community-feature-poster img:hover,.page-hero-media img:hover,.menu-hero-img img:hover,.corporate-media img:hover,.delivery-image img:hover{transform:translate3d(0,-5px,0) rotate(.35deg) scale(1.008)}

/* Marquee feels like moving packaging typography. */
.brand-marquee-track{animation-duration:31s;will-change:transform}
.brand-marquee:hover .brand-marquee-track{animation-play-state:paused}

/* FAQ has a softer premium open state. */
.faq-list details div{overflow:hidden}
.faq-list details[open] div{animation:faqOpen .55s var(--motion) both}
@keyframes faqOpen{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* Desktop pointer motion only. */
@media (hover:hover) and (pointer:fine){
  .hero-image{transform:translate3d(var(--hero-x,0px),var(--hero-y,0px),0)}
  .hero-secondary-image{transform:translate3d(var(--hero-x2,0px),var(--hero-y2,0px),0) rotate(2.5deg)}
}

@media (max-width:900px){
  .nav-link,.nav-cta,.button{letter-spacing:.085em}
  .hero-copy h1{letter-spacing:.012em}
  .motion-ready .home-hero .hero-secondary-image{animation-name:secondaryPhotoInMobile}
  @keyframes secondaryPhotoInMobile{from{opacity:0;transform:translateY(20px) rotate(5deg) scale(.95)}to{opacity:1;transform:rotate(2.5deg)}}
}

@media (max-width:580px){
  h1,h2,h3{letter-spacing:.01em}
  .hero-copy h1{letter-spacing:.008em}
  .brand-marquee span{letter-spacing:.018em}
  .nav-link,.nav-cta,.button{letter-spacing:.07em}
}

@media (prefers-reduced-motion:reduce){
  .motion-ready body::after{display:none!important}
  .motion-ready .home-hero .hero-copy h1 span,
  .motion-ready .home-hero .hero-lede,
  .motion-ready .home-hero .button-row,
  .motion-ready .home-hero .hero-trust,
  .motion-ready .home-hero .hero-image img,
  .motion-ready .home-hero .hero-secondary-image,
  .motion-ready .motion-item,
  .motion-ready main>.page-hero h1,
  .motion-ready main>.menu-hero h1,
  .motion-ready main>.corporate-hero h1,
  .motion-ready main>.about-hero h1,
  .motion-ready main>.faq-hero h1,
  .motion-ready main>.policy-hero h1,
  .motion-ready .contact-intro h1,
  .motion-ready main>.page-hero img,
  .motion-ready main>.menu-hero img,
  .motion-ready main>.corporate-hero img,
  .motion-ready main>.about-hero img{
    opacity:1!important;transform:none!important;clip-path:none!important;animation:none!important;
  }
}


/* =====================================================================
   V6 — readable premium typography (motion system intentionally unchanged)
   ===================================================================== */
:root{
  --display:"Sora","Avenir Next",Avenir,"Segoe UI",Arial,sans-serif;
}

/* Crisp, modern display typography with more breathing room. */
h1,h2,h3{
  font-family:var(--display);
  font-weight:600;
  line-height:.98;
  letter-spacing:.032em;
  font-kerning:normal;
  text-rendering:optimizeLegibility;
}
h1{letter-spacing:.026em;line-height:.95}
h2{letter-spacing:.034em;line-height:.99}
h3{letter-spacing:.038em;line-height:1.02}

.hero-copy h1{
  font-weight:600;
  line-height:.92;
  letter-spacing:.034em;
}
.hero-copy h1 em{
  font-weight:600;
  letter-spacing:.052em;
}
.hero-copy h1 span+span{margin-top:.075em}

.brand-marquee span{
  font-weight:600;
  letter-spacing:.045em;
  line-height:1.02;
}
.quick-find-grid strong{
  font-weight:600;
  letter-spacing:.032em;
  line-height:1.02;
}
.page-title p,.menu-hero>div:first-child>p,.corporate-copy>p,.about-hero p{
  font-weight:500;
  letter-spacing:.026em;
  line-height:1.22;
}
blockquote{
  font-weight:500;
  letter-spacing:.028em;
  line-height:1.12;
}
.faq-list summary{
  font-weight:600;
  letter-spacing:.024em;
  line-height:1.18;
}
.footer-brand p{
  font-weight:500;
  letter-spacing:.028em;
  line-height:1.32;
}
.feature-rose .feature-image::after,
.about-hero::before,
.closing-cta::after,
.site-footer::before{
  font-weight:700;
  letter-spacing:.055em;
}
.price-band strong,.garden-pricing strong{font-weight:600}

/* The navigation retains the luxurious open tracking without becoming faint. */
.nav-link,.nav-cta,.button,.footer-block h2{
  letter-spacing:.125em;
}
.text-link{letter-spacing:.055em}

/* Slightly wider reading rhythm in body copy. */
body{letter-spacing:.008em}
.hero-lede,.quick-find-grid span,.feature-copy p,.story-copy p,.community-feature-copy p,
.two-col-copy p,.menu-heading p,.flavor-list p,.delivery-scene p,.contact-intro>p{
  letter-spacing:.008em;
}

@media (max-width:580px){
  h1,h2,h3{letter-spacing:.02em}
  .hero-copy h1{letter-spacing:.024em;line-height:.94}
  .brand-marquee span{letter-spacing:.03em}
}

/* =====================================================================
   V7 — typographic composition + optical alignment pass
   The Sora type system remains; scale, measure and alignment are refined
   so headings feel designed for their individual compositions.
   ===================================================================== */

/* A calmer display scale: still expressive, no longer overpowering. */
h1,h2,h3{
  text-wrap:balance;
  overflow-wrap:normal;
}
h1{
  font-size:clamp(60px,6.2vw,106px);
  line-height:1.01;
  letter-spacing:.026em;
}
h2{
  font-size:clamp(42px,4.65vw,76px);
  line-height:1.055;
  letter-spacing:.032em;
}
h3{
  font-size:clamp(28px,2.75vw,44px);
  line-height:1.08;
  letter-spacing:.034em;
}

/* Homepage hero: clean alignment replaces the deliberately staggered lines. */
.hero-copy h1{
  width:min(100%,720px);
  max-width:720px;
  font-size:clamp(64px,5.75vw,104px);
  line-height:.99;
  letter-spacing:.032em;
}
.hero-copy h1 span,
.hero-copy h1 span:nth-child(2),
.hero-copy h1 span:last-child{
  padding-left:0;
  white-space:normal;
}
.hero-copy h1 span+span{margin-top:.08em}
.hero-copy h1 em{letter-spacing:.046em}
.hero-lede{max-width:535px}

/* Center the large chapter headings that introduce full-width content. */
.quick-find>h2,
.intro-wide>h2{
  width:min(100%,1080px);
  max-width:1080px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.quick-find>h2{margin-bottom:clamp(52px,5vw,78px)}
.intro-wide>h2{margin-bottom:clamp(48px,5vw,70px)}

/* Split compositions get a disciplined measure rather than arbitrary scale. */
.feature-copy h2{max-width:640px;font-size:clamp(44px,4.5vw,74px);line-height:1.04}
.number-copy h2{max-width:720px;font-size:clamp(44px,4.9vw,80px);line-height:1.04}
.story-copy h2{max-width:900px;font-size:clamp(46px,5vw,82px);line-height:1.04}
.community-feature-copy h2{max-width:760px;font-size:clamp(46px,5vw,82px);line-height:1.04}
.home-contact h2{max-width:900px;font-size:clamp(48px,5.3vw,86px);line-height:1.035}
.delivery-showcase-copy h2{max-width:860px;font-size:clamp(50px,5.9vw,96px);line-height:1.01}

/* Interior split heroes — generous but readable. */
.page-title,
.menu-hero>div:first-child,
.corporate-copy{
  justify-content:center;
}
.page-title h1,
.menu-hero h1,
.corporate-copy h1{
  width:min(100%,760px);
  max-width:760px;
  font-size:clamp(56px,5.65vw,94px);
  line-height:1.015;
  letter-spacing:.026em;
}
.page-title p,
.menu-hero>div:first-child>p,
.corporate-copy>p{
  max-width:620px;
  margin:28px 0 32px;
  font-size:clamp(22px,2vw,32px);
  line-height:1.28;
  letter-spacing:.018em;
}

/* About uses the same optical discipline without losing its editorial split. */
.about-hero h1{
  max-width:820px;
  font-size:clamp(58px,5.9vw,100px);
  line-height:1.015;
}
.about-hero p{
  max-width:760px;
  margin-top:30px;
  font-size:clamp(23px,2.1vw,34px);
  line-height:1.3;
}

/* FAQ / policy are true centered title pages. */
.faq-hero,.policy-hero{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.faq-hero h1,.policy-hero h1{
  max-width:1120px;
  margin-inline:auto;
  font-size:clamp(62px,7vw,116px);
  line-height:1.02;
}
.faq-hero p,.policy-hero p{
  max-width:760px;
  margin:30px auto 0;
}

/* Contact title belongs to the form column, so keep it strong but contained. */
.contact-intro h1{
  max-width:610px;
  font-size:clamp(54px,5.6vw,88px);
  line-height:1.025;
}

/* Menu and text-heavy pages get cleaner visual hierarchy. */
.menu-heading{align-items:center;gap:clamp(48px,7vw,100px)}
.menu-heading h2{max-width:760px;font-size:clamp(44px,4.6vw,74px)}
.flavor-list h3{font-size:clamp(29px,2.8vw,43px);line-height:1.1}
.policy-sections h2{font-size:clamp(30px,2.85vw,44px);line-height:1.1}
.faq-list summary{font-size:clamp(28px,2.8vw,44px);line-height:1.18}

/* Supporting statement bands now scale to their content instead of competing with it. */
.price-band strong{font-size:clamp(42px,4.3vw,68px);line-height:1.06}
.garden-pricing h2{font-size:clamp(34px,3.45vw,54px);line-height:1.08}
.garden-pricing strong{font-size:clamp(27px,2.6vw,36px)}
.dozen-band h2{font-size:clamp(38px,3.8vw,60px);line-height:1.08}
.contact-facts h2{font-size:clamp(32px,3vw,46px);line-height:1.08}
.note-section h2,.planning-note h2{font-size:clamp(38px,4vw,62px);line-height:1.08}
.pullapart h2{font-size:clamp(42px,4.4vw,70px);line-height:1.06}

/* Closing statements are intentionally centered and calm. */
.closing-cta{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.closing-cta h2{
  width:min(100%,1040px);
  max-width:1040px;
  font-size:clamp(52px,5.8vw,94px);
  line-height:1.04;
}
.closing-cta p{margin:28px auto 30px}
.note-section{text-align:center}
.note-section p{max-width:850px;margin-inline:auto}
.planning-note{text-align:center}
.planning-note h2,.planning-note p{margin-left:auto;margin-right:auto}

/* Footer title copy should support, not behave like another hero. */
.footer-brand p{font-size:clamp(21px,1.75vw,26px);line-height:1.38;max-width:330px}

/* Tablet: once a visual split stacks, center its heading composition. */
@media (max-width:900px){
  h1{font-size:clamp(54px,10vw,82px)}
  h2{font-size:clamp(40px,7.2vw,64px)}
  h3{font-size:clamp(28px,5vw,40px)}

  .hero-copy{align-items:flex-start}
  .hero-copy h1{
    max-width:680px;
    font-size:clamp(62px,11.5vw,94px);
    line-height:1;
  }

  .page-title,
  .menu-hero>div:first-child,
  .corporate-copy{
    align-items:center;
    text-align:center;
  }
  .page-title h1,.menu-hero h1,.corporate-copy h1{
    max-width:820px;
    font-size:clamp(56px,10vw,84px);
  }
  .page-title p,.menu-hero>div:first-child>p,.corporate-copy>p{margin-left:auto;margin-right:auto}

  .feature-copy{
    align-items:center;
    text-align:center;
  }
  .feature-copy h2,.feature-copy p{margin-left:auto;margin-right:auto}

  .number-copy,.story-copy,.community-feature-copy{text-align:center}
  .number-copy h2,.number-copy p,.story-copy h2,.story-copy p,.community-feature-copy h2,.community-feature-copy p{margin-left:auto;margin-right:auto}
  .number-copy .text-link,.story-copy .text-link,.community-feature-copy .text-link{margin-inline:auto}

  .home-contact{text-align:center;justify-items:center}
  .home-contact h2,.home-contact p{margin-left:auto;margin-right:auto}

  .about-hero{text-align:center;justify-items:center}
  .about-hero h1,.about-hero p{margin-left:auto;margin-right:auto}

  .contact-intro{position:static;text-align:center}
  .contact-intro h1,.contact-intro>p{margin-left:auto;margin-right:auto}
  .contact-direct{align-items:center}

  .menu-heading{grid-template-columns:1fr;text-align:center;gap:24px}
  .menu-heading h2,.menu-heading p{margin-left:auto;margin-right:auto}

  .policy-link{text-align:center;justify-items:center}
  .policy-link p{max-width:760px}
}

/* Phone: intentionally compact line lengths and centered stacked titles. */
@media (max-width:580px){
  h1{font-size:clamp(48px,14vw,68px);line-height:1.04}
  h2{font-size:clamp(36px,10.5vw,52px);line-height:1.08}
  h3{font-size:clamp(27px,7.8vw,36px);line-height:1.1}

  .hero-copy{
    align-items:center;
    text-align:center;
  }
  .hero-copy h1{
    width:100%;
    max-width:520px;
    font-size:clamp(52px,15vw,72px);
    line-height:1.02;
    letter-spacing:.022em;
  }
  .hero-lede{margin-left:auto;margin-right:auto}
  .hero-copy .button-row{justify-content:center}
  .hero-trust{justify-items:center;text-align:center}

  .quick-find>h2,.intro-wide>h2{max-width:520px}
  .quick-find-grid strong{font-size:clamp(34px,10vw,46px)}

  .page-title h1,.menu-hero h1,.corporate-copy h1,
  .about-hero h1,.faq-hero h1,.policy-hero h1,.contact-intro h1{
    font-size:clamp(48px,13.5vw,66px);
    line-height:1.05;
  }
  .page-title p,.menu-hero>div:first-child>p,.corporate-copy>p,.about-hero p{
    font-size:clamp(20px,5.5vw,26px);
    line-height:1.34;
  }

  .delivery-showcase-copy{text-align:center;align-items:center}
  .delivery-showcase-copy h2{font-size:clamp(44px,12vw,62px);max-width:520px}
  .delivery-showcase-copy p{margin-left:auto;margin-right:auto}

  .feature-copy h2,.number-copy h2,.story-copy h2,.community-feature-copy h2,.home-contact h2{
    font-size:clamp(38px,11vw,54px);
  }
  .closing-cta h2{font-size:clamp(42px,11.5vw,58px)}

  .price-band strong{font-size:clamp(36px,10vw,48px)}
  .garden-pricing h2,.dozen-band h2,.contact-facts h2,.note-section h2,.planning-note h2,.pullapart h2{
    font-size:clamp(33px,9vw,46px);
  }

  .flavor-list section,.policy-sections section{text-align:center}
  .flavor-list p,.policy-sections p{margin-left:auto;margin-right:auto}
}


/* =====================================================================
   V8 — cleaner hero transition + intentional craftsmanship chapter
   Removes the scrolling specialty strip and gives the service section a
   purposeful handoff into the photographic craft story.
   ===================================================================== */

/* The service list now ends exactly on Corporate Events — no orphaned
   cream space before the next chapter. */
.quick-find{padding-bottom:0}

/* Turn the blue photography field into a true editorial chapter. */
.craft-strip-intro{
  grid-column:1 / 13;
  grid-row:1;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.62fr);
  align-items:end;
  gap:clamp(38px,6vw,110px);
  padding-bottom:clamp(44px,5vw,78px);
  color:var(--espresso);
}
.craft-strip-intro h2{
  max-width:920px;
  font-size:clamp(50px,5.2vw,86px);
  line-height:1.03;
  letter-spacing:.034em;
}
.craft-strip-intro p{
  max-width:510px;
  margin:0 0 .35em auto;
  font-size:clamp(18px,1.45vw,23px);
  line-height:1.55;
  color:#49372f;
}

/* Because the intro owns row one, the photos naturally become the next
   composition without changing any of their native proportions. */
.craft-strip figure:nth-of-type(1),
.craft-strip figure:nth-of-type(2){grid-row:2}
.craft-strip figure:nth-of-type(3){grid-row:3}

@media (max-width:900px){
  .craft-strip-intro{
    grid-column:1 / 3;
    grid-template-columns:1fr;
    gap:22px;
    padding-bottom:44px;
  }
  .craft-strip-intro p{margin:0;max-width:620px}
  .craft-strip figure:nth-of-type(1){grid-row:auto}
  .craft-strip figure:nth-of-type(2){grid-row:auto}
  .craft-strip figure:nth-of-type(3){grid-row:auto}
}

@media (max-width:580px){
  .craft-strip-intro{
    grid-column:1;
    padding-bottom:34px;
  }
  .craft-strip-intro h2{
    font-size:clamp(42px,13vw,62px);
    line-height:1.04;
  }
  .craft-strip-intro p{font-size:17px;line-height:1.55}
}

/* =====================================================================
   V9 — homepage celebration-heading bridge spacing
   Centers the chapter title optically between the hero and service bands.
   ===================================================================== */
.quick-find{
  padding-top:clamp(58px,5.4vw,86px);
  padding-bottom:0;
}
.quick-find>h2{
  margin-bottom:clamp(58px,5.4vw,86px);
}

@media (max-width:900px){
  .quick-find{padding-top:58px}
  .quick-find>h2{margin-bottom:58px}
}

@media (max-width:580px){
  .quick-find{padding-top:48px}
  .quick-find>h2{margin-bottom:48px}
}

/* =====================================================================
   V10 — Birthday Blessing Program
   A softer, playful chapter of the Cupcake Blvd brand. It uses the same
   typography and motion language, but adds childlike color and warmth
   without turning the program into a cartoon or a grid of cards.
   ===================================================================== */

.blessing-page{background:#fffaf4}
.blessing-page .site-header{background:rgba(255,250,244,.95)}

.blessing-hero{
  position:relative;
  min-height:780px;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(430px,.9fr);
  background:linear-gradient(135deg,#fbd6e1 0 42%,#e9e1fb 42% 72%,#dcecf6 72% 100%);
  overflow:hidden;
  isolation:isolate;
}
.blessing-hero::before{
  content:"";
  position:absolute;
  width:430px;height:430px;border-radius:50%;
  left:-165px;bottom:-180px;
  background:#f6d77e;
  opacity:.86;
  z-index:-1;
}
.blessing-hero::after{
  content:"";
  position:absolute;
  width:310px;height:310px;border-radius:50%;
  right:-95px;top:-105px;
  background:#f2a7bc;
  opacity:.72;
  z-index:-1;
}
.blessing-hero-copy{
  padding:clamp(84px,8vw,145px) clamp(44px,7vw,120px) clamp(92px,8vw,140px) max(44px,calc((100vw - var(--max))/2));
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  position:relative;z-index:2;
}
.blessing-hero-copy h1{
  max-width:880px;
  font-size:clamp(62px,6.6vw,112px);
  line-height:1.015;
  letter-spacing:.026em;
  color:var(--espresso);
}
.blessing-hero-copy p{
  max-width:690px;
  margin:34px 0 34px;
  color:#5f4035;
  font-size:clamp(18px,1.3vw,22px);
  line-height:1.62;
}
.blessing-button{background:var(--raspberry);border-color:var(--raspberry);color:white}
.blessing-button:hover{background:var(--espresso);border-color:var(--espresso);color:white}

.blessing-hero-visual{
  position:relative;
  min-height:780px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:70px clamp(38px,5vw,84px);
}
.blessing-poster{position:relative;margin:0;width:min(100%,400px);z-index:3;transform:rotate(1.6deg)}
.blessing-poster::before,.blessing-poster::after{
  content:"";position:absolute;inset:0;z-index:-1;
}
.blessing-poster::before{background:#f5cf70;transform:translate(-24px,22px) rotate(-3deg)}
.blessing-poster::after{background:#92c9e6;transform:translate(22px,-18px) rotate(2.2deg);z-index:-2}
.blessing-poster img{width:100%;max-width:400px;height:auto;box-shadow:0 35px 80px rgba(80,54,65,.20)}

.blessing-candle{position:absolute;left:7%;top:12%;width:42px;height:138px;z-index:4;transform:rotate(-5deg)}
.blessing-candle-body{position:absolute;left:8px;bottom:0;width:26px;height:98px;background:repeating-linear-gradient(145deg,#fff 0 10px,#f09db8 10px 20px);border-radius:4px 4px 2px 2px;box-shadow:0 9px 20px rgba(61,37,29,.12)}
.blessing-wick{position:absolute;left:20px;top:27px;width:2px;height:16px;background:#56372d}
.blessing-flame{position:absolute;left:12px;top:0;width:20px;height:31px;background:linear-gradient(#ff8d56,#f6cb58);border-radius:55% 45% 58% 42% / 64% 58% 42% 36%;transform:rotate(8deg);transform-origin:50% 100%;box-shadow:0 0 24px rgba(246,203,88,.55)}

.blessing-confetti{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.blessing-confetti span{position:absolute;width:12px;height:34px;border-radius:8px;background:var(--raspberry);opacity:.72;transform:rotate(22deg)}
.blessing-confetti span:nth-child(1){left:5%;top:16%;background:#7c65a3;transform:rotate(34deg)}
.blessing-confetti span:nth-child(2){left:17%;top:7%;width:10px;height:10px;border-radius:50%;background:#eea94e}
.blessing-confetti span:nth-child(3){left:36%;top:12%;height:24px;background:#7cb7d7;transform:rotate(-28deg)}
.blessing-confetti span:nth-child(4){left:48%;bottom:10%;width:12px;height:12px;border-radius:50%;background:#c85f83}
.blessing-confetti span:nth-child(5){right:37%;top:7%;height:28px;background:#efaa7e;transform:rotate(55deg)}
.blessing-confetti span:nth-child(6){right:24%;bottom:12%;width:9px;height:25px;background:#7c65a3;transform:rotate(-38deg)}
.blessing-confetti span:nth-child(7){right:8%;top:38%;width:11px;height:11px;border-radius:50%;background:#e7b93f}
.blessing-confetti span:nth-child(8){left:8%;bottom:18%;height:26px;background:#80bcd9;transform:rotate(-15deg)}
.blessing-confetti span:nth-child(9){right:44%;bottom:23%;width:9px;height:9px;border-radius:50%;background:#ee7da2}
.blessing-confetti span:nth-child(10){right:3%;bottom:4%;height:26px;background:#eea94e;transform:rotate(18deg)}

.blessing-wish{
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  align-items:center;
  background:#a83f68;
  color:white;
  overflow:hidden;
}
.blessing-wish-copy{padding:clamp(78px,8vw,140px) clamp(44px,7vw,120px) clamp(78px,8vw,140px) max(44px,calc((100vw - var(--max))/2))}
.blessing-wish-copy h2{font-size:clamp(48px,5.1vw,84px);line-height:1.04;max-width:720px;color:white}
.blessing-wish-copy p{max-width:690px;margin-top:32px;font-size:clamp(20px,1.55vw,26px);line-height:1.55;color:#fff3f6}
.blessing-wish-copy strong{color:#f7dc83}
.blessing-wish-photo{margin:0;padding:clamp(36px,5vw,72px);background:#f6c4d3}
.blessing-wish-photo img{width:100%;height:auto;max-width:1280px;box-shadow:18px 20px 0 rgba(255,250,244,.72)}

.blessing-how{padding-top:clamp(100px,10vw,170px);padding-bottom:clamp(100px,10vw,170px)}
.blessing-how>h2{max-width:1180px;margin:0 auto clamp(62px,6vw,90px);text-align:center;font-size:clamp(46px,5.1vw,82px);line-height:1.05}
.blessing-path{border-top:1px solid rgba(43,25,19,.18);border-bottom:1px solid rgba(43,25,19,.18);display:grid;grid-template-columns:repeat(3,1fr)}
.blessing-path>div{padding:clamp(42px,4.5vw,70px);min-height:310px;display:flex;flex-direction:column;justify-content:center}
.blessing-path>div+div{border-left:1px solid rgba(43,25,19,.18)}
.blessing-path>div:nth-child(1){background:#f8d2de}
.blessing-path>div:nth-child(2){background:#e8e0f7}
.blessing-path>div:nth-child(3){background:#dcecf6}
.blessing-path strong{font-family:var(--display);font-size:clamp(30px,2.7vw,44px);line-height:1.08;letter-spacing:.03em;color:var(--espresso)}
.blessing-path p{margin:22px 0 0;color:#654a42;max-width:470px}

.blessing-nominate{display:grid;grid-template-columns:1.08fr .92fr;background:#f7dda0;align-items:center;overflow:hidden}
.blessing-nominate-media{padding:clamp(44px,5vw,80px) clamp(34px,5vw,80px) clamp(44px,5vw,80px) max(34px,calc((100vw - var(--max))/2))}
.blessing-nominate-media img{width:100%;height:auto;max-width:1280px;box-shadow:20px 22px 0 #fff7e7}
.blessing-nominate-copy{padding:clamp(72px,8vw,138px) max(44px,calc((100vw - var(--max))/2)) clamp(72px,8vw,138px) clamp(44px,7vw,120px)}
.blessing-nominate-copy h2{max-width:760px;font-size:clamp(46px,4.8vw,78px);line-height:1.05}
.blessing-nominate-copy p{max-width:680px;color:#654a3d;font-size:18px}
.blessing-nominate-copy h2+p{margin-top:30px}
.blessing-nominate-copy .button{margin-top:16px}

.blessing-support{background:#d7caef;padding:clamp(100px,9vw,160px) 0 0;overflow:hidden}
.blessing-support-intro{width:min(var(--max),calc(100% - 88px));margin:0 auto;display:grid;grid-template-columns:1fr .8fr;gap:clamp(50px,8vw,130px);align-items:end;padding-bottom:clamp(62px,6vw,92px)}
.blessing-support-intro h2{font-size:clamp(50px,5.6vw,92px);line-height:1.035;max-width:900px}
.blessing-support-intro p{font-size:20px;max-width:650px;color:#534261;margin:0 0 9px}
.blessing-impact{border-top:1px solid rgba(43,25,19,.18)}
.blessing-impact>div{display:grid;grid-template-columns:150px minmax(250px,.72fr) 1fr;gap:40px;align-items:center;padding:28px max(44px,calc((100vw - var(--max))/2));border-bottom:1px solid rgba(43,25,19,.18);transition:background .25s ease,padding-left .3s var(--motion)}
.blessing-impact>div:nth-child(odd){background:rgba(255,255,255,.16)}
.blessing-impact>div:hover{background:#f8d2de;padding-left:max(58px,calc((100vw - var(--max))/2 + 14px))}
.blessing-impact strong{font-family:var(--display);font-size:clamp(38px,3.4vw,56px);letter-spacing:.03em;line-height:1;color:var(--raspberry)}
.blessing-impact span{font-family:var(--display);font-size:clamp(22px,2vw,31px);font-weight:600;line-height:1.14;letter-spacing:.025em;color:var(--espresso)}
.blessing-impact p{margin:0;color:#594767;max-width:700px}
.blessing-support-action{width:min(var(--max),calc(100% - 88px));margin:0 auto;padding:clamp(52px,5vw,80px) 0 clamp(84px,8vw,130px);display:flex;justify-content:space-between;align-items:center;gap:40px}
.blessing-support-action p{max-width:720px;font-size:20px;margin:0;color:#4f3f5d}
.blessing-button-dark{background:var(--espresso);border-color:var(--espresso);color:white;white-space:nowrap}
.blessing-button-dark:hover{background:var(--raspberry);border-color:var(--raspberry)}

.blessing-promise{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(60px,9vw,150px);align-items:start}
.blessing-promise-title{position:sticky;top:150px}
.blessing-promise-title h2{font-size:clamp(48px,5.4vw,88px);line-height:1.04;max-width:650px;color:var(--raspberry)}
.blessing-promise-copy>div{padding:34px 0 36px;border-top:1px solid var(--line)}
.blessing-promise-copy>div:last-child{border-bottom:1px solid var(--line)}
.blessing-promise-copy strong{display:block;font-family:var(--display);font-size:clamp(30px,2.5vw,40px);line-height:1.08;letter-spacing:.03em}
.blessing-promise-copy p{max-width:760px;color:var(--muted);margin:16px 0 0}

.blessing-thanks{position:relative;overflow:hidden;background:#7a5c9d;color:white;text-align:center;padding:clamp(110px,11vw,190px) max(24px,calc((100vw - var(--max))/2));isolation:isolate}
.blessing-thanks::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:#f3cf75;left:-180px;bottom:-220px;z-index:-1;opacity:.85}
.blessing-thanks::after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:#f1a9c0;right:-140px;top:-170px;z-index:-1;opacity:.8}
.blessing-thanks>p{max-width:850px;margin:0 auto 38px;font-size:clamp(19px,1.55vw,25px);color:#f6eefb}
.blessing-thanks h2{max-width:1180px;margin:0 auto;font-size:clamp(48px,5.8vw,94px);line-height:1.04;color:white}
.blessing-thanks .button-row{justify-content:center;margin-top:46px}
.blessing-outline-light{color:white;border-color:rgba(255,255,255,.75)}
.blessing-outline-light:hover{background:white;color:#644b83;border-color:white}
.blessing-stars{position:absolute;inset:0;pointer-events:none;z-index:-1}
.blessing-stars i{position:absolute;width:14px;height:14px;background:white;clip-path:polygon(50% 0,62% 37%,100% 50%,62% 63%,50% 100%,38% 63%,0 50%,38% 37%);opacity:.56}
.blessing-stars i:nth-child(1){left:8%;top:23%;width:20px;height:20px}
.blessing-stars i:nth-child(2){left:22%;bottom:18%;background:#f3cf75}
.blessing-stars i:nth-child(3){right:20%;top:21%;width:22px;height:22px;background:#f5bfd0}
.blessing-stars i:nth-child(4){right:8%;bottom:26%;width:18px;height:18px;background:#bcd9ec}
.blessing-stars i:nth-child(5){left:51%;top:10%;width:10px;height:10px;background:#f3cf75}

/* Birthday Blessing motion is cheerful but restrained. */
@keyframes blessingFloat{0%{transform:translate3d(0,0,0) rotate(var(--r,0deg))}100%{transform:translate3d(0,-12px,0) rotate(calc(var(--r,0deg) + 7deg))}}
@keyframes blessingFlame{0%,100%{transform:rotate(8deg) scale(1)}50%{transform:rotate(-4deg) scale(.92,1.08)}}
@keyframes blessingPosterFloat{0%,100%{transform:rotate(1.6deg) translateY(0)}50%{transform:rotate(.5deg) translateY(-8px)}}
@keyframes blessingCopyIn{to{opacity:1;transform:none}}
.motion-ready .blessing-confetti span{animation:blessingFloat 3.8s ease-in-out infinite alternate}
.motion-ready .blessing-confetti span:nth-child(2n){animation-duration:4.7s;animation-delay:-1.4s}
.motion-ready .blessing-confetti span:nth-child(3n){animation-duration:5.4s;animation-delay:-2s}
.motion-ready .blessing-flame{animation:blessingFlame 1.45s ease-in-out infinite}
.motion-ready .blessing-poster{animation:blessingPosterFloat 7s ease-in-out infinite}
.motion-ready .blessing-hero-copy>*{opacity:0;transform:translateY(24px);animation:blessingCopyIn .72s var(--motion) forwards}
.motion-ready .blessing-hero-copy h1{animation-delay:.18s}
.motion-ready .blessing-hero-copy p{animation-delay:.34s}
.motion-ready .blessing-hero-copy .button-row{animation-delay:.48s}
.motion-ready .blessing-hero-visual{opacity:0;transform:translateY(22px) scale(.985);animation:blessingVisualIn .88s var(--motion) .32s forwards}
@keyframes blessingVisualIn{to{opacity:1;transform:none}}

@media (max-width:1180px){
  .blessing-hero{grid-template-columns:1fr .8fr;min-height:700px}.blessing-hero-visual{min-height:700px;padding-left:30px;padding-right:42px}.blessing-hero-copy{padding-left:40px;padding-right:38px}.blessing-hero-copy h1{font-size:clamp(58px,6.8vw,88px)}
  .blessing-support-intro{width:calc(100% - 40px)}.blessing-support-action{width:calc(100% - 40px)}.blessing-impact>div{padding-left:20px;padding-right:20px}.blessing-impact>div:hover{padding-left:34px}
}

@media (max-width:900px){
  .blessing-hero{grid-template-columns:1fr;min-height:0}.blessing-hero-copy{padding:76px 24px 62px;align-items:center;text-align:center}.blessing-hero-copy h1{max-width:720px;font-size:clamp(56px,10vw,84px)}.blessing-hero-copy p{margin-left:auto;margin-right:auto}.blessing-hero-copy .button-row{justify-content:center}.blessing-hero-visual{min-height:640px;padding:62px 24px 86px}.blessing-poster{width:min(78vw,400px)}.blessing-candle{left:12%;top:7%}
  .blessing-wish{grid-template-columns:1fr}.blessing-wish-copy{text-align:center;padding:72px 24px}.blessing-wish-copy h2,.blessing-wish-copy p{margin-left:auto;margin-right:auto}.blessing-wish-photo{padding:34px 24px 58px}.blessing-wish-photo img{box-shadow:12px 14px 0 rgba(255,250,244,.72)}
  .blessing-path{grid-template-columns:1fr}.blessing-path>div{min-height:0;text-align:center;align-items:center}.blessing-path>div+div{border-left:0;border-top:1px solid rgba(43,25,19,.18)}
  .blessing-nominate{grid-template-columns:1fr}.blessing-nominate-media{padding:48px 24px 0}.blessing-nominate-media img{box-shadow:12px 14px 0 #fff7e7}.blessing-nominate-copy{text-align:center;padding:70px 24px 80px}.blessing-nominate-copy h2,.blessing-nominate-copy p{margin-left:auto;margin-right:auto}
  .blessing-support-intro{grid-template-columns:1fr;text-align:center;gap:24px}.blessing-support-intro h2,.blessing-support-intro p{margin-left:auto;margin-right:auto}.blessing-impact>div{grid-template-columns:110px 1fr;gap:18px 26px;padding:28px 24px}.blessing-impact>div:hover{padding-left:24px}.blessing-impact p{grid-column:2}.blessing-support-action{flex-direction:column;text-align:center}
  .blessing-promise{grid-template-columns:1fr;gap:34px}.blessing-promise-title{position:static;text-align:center}.blessing-promise-title h2{margin-inline:auto}.blessing-promise-copy{text-align:center}.blessing-promise-copy p{margin-left:auto;margin-right:auto}
}

@media (max-width:580px){
  .blessing-hero-copy{padding:62px 16px 52px}.blessing-hero-copy h1{font-size:clamp(48px,13.8vw,64px);line-height:1.05}.blessing-hero-copy p{font-size:17px}.blessing-hero-copy .button-row{gap:16px}.blessing-hero-copy .button,.blessing-hero-copy .text-link{width:100%;text-align:center}.blessing-hero-visual{min-height:540px;padding:58px 18px 72px}.blessing-poster{width:min(82vw,360px)}.blessing-poster::before{transform:translate(-12px,13px) rotate(-2.5deg)}.blessing-poster::after{transform:translate(12px,-11px) rotate(2deg)}.blessing-candle{left:5%;top:4%;transform:scale(.78) rotate(-5deg)}
  .blessing-wish-copy{padding:62px 16px}.blessing-wish-copy h2{font-size:clamp(38px,10.5vw,52px)}.blessing-wish-copy p{font-size:18px}.blessing-wish-photo{padding:26px 16px 42px}
  .blessing-how{width:100%;padding-left:0;padding-right:0}.blessing-how>h2{width:calc(100% - 32px);font-size:clamp(38px,10.5vw,52px)}.blessing-path>div{padding:42px 20px}.blessing-path strong{font-size:30px}
  .blessing-nominate-media{padding:34px 16px 0}.blessing-nominate-copy{padding:58px 16px 68px}.blessing-nominate-copy h2{font-size:clamp(38px,10.5vw,52px)}
  .blessing-support{padding-top:76px}.blessing-support-intro{width:calc(100% - 32px);padding-bottom:50px}.blessing-support-intro h2{font-size:clamp(40px,11vw,56px)}.blessing-impact>div{grid-template-columns:1fr;gap:8px;padding:26px 16px;text-align:center}.blessing-impact strong{font-size:42px}.blessing-impact span{font-size:25px}.blessing-impact p{grid-column:auto;margin:8px auto 0}.blessing-support-action{width:calc(100% - 32px);padding-bottom:74px}.blessing-support-action .button{width:100%}
  .blessing-promise{width:calc(100% - 32px)}.blessing-promise-title h2{font-size:clamp(40px,11vw,56px)}
  .blessing-thanks{padding:92px 16px}.blessing-thanks h2{font-size:clamp(40px,11vw,56px)}.blessing-thanks .button-row{gap:14px}.blessing-thanks .button{width:100%}
}

@media (prefers-reduced-motion:reduce){
  .motion-ready .blessing-confetti span,.motion-ready .blessing-flame,.motion-ready .blessing-poster,.motion-ready .blessing-hero-copy>*,.motion-ready .blessing-hero-visual{animation:none!important;opacity:1!important;transform:none!important}
}

/* =====================================================================
   V13 — mobile QA + viewport containment
   Fixes real overflow sources while preserving the premium motion system.
   ===================================================================== */
html{
  width:100%;
  max-width:100%;
  overflow-x:clip;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
main,.site-header,.site-footer,
.home-hero,.page-hero,.menu-hero,.corporate-hero,
.section-pad,.feature-split,.number-story,.delivery-showcase,
.story-home,.community-feature,.home-contact,.about-hero,
.contact-layout,.blessing-hero,.blessing-page{
  min-width:0;
  max-width:100%;
}
img,svg,video,canvas{max-width:100%;}
button,input,select,textarea{min-width:0;max-width:100%;}

@media (max-width:900px){
  /* The mobile menu can never run below the screen. */
  .site-nav{
    max-height:calc(100dvh - 82px);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  /* Keep reveal motion vertical on compact screens. Side-entry motion is a
     desktop flourish and can create transient horizontal scroll on phones. */
  .motion-ready .motion-item.motion-left,
  .motion-ready .motion-item.motion-right{
    transform:translate3d(0,26px,0);
  }

  /* Keep the Birthday Blessing poster's offset backing layer inside its own
     box instead of extending beyond the page edge. */
  .community-feature-poster{
    width:min(100%,414px);
    margin-inline:auto;
    padding:0 14px 14px 0;
    transform:none;
  }
  .community-feature-poster::before{
    inset:14px 0 0 14px;
  }
  .community-feature-poster img{
    width:100%;
    max-width:none;
    margin:0;
  }

  /* The founder-photo backing block stays decorative without hanging outside
     the viewport once the story stacks. */
  .story-portrait::before{
    left:10px;
    top:12px;
    width:calc(100% - 10px);
  }

  .inquiry-form,.contact-layout>*{min-width:0;}
  .contact-direct a,.footer-block a{overflow-wrap:anywhere;}
}

@media (max-width:580px){
  /* Comfortable, consistent phone gutters. */
  .header-shell{width:calc(100% - 24px);}
  .section-pad{width:calc(100% - 32px);}
  .quick-find>h2,.intro-wide>h2,
  .note-section,.planning-note,
  .blessing-support-intro,.blessing-support-action,.blessing-promise{
    width:calc(100% - 32px);
  }

  /* Preserve hero personality while keeping every visual within the screen. */
  .hero-image{overflow:clip;}
  .hero-secondary-image{
    right:14px;
    width:min(39vw,158px);
  }
  .home-hero::after{right:-12vw;width:54vw;}

  /* The three-cake composition remains playful, but its rotated edges are
     contained and the cakes are large enough to read on a phone. */
  .number-strip{
    min-height:530px;
    overflow:clip;
  }
  .number-strip img:nth-child(1){width:55%;left:2%;top:4%;transform:rotate(-2deg);}
  .number-strip img:nth-child(2){width:53%;right:2%;top:24%;transform:rotate(2deg);}
  .number-strip img:nth-child(3){width:50%;left:25%;bottom:2%;transform:rotate(.6deg);}

  /* Contained offset effects: still handcrafted, no accidental scroll area. */
  .community-feature-poster{
    width:min(100%,372px);
    padding:0 11px 11px 0;
  }
  .community-feature-poster::before{inset:11px 0 0 11px;}
  .story-portrait{padding:0 10px 10px 0;}
  .story-portrait::before{left:10px;top:10px;width:calc(100% - 10px);height:calc(100% - 10px);}
  .about-hero img{max-width:min(100%,390px);box-shadow:10px 12px 0 var(--pink);}
  .inquiry-form{width:100%;padding:28px 18px;box-shadow:8px 9px 0 var(--pink);}

  /* iOS will not zoom the page when a form control receives focus. */
  .inquiry-form input,.inquiry-form select,.inquiry-form textarea{font-size:16px;}

  /* Long labels and rate rows wrap intentionally rather than forcing width. */
  .rate-list div{flex-wrap:wrap;align-items:flex-start;}
  .rate-list strong{margin-left:auto;}
  .faq-list summary{padding-right:48px;}
  .blessing-button-dark{white-space:normal;text-align:center;}

  /* Touch targets stay generous without becoming oversized. */
  .button,.nav-cta,.menu-toggle{min-height:48px;}

  /* Touchscreens should not retain desktop hover translations after a tap. */
  .quick-find-grid a:hover img,
  .craft-strip figure:hover img,
  .gallery-mosaic figure:hover img,
  .garden-duo img:hover,
  .about-photo-band img:hover,
  .contact-photo-band img:hover,
  .feature-image img:hover,
  .story-portrait img:hover,
  .community-feature-poster img:hover,
  .page-hero-media img:hover,
  .menu-hero-img img:hover,
  .corporate-media img:hover,
  .delivery-image img:hover{
    transform:none;
  }
}

/* Final phone-width refinements found during the mobile QA sweep. */
@media (max-width:580px){
  .delivery-scene h2{
    font-size:clamp(38px,10.5vw,52px);
    line-height:1.06;
    overflow-wrap:break-word;
  }

  /* Keep both cheerful poster backing sheets visible without letting either
     one create an internal sideways scroll area. */
  .blessing-poster{
    width:min(84vw,350px);
    padding:12px;
    transform:none;
  }
  .blessing-poster::before{
    inset:20px 4px 4px 20px;
    transform:rotate(-1.2deg);
  }
  .blessing-poster::after{
    inset:4px 20px 20px 4px;
    transform:rotate(1deg);
  }
  .blessing-poster img{position:relative;z-index:1;}
  .motion-ready .blessing-poster{animation-name:blessingPosterFloatMobile;}
  @keyframes blessingPosterFloatMobile{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-7px)}
  }
}

/* =====================================================================
   V14 — hard mobile horizontal-scroll lock
   Safari/iOS-safe containment. This intentionally uses hidden rather than
   clip at the viewport root and limits touch gestures to vertical panning.
   ===================================================================== */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden !important;
  overscroll-behavior-x:none;
}
body{
  position:relative;
  min-width:0;
}
main{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:hidden;
}

@media (max-width:900px){
  html,
  body{
    overflow-x:hidden !important;
    overscroll-behavior-x:none;
  }
  body,
  main{
    touch-action:pan-y pinch-zoom;
  }

  /* Create hard clipping boundaries around the compositions that use
     rotated/offset decorative layers. */
  .home-hero,
  .quick-find,
  .craft-strip,
  .feature-split,
  .number-story,
  .delivery-showcase,
  .story-home,
  .community-feature,
  .home-contact,
  .page-hero,
  .menu-hero,
  .corporate-hero,
  .about-hero,
  .contact-layout,
  .contact-photo-band,
  .about-photo-band,
  .closing-cta,
  .site-footer,
  .blessing-hero,
  .blessing-wish,
  .blessing-how,
  .blessing-nominate,
  .blessing-support,
  .blessing-promise,
  .blessing-thanks{
    max-width:100%;
    overflow-x:hidden;
  }

  /* A transformed child should never establish a scrollable width. */
  .hero-secondary-image,
  .community-feature-poster,
  .story-portrait,
  .number-strip,
  .blessing-poster,
  .blessing-confetti,
  .blessing-stars{
    max-width:100%;
  }
}


/* =====================================================================
   V15 — mobile header opacity + true visual-viewport transition curtain
   ===================================================================== */

/* The old body pseudo curtain is replaced by a root-level curtain below.
   Keeping the transition on the root avoids mobile Safari body/viewport
   sizing quirks when browser chrome expands or collapses. */
.motion-ready body::after{
  content:none !important;
  animation:none !important;
}

html.motion-ready::after{
  content:"";
  position:fixed;
  top:-4px;
  left:-4px;
  width:calc(100vw + 8px);
  height:calc(var(--cb-viewport-height, 100dvh) + 8px);
  min-height:calc(100svh + 8px);
  z-index:2147483646;
  pointer-events:none;
  background:linear-gradient(135deg,var(--raspberry) 0 34%,var(--lavender-deep) 34% 68%,var(--butter) 68% 100%);
  transform-origin:50% 0;
  transform:translateZ(0) scaleY(1);
  will-change:transform;
  animation:pageCurtainInRoot .82s var(--motion) .06s both;
}

html.motion-ready.page-leaving::after{
  animation:pageCurtainOutRoot .38s cubic-bezier(.65,0,.35,1) both;
}

@keyframes pageCurtainInRoot{
  0%{transform:translateZ(0) scaleY(1)}
  100%{transform:translateZ(0) scaleY(0)}
}
@keyframes pageCurtainOutRoot{
  0%{transform:translateZ(0) scaleY(0)}
  100%{transform:translateZ(0) scaleY(1)}
}

@media (max-width:900px){
  /* Mobile should never show page content through the sticky navigation.
     The translucent/blurred treatment remains a desktop detail only. */
  .site-header{
    background:var(--ivory) !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    border-bottom:1px solid rgba(43,25,19,.13);
    box-shadow:0 4px 18px rgba(43,25,19,.045);
    isolation:isolate;
  }
  .header-shell{
    position:relative;
    z-index:2;
    background:var(--ivory);
  }
  .site-nav{
    z-index:3;
    background:var(--ivory) !important;
  }
}

@media (prefers-reduced-motion:reduce){
  html.motion-ready::after{display:none !important;}
}

/* =====================================================================
   V16 — cache-busted mobile architecture
   This block intentionally replaces the previous mobile header and
   pseudo-element transition approach with structural, Safari-safe layers.
   ===================================================================== */

/* The actual transition element lives directly under <body>. Oversizing the
   fixed inset means it covers dynamic Safari toolbars without depending on vh. */
.page-transition{
  position:fixed;
  top:-20vh;
  right:-20vw;
  bottom:-20vh;
  left:-20vw;
  z-index:2147483647;
  pointer-events:none;
  background:linear-gradient(135deg,var(--raspberry) 0 34%,var(--lavender-deep) 34% 68%,var(--butter) 68% 100%);
  transform:translateZ(0) scaleY(0);
  transform-origin:50% 0;
  will-change:transform;
}

/* Retire both older pseudo-element transition implementations. */
.motion-ready body::after,
html.motion-ready::after{
  content:none !important;
  display:none !important;
  animation:none !important;
}

/* Only JS-capable pages show the initial curtain. Without JS the site remains
   visible rather than being trapped behind an overlay. */
html.js:not(.motion-ready) .page-transition{
  transform:translateZ(0) scaleY(1);
}
html.js.motion-ready .page-transition{
  animation:cbPageEnter .78s var(--motion) .04s both;
}
html.js.motion-ready.page-leaving .page-transition{
  animation:none !important;
  transform:translateZ(0) scaleY(1);
  transition:transform .40s cubic-bezier(.65,0,.35,1);
}
@keyframes cbPageEnter{
  0%{transform:translateZ(0) scaleY(1)}
  100%{transform:translateZ(0) scaleY(0)}
}

@media (max-width:900px){
  :root{--cb-mobile-header:82px;}

  /* Fixed instead of sticky on phones. This creates a dedicated opaque layer,
     so page content can never visually pass behind the navigation bar. */
  body{
    padding-top:calc(var(--cb-mobile-header) + env(safe-area-inset-top, 0px));
  }
  .site-header{
    position:fixed !important;
    top:0;
    right:0;
    left:0;
    width:100%;
    height:calc(var(--cb-mobile-header) + env(safe-area-inset-top, 0px));
    padding-top:env(safe-area-inset-top, 0px);
    z-index:100000 !important;
    background:#fffaf4 !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    opacity:1 !important;
    border-bottom:1px solid rgba(43,25,19,.14);
    box-shadow:0 5px 20px rgba(43,25,19,.07);
    overflow:visible;
    isolation:isolate;
  }
  /* Explicit paint layer prevents any blend/transparency edge cases in Safari. */
  .site-header::before{
    content:"";
    position:absolute;
    inset:0;
    background:#fffaf4;
    z-index:-1;
    pointer-events:none;
  }
  .header-shell{
    width:calc(100% - 28px);
    height:var(--cb-mobile-header) !important;
    margin:0 auto;
    position:relative;
    z-index:2;
    background:#fffaf4 !important;
  }
  .site-nav{
    position:fixed !important;
    top:calc(var(--cb-mobile-header) + env(safe-area-inset-top, 0px)) !important;
    left:0 !important;
    right:0 !important;
    width:100%;
    max-height:calc(100dvh - var(--cb-mobile-header) - env(safe-area-inset-top, 0px));
    background:#fffaf4 !important;
    opacity:1 !important;
    z-index:100001 !important;
    overscroll-behavior:contain;
  }

  /* Keep the texture below the mobile header, rather than compositing over it. */
  body::before{z-index:50 !important;}

  /* The page itself remains vertically pannable only. */
  html,body,main{
    max-width:100%;
    overflow-x:hidden !important;
    overscroll-behavior-x:none;
  }
  body,main{touch-action:pan-y pinch-zoom;}
}

@media (max-width:580px){
  :root{--cb-mobile-header:78px;}
  .header-shell{height:var(--cb-mobile-header) !important;}
  .brand{width:58px;height:58px;}
}

@media (prefers-reduced-motion:reduce){
  .page-transition{display:none !important;animation:none !important;transition:none !important;}
}


/* =====================================================================
   V18 — Pull-Apart Cupcake Cake photography
   The new customer-supplied photography is displayed at its natural
   aspect ratio with an editorial, color-led composition and no cropping.
   ===================================================================== */

.pullapart{
  border-top:1px solid var(--line);
  border-bottom:0;
  padding-bottom:clamp(72px,7vw,110px);
}
.pullapart-gallery{
  width:100%;
  max-width:none;
  margin:0;
  padding:clamp(24px,3vw,48px) max(44px,calc((100vw - var(--max))/2)) clamp(100px,9vw,160px);
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(22px,2.7vw,46px);
  align-items:start;
  background:
    linear-gradient(180deg,
      var(--lavender-soft) 0 31%,
      var(--pink-soft) 31% 64%,
      var(--sky-soft) 64% 100%);
  overflow:hidden;
}
.pullapart-gallery figure{
  margin:0;
  min-width:0;
  position:relative;
}
.pullapart-gallery figure:nth-child(1){
  grid-column:1 / 7;
}
.pullapart-gallery figure:nth-child(2){
  grid-column:7 / 13;
  margin-top:clamp(56px,7vw,116px);
}
.pullapart-gallery figure:nth-child(3){
  grid-column:2 / 7;
  margin-top:clamp(-36px,-2.5vw,-18px);
}
.pullapart-gallery figure:nth-child(4){
  grid-column:7 / 13;
  margin-top:clamp(18px,3vw,54px);
}
.pullapart-gallery figure:nth-child(5){
  grid-column:3 / 10;
  margin-top:clamp(-22px,-1vw,-10px);
}
.pullapart-gallery img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  object-fit:contain;
  background:#fff;
  box-shadow:0 20px 52px rgba(59,37,29,.12);
  transition:transform .8s var(--motion),box-shadow .8s var(--motion),filter .6s ease;
  will-change:transform;
}
@media (hover:hover) and (pointer:fine){
  .pullapart-gallery figure:hover img{
    transform:translate3d(0,-7px,0) rotate(.35deg) scale(1.008);
    box-shadow:0 28px 62px rgba(59,37,29,.16);
  }
}

@media (max-width:900px){
  .pullapart-gallery{
    padding:34px 20px 90px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
    background:
      linear-gradient(180deg,
        var(--lavender-soft) 0 34%,
        var(--pink-soft) 34% 67%,
        var(--sky-soft) 67% 100%);
  }
  .pullapart-gallery figure:nth-child(n){
    grid-column:auto;
    margin-top:0;
  }
  .pullapart-gallery figure:nth-child(1),
  .pullapart-gallery figure:nth-child(4){
    grid-column:1 / 3;
  }
  .pullapart-gallery figure:nth-child(3){
    align-self:end;
  }
  .pullapart-gallery figure:nth-child(5){
    grid-column:1 / 3;
    width:min(82%,620px);
    justify-self:center;
  }
}

@media (max-width:580px){
  .pullapart{
    padding-bottom:58px;
  }
  .pullapart-gallery{
    padding:18px 14px 76px;
    grid-template-columns:1fr;
    gap:18px;
    background:
      linear-gradient(180deg,
        var(--lavender-soft) 0 32%,
        var(--pink-soft) 32% 65%,
        var(--sky-soft) 65% 100%);
  }
  .pullapart-gallery figure:nth-child(n){
    grid-column:1;
    width:100%;
    margin:0;
    justify-self:stretch;
  }
  .pullapart-gallery figure:nth-child(2),
  .pullapart-gallery figure:nth-child(4){
    width:92%;
    margin-left:auto;
  }
  .pullapart-gallery figure:nth-child(3){
    width:94%;
    margin-right:auto;
  }
  .pullapart-gallery figure:nth-child(5){
    width:96%;
    margin-left:auto;
    margin-right:auto;
  }
  .pullapart-gallery img{
    box-shadow:0 12px 28px rgba(59,37,29,.10);
  }
}

@media (prefers-reduced-motion:reduce){
  .pullapart-gallery img{
    transition:none!important;
    transform:none!important;
  }
}

/* V19 — centered custom-design note + Signature Favorites showcase */
.note-section{
  display:grid;
  justify-items:center;
  text-align:center;
  width:min(920px,calc(100% - 48px));
  margin-inline:auto;
  padding-left:0;
  padding-right:0;
}
.note-section h2{
  width:100%;
  max-width:760px;
  margin:0 auto 24px;
  text-align:center;
  text-wrap:balance;
}
.note-section p{
  width:100%;
  max-width:760px;
  margin:0 auto;
  text-align:center;
  text-wrap:pretty;
}

.flavor-list .signature-favorites{
  grid-template-columns:1fr;
  gap:30px;
  text-align:center;
  padding-block:clamp(40px,5vw,72px);
}
.signature-favorites-copy{
  width:min(900px,100%);
  margin-inline:auto;
}
.signature-favorites-copy h3{
  margin-bottom:16px;
}
.signature-favorites-copy p{
  max-width:880px;
  margin-inline:auto;
}
.signature-favorites-showcase{
  width:min(1220px,100%);
  margin:6px auto 0;
}
.signature-favorites-showcase img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.signature-favorites-showcase figcaption{
  margin-top:14px;
  font-size:13px;
  line-height:1.5;
  letter-spacing:.06em;
  color:var(--muted);
  text-align:center;
}
@media (max-width:580px){
  .note-section{width:calc(100% - 32px)}
  .note-section h2{margin-bottom:18px}
  .flavor-list .signature-favorites{gap:22px;padding-block:34px}
  .signature-favorites-showcase{
    width:calc(100% + 8px);
    margin-left:-4px;
  }
  .signature-favorites-showcase figcaption{font-size:12px;padding-inline:12px}
}

/* V21 — vertically center the custom-design note within its section */
.note-section{
  min-height:clamp(340px,38vw,520px);
  align-content:center;
  justify-content:center;
  row-gap:0;
  padding-top:clamp(56px,7vw,96px);
  padding-bottom:clamp(56px,7vw,96px);
  box-sizing:border-box;
}
@media (max-width:580px){
  .note-section{
    min-height:360px;
    padding-top:56px;
    padding-bottom:56px;
  }
}
