:root{
  --pink-bg:#f7dad4;
  --pink-soft:#fbe7e2;
  --pink-deep:#eec2bb;
  --cream:#fff7ef;
  --cream-2:#fdf0e4;
  --choco:#3a2118;
  --choco-soft:#6c4a3a;
  --gold-line:#caa24c;
  --gold-grad:linear-gradient(100deg,#8a5e10 0%,#c79a3a 16%,#f3df9f 36%,#fff7da 50%,#efd78d 62%,#bd882b 82%,#7d5410 100%);
  --shadow-soft:0 24px 60px -28px rgba(91,46,30,.55);
  --ease:cubic-bezier(.7,0,.18,1);
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
body{
  font-family:'Jost',sans-serif;
  color:var(--choco);
  background:var(--pink-bg);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.is-loading{overflow:hidden;height:100vh;}

/* ============ SPLASH ============ */
.splash{
  position:fixed;inset:0;z-index:200;
  background:var(--pink-bg);
  display:flex;align-items:center;justify-content:center;
  transition:opacity 1s var(--ease);
  overflow:hidden;
}
.splash.hide{opacity:0;pointer-events:none;}
.splash video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;
}
.splash__veil{
  position:absolute;inset:0;
  background:radial-gradient(120% 90% at 80% 10%,rgba(255,240,200,.18),transparent 55%),
             linear-gradient(0deg,rgba(58,33,24,.18),transparent 40%);
  pointer-events:none;
}
.splash__skip{
  position:absolute;bottom:34px;left:50%;transform:translateX(-50%);
  z-index:3;cursor:pointer;
  font-family:'Jost',sans-serif;font-size:12px;letter-spacing:.34em;
  text-transform:uppercase;color:#fff;
  background:rgba(58,33,24,.32);backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.5);
  padding:11px 22px;border-radius:999px;
  display:flex;align-items:center;gap:10px;
  transition:background .3s ease,transform .3s ease;
}
.splash__skip:hover{background:rgba(58,33,24,.5);transform:translateX(-50%) translateY(-2px);}
.splash__skip span{font-size:14px;}

/* ============ GOLD SHIMMER TEXT ============ */
.gold{
  background:var(--gold-grad);
  background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:shimmer 6s linear infinite;
}
@keyframes shimmer{0%{background-position:200% 0;}100%{background-position:-20% 0;}}
@media (prefers-reduced-motion:reduce){.gold{animation:none;background-position:50% 0;}}

/* ============ NAVBAR ============ */
.nav{
  position:fixed;top:0;left:0;width:100%;z-index:80;
  transition:padding .55s var(--ease);
  padding:22px clamp(20px,4vw,64px) 0;
}
.nav__inner{
  position:relative;
  display:flex;align-items:center;
  background:var(--cream);
  padding:18px clamp(20px,3vw,40px);
  border-radius:18px;
  transition:all .55s var(--ease);
  box-shadow:0 18px 40px -26px rgba(91,46,30,.5),0 0 0 1px rgba(202,162,76,.22);
}

/* wordmark */
.brand{display:flex;flex-direction:column;line-height:1;text-decoration:none;flex-shrink:0;}
.brand__name{
  font-family:'Playfair Display',serif;font-weight:800;
  font-size:clamp(26px,2.6vw,38px);letter-spacing:.01em;
  transition:font-size .55s var(--ease);
}
.brand__tag{
  font-family:'Pinyon Script',cursive;font-size:17px;color:var(--choco-soft);white-space:nowrap;
  transform:rotate(-4deg) translate(6px,2px);transform-origin:left;
  transition:opacity .4s var(--ease),max-height .4s var(--ease);
  max-height:24px;
}

/* links — asymmetric cluster pushed right */
.nav__links{
  margin-left:auto;
  display:flex;align-items:center;gap:clamp(20px,2.4vw,42px);
}
.nav__link{
  position:relative;text-decoration:none;color:var(--choco);
  font-family:'Jost',sans-serif;font-weight:500;font-size:15px;letter-spacing:.04em;
  padding-bottom:8px;white-space:nowrap;
  transition:color .25s ease;
}
.nav__link::after{
  content:"";position:absolute;left:-2px;right:-2px;bottom:0;height:8px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='8' viewBox='0 0 90 8'%3E%3Cpath d='M1 5 C 12 1, 22 7, 33 4 S 56 1, 67 5 S 84 6, 89 3' fill='none' stroke='%23caa24c' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-size:0% 100%;
  transition:background-size .4s var(--ease);
}
.nav__link:hover{color:var(--choco-soft);}
.nav__link:hover::after{background-size:100% 100%;}

.nav__cta{
  margin-left:clamp(14px,2vw,30px);
  font-family:'Jost',sans-serif;font-weight:600;font-size:14.5px;letter-spacing:.06em;
  text-transform:uppercase;text-decoration:none;color:#3a2118;
  background:var(--gold-grad);background-size:200% 100%;
  padding:13px 26px;border-radius:999px;white-space:nowrap;
  box-shadow:0 10px 22px -10px rgba(168,121,27,.85),inset 0 1px 0 rgba(255,255,255,.55);
  border:1.5px solid rgba(125,84,16,.4);
  transition:transform .3s var(--ease),box-shadow .3s ease,background-position .8s ease;
  animation:shimmer 6s linear infinite;
}
.nav__cta:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 16px 30px -10px rgba(168,121,27,.9),inset 0 1px 0 rgba(255,255,255,.6);}

/* morphed / stuck state */
.nav.stuck{padding-top:14px;}
.nav.stuck .nav__inner{
  width:min(1080px,100%);margin:0 auto;
  border-radius:999px;
  background:rgba(255,247,239,.78);
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  border:1.5px solid rgba(202,162,76,.45);
  box-shadow:var(--shadow-soft);
  padding:11px 14px 11px clamp(20px,3vw,32px);
}
.nav.stuck .brand__name{font-size:23px;}
.nav.stuck .brand__tag{opacity:0;max-height:0;overflow:hidden;}
.nav.stuck .nav__cta{padding:11px 22px;}

.nav__burger{display:none;}

/* ============ MOBILE MENU ============ */
.mobile-menu{
  position:fixed;inset:0;z-index:70;
  background:rgba(255,247,239,.94);
  backdrop-filter:blur(18px) saturate(1.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;
  transition:opacity .45s var(--ease),visibility .45s var(--ease);
}
.mobile-menu.open{opacity:1;visibility:visible;}
.mobile-menu__nav{
  display:flex;flex-direction:column;align-items:center;gap:30px;
  transform:translateY(14px);transition:transform .5s var(--ease);
}
.mobile-menu.open .mobile-menu__nav{transform:translateY(0);}
.mobile-menu__link{
  font-family:'Playfair Display',serif;font-weight:600;font-size:30px;
  text-decoration:none;color:var(--choco);letter-spacing:.01em;
  transition:color .25s ease;
}
.mobile-menu__link:hover{color:var(--gold-line);}
.mobile-menu__cta{
  margin-top:10px;
  font-family:'Jost',sans-serif;font-weight:600;font-size:15px;letter-spacing:.06em;
  text-transform:uppercase;text-decoration:none;color:#3a2118;
  padding:15px 36px;border-radius:999px;
  box-shadow:0 10px 22px -10px rgba(168,121,27,.85),inset 0 1px 0 rgba(255,255,255,.55);
  border:1.5px solid rgba(125,84,16,.4);
}
.gold-bg{background:var(--gold-grad);background-size:200% 100%;animation:shimmer 6s linear infinite;}

/* ============ HERO ============ */
.hero{
  position:relative;min-height:100vh;width:100%;
  background-image:url("assets/hero-banner.png");
  background-size:cover;background-position:center bottom;background-repeat:no-repeat;
  display:flex;align-items:flex-start;
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(102deg,rgba(247,218,212,.92) 0%,rgba(247,218,212,.6) 28%,rgba(247,218,212,.12) 50%,transparent 64%),
             linear-gradient(0deg,rgba(247,218,212,.5) 0%,transparent 30%);
  pointer-events:none;
}
.hero__content{
  position:relative;z-index:5;
  padding:0 clamp(24px,7vw,140px);
  max-width:620px;margin-top:clamp(118px,16vh,168px);
}
.eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-family:'Jost',sans-serif;font-weight:500;
  font-size:12.5px;letter-spacing:.42em;text-transform:uppercase;
  color:var(--choco-soft);margin-bottom:26px;
}
.eyebrow::before{content:"";width:34px;height:1.5px;background:var(--gold-line);}

.hero h1{
  font-family:'Playfair Display',serif;
  color:var(--choco);
  font-weight:700;
  font-size:clamp(52px,8vw,112px);
  line-height:.92;letter-spacing:-.01em;
  margin-bottom:22px;
}
.hero h1 .line2{display:block;margin-top:.04em;}
.hero h1 .script{
  font-family:'Pinyon Script',cursive;font-weight:400;
  font-size:1.18em;line-height:1;display:inline-block;
  transform:translateY(.04em) rotate(-3deg);
  padding:0 .16em 0 .1em;overflow:visible;
}
.hero__sub{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(19px,1.7vw,24px);font-weight:500;font-style:italic;
  color:var(--choco-soft);max-width:430px;line-height:1.45;
  margin-bottom:38px;text-wrap:pretty;
}
.hero__actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;}
.btn-primary{
  font-family:'Jost',sans-serif;font-weight:600;font-size:15px;letter-spacing:.08em;
  text-transform:uppercase;text-decoration:none;color:#3a2118;
  background:var(--gold-grad);background-size:200% 100%;
  padding:18px 38px;border-radius:999px;
  box-shadow:0 16px 34px -14px rgba(168,121,27,.9),inset 0 1px 0 rgba(255,255,255,.55);
  border:1.5px solid rgba(125,84,16,.4);
  transition:transform .3s var(--ease),box-shadow .3s ease;
  animation:shimmer 6s linear infinite;
}
.btn-primary:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 22px 40px -14px rgba(168,121,27,.95),inset 0 1px 0 rgba(255,255,255,.6);}
.btn-ghost{
  font-family:'Jost',sans-serif;font-weight:500;font-size:15px;letter-spacing:.03em;
  text-decoration:none;color:var(--choco);
  display:inline-flex;align-items:center;gap:10px;
  border-bottom:1.5px solid transparent;padding-bottom:3px;
  transition:gap .3s var(--ease),border-color .3s ease;
}
.btn-ghost:hover{gap:16px;border-color:var(--gold-line);}

/* ============ MARQUEE RIBBON (scroll room + bakery flourish) ============ */
.ribbon{
  position:relative;z-index:5;
  background:var(--choco);
  overflow:hidden;white-space:nowrap;
  border-top:2px solid var(--gold-line);
  padding:16px 0;
}
.ribbon__track{display:inline-flex;gap:0;animation:roll 28s linear infinite;}
.ribbon__track span{
  font-family:'Playfair Display',serif;font-style:italic;
  font-size:18px;color:var(--cream-2);padding:0 28px;
  display:inline-flex;align-items:center;gap:28px;
}
.ribbon__track span::after{content:"✦";color:var(--gold-line);font-style:normal;font-size:13px;}
@keyframes roll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.ribbon__track{animation:none;}}

/* ============ RESPONSIVE ============ */
@media (max-width:860px){
  .nav__links{display:none;}
  .nav__cta{display:none;}
  .nav__burger{
    display:flex;flex-direction:column;gap:5px;margin-left:auto;cursor:pointer;
    background:none;border:none;padding:6px;
  }
  .nav__burger span{display:block;width:26px;height:2.5px;background:var(--choco);border-radius:2px;
    transition:transform .35s var(--ease),opacity .25s ease;}
  .nav__burger.is-active span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
  .nav__burger.is-active span:nth-child(2){opacity:0;}
  .nav__burger.is-active span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
  .hero__content{margin-top:0;}
  .hero{background-position:center bottom;align-items:flex-start;padding-top:150px;}

  /* splash video is desktop-only — never paint it on mobile, release scroll lock */
  .splash{display:none;}
  body.is-loading{overflow:auto;height:auto;}
}
@media (max-width:560px){
  .hero h1{font-size:clamp(48px,15vw,72px);}
  .hero__sub{font-size:18px;}
}
