/* ==========================================================
   KNEAD — cats make biscuits. we make bread.
   ========================================================== */

:root{
  --cream:#FDF4DE;
  --cream-2:#F9E7BC;
  --cream-3:#F3D89C;
  --butter:#F5C96B;
  --gold:#E9A93F;
  --orange:#E8912F;
  --orange-2:#D2761C;
  --ink:#33200F;
  --ink-2:#5C3F28;
  --ink-3:#8A6A4C;
  --pink:#F09B92;
  --wood:#9A5A2E;
  --white:#FFFDF6;

  --r-sm:14px; --r-md:22px; --r-lg:30px; --r-xl:42px;
  --bd:3px solid var(--ink);
  --sh-sm:0 4px 0 var(--ink);
  --sh-md:0 7px 0 var(--ink);
  --sh-lg:0 12px 0 var(--ink);
  --sh-soft:0 22px 50px -18px rgba(51,32,15,.42);

  --f-head:"Baloo 2", system-ui, sans-serif;
  --f-body:"Nunito", system-ui, sans-serif;
  --nav-h:74px;
}

*,*::before,*::after{box-sizing:border-box}
html{
  scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 18px);
  /* `clip` (not `hidden`) so the tilted full-bleed marquees can't create a
     sideways scrollbar without turning <html> into a scroll container. */
  overflow-x:clip;
}
body{
  margin:0; font-family:var(--f-body); color:var(--ink);
  background:var(--cream); overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
code{font-family:ui-monospace,"SF Mono",Menlo,monospace}
::selection{background:var(--butter); color:var(--ink)}

/* ---------- BACKGROUND ---------- */
.bg-warm{
  position:fixed; inset:0; z-index:-5;
  background:
    linear-gradient(178deg,#FFF8E8 0%, var(--cream) 34%, #F9EAC6 68%, #F5DFB0 100%);
}
.bg-dots{
  position:fixed; inset:0; z-index:-4; opacity:.5;
  background-image:radial-gradient(rgba(154,90,46,.16) 1.5px, transparent 1.6px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(ellipse 90% 65% at 50% 35%,#000 30%,transparent 100%);
          mask-image:radial-gradient(ellipse 90% 65% at 50% 35%,#000 30%,transparent 100%);
}
.bg-glow{position:fixed; border-radius:50%; z-index:-3; filter:blur(90px); pointer-events:none}
.bg-glow--a{width:52vw;height:52vw;left:-14vw;top:-8vw;background:rgba(245,201,107,.55); animation:drift 26s ease-in-out infinite}
.bg-glow--b{width:44vw;height:44vw;right:-12vw;top:28vh;background:rgba(232,145,47,.30); animation:drift 32s ease-in-out infinite reverse}
.bg-glow--c{width:60vw;height:60vw;left:18vw;bottom:-24vw;background:rgba(240,155,146,.26); animation:drift 38s ease-in-out infinite}
@keyframes drift{
  0%,100%{transform:translate(0,0) scale(1)}
  33%{transform:translate(6vw,-4vh) scale(1.12)}
  66%{transform:translate(-5vw,5vh) scale(.94)}
}
.grain{
  position:fixed; inset:-200%; z-index:-2; pointer-events:none; opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainShift 700ms steps(4) infinite;
}
@keyframes grainShift{
  0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}
  50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-2%)}100%{transform:translate(0,0)}
}
.floaties{position:fixed; inset:0; z-index:-1; pointer-events:none; overflow:hidden}
.floaty{position:absolute; font-size:2rem; opacity:.5; will-change:transform; filter:drop-shadow(0 6px 10px rgba(51,32,15,.18))}

/* ---------- SCROLL PROGRESS ---------- */
.progress-rail{
  position:fixed; left:0; right:0; top:0; height:6px; z-index:120;
  background:rgba(51,32,15,.10);
}
.progress-fill{height:100%; width:0%; background:linear-gradient(90deg,var(--orange),var(--butter),var(--gold)); box-shadow:0 0 14px rgba(233,169,63,.85)}
.progress-biscuit{
  position:fixed; top:-6px; left:0; font-size:19px; z-index:121;
  transform:translateX(-50%) rotate(0deg); transition:transform .06s linear;
  filter:drop-shadow(0 2px 3px rgba(51,32,15,.35));
}

/* ---------- NAV ---------- */
.nav{
  position:fixed; top:6px; left:0; right:0; height:var(--nav-h); z-index:100;
  display:flex; align-items:center; gap:20px;
  padding:0 clamp(14px,3.4vw,40px);
  transition:background .35s, box-shadow .35s, backdrop-filter .35s, height .35s;
}
.nav.is-stuck{
  background:rgba(253,244,222,.86); backdrop-filter:blur(16px) saturate(1.3);
  box-shadow:0 3px 0 rgba(51,32,15,.14), 0 16px 34px -22px rgba(51,32,15,.5);
  height:64px;
}
.nav__brand{display:flex; align-items:center; gap:11px; flex-shrink:0}
.nav__logo{
  width:46px;height:46px;border-radius:50%; overflow:hidden;
  border:var(--bd); background:var(--cream-2); box-shadow:0 4px 0 var(--ink);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1);
}
.nav__logo img{width:100%;height:100%;object-fit:cover; transform:scale(1.16)}
.nav__brand:hover .nav__logo{transform:rotate(-9deg) scale(1.08)}
.nav__word{font-family:var(--f-head); font-weight:800; font-size:1.5rem; letter-spacing:.5px; color:var(--ink)}
.nav__links{display:flex; gap:6px; margin-left:auto}
.nav__links a{
  font-weight:800; font-size:.92rem; padding:9px 15px; border-radius:99px;
  position:relative; transition:color .22s, background .22s, transform .22s;
}
.nav__links a::after{
  content:""; position:absolute; left:15px; right:15px; bottom:5px; height:2.5px;
  background:var(--orange); border-radius:2px; transform:scaleX(0); transform-origin:left;
  transition:transform .28s cubic-bezier(.4,1.4,.5,1);
}
.nav__links a:hover{background:rgba(245,201,107,.32); transform:translateY(-2px)}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__cta{display:flex; align-items:center; gap:9px}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--f-head); font-weight:800; letter-spacing:.4px;
  border:var(--bd); border-radius:99px; cursor:pointer; white-space:nowrap;
  padding:12px 24px; font-size:1rem; background:var(--white); color:var(--ink);
  box-shadow:var(--sh-sm); transition:transform .16s, box-shadow .16s, background .22s;
}
.btn:hover{transform:translateY(-3px); box-shadow:0 7px 0 var(--ink)}
.btn:active{transform:translateY(3px); box-shadow:0 1px 0 var(--ink)}
.btn--primary{background:linear-gradient(180deg,var(--butter),var(--orange)); color:var(--ink)}
.btn--primary:hover{background:linear-gradient(180deg,#FFD983,var(--gold))}
.btn--ghost{background:rgba(255,253,246,.8)}
.btn--sm{padding:9px 17px; font-size:.9rem; box-shadow:0 3px 0 var(--ink)}
.btn--lg{padding:17px 34px; font-size:1.16rem; box-shadow:var(--sh-md)}
.btn--lg:hover{box-shadow:var(--sh-lg)}
.btn__arrow{width:19px;height:19px; transition:transform .25s}
.btn:hover .btn__arrow{transform:translateX(5px)}
.btn--primary{animation:btnPulse 2.8s ease-in-out infinite}
@keyframes btnPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.07)}}

.icon-btn{
  width:42px;height:42px; display:grid; place-items:center;
  border:var(--bd); border-radius:50%; background:var(--white);
  box-shadow:0 3px 0 var(--ink); transition:transform .18s, box-shadow .18s, background .2s;
}
.icon-btn:hover{transform:translateY(-3px) rotate(-8deg); box-shadow:0 6px 0 var(--ink); background:var(--butter)}
.ico{width:19px;height:19px; object-fit:contain}
.ico--lg{width:36px;height:36px}
.ico--ink{filter:brightness(0) saturate(100%) invert(11%) sepia(24%) saturate(1400%) hue-rotate(348deg) brightness(96%) contrast(92%)}

.nav__burger{display:none; flex-direction:column; gap:5px; background:var(--white); border:var(--bd); border-radius:12px; padding:10px 9px; cursor:pointer; box-shadow:0 3px 0 var(--ink)}
.nav__burger span{display:block; width:20px;height:2.6px;background:var(--ink); border-radius:2px; transition:.3s}
.nav__burger.is-open span:nth-child(1){transform:translateY(7.6px) rotate(45deg)}
.nav__burger.is-open span:nth-child(2){opacity:0}
.nav__burger.is-open span:nth-child(3){transform:translateY(-7.6px) rotate(-45deg)}
.mobile-menu{
  position:fixed; top:70px; left:12px; right:12px; z-index:99;
  background:var(--white); border:var(--bd); border-radius:var(--r-lg);
  box-shadow:var(--sh-md); padding:16px; display:none; flex-direction:column; gap:8px;
  transform-origin:top center; animation:popIn .3s cubic-bezier(.34,1.56,.64,1);
}
.mobile-menu.is-open{display:flex}
.mobile-menu a{font-family:var(--f-head); font-weight:800; padding:12px 16px; border-radius:14px; font-size:1.05rem}
.mobile-menu a:hover{background:var(--cream-2)}
@keyframes popIn{from{opacity:0; transform:scale(.94) translateY(-8px)}to{opacity:1; transform:scale(1) translateY(0)}}

/* ---------- HERO ---------- */
.hero{position:relative; padding:calc(var(--nav-h) + 46px) clamp(16px,4vw,40px) 70px; min-height:100svh; display:flex; align-items:center}
.hero__inner{
  width:100%; max-width:1220px; margin:0 auto;
  display:grid; grid-template-columns:1.06fr .94fr; gap:clamp(24px,4vw,60px); align-items:center;
}
.pill{
  display:inline-flex; align-items:center; gap:9px;
  background:var(--white); border:var(--bd); border-radius:99px;
  padding:8px 17px; font-weight:800; font-size:.8rem; letter-spacing:1.1px;
  box-shadow:0 4px 0 var(--ink); margin-bottom:22px;
}
.pill__dot{width:9px;height:9px;border-radius:50%;background:#3FBF63; box-shadow:0 0 0 0 rgba(63,191,99,.7); animation:blip 1.9s infinite}
@keyframes blip{0%{box-shadow:0 0 0 0 rgba(63,191,99,.7)}70%{box-shadow:0 0 0 11px rgba(63,191,99,0)}100%{box-shadow:0 0 0 0 rgba(63,191,99,0)}}

.hero__title{margin:0 0 6px; line-height:.86}
.stroke-word{
  position:relative; display:inline-block;
  font-family:var(--f-head); font-weight:800;
  font-size:clamp(4.4rem,13.5vw,10.5rem); letter-spacing:-2px;
  background:linear-gradient(178deg,#FFF3D0 8%,var(--butter) 42%,var(--orange) 88%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  -webkit-text-stroke:4px var(--ink);
  paint-order:stroke fill;
  filter:drop-shadow(0 8px 0 var(--ink)) drop-shadow(0 20px 30px rgba(51,32,15,.3));
  animation:wobble 5.5s ease-in-out infinite;
}
@keyframes wobble{0%,100%{transform:rotate(-1.4deg) translateY(0)}50%{transform:rotate(1.4deg) translateY(-8px)}}

.hero__tag{
  font-family:var(--f-head); font-weight:800; line-height:1.1;
  font-size:clamp(1.5rem,3.6vw,2.5rem); margin:14px 0 12px; color:var(--ink);
}
.hl{
  background:linear-gradient(180deg,transparent 58%, rgba(245,201,107,.9) 58%);
  padding:0 5px; border-radius:4px;
}
.hero__sub{font-size:clamp(1rem,1.5vw,1.16rem); font-weight:600; color:var(--ink-2); max-width:44ch; line-height:1.62; margin:0 0 28px}
.hero__btns{display:flex; flex-wrap:wrap; gap:13px; margin-bottom:28px}

/* CA box */
.ca{background:rgba(255,253,246,.9); border:var(--bd); border-radius:var(--r-md); padding:13px 16px; box-shadow:var(--sh-sm); max-width:560px}
.ca__label{font-size:.7rem; font-weight:900; letter-spacing:1.5px; color:var(--ink-3); margin-bottom:7px}
.ca__row{
  display:flex; align-items:center; gap:12px; width:100%; cursor:pointer;
  background:var(--cream-2); border:2px dashed rgba(51,32,15,.4); border-radius:13px;
  padding:11px 14px; font:inherit; text-align:left; transition:background .2s, border-color .2s, transform .15s;
}
.ca__row:hover{background:var(--cream-3); border-color:var(--ink); transform:translateY(-2px)}
.ca__row code{font-size:.86rem; font-weight:700; word-break:break-all; flex:1; color:var(--ink)}
.ca__copy{display:grid; place-items:center; width:32px;height:32px; flex-shrink:0; border-radius:9px; background:var(--white); border:2px solid var(--ink)}
.ca__copy svg{width:17px;height:17px}
.ca.is-copied .ca__row{background:#BFEBC9; border-color:#2E7D42}

/* hero art */
.hero__art{position:relative; display:grid; place-items:center; min-height:380px}
.hero__art-glow{
  position:absolute; width:80%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle,rgba(245,201,107,.85),transparent 66%); filter:blur(34px);
  animation:pulseGlow 4.4s ease-in-out infinite;
}
@keyframes pulseGlow{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.14);opacity:1}}
.hero__cat{position:relative; width:min(94%,470px); animation:knead 2.6s ease-in-out infinite; transform-origin:50% 88%}
.hero__cat img{
  border-radius:50%; border:5px solid var(--ink);
  box-shadow:0 16px 0 var(--ink), var(--sh-soft);
}
@keyframes knead{
  0%,100%{transform:translateY(0) scaleY(1) scaleX(1) rotate(0deg)}
  25%{transform:translateY(5px) scaleY(.965) scaleX(1.03) rotate(-1.6deg)}
  50%{transform:translateY(0) scaleY(1) scaleX(1) rotate(0deg)}
  75%{transform:translateY(5px) scaleY(.965) scaleX(1.03) rotate(1.6deg)}
}
.steam{position:absolute; top:2%; left:50%; transform:translateX(-50%); display:flex; gap:22px; pointer-events:none}
.steam span{
  width:11px;height:11px;border-radius:50%; background:rgba(255,255,255,.85);
  filter:blur(4px); animation:steam 3.4s ease-in infinite;
}
.steam span:nth-child(2){animation-delay:1.1s}
.steam span:nth-child(3){animation-delay:2.2s}
@keyframes steam{
  0%{opacity:0; transform:translateY(20px) scale(.6)}
  30%{opacity:.9}
  100%{opacity:0; transform:translateY(-80px) scale(2.4)}
}
.badge{
  position:absolute; font-family:var(--f-head); font-weight:800; font-size:.9rem;
  background:var(--white); border:var(--bd); border-radius:99px; padding:9px 16px;
  box-shadow:0 5px 0 var(--ink); white-space:nowrap; z-index:3;
}
.badge--1{top:8%; left:-4%; transform:rotate(-9deg); animation:float 5s ease-in-out infinite}
.badge--2{bottom:11%; right:-3%; transform:rotate(8deg); animation:float 5.8s ease-in-out infinite reverse}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -15px}}

.scroll-hint{position:absolute; bottom:22px; left:50%; transform:translateX(-50%); width:25px;height:42px; border:3px solid rgba(51,32,15,.4); border-radius:99px}
.scroll-hint span{display:block; width:5px;height:9px;border-radius:3px;background:var(--ink); margin:7px auto; animation:scrolly 1.7s infinite}
@keyframes scrolly{0%{opacity:0;transform:translateY(0)}40%{opacity:1}100%{opacity:0;transform:translateY(15px)}}

/* ---------- MARQUEE ---------- */
.marquee{overflow:hidden; border-top:var(--bd); border-bottom:var(--bd); padding:13px 0; transform:rotate(-1.1deg); margin:34px -12px; position:relative; z-index:2}
.marquee--gold{background:linear-gradient(90deg,var(--butter),var(--gold),var(--butter))}
.marquee--ink{background:var(--ink); transform:rotate(1.1deg)}
.marquee--ink .marquee__track{color:var(--cream)}
.marquee__track{display:flex; gap:34px; white-space:nowrap; width:max-content; font-family:var(--f-head); font-weight:800; font-size:1.28rem; letter-spacing:1px; animation:slide 26s linear infinite}
.marquee__track--rev{animation-direction:reverse}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- SECTIONS ---------- */
.section{padding:clamp(56px,8vw,110px) clamp(16px,4vw,40px); position:relative}
.section--alt::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(255,253,246,.55); backdrop-filter:blur(2px);
  border-top:var(--bd); border-bottom:var(--bd);
}
.wrap{max-width:1180px; margin:0 auto}
.head{text-align:center; margin-bottom:clamp(34px,5vw,58px)}
.eyebrow{
  display:inline-block; font-weight:900; font-size:.78rem; letter-spacing:2px;
  background:var(--white); border:var(--bd); border-radius:99px; padding:7px 17px;
  box-shadow:0 4px 0 var(--ink); margin-bottom:18px; transform:rotate(-1.5deg);
}
.h2{
  font-family:var(--f-head); font-weight:800; margin:0 0 14px;
  font-size:clamp(2.1rem,5.4vw,3.7rem); line-height:1.05; letter-spacing:-1px;
}
.h2 em{font-style:normal; color:var(--orange-2); position:relative; white-space:nowrap}
.h2 em::after{
  content:""; position:absolute; left:0; right:0; bottom:2px; height:7px;
  background:var(--butter); border-radius:99px; z-index:-1; transform:rotate(-.8deg);
}
.lede{font-size:clamp(1rem,1.6vw,1.16rem); font-weight:600; color:var(--ink-2); max-width:60ch; margin:0 auto; line-height:1.65}

/* ---------- BANNER STRIP ---------- */
.bannerstrip{padding:20px clamp(16px,4vw,40px) 10px}
.bannerstrip__frame{
  max-width:1180px; margin:0 auto; position:relative; overflow:hidden;
  border:var(--bd); border-radius:var(--r-lg); box-shadow:var(--sh-md), var(--sh-soft);
  transform:rotate(-.5deg); transition:transform .5s cubic-bezier(.34,1.4,.64,1);
}
.bannerstrip__frame:hover{transform:rotate(0deg) scale(1.012)}
.bannerstrip__shine{
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.55) 50%,transparent 62%);
  transform:translateX(-120%); animation:shine 5.5s ease-in-out infinite;
}
@keyframes shine{0%,72%{transform:translateX(-120%)}100%{transform:translateX(120%)}}

/* ---------- CARDS ---------- */
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px}
.card{
  background:var(--white); border:var(--bd); border-radius:var(--r-lg);
  padding:30px 26px 26px; box-shadow:var(--sh-md);
  transition:transform .3s cubic-bezier(.34,1.4,.64,1), box-shadow .3s;
  position:relative; overflow:hidden;
}
.card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:7px;
  background:linear-gradient(90deg,var(--butter),var(--orange),var(--pink));
}
.card:hover{box-shadow:var(--sh-lg), var(--sh-soft)}
.card__ico{
  font-size:2.3rem; width:66px;height:66px; display:grid; place-items:center;
  background:var(--cream-2); border:var(--bd); border-radius:20px; margin-bottom:17px;
  box-shadow:0 4px 0 var(--ink); transition:transform .35s cubic-bezier(.34,1.6,.64,1);
}
.card:hover .card__ico{transform:rotate(-11deg) scale(1.1)}
.card h3{font-family:var(--f-head); font-weight:800; font-size:1.4rem; margin:0 0 11px; line-height:1.2}
.card p{margin:0 0 15px; font-weight:600; color:var(--ink-2); line-height:1.65; font-size:.98rem}
.card__note{
  font-size:.86rem; font-weight:800; color:var(--orange-2);
  background:var(--cream); border-left:4px solid var(--butter);
  padding:9px 13px; border-radius:0 11px 11px 0;
}

.quote{
  margin-top:44px; text-align:center; background:var(--ink); color:var(--cream);
  border-radius:var(--r-xl); padding:clamp(32px,5vw,54px); border:var(--bd);
  box-shadow:var(--sh-md), var(--sh-soft); transform:rotate(-.6deg);
}
.quote p{font-family:var(--f-head); font-weight:800; font-size:clamp(1.4rem,3.4vw,2.3rem); line-height:1.32; margin:0}
.quote .hl{background:linear-gradient(180deg,transparent 58%, rgba(232,145,47,.85) 58%)}

/* ---------- CHART / OVEN ---------- */
.oven{
  background:var(--ink); border:var(--bd); border-radius:var(--r-lg);
  box-shadow:var(--sh-lg), var(--sh-soft); overflow:hidden; max-width:1080px; margin:0 auto;
}
.oven__top{display:flex; align-items:center; gap:9px; padding:13px 18px; background:linear-gradient(180deg,#4A3018,#33200F); border-bottom:3px solid rgba(253,244,222,.22)}
.oven__knob{width:13px;height:13px;border-radius:50%; background:var(--cream-3); border:2px solid rgba(0,0,0,.3)}
.oven__knob:nth-child(2){background:var(--orange)}
.oven__knob:nth-child(3){background:var(--pink)}
.oven__label{font-family:var(--f-head); font-weight:800; color:var(--cream); margin-left:12px; letter-spacing:1px; font-size:.95rem}
.oven__open{
  margin-left:auto; font-weight:800; font-size:.85rem; color:var(--butter);
  border:2px solid var(--butter); border-radius:99px; padding:6px 14px; transition:.22s;
}
.oven__open:hover{background:var(--butter); color:var(--ink); transform:translateY(-2px)}
.oven__screen{position:relative; width:100%; height:min(66vh,620px); background:#1D1208}
.oven__screen iframe{width:100%; height:100%; border:0; display:block}

.chart-pending{
  position:absolute; inset:0; display:grid; place-content:center; justify-items:center;
  text-align:center; padding:30px; gap:8px;
  background:radial-gradient(circle at 50% 40%,#3A2413,#1D1208 70%);
}
.chart-pending__cat{width:120px;height:120px;border-radius:50%; overflow:hidden; border:4px solid var(--butter); box-shadow:0 0 44px rgba(245,201,107,.5); animation:knead 2.6s ease-in-out infinite}
.chart-pending__cat img{width:100%;height:100%;object-fit:cover; transform:scale(1.14)}
.chart-pending h3{font-family:var(--f-head); font-weight:800; color:var(--cream); font-size:1.6rem; margin:18px 0 0}
.chart-pending p{color:rgba(253,244,222,.72); font-weight:600; margin:0; max-width:44ch}
.chart-pending__bar{width:230px;height:9px;border-radius:99px; background:rgba(253,244,222,.16); overflow:hidden; margin-top:16px}
.chart-pending__bar span{display:block; height:100%; width:38%; border-radius:99px; background:linear-gradient(90deg,var(--butter),var(--orange)); animation:preheat 2.1s ease-in-out infinite}
@keyframes preheat{0%{transform:translateX(-100%)}100%{transform:translateX(360%)}}

/* ---------- STEPS ---------- */
.steps{display:grid; gap:20px; max-width:900px; margin:0 auto}
.step{
  display:flex; align-items:center; gap:22px;
  background:var(--white); border:var(--bd); border-radius:var(--r-lg);
  padding:24px 26px; box-shadow:var(--sh-md);
  transition:transform .28s cubic-bezier(.34,1.4,.64,1), box-shadow .28s;
}
.step:nth-child(even){flex-direction:row-reverse; text-align:right; background:var(--cream-2)}
.step:nth-child(even) .chip{margin-left:auto}
.step:hover{transform:translateX(8px) rotate(.5deg); box-shadow:var(--sh-lg)}
.step:nth-child(even):hover{transform:translateX(-8px) rotate(-.5deg)}
.step__num{
  flex-shrink:0; width:72px;height:72px; display:grid; place-items:center;
  font-family:var(--f-head); font-weight:800; font-size:2.1rem; color:var(--ink);
  background:radial-gradient(circle at 38% 32%,#F7DFA8,var(--gold));
  border:var(--bd); border-radius:50%; box-shadow:0 5px 0 var(--ink), inset 0 -5px 10px rgba(154,90,46,.4);
  transition:transform .35s cubic-bezier(.34,1.6,.64,1);
}
.step:hover .step__num{transform:rotate(360deg) scale(1.06)}
.step__body{flex:1}
.step h3{font-family:var(--f-head); font-weight:800; font-size:1.4rem; margin:0 0 7px}
.step p{margin:0 0 12px; font-weight:600; color:var(--ink-2); line-height:1.6}
.chip{
  display:inline-flex; align-items:center; gap:8px; font-weight:800; font-size:.88rem;
  background:var(--cream); border:2.5px solid var(--ink); border-radius:99px; padding:7px 15px;
  box-shadow:0 3px 0 var(--ink); transition:transform .18s, box-shadow .18s, background .2s;
}
.chip:hover{transform:translateY(-3px); box-shadow:0 6px 0 var(--ink); background:var(--butter)}
.chip--soft{background:#CFEFD7; border-color:#2E7D42; box-shadow:0 3px 0 #2E7D42}

/* ---------- STATS ---------- */
.stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; margin-bottom:40px}
.stat{
  background:var(--white); border:var(--bd); border-radius:var(--r-lg);
  padding:30px 20px; text-align:center; box-shadow:var(--sh-md);
  transition:transform .3s cubic-bezier(.34,1.5,.64,1), box-shadow .3s, background .3s;
}
.stat:hover{transform:translateY(-9px) rotate(-1.4deg); box-shadow:var(--sh-lg); background:var(--cream-2)}
.stat__val{
  font-family:var(--f-head); font-weight:800; font-size:clamp(1.8rem,4vw,2.6rem);
  line-height:1; color:var(--orange-2); margin-bottom:9px;
  text-shadow:2px 2px 0 rgba(51,32,15,.16);
}
.stat__key{font-weight:800; font-size:.86rem; letter-spacing:1.2px; color:var(--ink-3); text-transform:uppercase}

.bakery-note{
  display:flex; align-items:center; gap:24px; flex-wrap:wrap; justify-content:center;
  background:linear-gradient(135deg,var(--butter),var(--cream-3));
  border:var(--bd); border-radius:var(--r-xl); padding:28px 32px;
  box-shadow:var(--sh-md), var(--sh-soft); text-align:left;
}
.bakery-note img{width:96px;height:96px;border-radius:50%; border:var(--bd); flex-shrink:0; box-shadow:0 5px 0 var(--ink); animation:float 4.6s ease-in-out infinite}
.bakery-note p{margin:0; font-weight:700; font-size:1.06rem; line-height:1.62; max-width:56ch}

/* ---------- LINKS ---------- */
.links{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px}
.link{
  display:grid; justify-items:center; gap:6px; text-align:center;
  background:var(--white); border:var(--bd); border-radius:var(--r-lg);
  padding:30px 20px; box-shadow:var(--sh-md);
  transition:transform .3s cubic-bezier(.34,1.5,.64,1), box-shadow .3s, background .3s;
}
.link:hover{transform:translateY(-10px); box-shadow:var(--sh-lg), var(--sh-soft); background:var(--cream-2)}
.link img{margin-bottom:9px; transition:transform .35s cubic-bezier(.34,1.6,.64,1)}
.link:hover img{transform:scale(1.16) rotate(-9deg)}
.link__t{font-family:var(--f-head); font-weight:800; font-size:1.2rem}
.link__s{font-weight:700; font-size:.85rem; color:var(--ink-3)}

/* ---------- FOOTER ---------- */
.footer{background:var(--ink); color:var(--cream); padding:60px clamp(16px,4vw,40px) 34px; border-top:var(--bd); position:relative; margin-top:20px}
.footer__in{display:grid; gap:26px; justify-items:center; text-align:center}
.footer__brand{display:flex; align-items:center; gap:16px}
.footer__brand img{width:70px;height:70px;border-radius:50%; border:3px solid var(--butter); animation:knead 2.6s ease-in-out infinite}
.footer__word{font-family:var(--f-head); font-weight:800; font-size:2rem; line-height:1; text-align:left}
.footer__tag{font-weight:700; color:var(--butter); font-size:.95rem; text-align:left}
.footer__disc{max-width:74ch; font-size:.88rem; line-height:1.72; color:rgba(253,244,222,.66); margin:0; font-weight:600}
.footer__bottom{border-top:2px solid rgba(253,244,222,.16); padding-top:20px; width:100%; font-size:.85rem; font-weight:700; color:rgba(253,244,222,.6)}

/* ---------- TOAST ---------- */
.toast{
  position:fixed; bottom:28px; left:50%; transform:translate(-50%,140%);
  background:var(--ink); color:var(--cream); font-family:var(--f-head); font-weight:800;
  padding:14px 26px; border-radius:99px; z-index:200; border:3px solid var(--butter);
  box-shadow:var(--sh-soft); transition:transform .45s cubic-bezier(.34,1.56,.64,1);
}
.toast.is-on{transform:translate(-50%,0)}

/* ---------- REVEAL ----------
   Hidden state only applies when JS is alive (html.js). Without JS — or if
   IntersectionObserver never fires — everything stays visible. */
html.js .reveal{opacity:0; transform:translateY(38px); transition:opacity .75s cubic-bezier(.2,.7,.3,1), transform .75s cubic-bezier(.2,.7,.3,1)}
html.js .reveal.is-in{opacity:1; transform:none}

#paw-canvas{position:fixed; inset:0; pointer-events:none; z-index:60}

/* ---------- RESPONSIVE ---------- */
@media (max-width:960px){
  .hero__inner{grid-template-columns:1fr; text-align:center}
  .hero__copy{order:2}
  .hero__art{order:1; min-height:300px}
  .hero__btns,.pill{justify-content:center}
  .pill{display:inline-flex}
  .hero__sub{margin-left:auto;margin-right:auto}
  .ca{margin:0 auto}
  .nav__links{display:none}
  .nav__cta{display:none}
  .nav__burger{display:flex; margin-left:auto}
  .badge--1{left:0}.badge--2{right:0}
}
@media (max-width:640px){
  .step,.step:nth-child(even){flex-direction:column; text-align:center; align-items:center}
  .step:nth-child(even) .chip{margin-left:0}
  .step:hover,.step:nth-child(even):hover{transform:translateY(-6px)}
  .bakery-note{text-align:center; justify-content:center}
  .marquee__track{font-size:1.05rem}
  .footer__word,.footer__tag{text-align:center}
  .footer__brand{flex-direction:column}
  #paw-canvas{display:none}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important}
  html.js .reveal{opacity:1 !important; transform:none !important}
}
