  :root{
    --ink:#1B2A34;
    --ink-2:#233846;
    --ink-3:#0F1A21;
    --parchment:#F6F1E6;
    --parchment-2:#EEE4D0;
    --gold:#B4914F;
    --gold-light:#DEC48E;
    --gold-dim:#8A6E3B;
    --bordeaux:#5E1A24;
    --bordeaux-light:#8C3140;
    --sage:#6F9184;
    --rose:#C98A83;
    --cream-text:#F3ECDD;
    --ink-text:#211A14;
    --muted:#7C7060;
    --serif:'Baskervville', Georgia, serif;
    --script:'Alex Brush', cursive;
    --label:'Oswald', sans-serif;
    --body:'Jost', sans-serif;
    --maxw: min(1440px, 94vw);
    --maxw-narrow: min(1180px, 90vw);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--parchment);
    color:var(--ink-text);
    font-family:var(--body);
    font-weight:300;
    line-height:1.65;
    overflow-x:hidden;
    cursor:auto;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  ::selection{background:var(--gold-light); color:var(--ink-3);}

  /* ---------- scroll progress ---------- */
  .progress-bar{position:fixed; top:0; left:0; height:2px; background:linear-gradient(90deg, var(--gold-dim), var(--gold-light)); width:0%; z-index:999; transition:width .1s linear;}

  /* ---------- cursor glow (desktop only) ---------- */
  .cursor-glow{
    position:fixed; width:340px; height:340px; border-radius:50%; pointer-events:none; z-index:2;
    background:radial-gradient(circle, rgba(180,145,79,.10), transparent 70%);
    transform:translate(-50%,-50%);
    transition:opacity .4s ease;
    opacity:0;
  }
  @media (hover:hover) and (pointer:fine){ .cursor-glow.active{opacity:1;} }

  .eyebrow{
    font-family:var(--label);
    letter-spacing:.32em;
    text-transform:uppercase;
    font-size:.68rem;
    font-weight:500;
    color:var(--gold-dim);
    display:inline-flex;
    align-items:center;
    gap:.7em;
  }
  .eyebrow::before{content:''; width:28px; height:1px; background:var(--gold-dim);}
  .eyebrow.center{justify-content:center;}
  .eyebrow.center::before{display:none;}
  .eyebrow.on-dark{color:var(--gold-light);}
  .eyebrow.on-dark::before{background:var(--gold-light);}

  h1,h2,h3,h4{font-family:var(--serif); font-weight:400; letter-spacing:.01em;}
  .section-title{font-size:clamp(2.1rem, 3.2vw, 3.8rem); line-height:1.08; margin:.5rem 0 1.2rem;}
  .section-kicker{max-width:640px; color:var(--muted); font-size:1.02rem; font-weight:300;}
  .on-dark .section-kicker{color:#C9C2B3;}

  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 clamp(1.5rem, 4vw, 4rem);}
  .wrap-narrow{max-width:var(--maxw-narrow); margin:0 auto; padding:0 clamp(1.5rem, 4vw, 4rem);}
  section{position:relative;}

  /* reveal animation */
  .reveal{opacity:0; transform:translateY(36px) scale(.98); filter:blur(2px); transition:opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1), filter 1s ease;}
  .reveal.in{opacity:1; transform:translateY(0) scale(1); filter:blur(0);}
  .reveal-d1{transition-delay:.1s;}
  .reveal-d2{transition-delay:.2s;}
  .reveal-d3{transition-delay:.3s;}
  .reveal-d4{transition-delay:.4s;}
  .reveal-d5{transition-delay:.5s;}
  .reveal-d6{transition-delay:.6s;}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .reveal{opacity:1; transform:none; filter:none; transition:none;}
    *{animation:none !important;}
  }

  /* ---------- NAV ---------- */
  header.nav{
    position:fixed; top:0; left:0; right:0; z-index:500;
    display:flex; align-items:center; justify-content:space-between;
    padding:1.3rem clamp(1.5rem, 4vw, 4rem);
    transition:background .5s ease, padding .4s ease, border-color .5s ease;
    border-bottom:1px solid transparent;
  }
  header.nav.scrolled{
    background:rgba(15,26,33,.92);
    backdrop-filter:blur(12px);
    padding:.8rem clamp(1.5rem, 4vw, 4rem);
    border-bottom:1px solid rgba(180,145,79,.25);
  }
  .brandmark{display:flex; align-items:center; gap:.9rem; font-family:var(--serif); color:var(--cream-text); font-size:1.55rem; letter-spacing:.03em;}
  .brandmark .logo-mark{
    height:52px; width:auto; flex:none; transition:transform .6s cubic-bezier(.2,.8,.2,1);
  }
  .brandmark:hover .logo-mark{transform:scale(1.04);}
  .brandmark span.wordmark{display:flex; flex-direction:column; align-items:flex-end; line-height:1.05;}
  .brandmark span.wordmark small{font-family:var(--label); font-size:.58rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-dim);}
  nav.links{display:flex; gap:2.4rem; align-items:center;}
  nav.links a{
    position:relative;
    font-family:var(--label); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;
    color:#D9D2C1; padding-bottom:6px; transition:color .3s;
  }
  nav.links a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold-light); transition:width .35s cubic-bezier(.2,.8,.2,1);}
  nav.links a:hover::after, nav.links a.active::after{width:100%;}
  nav.links a:hover, nav.links a.active{color:var(--gold-light);}
  .nav-right{display:flex; align-items:center; gap:1.6rem;}
  .nav-cta{
    font-family:var(--label); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
    color:var(--ink-3); background:var(--gold-light); padding:.7rem 1.5rem; border-radius:2px;
    transition:background .35s, transform .35s, box-shadow .35s;
  }
  .nav-cta:hover{background:var(--gold); transform:translateY(-2px); box-shadow:0 8px 20px rgba(180,145,79,.3);}
  .burger{display:none; flex-direction:column; gap:5px; cursor:pointer; z-index:600;}
  .burger span{width:24px; height:1px; background:var(--cream-text);}

  /* ---------- MARQUEE ---------- */
  .marquee{
    background:var(--ink-3); border-top:1px solid rgba(180,145,79,.2); border-bottom:1px solid rgba(180,145,79,.2);
    overflow:hidden; white-space:nowrap; padding:.9rem 0; position:relative; z-index:2;
  }
  .marquee-track{display:inline-flex; gap:0; animation:marquee 34s linear infinite;}
  .marquee-track span{
    font-family:var(--label); font-size:.78rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-light);
    padding:0 2.2rem; display:inline-flex; align-items:center; gap:2.2rem;
  }
  .marquee-track span::after{content:'✦'; color:var(--gold-dim); font-size:.7rem;}
  @keyframes marquee{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

  /* ---------- HERO (desktop full-bleed split) ---------- */
  .hero{
    min-height:100svh;
    display:grid; grid-template-columns:1fr;
    background:linear-gradient(160deg, var(--ink-3), var(--ink) 55%, var(--ink-2));
    color:var(--cream-text);
    position:relative;
    overflow:hidden;
  }
  .hero::before{
    content:'';
    position:absolute; inset:0;
    background-image:
      linear-gradient(rgba(180,145,79,.06) 1px, transparent 1px),
      linear-gradient(90deg, rgba(180,145,79,.06) 1px, transparent 1px);
    background-size:64px 64px;
    mask-image:radial-gradient(circle at 25% 25%, black, transparent 70%);
    pointer-events:none;
  }
  .hero-inner{
    position:relative; z-index:2; width:100%;
    display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch;
    min-height:100svh;
  }
  .hero-copy{display:flex; flex-direction:column; justify-content:center; padding:9rem clamp(1.5rem,4vw,5rem) 6rem clamp(1.5rem,4vw,5rem);}
  .hero h1{
    font-size:clamp(2.6rem, 4.6vw, 5.2rem);
    line-height:1.03;
    margin:1.2rem 0 1.5rem;
    max-width:14ch;
  }
  .hero h1 em{font-style:italic; color:var(--gold-light);}
  .hero p.lede{max-width:480px; color:#CFC7B5; font-size:1.12rem; font-weight:300;}
  .hero-ctas{display:flex; gap:1.1rem; margin-top:2.6rem; flex-wrap:wrap;}
  .btn{
    font-family:var(--label); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
    padding:1.05rem 2rem; border-radius:2px; display:inline-flex; align-items:center; gap:.6rem;
    transition:transform .4s cubic-bezier(.2,.8,.2,1), background .4s, color .4s, border-color .4s, box-shadow .4s;
    border:1px solid transparent; position:relative; overflow:hidden;
  }
  .btn-gold{background:var(--gold-light); color:var(--ink-3);}
  .btn-gold:hover{background:var(--gold); transform:translateY(-3px); box-shadow:0 12px 28px rgba(180,145,79,.35);}
  .btn-outline{border-color:rgba(243,236,221,.4); color:var(--cream-text);}
  .btn-outline:hover{border-color:var(--gold-light); color:var(--gold-light); transform:translateY(-3px);}
  .btn-dark{background:var(--ink-3); color:var(--cream-text); border-color:var(--ink-3);}
  .btn-dark:hover{background:var(--ink); transform:translateY(-3px);}

  .hero-visual{position:relative; overflow:hidden; min-height:420px;}
  .hero-visual .img-wrap{position:absolute; inset:0; overflow:hidden;}
  .hero-visual img{
    width:100%; height:100%; object-fit:cover; object-position:center 20%;
    filter:saturate(1.05) contrast(1.03);
    transform:scale(1.12);
    transition:transform 1.8s cubic-bezier(.16,.8,.2,1);
  }
  .hero-visual::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(90deg, var(--ink-3) 0%, transparent 16%), linear-gradient(0deg, rgba(15,26,33,.5), transparent 40%);
    pointer-events:none;
  }
  .hero-visual .cap{
    position:absolute; left:2.4rem; bottom:2.2rem; z-index:2;
    font-family:var(--label); font-size:.66rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-light);
    display:flex; align-items:center; gap:.8rem;
  }
  .hero-visual .cap::before{content:''; width:26px; height:1px; background:var(--gold-light);}

  .hero-scroll{
    position:absolute; left:clamp(1.5rem,4vw,5rem); bottom:2.2rem; z-index:3;
    display:flex; align-items:center; gap:.7rem; color:#B7AF9E;
    font-family:var(--label); font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
  }
  .hero-scroll .line{width:1px; height:34px; background:linear-gradient(var(--gold), transparent); animation:scrolldrop 2s ease-in-out infinite;}
  @keyframes scrolldrop{0%{opacity:0; transform:translateY(-6px);} 40%{opacity:1;} 100%{opacity:0; transform:translateY(10px);}}

  /* ---------- SEAL DIVIDER ---------- */
  .thread-divider{
    position:relative; height:1px; background:linear-gradient(90deg, transparent, rgba(180,145,79,.5), transparent);
    margin:0 auto;
  }
  .thread-divider .seal-mark{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:58px; height:58px; border-radius:50%;
    background:var(--parchment); border:1px solid var(--gold);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--serif); font-style:italic; color:var(--gold-dim); font-size:1.35rem;
    transition:transform .6s cubic-bezier(.2,.8,.2,1);
  }
  .thread-divider:hover .seal-mark{transform:translate(-50%,-50%) rotate(90deg);}
  .on-dark-divider .seal-mark{background:var(--ink);}

  /* ---------- STORY ---------- */
  .story{background:var(--parchment); padding:9rem 0 7rem; position:relative; overflow:hidden;}
  .story-pattern{
    position:absolute; top:-10%; right:-8%; width:60%; height:120%;
    background-image:url('../images/pattern.png');
    background-size:520px; opacity:.14;
    animation:patternpan 60s linear infinite;
    pointer-events:none;
    mask-image:linear-gradient(120deg, transparent 10%, black 45%, black 70%, transparent 95%);
  }
  @keyframes patternpan{ from{background-position:0 0;} to{background-position:520px 520px;} }
  .story-portrait{position:relative; float:left; border:1px solid rgba(180,145,79,.35); padding:8px; background:var(--parchment-2); width:210px; margin:.3rem 2rem 1rem 0;}
  .story-portrait img{width:100%; aspect-ratio:3/4; object-fit:cover; object-position:center 20%; filter:saturate(.92) contrast(1.03);}
  .story-portrait-cap{
    display:flex; flex-direction:column; gap:.1rem; padding:.6rem .15rem .05rem;
    font-family:var(--label); text-transform:uppercase; letter-spacing:.1em;
  }
  .story-portrait-cap span{font-size:.62rem; color:var(--ink); font-weight:500;}
  .story-portrait-cap small{font-size:.52rem; color:var(--muted); letter-spacing:.1em;}
  .story-content{position:relative; z-index:1;}
  .story-content::after{content:''; display:block; clear:both;}
  .story blockquote{
    font-family:var(--serif); font-style:italic; font-size:1.6rem; line-height:1.5;
    color:var(--ink); border-left:2px solid var(--gold); padding-left:1.5rem; margin:1.8rem 0;
  }
  .story p{margin-bottom:1.15rem; color:#3B342A; font-size:1.03rem; max-width:60ch;}
  .pillars{
    margin-top:3rem; display:grid; grid-template-columns:repeat(5,1fr); gap:1.5rem; position:relative; z-index:1;
  }
  .pillar{
    background:rgba(238,228,208,.85); backdrop-filter:blur(2px); border:1px solid rgba(27,42,52,.08);
    padding:1.8rem 1.3rem; text-align:left; transition:transform .5s cubic-bezier(.2,.8,.2,1), border-color .5s, box-shadow .5s;
  }
  .pillar:hover{transform:translateY(-8px); border-color:var(--gold); box-shadow:0 18px 34px rgba(27,42,52,.12);}
  .pillar .mono{font-family:var(--serif); font-style:italic; font-size:1.7rem; color:var(--gold-dim); margin-bottom:.6rem; display:block;}
  .pillar h4{font-size:1.02rem; margin-bottom:.45rem; color:var(--ink);}
  .pillar p{font-size:.85rem; color:var(--muted); margin:0; font-family:var(--body); max-width:none;}

  /* ---------- CAKES ---------- */
  .cakes{background:var(--ink); color:var(--cream-text); padding:9rem 0 7rem; position:relative; overflow:hidden;}
  .cakes::after{
    content:''; position:absolute; inset:0;
    background:radial-gradient(1100px 600px at 8% 100%, rgba(94,26,36,.35), transparent 60%), radial-gradient(900px 500px at 95% 0%, rgba(180,145,79,.12), transparent 60%);
    pointer-events:none;
  }
  .crest-emboss{
    position:absolute; top:3%; right:-30px; width:min(540px, 40vw); aspect-ratio:424/369;
    -webkit-mask:url('../images/crest-emboss.png') center/contain no-repeat;
    mask:url('../images/crest-emboss.png') center/contain no-repeat;
    background:linear-gradient(155deg, rgba(228,208,166,.16), rgba(228,208,166,.05));
    filter:drop-shadow(0 2px 2px rgba(0,0,0,.55)) drop-shadow(0 -1px 0 rgba(255,255,255,.04));
    opacity:1; pointer-events:none; z-index:0;
  }
  .cakes-top{display:grid; grid-template-columns:1.1fr .9fr; gap:5vw; align-items:end; position:relative; z-index:1;}
  .cake-cards{margin-top:3.8rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; position:relative; z-index:1;}
  .cake-card{
    border:1px solid rgba(222,196,142,.22); padding:2.3rem 1.9rem;
    background:linear-gradient(180deg, rgba(255,255,255,.02), transparent);
    transition:border-color .5s, transform .5s cubic-bezier(.2,.8,.2,1), background .5s;
  }
  .cake-card:hover{border-color:var(--gold); transform:translateY(-10px); background:linear-gradient(180deg, rgba(180,145,79,.07), transparent);}
  .cake-card .tag{font-family:var(--label); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-light);}
  .cake-card h3{font-size:1.55rem; margin:.65rem 0 .75rem;}
  .cake-card p{color:#C9C2B3; font-size:.93rem;}

  .occasion-band{
    margin-top:4.8rem; position:relative; z-index:1;
    border-top:1px solid rgba(222,196,142,.18); padding-top:3.4rem;
    display:grid; grid-template-columns:.7fr 1.3fr; gap:4vw; align-items:center;
  }
  .occasion-list{display:grid; grid-template-columns:1fr 1fr; gap:1.1rem 2rem;}
  .occasion-list div{display:flex; gap:.8rem; align-items:baseline; font-size:.96rem; color:#D9D2C1; transition:color .3s, transform .3s;}
  .occasion-list div:hover{color:var(--gold-light); transform:translateX(4px);}
  .occasion-list span.dot{color:var(--gold);}

  /* ---------- ATELIER (hover reveal gallery) ---------- */
  .atelier{margin-top:4.8rem; position:relative; z-index:1;}
  .atelier-head{display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; flex-wrap:wrap; margin-bottom:1.8rem;}
  .atelier-head h3{font-size:1.75rem;}
  .atelier-head p{max-width:420px; color:#C9C2B3; font-size:.9rem;}
  .atelier-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:1.6rem; align-items:stretch;}
  .atelier-stack{display:grid; grid-template-rows:auto auto auto; gap:1.6rem;}
  .atelier-frame{
    position:relative; overflow:hidden; border:1px solid rgba(222,196,142,.22);
  }
  .atelier-grid > .atelier-frame{height:100%;}
  .atelier-stack .atelier-frame{aspect-ratio:16/10;}
  .atelier-stack .atelier-frame:last-child{aspect-ratio:1/1;}
  .atelier-frame img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    transition:opacity 1.1s cubic-bezier(.2,.8,.2,1), transform 1.1s cubic-bezier(.2,.8,.2,1);
  }
  .atelier-frame img.base{position:relative; transform:scale(1.02);}
  .atelier-frame img.reveal-img{opacity:0;}
  .atelier-frame:hover img.reveal-img{opacity:1;}
  .atelier-frame:hover img.base{transform:scale(1.08);}
  .atelier-frame .tag{
    position:absolute; left:1.1rem; bottom:1.1rem; z-index:2;
    font-family:var(--label); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-light);
    display:flex; align-items:center; gap:.6rem; opacity:0; transform:translateY(8px);
    transition:opacity .5s ease, transform .5s ease;
  }
  .atelier-frame:hover .tag{opacity:1; transform:translateY(0);}
  .atelier-frame::after{
    content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
    background:linear-gradient(180deg, transparent 55%, rgba(15,26,33,.75));
  }

  /* ---------- EVERYDAY RANGE ---------- */
  .everyday{
    position:relative; padding:10rem 0; overflow:hidden; color:var(--cream-text);
    background:linear-gradient(rgba(15,26,33,.72), rgba(15,26,33,.82)), url('../images/moments-bg.jpg');
    background-size:cover; background-position:center;
  }
  .everyday-bg-pattern{position:absolute; inset:0; z-index:1; background:radial-gradient(600px 400px at 80% 20%, rgba(180,145,79,.15), transparent 60%); pointer-events:none;}
  .everyday-head{text-align:center; max-width:700px; margin:0 auto 4.5rem; position:relative; z-index:1;}
  .everyday-head .script{font-family:var(--script); font-size:clamp(2.4rem,4.4vw,3.6rem); color:var(--gold-light); line-height:1;}
  .everyday-head h2{font-size:clamp(1.8rem,3vw,2.6rem); margin-top:.6rem;}
  .everyday-head .pill{
    display:inline-flex; align-items:center; gap:.5rem; margin-top:1.4rem;
    font-family:var(--label); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3);
    background:var(--gold-light); padding:.5rem 1.1rem; border-radius:999px;
  }
  .everyday-head p{margin-top:1.5rem; color:#D9D2C1; font-size:1rem;}
  .everyday-bg-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; pointer-events:none;}
  .everyday-scrim{position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(rgba(15,26,33,.72), rgba(15,26,33,.85));}
  .everyday > .wrap, .everyday > .gallery-track-wrap{position:relative; z-index:2;}

  .gallery-track-wrap{position:relative; z-index:1;}
  .gallery-track{
    display:flex; gap:1.4rem; overflow-x:auto; scroll-snap-type:x mandatory; padding:.5rem clamp(1.5rem,4vw,5rem) 1.5rem;
    scrollbar-width:none;
  }
  .gallery-track::-webkit-scrollbar{display:none;}
  .gallery-card{
    flex:0 0 auto; width:min(280px, 74vw); scroll-snap-align:start;
    border:1px solid rgba(222,196,142,.25); background:rgba(255,255,255,.02);
    overflow:hidden; transition:transform .5s cubic-bezier(.2,.8,.2,1), border-color .5s;
  }
  .gallery-card:hover{transform:translateY(-10px); border-color:var(--gold);}
  .gallery-card .imgbox{aspect-ratio:1/1; overflow:hidden;}
  .gallery-card img{width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.2,1);}
  .gallery-card:hover img{transform:scale(1.1);}
  .gallery-card .meta{padding:1.1rem 1.2rem 1.3rem;}
  .gallery-card .meta b{font-family:var(--serif); font-size:1.08rem; font-weight:400;}
  .gallery-card .meta span{display:block; font-size:.78rem; color:#B7AF9E; margin-top:.3rem;}
  .gallery-hint{text-align:center; margin-top:1.6rem; font-family:var(--label); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:#9C947F;}

  .waitlist{
    max-width:520px; margin:3.6rem auto 0; position:relative; z-index:1;
    display:flex; gap:.8rem; border:1px solid rgba(222,196,142,.3); padding:.5rem; background:rgba(15,26,33,.4);
  }
  .waitlist input{
    flex:1; background:transparent; border:none; color:var(--cream-text); padding:.8rem 1rem; font-family:var(--body); font-size:.92rem;
  }
  .waitlist input::placeholder{color:#8f8879;}
  .waitlist input:focus{outline:none;}
  .waitlist button{
    font-family:var(--label); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
    background:var(--gold-light); color:var(--ink-3); border:none; padding:.9rem 1.6rem; cursor:pointer; transition:background .3s;
  }
  .waitlist button:hover{background:var(--gold);}

  /* ---------- COOKIES ---------- */
  .cookies{background:var(--parchment); padding:9rem 0 7rem;}
  .cookies-top{display:grid; grid-template-columns:1fr 1fr; gap:5vw; align-items:end;}
  /* cookie thumbnails in menu rows + lightbox */
  .menu-thumb{
    width:64px; height:64px; flex:none; object-fit:contain; cursor:pointer;
    border-radius:50%; background:radial-gradient(circle at 50% 45%, rgba(201,162,75,.22), rgba(201,162,75,0) 70%);
  }
  .cookie-lightbox{
    position:fixed; inset:0; z-index:200; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:1.4rem; padding:5vw; background:rgba(10,20,26,.92); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
    opacity:0; visibility:hidden; transition:opacity .4s ease, visibility .4s ease;
  }
  .cookie-lightbox.open{opacity:1; visibility:visible;}
  .cookie-lightbox img{max-width:min(620px,88vw); max-height:74vh; object-fit:contain; border-radius:8px; box-shadow:0 30px 70px rgba(0,0,0,.6);}
  .cookie-lightbox .lb-title{font-family:var(--serif); color:var(--cream-text); font-size:1.4rem; letter-spacing:.02em;}
  .cookie-lightbox .lb-close{
    position:absolute; top:2rem; right:2.4rem; width:44px; height:44px; border:1px solid rgba(222,196,142,.4);
    border-radius:50%; background:transparent; color:var(--gold-light); font-size:1.4rem; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center; transition:background .3s ease, transform .3s ease;
  }
  .cookie-lightbox .lb-close:hover{background:rgba(222,196,142,.14); transform:rotate(90deg);}
  .menu-panel{
    margin-top:3.8rem; background:var(--ink); color:var(--cream-text); border:1px solid rgba(180,145,79,.3);
    padding:3.2rem; display:grid; grid-template-columns:1fr 1fr; gap:0 4rem;
  }
  .menu-panel-head{grid-column:1/-1; display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:1.8rem; flex-wrap:wrap; gap:1rem;}
  .menu-cat{margin-top:1.2rem;}
  .menu-cat h4{font-family:var(--label); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-light); margin-bottom:1rem; padding-bottom:.6rem; border-bottom:1px solid rgba(222,196,142,.22);}
  .menu-row{display:flex; align-items:center; gap:1.1rem; padding:.75rem 0; border-bottom:1px dashed rgba(222,196,142,.14); transition:transform .3s;}
  .menu-row:hover{transform:translateX(.4rem);}
  .menu-row .mi{flex:1 1 auto;}
  .menu-row .mi b{font-family:var(--serif); font-weight:400; font-size:1.04rem;}
  .menu-row .mi span{display:block; font-size:.83rem; color:#B7AF9E; margin-top:.2rem;}
  .menu-row .price{font-family:var(--label); font-size:.9rem; color:var(--gold-light); white-space:nowrap;}
  .menu-note{grid-column:1/-1; margin-top:1rem; font-size:.82rem; color:#B7AF9E; font-style:italic;}
  .menu-subnote{margin:-.4rem 0 1.2rem; font-size:.85rem; line-height:1.5; color:#C9C2B3; max-width:640px;}
  .menu-panel-foot{grid-column:1/-1;}

  .sub-band{
    margin-top:4.2rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem;
  }
  .sub-card{
    background:var(--parchment-2); border:1px solid rgba(27,42,52,.1); padding:2.3rem 2rem;
    position:relative; transition:transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s;
  }
  .sub-card:hover{transform:translateY(-8px); box-shadow:0 20px 40px rgba(27,42,52,.1);}
  .sub-card.featured{background:var(--ink); color:var(--cream-text); border-color:var(--gold);}
  .sub-card .eyebrow{margin-bottom:.9rem;}
  .sub-card h3{font-size:1.4rem; margin-bottom:.6rem;}
  .sub-card .price{font-family:var(--label); font-size:1.65rem; color:var(--gold-dim); margin:.6rem 0;}
  .sub-card.featured .price{color:var(--gold-light);}
  .sub-card ul{list-style:none; margin:1rem 0 1.5rem; font-size:.88rem; color:var(--muted);}
  .sub-card.featured ul{color:#C9C2B3;}
  .sub-card li{padding:.35rem 0; padding-left:1.1rem; position:relative;}
  .sub-card li::before{content:'—'; position:absolute; left:0; color:var(--gold-dim);}
  .sub-card.featured li::before{color:var(--gold-light);}
  .badge{position:absolute; top:-11px; right:1.6rem; background:var(--gold); color:var(--ink-3); font-family:var(--label); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; padding:.35rem .7rem;}

  /* ---------- CORPORATE ---------- */
  .corporate{background:linear-gradient(180deg, var(--parchment-2), var(--parchment)); padding:9rem 0 7rem; position:relative; overflow:hidden;}
  .corp-pattern{position:absolute; bottom:-15%; right:-10%; width:55%; height:110%; background-image:url('../images/pattern.png'); background-size:480px; opacity:.16; pointer-events:none; mask-image:radial-gradient(closest-side, black 40%, transparent 85%); -webkit-mask-image:radial-gradient(closest-side, black 40%, transparent 85%);}
  .corp-intro-panel{position:relative; background:rgba(246,241,230,.82); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); padding:1.6rem 1.8rem; border-radius:4px;}
  .corp-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:5vw; position:relative; z-index:1;}
  .corp-services{display:grid; gap:1px; background:rgba(27,42,52,.14); border:1px solid rgba(27,42,52,.14); margin-top:2.6rem;}
  .corp-service{background:var(--parchment); padding:1.8rem 1.9rem; display:grid; grid-template-columns:2.4rem 1fr; gap:1.2rem; align-items:start; transition:background .35s, padding-left .35s;}
  .corp-service:hover{background:var(--parchment-2); padding-left:2.3rem;}
  .corp-service .num{font-family:var(--serif); font-style:italic; color:var(--gold-dim); font-size:1.35rem;}
  .corp-service h4{font-size:1.1rem; margin-bottom:.35rem; color:var(--ink);}
  .corp-service p{font-size:.88rem; color:var(--muted); margin:0;}

  .corp-form{
    background:var(--ink); color:var(--cream-text); padding:2.8rem; border:1px solid rgba(180,145,79,.3);
    position:sticky; top:120px;
  }
  .corp-form h3{font-size:1.55rem; margin-bottom:.4rem;}
  .corp-form p.sub{color:#C9C2B3; font-size:.88rem; margin-bottom:1.7rem;}
  .field{margin-bottom:1.15rem;}
  .field label{display:block; font-family:var(--label); font-size:.65rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-light); margin-bottom:.45rem;}
  .field input, .field select, .field textarea{
    width:100%; background:rgba(243,236,221,.05); border:1px solid rgba(222,196,142,.28);
    color:var(--cream-text); padding:.8rem .95rem; font-family:var(--body); font-size:.92rem; font-weight:300; transition:border-color .3s, background .3s;
  }
  .field textarea{resize:vertical; min-height:80px;}
  .field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--gold); background:rgba(243,236,221,.08);}
  .field select option{background:var(--ink);}
  .corp-form .btn{width:100%; justify-content:center; margin-top:.6rem;}
  .form-note{font-size:.74rem; color:#9C947F; margin-top:.9rem;}

  /* ---------- CONTACT / FOOTER ---------- */
  footer{background:var(--ink-3); color:#C9C2B3; padding:6rem 0 2rem;}
  .foot-grid{display:grid; grid-template-columns:1.3fr .7fr .7fr .9fr; gap:3rem; padding-bottom:3.6rem; border-bottom:1px solid rgba(222,196,142,.14);}
  .foot-brand .brandmark{margin-bottom:1.1rem;}
  .foot-brand p{max-width:320px; font-size:.9rem; color:#9C947F;}
  .foot-col h5{font-family:var(--label); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-light); margin-bottom:1.1rem;}
  .foot-col a, .foot-col p{display:block; font-size:.88rem; color:#C9C2B3; margin-bottom:.65rem; transition:color .3s;}
  .foot-col a:hover{color:var(--gold-light);}
  .foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:2.1rem; font-size:.76rem; color:#7A7362; flex-wrap:wrap; gap:1rem;}
  .foot-bottom .socials{display:flex; gap:1.3rem;}

  .whatsapp-fab{
    position:fixed; right:1.8rem; bottom:1.8rem; z-index:400;
    width:58px; height:58px; border-radius:50%; background:var(--gold-light);
    display:flex; align-items:center; justify-content:center; box-shadow:0 10px 28px rgba(0,0,0,.35);
    transition:transform .4s cubic-bezier(.3,1.5,.5,1);
  }
  .whatsapp-fab:hover{transform:scale(1.1) rotate(-6deg);}
  .whatsapp-fab svg{width:27px; height:27px; fill:var(--ink-3);}
  /* hide the WhatsApp button while the cart drawer is open (it overlaps checkout) */
  body.cart-open .whatsapp-fab{opacity:0; visibility:hidden; pointer-events:none; transition:opacity .3s ease, visibility .3s ease;}

  /* ---------- desktop large screens ---------- */
  @media (min-width:1440px){
    :root{ --maxw: 1400px; --maxw-narrow: 1200px; }
    .pillars{gap:1.8rem;}
    .cake-cards{gap:2.2rem;}
    .gallery-card{width:300px;}
  }

  @media (max-width:980px){
    .hero-inner{grid-template-columns:1fr;}
    .hero-visual{min-height:52vh; order:-1;}
    .hero-copy{padding:8rem clamp(1.2rem,5vw,3rem) 4rem;}
    .cakes-top, .cookies-top, .corp-grid, .occasion-band{grid-template-columns:1fr;}
    .menu-panel{grid-template-columns:1fr;}
    .pillars{grid-template-columns:repeat(2,1fr);}
    .cake-cards{grid-template-columns:1fr 1fr;}
    .sub-band{grid-template-columns:1fr;}
    .corp-form{position:static;}
    .foot-grid{grid-template-columns:1fr 1fr;}
    nav.links{display:none;}
    .burger{display:flex;}
    .story-pattern{display:none;}
  }
  @media (max-width:600px){
    .cake-cards{grid-template-columns:1fr;}
    .pillars{grid-template-columns:1fr 1fr;}
    .menu-panel{padding:2.2rem 1.4rem;}
    .foot-grid{grid-template-columns:1fr;}
    .waitlist{flex-direction:column;}
    .story-portrait{float:none; width:190px; margin:0 auto 1.6rem;}
  }

  /* mobile nav drawer */
  .mobile-drawer{
    position:fixed; inset:0; background:var(--ink-3); z-index:550;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2rem;
    transform:translateY(-100%); transition:transform .5s cubic-bezier(.2,.8,.2,1);
  }
  .mobile-drawer.open{transform:translateY(0);}
  .mobile-drawer a{font-family:var(--label); letter-spacing:.16em; text-transform:uppercase; font-size:1rem; color:var(--cream-text);}
  .mobile-drawer .close{position:absolute; top:1.6rem; right:6vw; font-size:1.6rem; color:var(--gold-light); cursor:pointer;}

  /* ─────────── ONLINE ORDERING (cart + checkout) ─────────── */
  .add-btn{
    flex:none; width:34px; height:34px; border-radius:50%; cursor:pointer;
    border:1px solid var(--gold); background:transparent; color:var(--gold-light);
    font-size:1.2rem; line-height:1; display:flex; align-items:center; justify-content:center;
    transition:background .25s ease, color .25s ease, transform .25s ease;
  }
  .add-btn:hover{background:var(--gold); color:var(--ink);}
  .add-btn.added{animation:addPop .4s ease;}
  @keyframes addPop{0%{transform:scale(1);}40%{transform:scale(1.3);}100%{transform:scale(1);}}

  .cart-fab{
    position:fixed; left:24px; bottom:24px; z-index:150; width:56px; height:56px; border-radius:50%;
    display:none; align-items:center; justify-content:center; cursor:pointer;
    background:var(--gold); color:var(--ink); border:none; box-shadow:0 12px 30px rgba(0,0,0,.35);
    transition:transform .25s ease;
  }
  .cart-fab:hover{transform:translateY(-3px);}
  .cart-count{
    position:absolute; top:-4px; right:-4px; min-width:20px; height:20px; padding:0 5px; border-radius:10px;
    background:var(--ink); color:var(--cream-text); font-family:var(--label); font-size:.68rem;
    display:grid; place-items:center; border:1px solid var(--gold);
  }
  .cart-overlay{position:fixed; inset:0; z-index:160; background:rgba(10,20,26,.6); opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease;}
  .cart-overlay.open{opacity:1; visibility:visible;}
  .cart-drawer{
    position:fixed; top:0; right:0; z-index:170; height:100%; width:min(420px,92vw);
    background:var(--ink); color:var(--cream-text); border-left:1px solid rgba(222,196,142,.25);
    display:flex; flex-direction:column; transform:translateX(100%); transition:transform .45s cubic-bezier(.2,.8,.2,1);
    box-shadow:-30px 0 60px rgba(0,0,0,.4);
  }
  .cart-drawer.open{transform:translateX(0);}
  .cart-head{display:flex; align-items:center; justify-content:space-between; padding:1.6rem 1.6rem 1.2rem; border-bottom:1px solid rgba(222,196,142,.18);}
  .cart-head h3{font-family:var(--serif); font-weight:400; font-size:1.4rem;}
  .cart-close{background:none; border:none; color:var(--gold-light); font-size:1.8rem; line-height:1; cursor:pointer;}
  .cart-body{flex:1; overflow-y:auto; padding:1rem 1.6rem;}
  .cart-empty{color:#B7AF9E; font-size:.9rem; margin-top:1rem;}
  .cart-item{display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:1rem; padding:.9rem 0; border-bottom:1px dashed rgba(222,196,142,.14);}
  .ci-info b{font-family:var(--serif); font-weight:400; font-size:.98rem; display:block;}
  .ci-info span{font-size:.75rem; color:#B7AF9E;}
  .ci-qty{display:flex; align-items:center; gap:.6rem;}
  .ci-qty button{width:26px; height:26px; border-radius:50%; border:1px solid rgba(222,196,142,.4); background:transparent; color:var(--gold-light); cursor:pointer; font-size:1rem; line-height:1;}
  .ci-qty button:hover{background:rgba(222,196,142,.14);}
  .ci-qty span{min-width:16px; text-align:center; font-family:var(--label); font-size:.9rem;}
  .ci-line{font-family:var(--label); font-size:.85rem; color:var(--gold-light); white-space:nowrap;}
  .cart-foot{padding:1.2rem 1.6rem 1.6rem; border-top:1px solid rgba(222,196,142,.18); background:rgba(0,0,0,.15);}
  .cart-date{display:flex; flex-direction:column; gap:.4rem; font-family:var(--label); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:#C9C2B3; margin-bottom:1rem;}
  .cart-date input{background:rgba(255,255,255,.06); border:1px solid rgba(222,196,142,.3); color:var(--cream-text); padding:.6rem .7rem; border-radius:4px; font-family:var(--body); color-scheme:dark;}
  .cart-line{display:flex; justify-content:space-between; font-size:.9rem; padding:.28rem 0; color:#D9D2C1;}
  .cart-total{font-family:var(--serif); font-size:1.15rem; color:var(--cream-text); padding-top:.6rem; margin-top:.3rem; border-top:1px solid rgba(222,196,142,.18);}
  .cart-warn{margin:.7rem 0; font-size:.8rem; color:#E7C6A0;}
  .cart-checkout{
    width:100%; margin-top:1rem; padding:.95rem; border:none; border-radius:4px; cursor:pointer;
    background:var(--gold); color:var(--ink); font-family:var(--label); letter-spacing:.14em; text-transform:uppercase; font-size:.8rem;
    transition:background .25s ease, opacity .25s ease;
  }
  .cart-checkout:hover{background:var(--gold-light);}
  .cart-checkout:disabled{opacity:.5; cursor:not-allowed;}
  .cart-note{margin-top:.8rem; font-size:.68rem; color:#8f9aa0; text-align:center; line-height:1.5;}

  /* ─────────── MULTI-PAGE: solid nav on content pages ─────────── */
  /* Content pages can start on a light section, so keep the nav readable from the top. */
  body.subpage header.nav{
    background:rgba(15,26,33,.92);
    backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(180,145,79,.25);
  }

  /* ─────────── HOMEPAGE HUB BANDS ─────────── */
  .hub-band{position:relative; overflow:hidden;}
  .hub-band.dark{background:var(--ink); color:var(--cream-text);}
  .hub-band.light{background:var(--parchment); color:var(--ink-text);}
  .hub-band .wrap{padding-top:clamp(4rem,8vw,7rem); padding-bottom:clamp(4rem,8vw,7rem);}
  .hub-inner{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:center;}
  .hub-band.reverse .hub-media{order:2;}
  .hub-band.text .hub-inner{grid-template-columns:1fr; max-width:760px; margin:0 auto; text-align:center;}
  .hub-media{position:relative; overflow:hidden; border:1px solid rgba(180,145,79,.28);}
  .hub-media img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; transition:transform 1.2s cubic-bezier(.2,.8,.2,1);}
  .hub-band:hover .hub-media img{transform:scale(1.05);}
  .hub-copy h2{margin:.5rem 0 1rem;}
  .hub-band.light .hub-copy p{color:var(--muted);}
  .hub-band.dark .hub-copy p{color:#C9C2B3;}
  .hub-copy p{max-width:54ch; font-size:1.02rem;}
  .hub-band.text .hub-copy p{margin-left:auto; margin-right:auto;}
  .explore-link{
    display:inline-flex; align-items:center; gap:.7rem; margin-top:1.7rem;
    font-family:var(--label); font-size:.75rem; letter-spacing:.2em; text-transform:uppercase;
    color:var(--gold-dim); padding-bottom:4px; border-bottom:1px solid transparent; transition:color .3s, border-color .3s;
  }
  .hub-band.dark .explore-link{color:var(--gold-light);}
  .explore-link .arrow{transition:transform .35s cubic-bezier(.2,.8,.2,1);}
  .explore-link:hover{border-color:currentColor;}
  .explore-link:hover .arrow{transform:translateX(6px);}

  /* ─────────── EVERYDAY: collection headers + text-only bakes cards ─────────── */
  .collection-head{display:flex; align-items:baseline; justify-content:space-between; gap:1.4rem; flex-wrap:wrap; margin:0 0 2rem;}
  .collection-head h3{font-family:var(--serif); font-weight:400; font-size:clamp(1.7rem,2.8vw,2.3rem); color:var(--cream-text);}
  .collection-price{font-family:var(--label); letter-spacing:.16em; text-transform:uppercase; font-size:.82rem; color:var(--gold-light); white-space:nowrap;}
  .bakes-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr)); gap:1.4rem;}
  .bakes-card{
    border:1px solid rgba(222,196,142,.25); padding:1.7rem 1.6rem; background:rgba(255,255,255,.04);
    transition:transform .5s cubic-bezier(.2,.8,.2,1), border-color .4s ease;
  }
  .bakes-card:hover{transform:translateY(-5px); border-color:var(--gold);}
  .bakes-card h4{font-family:var(--serif); font-weight:400; font-size:1.2rem; color:var(--cream-text);}
  .bakes-card p{font-size:.85rem; color:#B7AF9E; margin-top:.5rem;}
  .everyday-collection{position:relative; z-index:2;}
  .everyday-order{position:relative; z-index:2; text-align:center; max-width:560px; margin:3.4rem auto 0;}
  .everyday-order p{color:#D9D2C1; font-size:.95rem; margin-bottom:1.4rem;}

  /* ─────────── CORPORATE IMAGERY BAND ─────────── */
  .corp-gallery{
    display:grid; grid-template-columns:1fr 1fr; gap:1.4rem;
    margin-bottom:clamp(2.4rem,5vw,3.6rem); position:relative; z-index:1;
  }
  .corp-shot{overflow:hidden; border:1px solid rgba(180,145,79,.28);}
  .corp-shot img{width:100%; height:100%; object-fit:cover; aspect-ratio:16/10; transition:transform 1.2s cubic-bezier(.2,.8,.2,1);}
  .corp-shot:hover img{transform:scale(1.05);}
  @media (max-width: 760px){ .corp-gallery{grid-template-columns:1fr;} }
