/* NOTE: design tokens live in main.css :root — do not redeclare them here.
   home.css loads after main.css, so any duplicate :root silently overrides
   the brand palette on the homepage only. */
button.g-item{border:0;background:none;padding:0;color:inherit;width:100%;text-align:center}

/* =========================================================
   BACKGROUND WATERMARK
   ========================================================= */
.watermark{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.watermark svg{position:absolute;opacity:.045}
.wm-1{width:820px;height:820px;top:-180px;right:-240px;animation:rot 160s linear infinite}
.wm-2{width:640px;height:640px;bottom:-220px;left:-220px;animation:rot 200s linear infinite reverse}
@keyframes rot{to{transform:rotate(360deg)}}
main,header,footer,nav,.strip{position:relative;z-index:1}

/* ---------- type ---------- */
.eyebrow{font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--orange);font-weight:500;display:inline-flex;align-items:center;gap:12px}
h2.title{font-family:var(--serif);font-size:clamp(32px,4.2vw,52px);font-weight:400;line-height:1.15;margin:14px 0 12px}
h2.title .o{color:var(--orange)}
.sub{font-size:16px;color:var(--ink-soft);max-width:540px;font-weight:300}
.center{text-align:center}
.center .sub{margin:0 auto}

/* ---------- ornamental floral header frame ---------- */
.orn-head{display:flex;align-items:center;justify-content:center;gap:18px}
.orn-head svg{width:74px;height:22px;flex:none;color:var(--yellow)}
.orn-head .flip{transform:scaleX(-1)}

/* bandhani dots */
.bandhani{display:flex;justify-content:center;gap:10px;margin:14px auto 0}
.bandhani i{width:5px;height:5px;border-radius:50%;background:var(--yellow)}
.bandhani i:nth-child(2),.bandhani i:nth-child(4){background:var(--orange)}
.bandhani i:nth-child(3){width:7px;height:7px;margin-top:-1px}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}
.rv-d2{transition-delay:.16s}
.rv-d3{transition-delay:.24s}
.rv-d4{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}


/* ---------- image system ---------- */
.media{position:relative;overflow:hidden;background:var(--yellow-pale)}
.media img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.1s cubic-bezier(.22,1,.36,1),filter .5s;
  will-change:transform;
}
.media:hover img{transform:scale(1.06)}
.media::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(42,35,23,.12) 100%);
  opacity:0;transition:opacity .4s;
}
.media:hover::after{opacity:1}

/* legacy split-hero styles removed — hero is now .hero-full */

/* stats */
.stats{margin:80px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,251,240,.85)}
.stats-in{display:grid;grid-template-columns:repeat(4,1fr);max-width:1200px;margin:0 auto}
.stat{text-align:center;padding:38px 16px;position:relative}
.stat+.stat::before{content:"❋";position:absolute;left:0;top:50%;transform:translate(-50%,-50%);color:var(--yellow);font-size:14px}
.stat b{font-family:var(--serif);font-size:clamp(30px,3.4vw,44px);display:block;line-height:1}
.stat b em{font-style:normal;color:var(--orange)}
.stat span{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px;display:block}

/* ---------- trust bar ---------- */
.trust{padding:48px 0;border-bottom:1px solid var(--line);background:
  linear-gradient(90deg,var(--yellow-pale),#fff 22%,#fff 78%,var(--yellow-pale)),
  repeating-linear-gradient(135deg,rgba(250,181,3,.05) 0 10px,transparent 10px 20px)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.trust-item{display:flex;gap:14px;align-items:flex-start;padding:8px 4px}
.trust-ic{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--yellow-pale),var(--orange-soft));border:1px solid var(--yellow);display:flex;align-items:center;justify-content:center;flex:none;font-size:16px}
.trust-item b{display:block;font-size:14.5px;font-weight:500;margin-bottom:4px}
.trust-item p{font-size:13px;color:var(--ink-soft);line-height:1.5}

/* ---------- categories ---------- */
.cats{padding:110px 0 100px}
.cats-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:28px;flex-wrap:wrap}
.occasion-pills{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}
.pill{
  text-decoration:none;color:var(--ink-soft);font-size:12.5px;letter-spacing:.08em;
  padding:9px 18px;border-radius:100px;border:1px solid var(--line);background:#fff;transition:.3s;
}
.pill:hover,.pill.is-active{border-color:var(--yellow);background:var(--yellow-pale);color:var(--ink)}
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.cat{position:relative;text-decoration:none;color:var(--ink);text-align:center;transition:.4s}
.cat .frame{position:relative;aspect-ratio:4/5;overflow:hidden;transition:.45s cubic-bezier(.22,1,.36,1)}
.cat .frame.media{border-radius:50% 50% 0 0 / 42% 42% 0 0}
.cat:hover .frame{box-shadow:0 26px 50px -22px rgba(250,181,3,.55);transform:translateY(-8px)}
.cat .tag{position:absolute;top:16px;left:50%;transform:translateX(-50%);background:var(--orange);color:#fff;font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;padding:6px 14px;border-radius:100px;z-index:4;box-shadow:0 8px 18px -8px rgba(244,121,31,.7)}
.cat h3{font-family:var(--serif);font-size:22px;margin:20px 0 4px;font-weight:400}
.cat p{font-size:13px;color:var(--ink-soft)}
.cat .from{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--orange);margin-top:8px;font-weight:500}
.cat .go{display:inline-flex;align-items:center;gap:7px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--orange);margin-top:10px;transition:gap .3s}
.cat:hover .go{gap:13px}

/* ---------- how it works ---------- */
.how{padding:110px 0;background:rgba(255,251,240,.9);border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.how-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:70px;position:relative}
.how-grid::before{content:"";position:absolute;top:34px;left:11%;right:11%;height:1px;background:repeating-linear-gradient(90deg,var(--yellow) 0 8px,transparent 8px 16px)}
.hstep{text-align:center;padding:0 24px;position:relative}
.hstep .n{width:68px;height:68px;margin:0 auto 26px;border-radius:50%;background:#fff;border:1.5px solid var(--yellow);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:24px;color:var(--orange);transition:.4s;position:relative;z-index:2}
.hstep:hover .n{background:var(--yellow);color:var(--ink);transform:scale(1.1);box-shadow:0 16px 34px -14px rgba(250,181,3,.8)}
.hstep h4{font-family:var(--serif);font-size:20px;font-weight:400;margin-bottom:10px}
.hstep p{font-size:13.5px;color:var(--ink-soft)}

/* ---------- gallery band ---------- */
.gallery{padding:110px 0 0}
.g-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px;align-items:start}
.g-grid .frame{position:relative;overflow:hidden;transition:.4s}
.g-grid .frame:hover{transform:translateY(-6px);box-shadow:0 26px 50px -24px rgba(250,181,3,.5)}
.g-tall{aspect-ratio:3/4}
.g-mid{aspect-ratio:3/4;margin-top:44px}
.g-cap{font-family:var(--serif);font-size:18px;margin-top:16px;text-align:center}
.g-item{cursor:zoom-in}
.g-item .frame{position:relative}
.g-zoom{
  position:absolute;left:50%;bottom:18px;transform:translateX(-50%) translateY(8px);
  background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:100px;
  padding:8px 16px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;
  opacity:0;transition:.35s;pointer-events:none;color:var(--ink);z-index:3;
}
.g-item:hover .g-zoom,.g-item:focus-visible .g-zoom{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- pricing ---------- */
.pricing{padding:110px 0}
.p-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:64px;align-items:stretch}
.plan{border:1.5px solid var(--line);border-radius:22px;padding:44px 38px;position:relative;display:flex;flex-direction:column;transition:.4s;background:rgba(255,255,255,.9)}
.plan:hover{transform:translateY(-8px);border-color:var(--yellow);box-shadow:0 30px 60px -30px rgba(250,181,3,.5)}
.plan.pop{border-color:var(--yellow);background:linear-gradient(180deg,var(--yellow-pale),#fff 55%);box-shadow:0 24px 56px -26px rgba(250,181,3,.55)}
.plan.pop::before{content:"❋";position:absolute;top:-34px;left:50%;transform:translateX(-50%);font-size:20px;color:var(--yellow)}
.plan .pop-tag{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--orange);color:#fff;font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;padding:8px 22px;border-radius:100px;white-space:nowrap}
.plan h3{font-family:var(--serif);font-size:24px;font-weight:400}
.plan .price{margin:16px 0 6px;display:flex;align-items:baseline;gap:8px}
.plan .price b{font-family:var(--serif);font-size:46px;font-weight:400}
.plan .price span{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.plan>p{font-size:14px;color:var(--ink-soft);margin-bottom:26px;padding-bottom:24px;border-bottom:1px dashed var(--line)}
.plan ul{list-style:none;display:flex;flex-direction:column;gap:13px;margin-bottom:34px;flex:1}
.plan li{font-size:14.5px;display:flex;gap:12px;align-items:flex-start}
.plan li::before{content:"❋";color:var(--orange);font-size:13px;line-height:1.7}
.plan .btn{justify-content:center}
.p-note{text-align:center;font-size:12.5px;color:var(--ink-soft);margin-top:28px}

/* ---------- corporate ---------- */
.corp{padding:0 0 110px}
.corp-card{border-radius:28px;background:
 radial-gradient(600px 300px at 90% 10%,rgba(255,255,255,.14),transparent 60%),
 linear-gradient(120deg,var(--teal-deep),var(--teal) 62%,#2C8189);
 padding:74px 70px;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;position:relative;overflow:hidden;color:#fff}
.corp-card::before{
  content:"";position:absolute;width:280px;height:280px;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);right:-60px;top:-80px;pointer-events:none;
}
.corp-card::after{
  content:"";position:absolute;width:180px;height:180px;border-radius:50%;
  border:1px dashed rgba(255,255,255,.4);right:40px;bottom:-50px;pointer-events:none;
}
.corp-card small{font-size:12px;letter-spacing:.32em;text-transform:uppercase;font-weight:600;color:var(--yellow)}
.corp-card h2{font-family:var(--serif);font-size:clamp(30px,3.4vw,46px);font-weight:400;line-height:1.14;margin:14px 0 16px;color:#fff}
.corp-card p{font-size:15.5px;color:rgba(255,255,255,.82);max-width:470px;margin-bottom:30px}
.corp-media{aspect-ratio:4/3;border-radius:18px;overflow:hidden;box-shadow:0 24px 50px -24px rgba(0,0,0,.5);border:2px solid rgba(250,181,3,.55)}
.corp-media img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.22,1,.36,1)}
.corp-media:hover img{transform:scale(1.05)}
.corp-feats{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.corp-feats span{background:rgba(255,255,255,.14);color:#fff;backdrop-filter:blur(4px);border-radius:100px;padding:9px 18px;font-size:13px;display:flex;gap:8px;align-items:center;border:1px solid rgba(255,255,255,.25)}
.corp-feats span::before{content:"✦";color:var(--orange);font-size:11px}

/* ---------- testimonials ---------- */
.testi{padding:110px 0;background:rgba(255,251,240,.9);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:64px}
.t-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:38px 34px;transition:.4s;text-align:left}
.t-card:hover{transform:translateY(-6px);border-color:var(--yellow);box-shadow:0 26px 50px -26px rgba(250,181,3,.5)}
.t-card .stars{color:var(--yellow);font-size:15px;letter-spacing:5px;margin-bottom:18px}
.t-card p{font-size:15px;color:#57503f;line-height:1.7}
.t-who{display:flex;align-items:center;gap:14px;margin-top:26px;padding-top:22px;border-top:1px dashed var(--line)}
.av-img{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--yellow);box-shadow:0 4px 12px -4px rgba(250,181,3,.5)}
.t-who b{display:block;font-size:14.5px;font-weight:500}
.t-who span{font-size:12.5px;color:var(--ink-soft)}

/* ---------- FAQ ---------- */
.faq{padding:110px 0;background:#fff}
.faq-list{max-width:760px;margin:48px auto 0;display:flex;flex-direction:column;gap:12px}
.faq-item{
  border:1.5px solid var(--line);border-radius:16px;background:rgba(255,251,240,.55);
  overflow:hidden;transition:border-color .3s,box-shadow .3s;
}
.faq-item[open],.faq-item:hover{border-color:var(--yellow);box-shadow:0 16px 40px -28px rgba(250,181,3,.55)}
.faq-item summary{
  list-style:none;cursor:pointer;padding:22px 26px;font-family:var(--serif);font-size:18px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;user-select:none;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"+";font-family:var(--sans);font-size:22px;color:var(--orange);font-weight:300;line-height:1;
  transition:transform .3s;flex:none;
}
.faq-item[open] summary::after{content:"–"}
.faq-item p{padding:0 26px 24px;font-size:15px;color:var(--ink-soft);line-height:1.7}
.faq-item p b{color:var(--ink);font-weight:500}

/* ---------- CTA ---------- */
.cta{padding:110px 0 120px;position:relative;background:
  radial-gradient(700px 320px at 10% 20%,var(--yellow-soft),transparent 65%),
  radial-gradient(500px 280px at 90% 80%,var(--orange-soft),transparent 70%),
  repeating-radial-gradient(circle at 0 0,rgba(250,181,3,.06) 0 2px,transparent 2px 34px)}
.cta h2{font-family:var(--serif);font-size:clamp(34px,4.2vw,52px);font-weight:400;line-height:1.12;margin:18px 0 14px}
.cta .sub{margin:0 0 28px;max-width:440px}
.cta-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
.cta-btns{display:flex;gap:16px;flex-wrap:wrap}
.cta-reply{font-size:13px;color:var(--ink-soft);margin-top:22px}

/* lead form */
.lead-form{
  background:#fff;border:1.5px solid var(--line);border-radius:24px;padding:34px 32px;
  box-shadow:0 30px 60px -36px rgba(42,35,23,.18);display:flex;flex-direction:column;gap:14px;
}
.lead-form h3{font-family:var(--serif);font-size:24px;font-weight:400}
.lead-hint{font-size:13px;color:var(--ink-soft);margin-top:-6px;margin-bottom:4px}
.lead-form label{display:flex;flex-direction:column;gap:6px;text-align:left}
.lead-form label span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}
.lead-form input,.lead-form select,.lead-form textarea{
  font-family:var(--sans);font-size:15px;font-weight:300;color:var(--ink);
  border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--yellow-pale);
  transition:border-color .25s,box-shadow .25s;width:100%;
}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{
  outline:none;border-color:var(--yellow);box-shadow:0 0 0 4px rgba(250,181,3,.18);background:#fff;
}
.lead-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lead-submit{width:100%;justify-content:center;margin-top:6px}
.lead-privacy{font-size:11.5px;color:var(--ink-soft);text-align:center;margin-top:2px}

/* lightbox */
.lightbox{
  position:fixed;inset:0;z-index:80;background:rgba(42,35,23,.88);backdrop-filter:blur(10px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;gap:16px;
}
.lightbox[hidden]{display:none!important}
.lightbox img{max-width:min(920px,92vw);max-height:78vh;object-fit:contain;border-radius:16px;box-shadow:0 30px 80px -20px rgba(0,0,0,.5)}
.lb-cap{color:#fff;font-family:var(--serif);font-size:18px;text-align:center}
.lb-close{
  position:absolute;top:18px;right:22px;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.1);color:#fff;font-size:28px;line-height:1;display:flex;align-items:center;justify-content:center;
}
.lb-close:hover{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}

/* back to top */
.to-top{
  position:fixed;bottom:96px;right:30px;z-index:55;width:46px;height:46px;border-radius:50%;
  border:1px solid var(--line);background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 28px -14px rgba(42,35,23,.3);transition:.3s;opacity:0;pointer-events:none;transform:translateY(8px);
}
.to-top.is-visible{opacity:1;pointer-events:auto;transform:none}
.to-top:hover{background:var(--yellow);border-color:var(--yellow)}


/* ---------- responsive ---------- */
@media(max-width:1020px){
  .hero-grid{grid-template-columns:1fr;gap:80px}
  .hero-left{text-align:center}
  .hero-left p,.hero-cta,.hero-note,.hero-trust-mini{margin-left:auto;margin-right:auto;justify-content:center}
  .cat-grid{grid-template-columns:1fr 1fr}
  .how-grid{grid-template-columns:1fr 1fr;gap:44px 0}
  .how-grid::before{display:none}
  .g-grid{grid-template-columns:1fr 1fr}
  .g-mid{margin-top:0}
  .p-grid{grid-template-columns:1fr;max-width:480px;margin-inline:auto}
  .corp-card{grid-template-columns:1fr;padding:54px 40px}
  .t-grid{grid-template-columns:1fr;max-width:540px;margin-inline:auto}
  .stats-in{grid-template-columns:1fr 1fr}
  .stat:nth-child(3)::before{display:none}
  .trust-grid{grid-template-columns:1fr 1fr}
  .cta-grid{grid-template-columns:1fr;gap:36px}
  .cta-copy .orn-head,.cta-btns{justify-content:center!important}
  .cta .sub{margin-left:auto;margin-right:auto}
  .center-mobile{text-align:center}
}
@media(max-width:720px){
  .cat-grid,.g-grid{grid-template-columns:1fr;max-width:360px;margin-inline:auto}
  .how-grid{grid-template-columns:1fr}
  .corp-card{padding:44px 26px}
  .trust-grid{grid-template-columns:1fr}
  .lead-row{grid-template-columns:1fr}
  .lead-form{padding:26px 20px}
  .to-top{right:18px;bottom:100px}
}

/* =========================================================
   CINEMATIC SYSTEM — hero, marquee, dark sections, split-text, cursor
   ========================================================= */

/* custom cursor (desktop pointer:fine only, see JS gate) */
.cine-cursor{position:fixed;top:0;left:0;z-index:999;pointer-events:none;opacity:0;transition:opacity .3s}
.cine-cursor.is-on{opacity:1}
.cine-cursor-dot{position:absolute;top:0;left:0;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--yellow);transition:transform .15s ease}
.cine-cursor-ring{position:absolute;top:0;left:0;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;border:1px solid rgba(250,181,3,.65);transition:transform .25s cubic-bezier(.22,1,.36,1),opacity .25s,border-color .25s;will-change:transform}
.cine-cursor.is-hover .cine-cursor-ring{transform:scale(1.9);border-color:var(--orange);background:rgba(244,121,31,.08)}
.cine-cursor.is-hover .cine-cursor-dot{transform:scale(0)}
@media(pointer:coarse){.cine-cursor{display:none}}

/* split-text words (JS wraps each word in .split-word > span) */
/* The clip box must extend below the baseline or descenders (g, y, p) get
   sliced off. Pad the mask, then pull the extra space back with a negative
   margin so line spacing is unchanged. */
.split-word{
  display:inline-block;vertical-align:top;overflow:hidden;
  padding-bottom:.18em;margin-bottom:-.18em;
}
.split-word>span{display:inline-block;transform:translateY(130%);transition:transform .8s cubic-bezier(.19,1,.22,1)}
[data-split].in .split-word>span{transform:translateY(0)}

/* ---------- light editorial hero ---------- */
.hero-full{min-height:100vh;min-height:100svh;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:var(--ivory)}
.hero-full-media{position:absolute;inset:0;z-index:0}
.hero-full-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-full-scrim{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 60% at 50% 50%,rgba(251,247,240,.88),rgba(251,247,240,.62) 60%,rgba(251,247,240,.45) 100%),
    linear-gradient(180deg,rgba(251,247,240,.55) 0%,rgba(251,247,240,.15) 30%,rgba(251,247,240,.15) 70%,rgba(251,247,240,.6) 100%);
}
.hero-full-inner{position:relative;z-index:2;max-width:900px}
.hero-chip{
  display:inline-block;font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--teal);border:1px solid rgba(31,107,114,.35);border-radius:100px;
  padding:10px 22px;background:rgba(255,255,255,.6);backdrop-filter:blur(6px);
}
.hero-full-title{
  font-family:var(--serif);font-weight:400;color:var(--ink);
  font-size:clamp(42px,6.6vw,92px);line-height:1.14;
  margin:26px auto 22px;max-width:15ch;
}
.hero-full-sub{font-size:17.5px;color:var(--ink-soft);max-width:600px;margin:0 auto 36px;font-weight:300}
.hero-full-cta{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}

.hero-full-scroll{
  position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);
}
.hero-full-scroll span{width:1px;height:40px;background:var(--ink-soft);opacity:.4;animation:hero-scroll-pulse 2.2s ease-in-out infinite}
@keyframes hero-scroll-pulse{0%,100%{opacity:.15}50%{opacity:.55}}
@media(prefers-reduced-motion:reduce){.hero-full-scroll span{animation:none}}

/* ---------- marquee (teal band) ---------- */
.cine-marquee{background:var(--teal);color:#fff;overflow:hidden;padding:18px 0}
.cine-marquee-track{display:inline-flex;gap:36px;white-space:nowrap;animation:cine-marquee-scroll 32s linear infinite;will-change:transform}
.cine-marquee-track span{font-family:var(--serif);font-size:21px;font-weight:400;flex:none;color:rgba(255,255,255,.95)}
.cine-marquee-track span:nth-child(2n){color:var(--yellow);font-family:var(--sans);font-size:13px}
@keyframes cine-marquee-scroll{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.cine-marquee-track{animation:none}}

/* ---------- baskets ---------- */
.baskets{padding:110px 0;background:var(--cream)}
.baskets-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center}
.baskets-copy .title{margin-bottom:16px}
.baskets-list{list-style:none;margin:26px 0 32px;display:flex;flex-direction:column;gap:12px}
.baskets-list li{font-size:14.5px;display:flex;gap:12px;align-items:flex-start;color:var(--ink-soft)}
.baskets-list li::before{content:"❋";color:var(--teal);font-size:13px;line-height:1.6}
.baskets-media{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.baskets-media .frame{border-radius:18px;overflow:hidden;box-shadow:0 26px 56px -30px rgba(51,41,29,.45)}
.basket-tall{aspect-ratio:4/5}
.basket-short{aspect-ratio:4/5;margin-top:40px}
.basket-band{margin-top:56px;border-radius:22px;overflow:hidden;aspect-ratio:16/9;box-shadow:0 30px 70px -36px rgba(51,41,29,.45)}

@media(max-width:1020px){
  .cine-marquee-track span{font-size:17px}
  .cine-marquee-track span:nth-child(2n){font-size:12px}
  .baskets-grid{grid-template-columns:1fr;gap:40px}
}
@media(max-width:720px){
  /* portrait crops the plate's empty centre, so zoom into the product edges
     and clear the fixed bottom nav */
  .hero-full{min-height:calc(100svh - 84px);padding:34px 0 40px}
  .hero-full-video{transform:scale(1.55);transform-origin:50% 62%}
  .hero-full-scrim{
    background:
      radial-gradient(ellipse 92% 46% at 50% 44%,rgba(251,247,240,.9),rgba(251,247,240,.66) 62%,rgba(251,247,240,.4) 100%),
      linear-gradient(180deg,rgba(251,247,240,.6) 0%,rgba(251,247,240,.2) 34%,rgba(251,247,240,.28) 70%,rgba(251,247,240,.62) 100%);
  }
  .hero-full-title{font-size:clamp(34px,9vw,52px);max-width:none}
  .hero-full-inner{padding:0 18px}
  .hero-full-cta{gap:12px}
  .hero-full-cta .btn{width:100%;max-width:280px}
  .hero-full-scroll{display:none}
  .baskets{padding:70px 0}
  .basket-short{margin-top:0}
  .basket-band{margin-top:32px}
}

/* ---------- tilt + wipe-reveal (collections, gallery, product cards) ---------- */
.cat{perspective:900px}
.cat .frame,.prod-card{transition:transform .35s cubic-bezier(.22,1,.36,1);transform-style:preserve-3d}
.cat .frame,.g-grid .frame{clip-path:inset(0 0 0 0);position:relative}
.cat .frame.armed::after,.g-grid .frame.armed::after{
  content:"";position:absolute;inset:0;background:var(--yellow);z-index:5;
  transform-origin:left;transform:scaleX(1);transition:transform .8s cubic-bezier(.76,0,.24,1);
}
.cat .frame.armed.wiped::after,.g-grid .frame.armed.wiped::after{transform:scaleX(0)}
.cat .frame.armed img,.g-grid .frame.armed img{opacity:0;transition:opacity .1s .5s}
.cat .frame.armed.wiped img,.g-grid .frame.armed.wiped img{opacity:1}
