/* ==========================================================================
   DilSeCraft — light editorial design system
   Tokens first. Every section below uses them; no loose values.
   ========================================================================== */

:root{
  /* surfaces */
  --cream:#FFFDF8;
  --paper:#F8F3EA;
  --warm-white:#FFFEFC;

  /* accents — used sparingly, never all at once */
  --blush:#F3D9D7;
  --dusty-rose:#C98287;
  --peach:#F4D5B8;
  --butter:#F5E8BD;
  --sage:#D9E2D1;
  --lavender:#E2DCEE;

  /* text */
  --ink:#302A2C;
  --muted-ink:#74696B;
  --hairline:#E8DFD2;
  --hairline-soft:#F0E9DE;

  /* type */
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --hand:"Caveat","Segoe Script",cursive;

  --t-hero:clamp(2.6rem,6.4vw,5.1rem);
  --t-h2:clamp(2rem,4.4vw,3.4rem);
  --t-h3:clamp(1.15rem,2vw,1.4rem);
  --t-lead:clamp(1rem,1.5vw,1.12rem);
  --t-body:1rem;
  --t-sm:.9rem;
  --t-xs:.78rem;
  --t-eyebrow:.7rem;

  /* spacing */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px;
  --s-6:32px; --s-7:48px; --s-8:64px; --s-9:88px; --s-10:120px;
  --gut:clamp(18px,4vw,40px);
  --maxw:1240px;

  /* radius */
  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:34px; --r-pill:999px;

  /* shadow — warm, never grey */
  --sh-1:0 1px 2px rgba(48,42,44,.04),0 2px 8px rgba(48,42,44,.04);
  --sh-2:0 2px 6px rgba(48,42,44,.05),0 10px 26px rgba(48,42,44,.06);
  --sh-3:0 6px 14px rgba(48,42,44,.06),0 22px 50px rgba(48,42,44,.09);
  --sh-lift:0 10px 22px rgba(48,42,44,.08),0 30px 60px rgba(48,42,44,.11);

  /* motion */
  --ease:cubic-bezier(.22,.8,.28,1);
  --tr-fast:.18s var(--ease);
  --tr:.28s var(--ease);
  --tr-slow:.55s var(--ease);
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:86px}

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-size:var(--t-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

/* the paper grain that makes the whole page feel printed rather than rendered */
body::before{
  content:"";
  position:fixed;inset:0;z-index:0;pointer-events:none;
  opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.055'/%3E%3C/svg%3E");
}

img,video,svg{max-width:100%;height:auto;display:block}
a{color:inherit}
button{font-family:inherit}

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:600;
  line-height:1.05;
  letter-spacing:-.012em;
  color:var(--ink);
  margin:0;
}
h1{font-size:var(--t-hero);letter-spacing:-.022em}
h2{font-size:var(--t-h2)}
h3{font-family:var(--sans);font-size:var(--t-h3);font-weight:600;line-height:1.25;letter-spacing:-.01em}
p{margin:0}

::selection{background:var(--blush);color:var(--ink)}

:focus-visible{
  outline:2.5px solid var(--dusty-rose);
  outline-offset:3px;
  border-radius:var(--s-1);
}

.dsc-skip{
  position:absolute;left:var(--s-4);top:-100px;z-index:200;
  padding:12px 18px;border-radius:var(--r-pill);
  background:var(--ink);color:var(--cream);font-size:var(--t-sm);font-weight:600;text-decoration:none;
}
.dsc-skip:focus{top:var(--s-4)}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* ── layout ───────────────────────────────────────────────────────────── */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut);position:relative;z-index:1}
.sec{padding-block:clamp(56px,9vw,var(--s-10))}
.sec--tight{padding-block:clamp(40px,6vw,var(--s-8))}
.sec--paper{background:var(--paper)}
.sec--edge{border-top:1px solid var(--hairline-soft)}

.eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-size:var(--t-eyebrow);font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted-ink);
}
.eyebrow::before{content:"";width:22px;height:1.5px;background:var(--dusty-rose);border-radius:2px}
.eyebrow--center{justify-content:center}

.lead{
  font-size:var(--t-lead);color:var(--muted-ink);line-height:1.62;max-width:56ch;
}
.hand{font-family:var(--hand);font-size:1.35rem;color:var(--dusty-rose);line-height:1.2}

.sec-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-6);
  flex-wrap:wrap;margin-bottom:var(--s-7);
}
.sec-head h2{margin-top:var(--s-3);max-width:18ch}
.sec-head .lead{max-width:44ch}
.sec-head--center{flex-direction:column;align-items:center;text-align:center}
.sec-head--center h2,.sec-head--center .lead{max-width:34ch;margin-inline:auto}

/* ── buttons ──────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:14px 26px;border-radius:var(--r-pill);border:1px solid transparent;
  font-family:var(--sans);font-size:var(--t-sm);font-weight:600;letter-spacing:.005em;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:transform var(--tr-fast),box-shadow var(--tr),background var(--tr),color var(--tr),border-color var(--tr);
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--primary{background:var(--ink);color:var(--cream);box-shadow:var(--sh-2)}
.btn--primary:hover{background:#413839;box-shadow:var(--sh-3)}
.btn--rose{background:var(--dusty-rose);color:var(--warm-white);box-shadow:var(--sh-2)}
.btn--rose:hover{background:#bb7076;box-shadow:var(--sh-3)}
.btn--ghost{background:var(--warm-white);color:var(--ink);border-color:var(--hairline);box-shadow:var(--sh-1)}
.btn--ghost:hover{border-color:var(--dusty-rose);box-shadow:var(--sh-2)}
.btn--quiet{background:transparent;color:var(--muted-ink);padding-inline:var(--s-2)}
.btn--quiet:hover{color:var(--ink)}
.btn--sm{padding:10px 18px;font-size:var(--t-xs)}
.btn--lg{padding:17px 34px;font-size:var(--t-body)}
.btn__arrow{transition:transform var(--tr)}
.btn:hover .btn__arrow{transform:translateX(3px)}

/* ── scrapbook decorations ────────────────────────────────────────────── */
.tape{
  position:absolute;width:82px;height:24px;
  background:linear-gradient(105deg,rgba(245,232,189,.82),rgba(244,213,184,.72));
  border-left:1px dashed rgba(48,42,44,.10);border-right:1px dashed rgba(48,42,44,.10);
  box-shadow:0 1px 3px rgba(48,42,44,.07);
  pointer-events:none;
}
.doodle{position:absolute;pointer-events:none;color:var(--dusty-rose);opacity:.42}
.float{animation:dscFloat 7s var(--ease) infinite}
.float--slow{animation-duration:11s}
.float--alt{animation-delay:-3.5s}
@keyframes dscFloat{
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(-9px) rotate(1.4deg)}
}

/* ── scroll reveal ────────────────────────────────────────────────────── */
/* Scoped to .js so content is never hidden if the script fails to load. */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .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}

/* ==========================================================================
   NAVBAR
   ========================================================================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  background:rgba(255,253,248,.72);
  backdrop-filter:saturate(1.5) blur(14px);
  -webkit-backdrop-filter:saturate(1.5) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color var(--tr),box-shadow var(--tr),background var(--tr);
}
.nav.is-stuck{border-bottom-color:var(--hairline-soft);box-shadow:0 1px 20px rgba(48,42,44,.05)}
.nav__in{
  display:flex;align-items:center;gap:var(--s-5);
  min-height:70px;
}
.nav__brand{
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  font-family:var(--serif);font-size:1.4rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);
  margin-right:auto;
}
.nav__brand img{width:32px;height:32px;border-radius:9px}
.nav__links{display:flex;align-items:center;gap:var(--s-5)}
.nav__links a{
  position:relative;text-decoration:none;font-size:var(--t-sm);font-weight:500;color:var(--muted-ink);
  padding-block:6px;transition:color var(--tr);
}
.nav__links a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;border-radius:2px;
  background:var(--dusty-rose);transform:scaleX(0);transform-origin:left;transition:transform var(--tr);
}
.nav__links a:hover{color:var(--ink)}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__cta{margin-left:var(--s-2)}
.nav__account{
  display:inline-flex;align-items:center;gap:6px;margin-left:var(--s-5);padding:8px 12px;border-radius:var(--r-pill);
  text-decoration:none;font-size:var(--t-sm);font-weight:600;color:var(--ink);border:1px solid var(--hairline);background:var(--warm-white);
  transition:border-color var(--tr),box-shadow var(--tr);
}
.nav__account:hover{border-color:var(--dusty-rose);box-shadow:var(--sh-1)}
@media (max-width:960px){
  .nav__account{margin:0 8px 0 0;width:44px;height:44px;padding:0;justify-content:center}
  .nav__account span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
.nav__burger{
  display:none;width:44px;height:44px;border-radius:var(--r-sm);
  border:1px solid var(--hairline);background:var(--warm-white);
  align-items:center;justify-content:center;cursor:pointer;color:var(--ink);
}
.nav__burger span{display:block;width:18px;height:1.6px;background:currentColor;border-radius:2px;position:relative}
.nav__burger span::before,.nav__burger span::after{
  content:"";position:absolute;left:0;width:18px;height:1.6px;background:currentColor;border-radius:2px;
  transition:transform var(--tr),top var(--tr);
}
.nav__burger span::before{top:-6px}
.nav__burger span::after{top:6px}
.nav__burger[aria-expanded="true"] span{background:transparent}
.nav__burger[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.nav__burger[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}

.nav__sheet{
  position:fixed;inset:70px 0 auto;z-index:59;
  background:var(--cream);border-bottom:1px solid var(--hairline);
  padding:var(--s-5) var(--gut) var(--s-6);
  display:grid;gap:var(--s-2);
  box-shadow:var(--sh-3);
  transform:translateY(-12px);opacity:0;visibility:hidden;
  transition:transform var(--tr),opacity var(--tr),visibility var(--tr);
}
.nav__sheet.is-open{transform:none;opacity:1;visibility:visible}
/* the sheet's own links only — this rule outranks .btn--primary, so without
   the :not() the CTA ends up ink-on-ink and its label disappears */
.nav__sheet a:not(.btn){
  text-decoration:none;font-size:1.05rem;font-weight:500;color:var(--ink);
  padding:12px 4px;border-bottom:1px solid var(--hairline-soft);
}
.nav__sheet .btn{margin-top:var(--s-4);width:100%}
.nav-spacer{height:70px}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{position:relative;padding-block:clamp(36px,6vw,74px) clamp(48px,7vw,86px);overflow:hidden}
.hero__bg{
  position:absolute;inset:-10% 0 auto;height:520px;z-index:0;pointer-events:none;
  background:
    radial-gradient(42% 52% at 18% 22%,rgba(243,217,215,.55),transparent 70%),
    radial-gradient(38% 46% at 82% 12%,rgba(226,220,238,.5),transparent 70%),
    radial-gradient(34% 40% at 58% 60%,rgba(245,232,189,.42),transparent 72%);
  filter:blur(6px);
}
.hero__grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(30px,5vw,66px);align-items:center;
}
.hero__badge{
  display:inline-flex;align-items:center;gap:9px;
  padding:7px 15px 7px 11px;border-radius:var(--r-pill);
  background:var(--warm-white);border:1px solid var(--hairline);box-shadow:var(--sh-1);
  font-size:var(--t-xs);color:var(--muted-ink);
}
.hero__badge b{color:var(--ink);font-weight:600}
.hero__badge--link{text-decoration:none;transition:box-shadow .2s,transform .2s,border-color .2s}
.hero__badge--link:hover,.hero__badge--link:focus-visible{transform:translateY(-1px);box-shadow:var(--sh-2);border-color:var(--hairline)}
.hero__badge--link svg{color:var(--ink)}
/* The pulse is a ring scaled with transform + opacity (GPU only); the old
   box-shadow pulse repainted the page every frame. */
.hero__dot,.foot__live i{
  position:relative;flex:none;
  width:7px;height:7px;border-radius:50%;background:var(--dusty-rose);
}
.hero__dot::after,.foot__live i::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  background:rgba(201,130,135,.5);animation:dscPulse 2.4s infinite;will-change:transform,opacity;
}
@keyframes dscPulse{
  0%{transform:scale(1);opacity:1}
  70%{transform:scale(3.6);opacity:0}
  100%{transform:scale(1);opacity:0}
}
.hero h1{margin-top:var(--s-5)}
.hero h1 em{
  font-style:italic;color:var(--dusty-rose);
  position:relative;
}
.hero h1 em::after{
  content:"";position:absolute;left:2%;right:2%;bottom:.1em;height:.16em;border-radius:99px;
  background:var(--butter);z-index:-1;
}
.hero__lead{margin-top:var(--s-5);max-width:48ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-6)}
.hero__proof{
  display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap;
  margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--hairline-soft);
  font-size:var(--t-sm);color:var(--muted-ink);
}
.hero__proof b{color:var(--ink);font-weight:600}
.hero__swatches{display:inline-flex}
.hero__swatches i{
  width:26px;height:26px;border-radius:50%;border:2px solid var(--cream);margin-left:-9px;
}
.hero__swatches i:first-child{margin-left:0}

/* hero video */
.hero__media{position:relative}
.hero__video{
  position:relative;border-radius:var(--r-xl);overflow:hidden;
  background:var(--paper);box-shadow:var(--sh-3);
  border:1px solid var(--hairline-soft);
  aspect-ratio:16/10;
}
.hero__video video,.hero__video img.hero__poster{
  width:100%;height:100%;object-fit:cover;
}
.hero__video img.hero__poster{display:block}
.hero__video video{position:absolute;inset:0;opacity:0;transition:opacity .5s ease}
.hero__video video.is-on{opacity:1}
.hero__video::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,253,248,.12) 0%,transparent 34%,rgba(48,42,44,.16) 100%);
}
.hero__caption{
  position:absolute;left:var(--s-5);bottom:var(--s-5);z-index:2;
  display:flex;align-items:center;gap:9px;
  padding:8px 14px;border-radius:var(--r-pill);
  background:rgba(255,253,248,.9);backdrop-filter:blur(6px);
  font-size:var(--t-xs);font-weight:500;color:var(--ink);box-shadow:var(--sh-1);
}
.hero__note{
  position:absolute;right:-6px;top:-22px;z-index:3;
  padding:12px 16px 14px;width:158px;
  background:var(--butter);border-radius:4px;
  box-shadow:var(--sh-2);transform:rotate(3.2deg);
  font-family:var(--hand);font-size:1.12rem;line-height:1.25;color:#6B5620;
}
.hero__note .tape{top:-11px;left:50%;translate:-50% 0;width:64px;height:20px;transform:rotate(-2deg)}
.hero__mute{
  position:absolute;right:var(--s-4);bottom:var(--s-4);z-index:3;
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--hairline);background:rgba(255,253,248,.9);color:var(--ink);cursor:pointer;
  box-shadow:var(--sh-1);
}

/* The living hero. Everything moves with transform and opacity only, and the
   poster stays painted from the first frame: it is the LCP (2026-11-01). */
.hero--alive{padding-bottom:clamp(20px,3vw,34px);isolation:isolate}
.hero__aurora{position:absolute;left:-8%;right:-8%;top:-80px;height:900px;z-index:0;pointer-events:none;overflow:hidden}
.hero__aurora i{position:absolute;border-radius:50%;will-change:transform}
.hero__aurora i:nth-child(1){left:-6%;top:20px;width:58vw;height:58vw;max-width:760px;max-height:760px;background:radial-gradient(closest-side,rgba(243,190,190,.55),rgba(243,190,190,0));animation:heroDrift1 19s ease-in-out infinite alternate}
.hero__aurora i:nth-child(2){right:-4%;top:-60px;width:52vw;height:52vw;max-width:700px;max-height:700px;background:radial-gradient(closest-side,rgba(205,192,236,.55),rgba(205,192,236,0));animation:heroDrift2 23s ease-in-out infinite alternate}
.hero__aurora i:nth-child(3){left:34%;top:280px;width:44vw;height:44vw;max-width:600px;max-height:600px;background:radial-gradient(closest-side,rgba(248,222,150,.5),rgba(248,222,150,0));animation:heroDrift3 27s ease-in-out infinite alternate}
@keyframes heroDrift1{to{transform:translate3d(9vw,7vh,0) scale(1.14)}}
@keyframes heroDrift2{to{transform:translate3d(-10vw,9vh,0) scale(.9)}}
@keyframes heroDrift3{to{transform:translate3d(-8vw,-8vh,0) scale(1.2)}}

.hero__float{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hero__fl{position:absolute;bottom:-40px;width:20px;height:20px;opacity:0;animation:heroRise 15s linear infinite;will-change:transform,opacity}
.hero__fl svg{display:block;width:100%;height:100%}
.hero__fl.is-heart svg{fill:#E79AA5}
.hero__fl.is-spark svg{fill:#E2BE6A}
.hero__fl.is-petal svg{fill:#F2B6C2}
.hero__fl--0{left:5%;animation-delay:0s}
.hero__fl--1{left:17%;width:14px;height:14px;animation-duration:12s;animation-delay:-4s}
.hero__fl--2{left:31%;width:15px;height:15px;animation-duration:18s;animation-delay:-9s}
.hero__fl--3{left:45%;animation-duration:16s;animation-delay:-2s}
.hero__fl--4{left:56%;width:16px;height:16px;animation-duration:13s;animation-delay:-7s}
.hero__fl--5{left:70%;width:24px;height:24px;animation-duration:19s;animation-delay:-12s}
.hero__fl--6{left:83%;width:17px;height:17px;animation-duration:14s;animation-delay:-5s}
.hero__fl--7{left:94%;width:13px;height:13px;animation-duration:17s;animation-delay:-10s}
@keyframes heroRise{
  0%{transform:translate3d(0,0,0) rotate(0);opacity:0}
  12%{opacity:.75}
  50%{transform:translate3d(22px,-46vh,0) rotate(120deg)}
  85%{opacity:.5}
  100%{transform:translate3d(-14px,-92vh,0) rotate(250deg);opacity:0}
}

.hero--alive h1{position:relative}
.hero__ln{display:block;overflow:hidden;padding:.02em .08em .17em 0;margin-bottom:-.17em}
.hero__ln > span{display:block;animation:heroLine .95s cubic-bezier(.2,.85,.25,1) both}
.hero__ln--2 > span{animation-delay:.13s}
@keyframes heroLine{from{transform:translateY(112%) rotate(2.5deg)}to{transform:none}}
.hero--alive h1 em{display:inline-block;will-change:transform}
.hero--alive h1 em::after{transform-origin:left;animation:heroInk .9s .7s cubic-bezier(.3,.8,.3,1) both}
@keyframes heroInk{from{transform:scaleX(0)}to{transform:none}}
.hero--alive .hero__lead,.hero--alive .hero__cta,.hero--alive .hero__proof,.hero--alive .hero__badge{animation:heroUp .8s cubic-bezier(.2,.85,.25,1) both}
.hero--alive .hero__lead{animation-delay:.22s}
.hero--alive .hero__cta{animation-delay:.3s}
.hero--alive .hero__proof{animation-delay:.38s}
@keyframes heroUp{from{transform:translateY(18px)}to{transform:none}}
.hero--alive .hero__cta .btn--primary{position:relative;overflow:hidden}
.hero--alive .hero__cta .btn--primary::after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:32%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.34),transparent);transform:skewX(-18deg);animation:heroSweep 4.6s 1.4s ease-in-out infinite}
@keyframes heroSweep{0%{transform:translateX(0) skewX(-18deg)}36%,100%{transform:translateX(480%) skewX(-18deg)}}
.hero--alive .hero__cta .btn--primary .btn__arrow{animation:heroNudge 2.4s ease-in-out infinite}
@keyframes heroNudge{0%,70%,100%{transform:none}84%{transform:translateX(4px)}}
.hero__proof b[data-hero-count]{font-variant-numeric:tabular-nums}

.hero--alive .hero__media{perspective:1100px;--rx:0deg;--ry:0deg;--mx:0;--my:0;animation:heroUp 1s .08s cubic-bezier(.2,.85,.25,1) both}
.hero--alive .hero__video{transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform .35s ease-out;box-shadow:0 34px 70px -22px rgba(120,70,80,.42),var(--sh-2)}
.hero__halo{position:absolute;inset:-9%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,rgba(240,176,186,.5),rgba(240,176,186,0));animation:heroHalo 6s ease-in-out infinite;pointer-events:none}
@keyframes heroHalo{50%{transform:scale(1.09);opacity:.62}}
.hero__shine{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.hero__shine::before{content:"";position:absolute;top:-20%;bottom:-20%;left:-30%;width:22%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);transform:skewX(-16deg);animation:heroGlint 8s 2s ease-in-out infinite}
@keyframes heroGlint{0%{transform:translateX(0) skewX(-16deg)}26%,100%{transform:translateX(640%) skewX(-16deg)}}
.hero__chip,.hero--alive .hero__note,.hero__env{transform:translate3d(calc(var(--mx) * var(--d,10px)),calc(var(--my) * var(--d,10px)),0)}
.hero__chip{position:absolute;left:-20px;top:-34px;z-index:4;--d:16px;display:inline-flex;align-items:center;gap:8px;padding:9px 15px 9px 12px;border-radius:999px;background:#241A1D;color:#FFF3DC;font-size:var(--t-xs);font-weight:600;text-decoration:none;box-shadow:0 12px 26px rgba(50,28,34,.3);transition:scale .2s}
.hero__chip:hover{scale:1.05}
.hero__chip b{color:#E8C271;font-weight:700}
.hero__chip .hero__dot{background:#E8C271}
.hero__chip .hero__dot::after{background:rgba(232,194,113,.5)}
.hero--alive .hero__note{--d:-14px;rotate:3.2deg;animation:heroSway 7s ease-in-out infinite}
@keyframes heroSway{50%{rotate:-1.2deg}}

/* the little envelope that keeps opening */
.hero__env{position:absolute;right:26px;bottom:-22px;z-index:4;--d:22px;width:104px;height:72px;perspective:420px}
.hero__env span{position:absolute;display:block}
/* back to front: inside, letter, pocket; the flap sits on top while shut and
   drops behind the letter as it passes upright, like a real one */
.hero__env-back{inset:0;z-index:1;border-radius:7px;background:#C97F8B;box-shadow:0 14px 22px rgba(120,70,80,.3)}
.hero__env-card{left:8%;right:8%;top:7%;height:84%;z-index:3;display:block !important;padding-top:9%;border-radius:4px;background:#FFFBF2;box-shadow:0 2px 6px rgba(90,40,50,.16);color:#B4515F;font:italic 600 13px/1 var(--serif);text-align:center;animation:heroCard 6s ease-in-out infinite}
.hero__env-front{inset:0;z-index:4;border-radius:7px;background:#EDB2B8;clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%)}
.hero__env-front::after{content:"";position:absolute;inset:0;background:#F3C3C8;clip-path:polygon(0 100%,50% 50%,100% 100%)}
.hero__env-flap{left:0;right:0;top:0;height:62%;z-index:5;background:#E7A5AD;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;animation:heroFlap 6s ease-in-out infinite}
.hero__env-seal{left:50%;top:50%;z-index:6;width:19px;height:19px;margin:-10px 0 0 -9.5px;border-radius:50%;background:#C8384E;box-shadow:inset 0 0 0 2px rgba(255,255,255,.22),0 2px 4px rgba(90,20,30,.3);animation:heroSeal 6s ease-in-out infinite}
.hero__env-seal::after{content:"\2665";position:absolute;inset:0;display:grid;place-items:center;font:11px/1 system-ui,sans-serif;color:#FFE3DF}
@keyframes heroSeal{0%,6%{transform:scale(1);opacity:1}11%,84%{transform:scale(.2);opacity:0}91%,100%{transform:scale(1);opacity:1}}
@keyframes heroFlap{
  0%,9%{transform:rotateX(0);z-index:5;background:#E7A5AD}
  16%{transform:rotateX(89deg);z-index:5;background:#E7A5AD}
  16.1%{transform:rotateX(91deg);z-index:2;background:#D08A95}
  24%,70%{transform:rotateX(180deg);z-index:2;background:#D08A95}
  79%{transform:rotateX(91deg);z-index:2;background:#D08A95}
  79.1%{transform:rotateX(89deg);z-index:5;background:#E7A5AD}
  88%,100%{transform:rotateX(0);z-index:5;background:#E7A5AD}
}
@keyframes heroCard{0%,23%,72%,100%{transform:translateY(0)}38%{transform:translateY(-74%)}43%,60%{transform:translateY(-68%) rotate(-1.5deg)}}
.hero__env i{position:absolute;z-index:7;left:50%;top:-30px;width:12px;height:12px;opacity:0;background:#E2707F;clip-path:path("M6 11C2 8 0 6 0 3.500 0 1.500 1.500 0 3.300 0 4.400 0 5.400.6 6 1.600 6.600.6 7.600 0 8.700 0 10.500 0 12 1.500 12 3.500 12 6 10 8 6 11z");animation:heroPuff 6s ease-out infinite}
.hero__env i:nth-of-type(2){animation-delay:.28s;background:#E8B14C;--hx:-30px}
.hero__env i:nth-of-type(3){animation-delay:.56s;background:#D98C97;--hx:26px}
@keyframes heroPuff{0%,36%{opacity:0;transform:translate(0,0) scale(.6)}42%{opacity:1}68%,100%{opacity:0;transform:translate(var(--hx,4px),-62px) scale(1.15)}}

/* the moving strip of occasions */
.hero__strip{position:relative;z-index:1;margin-top:clamp(30px,4.4vw,52px);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.hero__track{display:flex;width:max-content;animation:heroStrip 42s linear infinite}
.hero__strip:hover .hero__track,.hero__strip:focus-within .hero__track{animation-play-state:paused}
.hero__run{display:flex;gap:10px;padding-right:10px}
.hero__run a{display:inline-flex;align-items:center;gap:9px;padding:9px 17px;border-radius:999px;background:rgba(255,253,248,.82);border:1px solid var(--hairline-soft);font-size:var(--t-sm);font-weight:500;color:var(--ink);text-decoration:none;white-space:nowrap;transition:transform .2s,box-shadow .2s}
.hero__run a:hover{transform:translateY(-2px);box-shadow:var(--sh-1)}
.hero__run i{width:9px;height:9px;border-radius:50%}
@keyframes heroStrip{to{transform:translateX(-50%)}}

/* out of view, nothing runs */
.hero--alive.is-away *,.hero--alive.is-away *::before,.hero--alive.is-away *::after{animation-play-state:paused !important}

/* hearts thrown from a tap */
.hero__burst{position:absolute;z-index:5;width:16px;height:16px;margin:-8px 0 0 -8px;pointer-events:none;fill:#E2707F}
.hero__burst svg{display:block;width:100%;height:100%}

@media (max-width:960px){
  .hero__chip{left:6px;top:-18px}
  .hero__env{right:12px;bottom:-18px;width:88px;height:61px}
  .hero__fl--2,.hero__fl--5,.hero__fl--7{display:none}
}
@media (prefers-reduced-motion:reduce){
  .hero__aurora i,.hero__fl,.hero__halo,.hero__shine::before,.hero__track,.hero__env *,.hero--alive *,.hero--alive *::after,.hero--alive .hero__media{animation:none !important}
  .hero__fl{display:none}
  .hero__strip{overflow-x:auto}
}

/* ==========================================================================
   OCCASION DISCOVERY
   ========================================================================== */
.occ__pills{display:flex;flex-wrap:wrap;gap:10px}
.gal__occ{margin-bottom:var(--s-5);scroll-margin-top:90px}
.occ__pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 18px;border-radius:var(--r-pill);cursor:pointer;
  background:var(--warm-white);border:1px solid var(--hairline);
  font-size:var(--t-sm);font-weight:500;color:var(--ink);
  box-shadow:var(--sh-1);
  transition:transform var(--tr-fast),box-shadow var(--tr),background var(--tr),border-color var(--tr);
}
.occ__pill span{font-size:1rem;line-height:1}
.occ__pill small{color:var(--muted-ink);font-size:var(--t-xs)}
.occ__pill:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:var(--blush)}
.occ__pill.is-on{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.occ__pill.is-on small{color:rgba(255,253,248,.62)}

/* ==========================================================================
   TEMPLATE GALLERY — editorial masonry
   ========================================================================== */
.gal__bar{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);
  flex-wrap:wrap;margin-bottom:var(--s-5);
}
.gal__search{position:relative;flex:1 1 300px;max-width:400px}
.gal__search input{
  width:100%;padding:12px 16px 12px 42px;border-radius:var(--r-pill);
  border:1px solid var(--hairline);background:var(--warm-white);color:var(--ink);
  font:inherit;font-size:var(--t-sm);
}
.gal__search input::placeholder{color:var(--muted-ink);opacity:.8}
.gal__search svg{position:absolute;left:16px;top:50%;translate:0 -50%;color:var(--muted-ink)}
.gal__sort{display:flex;align-items:center;gap:9px;font-size:var(--t-sm);color:var(--muted-ink)}
.gal__sort select{
  padding:11px 15px;border-radius:var(--r-pill);border:1px solid var(--hairline);
  background:var(--warm-white);color:var(--ink);font:inherit;font-size:var(--t-sm);cursor:pointer;
}
.gal__count{font-size:var(--t-sm);color:var(--muted-ink);margin-bottom:var(--s-5)}

/* A plain grid, not CSS columns: Safari 26 split cards across columns and
   stacked them at double width (owner's recording, 2026-11-04). */
.gal__grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;align-items:start;
}
.gal__empty{text-align:center;padding:var(--s-8) var(--s-4);color:var(--muted-ink)}
.gal__empty button{
  background:none;border:0;color:var(--dusty-rose);font:inherit;font-weight:600;
  text-decoration:underline;cursor:pointer;
}

/* ── template card ───────────────────────────────────────────────────── */
.tpl{
  position:relative;display:flex;flex-direction:column;
  background:var(--warm-white);border:1px solid var(--hairline-soft);
  border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--sh-1);
  transition:transform var(--tr),box-shadow var(--tr),border-color var(--tr);
}
.tpl:nth-child(4n+1){rotate:-.35deg}
.tpl:nth-child(4n+3){rotate:.4deg}
.tpl:hover,.tpl:focus-within{
  transform:translateY(-5px) rotate(0);
  box-shadow:var(--sh-lift);border-color:var(--hairline);
}
.tpl.is-hidden{display:none}

.tpl__shot{
  position:relative;display:block;overflow:hidden;
  background:var(--paper);aspect-ratio:16/9;
}
.tpl__shot img,.tpl__shot video{
  width:100%;height:100%;object-fit:cover;
  transition:transform var(--tr-slow);
}
.tpl:hover .tpl__shot img,.tpl:hover .tpl__shot video{transform:scale(1.045)}
.tpl__shot--tall{aspect-ratio:4/5}
.tpl__fallback{
  display:grid;place-items:center;height:100%;
  font-family:var(--serif);font-size:2rem;color:var(--dusty-rose);
}
.tpl__flag{
  position:absolute;top:10px;right:10px;z-index:2;
  padding:5px 11px;border-radius:var(--r-pill);
  background:rgba(255,253,248,.94);backdrop-filter:blur(4px);
  font-size:var(--t-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);
  box-shadow:var(--sh-1);
}
.tpl__flag--new{background:var(--sage)}
.tpl__flag--top{background:var(--butter)}

/* the 3D gifts: a dark gallery card with a gold rim and a "3D" seal */
.tpl--3d{
  background:radial-gradient(120% 90% at 0 0,#3A1E22 0,#160E11 62%,#0D0809 100%);
  border:1px solid rgba(232,194,113,.55);color:#F7EFE3;
  box-shadow:0 0 0 1px rgba(232,194,113,.18) inset,0 18px 40px rgba(30,16,20,.28);
}
.tpl--3d:hover,.tpl--3d:focus-within{border-color:#E8C271;box-shadow:0 0 0 1px rgba(232,194,113,.35) inset,0 26px 54px rgba(30,16,20,.38),0 0 34px rgba(232,194,113,.18)}
.tpl--3d .tpl__shot{background:#1A1012}
.tpl--3d .tpl__kicker{color:#E8C271}
.tpl--3d .tpl__name,.tpl--3d .tpl__now{color:#FFF8EC}
.tpl--3d .tpl__desc,.tpl--3d .tpl__was{color:rgba(247,239,227,.72)}
.tpl--3d .tpl__off{background:rgba(232,194,113,.16);color:#F2D78F}
.tpl--3d .tpl__preview{color:rgba(247,239,227,.8)}
.tpl--3d .tpl__preview:hover{background:rgba(255,255,255,.08);color:#fff}
.tpl--3d .tpl__make{background:linear-gradient(180deg,#F2D78F,#D8AE5A);color:#2A1C0B}
.tpl--3d .tpl__make:hover{background:linear-gradient(180deg,#F8E2A2,#E0B75C)}
.tpl--3d .tpl__flag--new{background:rgba(18,12,14,.72);color:#F6DE9A;border:1px solid rgba(232,194,113,.5)}
.tpl__3d{
  position:absolute;left:10px;top:10px;z-index:2;display:grid;place-items:center;
  width:44px;height:44px;border-radius:50%;
  background:conic-gradient(from 210deg,#F8E2A2,#B8893A,#F2D78F,#7A5722,#F8E2A2);
  color:#2A1C0B;font:800 .82rem/1 var(--sans,'DM Sans',sans-serif);letter-spacing:.02em;
  box-shadow:0 6px 16px rgba(0,0,0,.35),inset 0 0 0 2px rgba(255,255,255,.35);
  text-shadow:0 1px 0 rgba(255,255,255,.45);
}

.tpl__body{display:flex;flex-direction:column;gap:7px;padding:16px 17px 18px;flex:1}
.tpl__kicker{
  font-size:var(--t-xs);font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:#9A5560;   /* deeper dusty rose: --dusty-rose was 2.9:1 on white, below WCAG 4.5:1 */
}
.tpl__name{font-family:var(--serif);font-size:1.5rem;font-weight:600;line-height:1.12;letter-spacing:-.01em}
.tpl__name a{text-decoration:none;color:inherit}
.tpl__desc{
  font-size:var(--t-sm);color:var(--muted-ink);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.tpl__foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:auto;padding-top:var(--s-3);
}
.tpl__price{display:flex;align-items:baseline;gap:7px}
.tpl__now{font-weight:700;font-size:1rem;color:var(--ink)}
.tpl__was{font-size:var(--t-xs);color:var(--muted-ink);text-decoration:line-through}
.tpl__price{flex-wrap:wrap;row-gap:4px}
.tpl__off{
  align-self:center;padding:3px 8px;border-radius:var(--r-pill);
  background:#F6E6E3;color:#8E4A53;
  font-size:.7rem;font-weight:700;font-style:normal;letter-spacing:.02em;white-space:nowrap;
}
.pick__price .tpl__off{margin-left:6px;vertical-align:1px}
.tpl__actions{display:flex;align-items:center;gap:8px}
.tpl__preview{
  font-size:var(--t-xs);font-weight:600;color:var(--muted-ink);text-decoration:none;
  padding:8px 10px;border-radius:var(--r-pill);transition:color var(--tr),background var(--tr);
}
.tpl__preview:hover{color:var(--ink);background:var(--paper)}
.tpl__make{
  padding:9px 15px;border-radius:var(--r-pill);
  background:var(--ink);color:var(--cream);
  font-size:var(--t-xs);font-weight:600;text-decoration:none;white-space:nowrap;
  transition:background var(--tr),transform var(--tr-fast);
}
.tpl__make:hover{background:var(--dusty-rose);transform:translateY(-1px)}
.tpl__body{container-type:inline-size}
.tpl__foot{flex-wrap:wrap}
.tpl__actions{margin-left:auto}
@container (max-width:280px){
  .tpl__foot{flex-direction:column;align-items:stretch;gap:10px}
  .tpl__actions{margin-left:0;gap:6px}
  .tpl__preview{padding:9px 12px;border:1px solid var(--hairline);text-align:center}
  .tpl__make{flex:1;text-align:center}
}

/* ==========================================================================
   STORY — not another card
   ========================================================================== */
.story{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,80px);align-items:center;
}
.story h2 em{font-style:italic;color:var(--dusty-rose)}
.story__stage{position:relative;display:grid;place-items:center;min-height:440px}
.story__glow{
  position:absolute;width:74%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(243,217,215,.6),rgba(226,220,238,.34) 55%,transparent 72%);
  filter:blur(14px);
}
.story__phone{
  position:relative;z-index:2;width:min(270px,72%);aspect-ratio:9/19;
  border-radius:38px;padding:9px;
  background:var(--ink);box-shadow:var(--sh-lift);
}
.story__screen{
  width:100%;height:100%;border-radius:30px;overflow:hidden;background:var(--paper);
}
.story__screen video,.story__screen img{width:100%;height:100%;object-fit:cover}
.story__chip{
  position:absolute;z-index:3;
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 14px;border-radius:var(--r-pill);
  background:var(--warm-white);border:1px solid var(--hairline-soft);
  box-shadow:var(--sh-2);font-size:var(--t-xs);font-weight:500;color:var(--ink);
  white-space:nowrap;
}
.story__chip span{font-size:.95rem;line-height:1}
.story__chip--a{top:8%;left:0}
.story__chip--b{top:30%;right:-2%}
.story__chip--c{bottom:26%;left:-4%}
.story__chip--d{bottom:7%;right:2%}
.story__list{display:grid;gap:var(--s-3);margin-top:var(--s-6);padding:0;list-style:none}
.story__list li{
  display:flex;gap:11px;align-items:flex-start;
  font-size:var(--t-sm);color:var(--muted-ink);
}
.story__list b{color:var(--ink);font-weight:600}
.story__tick{
  flex:none;width:19px;height:19px;border-radius:50%;margin-top:2px;
  display:grid;place-items:center;background:var(--sage);color:#3D5140;font-size:.62rem;font-weight:700;
}

/* ==========================================================================
   BENEFITS
   ========================================================================== */
.ben{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ben__card{
  position:relative;padding:26px 24px 28px;border-radius:var(--r-lg);
  background:var(--warm-white);border:1px solid var(--hairline-soft);
  box-shadow:var(--sh-1);overflow:hidden;
  transition:transform var(--tr),box-shadow var(--tr);
}
.ben__card:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.ben__card::before{
  content:"";position:absolute;inset:auto auto -46px -46px;width:118px;height:118px;border-radius:50%;
  background:var(--tint,var(--blush));opacity:.42;
}
.ben__ico{
  position:relative;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;
  background:var(--tint,var(--blush));color:var(--ink);font-size:1.15rem;margin-bottom:var(--s-4);
}
.ben__card h3{position:relative;font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--muted-ink);font-weight:700}
.ben__card p{position:relative;margin-top:9px;font-family:var(--serif);font-size:1.32rem;line-height:1.26;color:var(--ink)}

/* ==========================================================================
   HOW IT WORKS
   ========================================================================== */
.how{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,4vw,46px)}
.how::before{
  content:"";position:absolute;left:8%;right:8%;top:38px;height:1px;
  background:repeating-linear-gradient(90deg,var(--hairline) 0 8px,transparent 8px 16px);
}
.how__step{position:relative;z-index:1}
.how__num{
  width:76px;height:76px;border-radius:50%;display:grid;place-items:center;
  background:var(--warm-white);border:1px solid var(--hairline);
  font-family:var(--serif);font-size:1.6rem;color:var(--dusty-rose);
  box-shadow:var(--sh-1);margin-bottom:var(--s-5);
}
.how__step h3{font-family:var(--serif);font-size:1.7rem;font-weight:600}
.how__step p{margin-top:9px;font-size:var(--t-sm);color:var(--muted-ink);max-width:32ch}

/* ==========================================================================
   CREATOR REELS
   ========================================================================== */
.reels{position:relative}
.reels__track{
  display:flex;gap:18px;overflow-x:auto;padding-block:6px var(--s-4);
  scroll-snap-type:x mandatory;scrollbar-width:none;
  margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);
  scroll-padding-inline:var(--gut);
}
.reels__track::-webkit-scrollbar{display:none}
.reel{
  position:relative;flex:0 0 clamp(210px,24vw,248px);scroll-snap-align:start;
  border-radius:var(--r-lg);overflow:hidden;background:var(--ink);
  box-shadow:var(--sh-2);cursor:pointer;border:0;padding:0;text-align:left;
  transition:transform var(--tr),box-shadow var(--tr);
}
.reel:hover{transform:translateY(-4px);box-shadow:var(--sh-lift)}
.reel__media{position:relative;aspect-ratio:9/16;background:var(--paper)}
.reel__media img,.reel__media video{width:100%;height:100%;object-fit:cover}
.reel__play{
  position:absolute;inset:0;display:grid;place-items:center;
  background:linear-gradient(180deg,transparent 42%,rgba(20,16,18,.62) 100%);
}
.reel__play i{
  width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,253,248,.92);color:var(--ink);font-style:normal;font-size:.9rem;
  padding-left:3px;box-shadow:var(--sh-2);
  transition:transform var(--tr);
}
.reel:hover .reel__play i{transform:scale(1.08)}
.reel__meta{
  position:absolute;left:14px;right:14px;bottom:13px;z-index:2;color:var(--cream);
}
.reel__who{font-size:var(--t-xs);font-weight:600;opacity:.92}
.reel__cap{
  font-size:var(--t-sm);line-height:1.32;margin-top:3px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.reel__tag{
  position:absolute;top:12px;left:12px;z-index:2;
  padding:4px 10px;border-radius:var(--r-pill);
  background:rgba(255,253,248,.9);color:var(--ink);
  font-size:.66rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
}
.reels__nav{display:flex;gap:9px}
.reels__nav button{
  width:42px;height:42px;border-radius:50%;cursor:pointer;
  border:1px solid var(--hairline);background:var(--warm-white);color:var(--ink);
  display:grid;place-items:center;transition:border-color var(--tr),transform var(--tr-fast);
}
.reels__nav button:hover{border-color:var(--dusty-rose);transform:translateY(-1px)}
.reels__empty{
  padding:var(--s-7);border-radius:var(--r-lg);border:1px dashed var(--hairline);
  text-align:center;color:var(--muted-ink);background:var(--warm-white);
}

/* reel lightbox */
.reelbox{
  position:fixed;inset:0;z-index:90;display:none;place-items:center;
  background:rgba(38,32,34,.72);backdrop-filter:blur(8px);padding:var(--s-4);
}
.reelbox.is-open{display:grid}
.reelbox__inner{position:relative;width:min(400px,94vw)}
.reelbox video{width:100%;border-radius:var(--r-lg);background:#000;box-shadow:var(--sh-3)}
.reelbox__close{
  position:absolute;top:-52px;right:0;width:42px;height:42px;border-radius:50%;
  border:0;background:var(--cream);color:var(--ink);cursor:pointer;font-size:1.1rem;
}
.reelbox__cap{margin-top:14px;color:var(--cream);font-size:var(--t-sm);text-align:center}

/* ==========================================================================
   TESTIMONIALS
   ========================================================================== */
.tsm{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;align-items:stretch;width:100%;
}
.tsm__card{
  position:relative;display:flex;flex-direction:column;width:auto;min-width:0;margin:0;
  border-radius:22px;overflow:hidden;
  background:var(--warm-white);border:1px solid var(--hairline-soft);border-top:4px solid var(--tint,var(--blush));
  box-shadow:0 1px 2px rgba(48,42,44,.05),0 10px 24px rgba(48,42,44,.06);
  transition:transform var(--tr),box-shadow var(--tr);
}
.tsm__card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(48,42,44,.1)}
.tsm__card .tape{display:none}
.tsm__stars{display:block;color:var(--dusty-rose);font-size:.85rem;letter-spacing:.14em}
.tsm__stars i{font-style:normal;color:rgba(48,42,44,.28)}
.tsm__quote{
  position:relative;display:flex;flex-direction:column;gap:12px;
  margin:0;padding:22px 20px 16px;flex:1;
  font-family:var(--serif);font-size:1.12rem;line-height:1.42;color:var(--ink);
}
.tsm__quote::before{
  content:"\201C";position:absolute;top:2px;right:16px;
  font-family:var(--serif);font-size:4.6rem;line-height:1;color:var(--tint,var(--blush));
  pointer-events:none;
}
.tsm__text{
  position:relative;margin:0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
}
.tsm__text--short{font-size:1.4rem;line-height:1.3}
.tsm__read{
  margin-top:auto;align-self:flex-start;font-family:var(--sans);font-size:var(--t-xs);font-weight:600;
  color:var(--ink);text-decoration:underline;text-underline-offset:3px;
}
.tsm__more{display:flex;justify-content:center;margin-top:40px}
.tsm__who{
  display:flex;align-items:center;gap:11px;
  margin:0 20px;padding:14px 0 18px;border-top:1px dashed var(--hairline-soft);
}
.tsm__bars{width:min(100%,640px);margin:0 auto 28px}
.tsm__score{display:flex;align-items:baseline;justify-content:center;gap:10px;margin-bottom:14px}
.tsm__score b{font-family:var(--serif);font-size:2.4rem;font-weight:600;line-height:1}
.tsm__score span{color:var(--muted-ink);font-size:var(--t-sm)}
.tsm__row{display:grid;grid-template-columns:2.4rem 1fr 2rem;align-items:center;gap:10px;margin-bottom:6px;font-size:var(--t-xs);color:var(--muted-ink)}
.tsm__track{height:8px;border-radius:999px;background:#F3ECE1;overflow:hidden}
.tsm__track i{display:block;height:100%;border-radius:inherit;background:#C98287}
.tsm__av{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;
  font-weight:600;font-size:var(--t-sm);color:var(--ink);background:var(--tint,var(--blush));
}
.tsm__who b{display:block;font-size:var(--t-sm);font-weight:600}
.tsm__who span{font-size:var(--t-xs);color:var(--muted-ink)}

/* ==========================================================================
   SOCIAL PROOF STRIP
   ========================================================================== */
.made{
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(26px,5vw,64px);align-items:center;
  padding:clamp(30px,5vw,54px);border-radius:var(--r-xl);
  background:var(--warm-white);border:1px solid var(--hairline-soft);box-shadow:var(--sh-1);
}
.made__lines{font-family:var(--serif);font-size:clamp(1.5rem,3.1vw,2.3rem);line-height:1.3}
.made__lines span{display:block;color:var(--muted-ink)}
.made__lines span:last-child{color:var(--ink)}
.made__stats{display:grid;gap:var(--s-4)}
.made__stat{display:flex;align-items:baseline;gap:12px;padding-bottom:var(--s-4);border-bottom:1px solid var(--hairline-soft)}
.made__stat:last-child{border-bottom:0;padding-bottom:0}
.made__stat b{font-family:var(--serif);font-size:2.2rem;line-height:1;color:var(--ink)}
.made__stat span{font-size:var(--t-sm);color:var(--muted-ink)}

/* ==========================================================================
   FEATURED GIFT BANDS
   ========================================================================== */
.feat{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,70px);align-items:center;
}
/* 1fr tracks default to a min-content floor; these grids must be allowed to shrink. */
.feat > *,.story > *,.price > *,.made > *{min-width:0}
.feat--flip .feat__copy{order:2}
.feat__copy h2{margin-top:var(--s-3)}
.feat__copy .lead{margin-top:var(--s-4)}
.feat__copy .btn{margin-top:var(--s-6)}
.feat__art{position:relative;display:grid;place-items:center;min-height:360px}
.feat__wash{
  position:absolute;inset:8% 4%;border-radius:var(--r-xl);
  background:var(--tint,var(--lavender));opacity:.5;
}
.feat__shots{position:relative;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:center}
.feat__shot{
  /* min-width:0 so the flex row can shrink below the images' intrinsic size. */
  width:min(190px,34vw);min-width:0;border-radius:var(--r-md);overflow:hidden;
  box-shadow:var(--sh-3);background:var(--warm-white);
}
.feat__shot img{width:100%;aspect-ratio:16/9;object-fit:cover}
.feat__card{
  position:relative;width:100%;max-width:560px;margin:0;
  border-radius:var(--r-xl);overflow:hidden;
  border:1px solid var(--hairline-soft);box-shadow:var(--sh-3);background:var(--paper);
}
.feat__card img{width:100%;aspect-ratio:6/5;object-fit:cover}
.feat__shot:nth-child(1){rotate:-3deg}
.feat__shot:nth-child(2){rotate:2.4deg;translate:0 16px}
.feat__shot:nth-child(3){rotate:-1.6deg}
.feat__shot:nth-child(4){rotate:2deg;translate:0 16px}
.feat__pins{display:flex;flex-wrap:wrap;gap:9px;margin-top:var(--s-5)}
.feat__pin{
  padding:7px 13px;border-radius:var(--r-pill);background:var(--paper);
  font-size:var(--t-xs);color:var(--muted-ink);border:1px solid var(--hairline-soft);
}

/* ==========================================================================
   GIFT PICKER
   ========================================================================== */
.pick{
  width:min(880px,calc(100% - 32px));max-width:none;max-height:min(760px,calc(100dvh - 48px));
  margin:auto;padding:0;border:0;border-radius:var(--r-xl);
  background:var(--cream);color:var(--ink);box-shadow:var(--sh-lift);overflow:hidden;
}
.pick::backdrop{background:rgba(48,42,44,.42);backdrop-filter:blur(4px)}
.pick[open]{animation:pickIn .32s cubic-bezier(.2,.8,.2,1)}
@keyframes pickIn{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.pick__panel{display:flex;flex-direction:column;max-height:inherit}
.pick__head{
  display:flex;align-items:center;gap:14px;padding:22px 26px 16px;
  border-bottom:1px solid var(--hairline-soft);
}
.pick__titles{flex:1;min-width:0}
.pick__step{font-size:var(--t-eyebrow);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dusty-rose)}
.pick__head h2{font-size:clamp(1.6rem,3.4vw,2.1rem);margin-top:2px;line-height:1.1}
.pick__back,.pick__close{
  flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--hairline);background:var(--warm-white);color:var(--ink);cursor:pointer;
  transition:background .2s,transform .2s;
}
.pick__back:hover,.pick__close:hover{background:var(--paper);transform:scale(1.05)}
.pick__back[hidden],.pick__list[hidden],.pick__occ[hidden]{display:none}
.pick__body{flex:1;overflow-y:auto;padding:22px 26px;overscroll-behavior:contain}
.pick__occ{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.pick__tile{
  position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;
  padding:18px 18px 16px;border-radius:var(--r-lg);text-align:left;cursor:pointer;
  border:1px solid var(--hairline-soft);
  background:linear-gradient(160deg,color-mix(in srgb,var(--tint) 70%,white),var(--warm-white) 78%);
  transition:transform .22s,box-shadow .22s,border-color .22s;
}
.pick__tile--link{text-decoration:none;color:inherit}
.pick__tile:hover,.pick__tile:focus-visible{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:var(--hairline)}
.pick__icon{font-size:1.7rem;line-height:1;margin-bottom:8px}
.pick__label{font-family:var(--serif);font-size:1.35rem;font-weight:600;line-height:1.1}
.pick__blurb{font-size:var(--t-xs);color:var(--muted-ink)}
.pick__count{
  margin-top:10px;padding:3px 10px;border-radius:var(--r-pill);
  background:rgba(255,254,252,.85);font-size:.7rem;font-weight:600;color:var(--ink);
}
/* the picked-out row: live festival, Chalein?, Invites (each its own colours) */
.pick__feat{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.pick__hot{position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:168px;
  padding:16px 18px;border-radius:var(--r-lg);text-decoration:none;color:#fff;box-shadow:var(--sh-2);transition:transform .22s,box-shadow .22s}
.pick__hot:hover,.pick__hot:focus-visible{transform:translateY(-3px);box-shadow:var(--sh-3)}
.pick__hot::after{content:"";position:absolute;inset:auto -30% -60% auto;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.14);z-index:-1}
.pick__hot--live{background:linear-gradient(135deg,#7A1F2B 0%,#C2410C 70%,#F59E0B 130%)}
.pick__hot--chalein{background:linear-gradient(135deg,#3B1C4A 0%,#9D2E6B 75%,#F472B6 140%)}
.pick__hot--invites{background:linear-gradient(135deg,#FFF4E6 0%,#FBD9C4 100%);color:var(--ink)}
.pick__hot-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);background:rgba(255,255,255,.18);
  font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;backdrop-filter:blur(4px)}
.pick__hot--invites .pick__hot-badge{background:rgba(48,42,44,.08)}
.pick__hot-badge i{width:7px;height:7px;border-radius:50%;background:#FDE68A;box-shadow:0 0 0 0 rgba(253,230,138,.7);animation:pickLive 1.8s infinite}
@keyframes pickLive{70%{box-shadow:0 0 0 8px rgba(253,230,138,0)}100%{box-shadow:0 0 0 0 rgba(253,230,138,0)}}
.pick__hot-title{margin-top:6px;font-family:var(--serif);font-size:1.6rem;font-weight:600;line-height:1.02;max-width:62%}
.pick__hot-sub{font-size:var(--t-xs);opacity:.85;max-width:60%;line-height:1.35}
.pick__hot-go{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding:6px 12px;border-radius:var(--r-pill);background:#fff;color:var(--ink);font-size:.74rem;font-weight:700}
.pick__hot--invites .pick__hot-go{background:var(--ink);color:#fff}
.pick__hot-art{position:absolute;pointer-events:none}
.pick__hot-art--card{right:-34px;bottom:-6px;width:58%;border-radius:12px;transform:rotate(-6deg);box-shadow:0 10px 24px rgba(0,0,0,.3)}
.pick__hot-art--phone{right:10px;bottom:-40px;width:30%;border-radius:14px;transform:rotate(6deg);box-shadow:0 10px 24px rgba(48,42,44,.25)}
.pick__hot-art--icons{right:6px;bottom:8px;width:44%;height:100px}
.pick__hot-art--icons img{position:absolute;width:56px;height:56px;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(0,0,0,.3));
  right:calc(var(--k) * 34px);bottom:calc(var(--k) * 20px);transform:rotate(calc(var(--k) * 8deg - 8deg));animation:pickBob 3.2s ease-in-out infinite;animation-delay:calc(var(--k) * -.9s)}
@keyframes pickBob{50%{translate:0 -6px}}
/* Mini Gifts: a ticket-shaped ribbon with the six looks as bouncing bubbles */
.pick__mini{grid-column:1 / -1;position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:8px 18px;
  padding:14px 0 12px;border-radius:var(--r-lg);color:#4A1228;
  background:radial-gradient(circle,rgba(255,255,255,.55) 0 1.4px,transparent 2px) 0 0/16px 16px,linear-gradient(120deg,#FFE27A 0%,#FFC9A6 55%,#FFB3C7 100%);
  box-shadow:var(--sh-2)}
.pick__mini::before,.pick__mini::after{content:"";position:absolute;top:50%;width:18px;height:18px;margin-top:-9px;border-radius:50%;background:var(--warm-white)}
.pick__mini::before{left:-9px}.pick__mini::after{right:-9px}
.pick__mini-head{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;min-width:0;padding:0 18px}
.pick__mini-price{flex:none;display:grid;place-items:center;align-content:center;width:66px;height:66px;border-radius:50%;background:#E23B6B;color:#fff;
  transform:rotate(-10deg);box-shadow:0 0 0 4px rgba(255,255,255,.6),0 8px 16px -8px rgba(120,20,50,.6)}
.pick__mini-price b{font-size:1.15rem;line-height:1;font-weight:800}
.pick__mini-price small{font-size:.56rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.9}
.pick__mini-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.pick__mini-badge{align-self:flex-start;padding:3px 9px;border-radius:var(--r-pill);background:rgba(255,255,255,.6);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.pick__mini-title{font-family:var(--serif);font-size:1.45rem;font-weight:600;line-height:1.05}
.pick__mini-sub{font-size:var(--t-xs);opacity:.8}
.pick__mini-row{display:flex;justify-content:flex-start;gap:8px;overflow-x:auto;padding:6px 18px 4px;scrollbar-width:none;scroll-snap-type:x mandatory;
  -webkit-mask:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 26px),transparent);mask:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 26px),transparent)}
.pick__mini-row::-webkit-scrollbar{display:none}
.pick__mini-pick{flex:none;scroll-snap-align:start}
.pick__mini-next{position:absolute;right:10px;bottom:38px;z-index:2;width:34px;height:34px;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:#fff;color:#9C1C3E;box-shadow:0 6px 14px -6px rgba(80,20,40,.6)}
@media (hover:none){.pick__mini-next{display:none}}
.pick__mini-pick{display:flex;flex-direction:column;align-items:center;gap:4px;width:74px;text-decoration:none;color:inherit}
.pick__mini-bub{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:var(--t);box-shadow:0 0 0 3px #fff,0 8px 14px -8px rgba(80,20,40,.5);
  transition:transform .2s;animation:pickBob 2.8s ease-in-out infinite;animation-delay:calc(var(--k) * -.45s)}
.pick__mini-bub img{width:78%;height:78%;object-fit:contain}
.pick__mini-pick:hover .pick__mini-bub,.pick__mini-pick:focus-visible .pick__mini-bub{transform:scale(1.12) rotate(-6deg);box-shadow:0 0 0 3px var(--c),0 8px 14px -8px rgba(80,20,40,.5)}
.pick__mini-name{font-size:.68rem;font-weight:700;line-height:1.15;text-align:center}
@media (prefers-reduced-motion: reduce){.pick__mini-bub{animation:none}}
@media (max-width:900px){
  .pick__mini{grid-template-columns:1fr;padding:14px 0 12px}
  .pick__mini-head{padding:0 16px}
  .pick__mini-row{justify-content:flex-start;overflow-x:auto;padding:6px 16px 4px;scrollbar-width:none;scroll-snap-type:x mandatory}
  .pick__mini-row::-webkit-scrollbar{display:none}
  .pick__mini-pick{flex:none;scroll-snap-align:start}
}
.pick__or{grid-column:1 / -1;margin:8px 0 -2px;font-size:var(--t-eyebrow);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-ink)}
@media (prefers-reduced-motion: reduce){.pick__hot-badge i,.pick__hot-art--icons img{animation:none}}
@media (max-width:640px){
  .pick__feat{grid-template-columns:1fr;gap:10px}
  .pick__hot{min-height:132px;padding:14px 16px}
  .pick__hot-title{font-size:1.4rem}
  .pick__hot-art--card{width:48%;right:-20px}
}
.pick__list{display:grid;gap:14px}
.pick__item{
  display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:20px;align-items:center;
  padding:12px;border-radius:var(--r-lg);background:var(--warm-white);
  border:1px solid var(--hairline-soft);box-shadow:var(--sh-1);
}
.pick__item[hidden]{display:none}
.pick__shot{display:block;border-radius:var(--r-md);overflow:hidden;background:var(--paper)}
.pick__shot img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .4s}
.pick__item:hover .pick__shot img{transform:scale(1.03)}
.pick__info{min-width:0;padding-right:6px}
.pick__kicker{font-size:var(--t-eyebrow);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--dusty-rose)}
.pick__info h3{margin-top:3px}
.pick__info p{margin-top:5px;font-size:var(--t-sm);color:var(--muted-ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pick__foot{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-top:14px}
.pick__price{font-weight:700;margin-right:auto}
.pick__price s{margin-left:6px;font-weight:400;font-size:var(--t-xs);color:var(--muted-ink)}
.pick__demo{font-size:var(--t-sm);font-weight:500;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
/* the 3D gifts in the picker: the grid's dark gold card (tpl--3d) */
.pick__item--3d{
  background:radial-gradient(120% 90% at 0 0,#3A1E22 0,#160E11 62%,#0D0809 100%);
  border-color:rgba(232,194,113,.55);color:#F7EFE3;
  box-shadow:0 0 0 1px rgba(232,194,113,.18) inset,0 14px 32px rgba(30,16,20,.28);
}
.pick__item--3d .pick__shot{position:relative;background:#1A1012}
.pick__item--3d .pick__kicker{color:#E8C271}
.pick__item--3d h3{color:#FFF8EC}
.pick__item--3d .pick__info p,.pick__item--3d .pick__price s{color:rgba(247,239,227,.72)}
.pick__item--3d .pick__price{color:#FFF8EC}
.pick__item--3d .tpl__off{background:rgba(232,194,113,.16);color:#F2D78F}
.pick__item--3d .pick__demo{color:#F7EFE3}
.pick__item--3d .btn--primary{background:linear-gradient(180deg,#F2D78F,#D8AE5A);color:#2A1C0B;border-color:transparent}
.pick__item--3d .tpl__3d{width:38px;height:38px;font-size:.74rem;left:8px;top:8px}
.pick__footer{padding:14px 26px;border-top:1px solid var(--hairline-soft);text-align:center;font-size:var(--t-sm)}
.pick__footer a{color:var(--muted-ink)}
.pick__footer a:hover{color:var(--ink)}
html.pick-open{overflow:hidden}
@media (max-width:640px){
  .pick{
    width:100%;max-height:92dvh;margin:auto 0 0;border-radius:var(--r-xl) var(--r-xl) 0 0;
  }
  .pick[open]{animation-name:pickUp}
  @keyframes pickUp{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
  .pick__head{padding:18px 18px 14px}
  .pick__body{padding:16px 18px}
  .pick__occ{grid-template-columns:1fr 1fr;gap:10px}
  .pick__tile{padding:14px 14px 13px}
  .pick__label{font-size:1.18rem}
  .pick__item{grid-template-columns:1fr;gap:12px}
  .pick__info{padding:0 4px 4px}
}
/* Phone: the picked-out cards swipe sideways and the Mini ribbon is one
   short row, so the occasions show on the first screen (owner, 2026-10-24:
   it took four scrolls to reach them). */
@media (max-width:640px){
  .pick__feat{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:18px;gap:10px;margin:0 -18px;padding:2px 18px 4px;scrollbar-width:none}
  .pick__feat::-webkit-scrollbar{display:none}
  .pick__hot{flex:0 0 78%;min-height:0;height:118px;padding:12px 14px;gap:2px;scroll-snap-align:start}
  .pick__feat > .pick__hot:only-child{flex-basis:100%}
  .pick__hot-badge{font-size:.6rem;padding:3px 8px}
  .pick__hot-title{margin-top:4px;font-size:1.22rem}
  .pick__hot-sub{font-size:.7rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .pick__hot-go{padding:4px 10px;font-size:.68rem}
  .pick__hot-art--card{width:46%;right:-18px;bottom:-4px}
  .pick__hot-art--phone{width:26%;bottom:-56px}
  .pick__hot-art--icons{height:76px;bottom:4px}
  .pick__hot-art--icons img{width:42px;height:42px;right:calc(var(--k) * 26px);bottom:calc(var(--k) * 14px)}
  .pick__mini{padding:10px 0 8px;gap:6px}
  .pick__mini-head{gap:10px}
  .pick__mini-price{width:46px;height:46px}
  .pick__mini-price b{font-size:.9rem}
  .pick__mini-price small{font-size:.48rem}
  .pick__mini-badge{display:none}
  .pick__mini-title{font-size:1.12rem}
  .pick__mini-sub{font-size:.68rem}
  .pick__mini-row{gap:4px;padding:4px 14px 2px}
  .pick__mini-pick{width:60px}
  .pick__mini-bub{width:46px;height:46px}
  .pick__mini-name{font-size:.6rem}
  .pick__or{margin-top:4px}
}

/* ==========================================================================
   PRICING
   ========================================================================== */
.price{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,5vw,60px);align-items:center;
  padding:clamp(30px,5vw,56px);border-radius:var(--r-xl);
  background:var(--warm-white);border:1px solid var(--hairline);box-shadow:var(--sh-2);
}
.price__amt{display:flex;align-items:baseline;gap:12px;margin-top:var(--s-5);flex-wrap:wrap}
.price__now{font-family:var(--serif);font-size:clamp(3rem,7vw,4.4rem);line-height:.92;color:var(--ink)}
.price__was{font-size:1.1rem;color:var(--muted-ink);text-decoration:line-through}
.price__per{font-size:var(--t-sm);color:var(--muted-ink)}
.price__note{margin-top:var(--s-4);font-size:var(--t-sm);color:var(--muted-ink)}
.price__list{list-style:none;margin:0;padding:0;display:grid;gap:13px}
.price__list li{display:flex;gap:12px;align-items:flex-start;font-size:var(--t-sm);color:var(--muted-ink)}
.price__list b{color:var(--ink);font-weight:600}
.price__tick{
  flex:none;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;
  background:var(--sage);color:#3A5040;font-size:.68rem;font-weight:700;margin-top:1px;
}

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq{max-width:780px;margin-inline:auto}
.faq__item{
  background:var(--warm-white);border:1px solid var(--hairline-soft);
  border-radius:var(--r-md);margin-bottom:12px;overflow:hidden;
  box-shadow:var(--sh-1);transition:border-color var(--tr),box-shadow var(--tr);
}
.faq__item[open]{border-color:var(--hairline);box-shadow:var(--sh-2)}
.faq__item summary{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);
  padding:19px 22px;cursor:pointer;list-style:none;
  font-size:1.02rem;font-weight:500;color:var(--ink);
}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{
  content:"";flex:none;width:11px;height:11px;
  border-right:1.8px solid var(--muted-ink);border-bottom:1.8px solid var(--muted-ink);
  rotate:45deg;translate:0 -3px;transition:rotate var(--tr),translate var(--tr);
}
.faq__item[open] summary::after{rotate:225deg;translate:0 2px}
.faq__item p{padding:0 22px 20px;font-size:var(--t-sm);color:var(--muted-ink);max-width:64ch}

/* ==========================================================================
   FINAL CTA
   ========================================================================== */
.final{
  position:relative;text-align:center;overflow:hidden;
  padding:clamp(52px,8vw,96px) var(--gut);border-radius:var(--r-xl);
  background:
    radial-gradient(60% 80% at 20% 12%,rgba(243,217,215,.55),transparent 68%),
    radial-gradient(52% 70% at 84% 82%,rgba(226,220,238,.5),transparent 70%),
    var(--warm-white);
  border:1px solid var(--hairline-soft);box-shadow:var(--sh-1);
}
.final h2{margin:var(--s-4) auto 0;max-width:17ch}
.final .lead{margin:var(--s-4) auto 0;text-align:center}
.final .btn{margin-top:var(--s-6)}
.final .hand{margin-top:var(--s-4)}
.final__stamp{
  position:absolute;top:26px;right:34px;width:88px;height:88px;border-radius:50%;
  border:1.6px dashed var(--dusty-rose);opacity:.3;
  display:grid;place-items:center;font-family:var(--hand);font-size:1rem;color:var(--dusty-rose);
  rotate:-12deg;
}

/* ==========================================================================
   CUSTOM / BESPOKE
   ========================================================================== */
.bespoke{
  position:relative;text-align:center;overflow:hidden;
  padding:clamp(48px,7vw,88px) var(--gut);border-radius:var(--r-xl);
  background:
    radial-gradient(58% 80% at 12% 8%,rgba(217,226,209,.7),transparent 68%),
    radial-gradient(50% 70% at 92% 88%,rgba(243,217,215,.55),transparent 70%),
    var(--warm-white);
  border:1px solid var(--hairline-soft);box-shadow:var(--sh-1);
}
.bespoke h2{margin:var(--s-4) auto 0;max-width:16ch}
.bespoke .lead{margin:var(--s-4) auto 0;text-align:center;max-width:46ch}
.bespoke__acts{
  display:flex;flex-wrap:wrap;justify-content:center;gap:12px;
  margin-top:var(--s-6);
}
.bespoke__acts .btn{margin:0}
.bespoke .hand{margin-top:var(--s-4)}
.bespoke__stamp{
  position:absolute;top:26px;right:34px;width:88px;height:88px;border-radius:50%;
  border:1.6px dashed var(--dusty-rose);opacity:.3;
  display:grid;place-items:center;font-family:var(--hand);font-size:1rem;color:var(--dusty-rose);
  rotate:10deg;
}
@media (max-width:640px){
  .bespoke__acts{flex-direction:column;align-items:stretch}
  .bespoke__acts .btn{width:100%}
  .bespoke__stamp{display:none}
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.foot{background:var(--paper);border-top:1px solid var(--hairline-soft);padding-block:var(--s-8) var(--s-5);margin-top:var(--s-9)}
.foot__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:var(--s-6)}
.foot__brand{
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  font-family:var(--serif);font-size:1.32rem;color:var(--ink);margin-bottom:var(--s-3);
}
.foot__brand img{width:30px;height:30px;border-radius:8px}
.foot p{font-size:var(--t-sm);color:var(--muted-ink);max-width:34ch}
.foot h4,.foot__h{font-family:var(--sans);font-size:var(--t-xs);font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted-ink);margin:0 0 var(--s-4);line-height:1.4}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.foot ul a{font-size:var(--t-sm);color:var(--muted-ink);text-decoration:none;transition:color var(--tr)}
.foot ul a:hover{color:var(--ink)}
.foot__social{display:flex;gap:9px;margin-top:var(--s-4)}
.foot__app{margin-top:var(--s-5)}
.foot__app>span{display:block;margin-bottom:8px;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-ink)}
.foot__app .play-badge{display:inline-block;transition:transform .2s ease,opacity .2s ease}
.foot__app .play-badge:hover{transform:translateY(-1px);opacity:.92}
.foot__social a{
  width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  border:1px solid var(--hairline);color:var(--muted-ink);background:var(--warm-white);
  transition:color var(--tr),border-color var(--tr);
}
.foot__social a:hover{color:var(--ink);border-color:var(--dusty-rose)}
.foot__bot{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;
  margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid var(--hairline);
  font-size:var(--t-xs);color:var(--muted-ink);
}
.foot__pay{margin-top:var(--s-5)}
.foot__pay-h{
  display:flex;align-items:center;gap:6px;margin:0 0 10px;white-space:nowrap;
  font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-ink);
}
.foot__pay-row{display:flex;flex-wrap:wrap;gap:8px}
.foot__pay-badge{
  display:inline-flex;align-items:center;justify-content:center;
  height:34px;padding:0 10px;border-radius:9px;
  background:#fff;border:1px solid var(--hairline-soft);box-shadow:var(--sh-1);
}
.foot__pay-badge img{display:block;width:auto;height:15px}
.foot__pay-row--methods{margin-top:8px;gap:6px}
.foot__pay-row--methods .foot__pay-badge{height:28px;padding:0 8px;border-radius:7px}
.foot__pay-row--methods .foot__pay-badge img{height:14px}
.foot__pay-badge--text{font-size:.66rem;font-weight:600;color:var(--muted-ink);white-space:nowrap}
.foot__trust{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.foot__chip{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 10px;border-radius:999px;font-size:.66rem;font-weight:600;letter-spacing:.02em;white-space:nowrap}
.foot__chip--ssl{background:#e8f5ee;color:#23744a}
.foot__chip--india{background:#fdecef;color:#c23a5e}
.foot__live{display:inline-flex;align-items:center;gap:7px}


/* ==========================================================================
   CONTENT PAGES — about, FAQ, contact, policies
   ========================================================================== */
.page{--haldi:#A8626A;position:relative;z-index:1;padding:calc(70px + clamp(36px,6vw,72px)) 0 clamp(56px,8vw,96px)}
.page::before{
  content:"";position:absolute;inset:0 0 auto;height:420px;z-index:-1;pointer-events:none;
  background:
    radial-gradient(520px 260px at 12% 0%,rgba(243,217,215,.7),transparent 70%),
    radial-gradient(520px 260px at 90% 10%,rgba(226,220,238,.6),transparent 70%);
}
.page__inner{max-width:920px}
.dilse-flash{border-radius:var(--r-md);padding:13px 16px;margin-bottom:var(--s-5);font-weight:500;font-size:var(--t-sm)}
.dilse-flash--ok{background:var(--sage);color:#33503C}
.dilse-flash--err{background:var(--blush);color:#7A3B40}
.dilse-card{
  background:var(--warm-white);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);
  padding:clamp(22px,4vw,44px);box-shadow:var(--sh-2);
}
.dilse-card + .dilse-card{margin-top:var(--s-5)}
.dilse-kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-size:var(--t-eyebrow);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--dusty-rose);
}
.dilse-kicker::before{content:"";width:22px;height:1px;background:currentColor}
.dilse-title{
  font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05;
  letter-spacing:-.01em;margin:10px 0 14px;color:var(--ink);
}
.dilse-title em{font-style:italic;color:var(--dusty-rose)}
.dilse-lead{color:var(--muted-ink);font-size:var(--t-lead);line-height:1.65;max-width:62ch}
.dilse-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:var(--s-6)}
.dilse-tile{
  background:var(--cream);border:1px solid var(--hairline-soft);border-radius:var(--r-lg);padding:20px;
  transition:transform var(--tr),box-shadow var(--tr),border-color var(--tr);
}
.dilse-tile:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:var(--hairline)}
.dilse-tile h2,.dilse-tile h3{margin:4px 0 6px;font-family:var(--sans);font-size:1.05rem;font-weight:600;color:var(--ink)}
.dilse-tile p{margin:0;color:var(--muted-ink);font-size:var(--t-sm);line-height:1.55}
.dilse-tile-icon{
  width:42px;height:42px;display:grid;place-items:center;margin-bottom:12px;
  border-radius:12px;font-size:1.1rem;color:var(--ink);background:var(--blush);
}
.dilse-grid .dilse-tile:nth-child(3n+2) .dilse-tile-icon{background:var(--butter)}
.dilse-grid .dilse-tile:nth-child(3n) .dilse-tile-icon{background:var(--lavender)}
.dilse-cta-band{
  margin-top:var(--s-6);padding:26px;border-radius:var(--r-lg);text-align:center;
  background:linear-gradient(135deg,var(--blush),var(--butter));
}
.dilse-cta-band p{margin:0 0 14px;color:var(--ink);font-weight:500}
.dilse-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 24px;border-radius:var(--r-pill);border:0;cursor:pointer;
  background:var(--ink);color:var(--cream);font:inherit;font-weight:600;font-size:var(--t-sm);text-decoration:none;
  transition:background var(--tr),transform var(--tr-fast);
}
.dilse-btn:hover{background:var(--dusty-rose);transform:translateY(-1px)}
.dilse-btn--sm{padding:9px 16px;font-size:var(--t-xs)}
.dilse-form{display:grid;gap:16px;margin-top:var(--s-5);max-width:540px}
.dilse-form label{display:grid;gap:7px;font-weight:600;font-size:var(--t-sm);color:var(--ink)}
.dilse-form input,.dilse-form textarea,.dilse-form select{
  border:1px solid var(--hairline);background:var(--cream);color:var(--ink);
  border-radius:14px;padding:13px 15px;font:inherit;font-weight:400;
  transition:border-color var(--tr),box-shadow var(--tr);
}
.dilse-form input:focus,.dilse-form textarea:focus,.dilse-form select:focus{
  outline:0;border-color:var(--dusty-rose);box-shadow:0 0 0 3px rgba(201,130,135,.18);
}
.dilse-form textarea{min-height:150px;resize:vertical}
.dilse-faq details{border-bottom:1px solid var(--hairline-soft);padding:18px 0}
.dilse-faq summary{cursor:pointer;font-weight:600;font-size:1.02rem;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:16px}
.dilse-faq summary::-webkit-details-marker{display:none}
.dilse-faq summary::after{content:"+";font-size:1.3rem;line-height:1;color:var(--dusty-rose);transition:transform var(--tr)}
.dilse-faq details[open] summary::after{transform:rotate(45deg)}
.dilse-faq p{color:var(--muted-ink);line-height:1.65;margin:10px 0 0}
.cms-body{color:var(--muted-ink);line-height:1.75;font-size:var(--t-body)}
.cms-body h2,.cms-body h3{color:var(--ink);font-family:var(--serif);font-weight:600;margin:1.6em 0 .4em;line-height:1.15}
.cms-body h2{font-size:1.9rem}
.cms-body h3{font-size:1.45rem}
.cms-body p,.cms-body ul,.cms-body ol{margin:0 0 1em}
.cms-body li{margin-bottom:.35em}
.cms-body a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--dusty-rose);text-underline-offset:3px}
.cms-body strong{color:var(--ink)}
.cms-body table{width:100%;border-collapse:collapse;margin:1em 0;font-size:var(--t-sm)}
.cms-body th,.cms-body td{border:1px solid var(--hairline);padding:9px 11px;text-align:left}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1100px){
  .gal__grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
  .foot__grid{grid-template-columns:1.4fr 1fr 1fr}
}

@media (max-width:960px){
  .nav__links,.nav__cta{display:none}
  .nav__burger{display:flex}
  .hero__grid{grid-template-columns:1fr;gap:var(--s-7)}
  .hero__note{right:8px;top:-14px;width:142px}
  .story,.feat,.price,.made{grid-template-columns:1fr}
  .feat--flip .feat__copy{order:0}
  .story__stage{min-height:380px;order:-1}
  .ben{grid-template-columns:repeat(2,1fr)}
  .how{grid-template-columns:1fr;gap:var(--s-6)}
  .how::before{display:none}
  .how__step{display:grid;grid-template-columns:76px 1fr;gap:var(--s-4);align-items:start}
  .how__num{margin-bottom:0}
  .tsm{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:640px){
  :root{--maxw:100%}
  html{scroll-padding-top:74px}
  .sec{padding-block:clamp(42px,11vw,62px)}
  .gal__grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .tsm{
    grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:82%;gap:12px;
    overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;
    margin-inline:-18px;padding:4px 18px 14px;scroll-padding-inline:18px;width:auto;scrollbar-width:none;
  }
  .tsm::-webkit-scrollbar{display:none}
  .tsm__card{scroll-snap-align:start}
  .js .tsm__card.rv{opacity:1;transform:none}
  .tsm__more{margin-top:24px}
  .ben{grid-template-columns:1fr}
  .tpl:nth-child(n){rotate:none}
  .hero__video{aspect-ratio:4/3}
  .hero__note{display:none}
  .made__stats{grid-template-columns:1fr}
  .foot__grid{grid-template-columns:1fr 1fr}
  .foot__grid > :first-child{grid-column:1 / -1}
  .occ__pills{
    flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
    margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);
    scroll-snap-type:x proximity;scroll-padding-inline:var(--gut);
  }
  .occ__pills::-webkit-scrollbar{display:none}
  .occ__pill{flex:0 0 auto;scroll-snap-align:start}
  .gal__bar{gap:10px}
  .gal__search{max-width:none}
  .gal__sort{width:100%;justify-content:space-between}
  .gal__sort select{flex:1;margin-left:10px}
  .feat__shots{gap:12px}
  .feat__shot{width:min(150px,40vw)}
  .feat__shot:nth-child(n+3){display:none}
  .final__stamp{display:none}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .rv{opacity:1;transform:none}
  .hero__video video{display:none}
}

/* ============================ FESTIVAL INVITES BAND ============================ */
.hinv{position:relative;overflow:hidden;background:linear-gradient(160deg,#FFF7EC 0%,var(--tint,#FBE3C8) 55%,#F8D3D9 100%)}
.hinv__glow{
  position:absolute;inset:-20% -10% auto auto;width:62vw;height:62vw;max-width:780px;max-height:780px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,196,92,.42) 0%,rgba(255,196,92,0) 62%);pointer-events:none;
}
.hinv::before{
  content:"";position:absolute;left:0;right:0;top:0;height:14px;pointer-events:none;
  background:radial-gradient(circle at 12px -2px,#E9A23B 7px,transparent 8px) 0 0/24px 14px repeat-x,
             radial-gradient(circle at 12px -2px,#C2185B 4px,transparent 5px) 12px 0/24px 14px repeat-x;
  opacity:.85;
}
.hinv__grid{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,72px);align-items:center}
.hinv__new{
  display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:var(--r-pill);
  background:var(--accent,#B4236B);color:#fff;font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  box-shadow:0 8px 20px color-mix(in srgb,var(--accent,#B4236B) 30%,transparent);
}
.hinv__copy h2{margin-top:var(--s-4)}
.hinv__copy h2 em{color:var(--accent,#B4236B)}
.hinv__copy .lead{margin-top:var(--s-4);max-width:52ch}
.hinv__steps{list-style:none;margin:var(--s-5) 0 0;padding:0;display:grid;gap:10px}
.hinv__steps li{display:flex;align-items:center;gap:12px;font-size:var(--t-sm);color:var(--ink)}
.hinv__steps b{
  flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  background:var(--warm-white);border:1px solid color-mix(in srgb,var(--accent,#B4236B) 30%,transparent);
  font-size:var(--t-xs);color:var(--accent,#B4236B);
}
.hinv__plans{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--s-5)}
.hinv__plan{
  display:flex;flex-direction:column;gap:2px;min-width:150px;padding:12px 18px;border-radius:var(--r-md);text-decoration:none;color:var(--ink);
  background:rgba(255,254,252,.78);border:1px solid rgba(48,42,44,.08);box-shadow:var(--sh-1);transition:transform var(--tr),box-shadow var(--tr);
}
.hinv__plan:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}
.hinv__plan span{font-size:var(--t-xs);color:var(--muted-ink);font-weight:600}
.hinv__plan b{font-family:var(--serif);font-size:1.75rem;font-weight:600;line-height:1.1}
.hinv__plan--best{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.hinv__plan--best span{color:rgba(255,253,248,.72)}
.hinv__cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:var(--s-6)}
.hinv__until{font-size:var(--t-xs);color:var(--muted-ink)}
.hinv__art{position:relative;min-height:540px}
.hinv__phone{
  position:absolute;top:0;width:min(250px,44%);aspect-ratio:390/844;border-radius:34px;overflow:hidden;
  border:8px solid #1F1A1C;background:#1F1A1C;box-shadow:0 30px 60px rgba(48,42,44,.28),0 8px 18px rgba(48,42,44,.15);
  transition:transform var(--tr-slow);
}
.hinv__phone img{display:block;width:100%;height:100%;object-fit:cover}
.hinv__phone--0{left:8%;rotate:-5deg;z-index:2}
.hinv__phone--1{left:46%;top:46px;rotate:4deg;z-index:1}
.hinv__art:hover .hinv__phone--0{transform:translateY(-6px)}
.hinv__art:hover .hinv__phone--1{transform:translateY(-10px)}
.hinv__phone--css{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:20px;text-align:center;
  background:linear-gradient(170deg,#7A1835,#B4236B);color:#FFF4E2;
}
.hinv__css-k{font-size:2.4rem}
.hinv__css-dear{font-family:var(--hand);font-size:1.6rem}
.hinv__css-t{font-family:var(--serif);font-size:2rem;font-weight:600;line-height:1}
.hinv__css-s{font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.hinv__list{
  position:absolute;right:0;bottom:0;z-index:3;width:min(260px,62%);padding:16px 16px 10px;border-radius:var(--r-md);
  background:var(--warm-white);box-shadow:var(--sh-lift);border:1px solid var(--hairline-soft);
}
.hinv__list-h{margin:0 0 8px;font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-ink)}
.hinv__list ul{list-style:none;margin:0;padding:0}
.hinv__list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--hairline-soft);font-size:var(--t-sm)}
.hinv__list li:first-child{border-top:0}
.hinv__list i{font-style:normal;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:var(--r-pill);background:var(--paper);color:var(--muted-ink);white-space:nowrap}
.hinv__list i.is-yes{background:#E3EEDD;color:#3E6B35}
.hinv__list i.is-maybe{background:#FBEFD5;color:#8A6416}
.hinv__list i.is-no{background:#FDECEC;color:#9A2B2B}
@media (max-width:960px){
  .hinv__grid{grid-template-columns:1fr}
  .hinv__art{min-height:470px;max-width:520px;width:100%;margin-inline:auto}
}
@media (max-width:520px){
  .hinv__art{min-height:400px}
  .hinv__phone{width:46%;border-width:6px;border-radius:26px}
  .hinv__phone--0{left:2%}
  .hinv__phone--1{left:44%;top:30px}
  .hinv__list{width:70%;padding:12px 12px 6px}
  .hinv__plan{min-width:0;flex:1}
}

/* Android / iOS app: the WebView already has a bar. No site header or menu. */
body.dsc-app .nav,
body.dsc-app .foot,
body.dsc-app .nav__sheet{display:none !important}
body.dsc-app .page{padding-top:clamp(20px,5vw,32px)}

/* ── Blog (/guides list + posts) ──────────────────────────────────── */
.page__inner:has(> .blog),.page__inner:has(> .post){max-width:1180px}
body:not(.dsc-app) .page:has(> .page__inner > .blog),body:not(.dsc-app) .page:has(> .page__inner > .post){padding-top:clamp(20px,3vw,36px)}
.blog-tag{
  display:inline-block;padding:5px 11px;border-radius:var(--r-pill);background:rgba(243,217,215,.65);
  font-size:var(--t-eyebrow);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#A8626A;line-height:1.3;
}
.blog-meta{font-size:var(--t-xs);color:var(--muted-ink)}

.blog-hero{text-align:center;max-width:780px;margin:0 auto var(--s-6)}
.blog-hero .dilse-kicker::after{content:"";width:22px;height:1px;background:currentColor}
.blog-hero .dilse-title{font-size:clamp(2.4rem,6vw,4.2rem)}
.blog-hero .dilse-lead{margin:0 auto}

.blog-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 var(--s-6)}
.blog-chip{
  display:inline-flex;align-items:center;gap:6px;padding:8px 15px;border-radius:var(--r-pill);cursor:pointer;
  border:1px solid var(--hairline);background:var(--warm-white);color:var(--ink);font:inherit;font-size:.86rem;font-weight:500;white-space:nowrap;
  transition:background var(--tr-fast),color var(--tr-fast),border-color var(--tr-fast);
}
.blog-chip span{font-size:.72rem;color:var(--muted-ink)}
.blog-chip:hover{border-color:var(--dusty-rose)}
.blog-chip.is-on{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.blog-chip.is-on span{color:rgba(255,253,248,.7)}

.blog-feature{
  display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);margin-bottom:clamp(20px,3vw,32px);
  background:var(--warm-white);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);overflow:hidden;
  box-shadow:var(--sh-2);text-decoration:none;color:inherit;transition:transform var(--tr),box-shadow var(--tr);
}
.blog-feature:hover{transform:translateY(-3px);box-shadow:var(--sh-lift)}
.blog-feature__media{display:block;background:var(--paper);min-height:100%}
.blog-feature__media img{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;object-position:0 50%}
.blog-feature__body{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;padding:clamp(22px,3.6vw,46px)}
.blog-feature h2{margin:0;font-family:var(--serif);font-weight:600;font-size:clamp(1.75rem,3vw,2.6rem);line-height:1.06;letter-spacing:-.01em;color:var(--ink)}
.blog-feature p{margin:0;color:var(--muted-ink);line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.blog-feature__go{margin-top:6px;font-weight:600;font-size:var(--t-sm);color:var(--ink)}
.blog-feature__go span{color:var(--dusty-rose);display:inline-block;transition:transform var(--tr)}
.blog-feature:hover .blog-feature__go span{transform:translateX(4px)}

.blog-grid{display:grid;gap:clamp(16px,2vw,24px);grid-template-columns:repeat(3,minmax(0,1fr))}
.blog-card{
  display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:inherit;
  background:var(--warm-white);border:1px solid var(--hairline-soft);border-radius:var(--r-lg);box-shadow:var(--sh-1);
  transition:transform var(--tr),box-shadow var(--tr);
}
.blog-card:hover{transform:translateY(-4px);box-shadow:var(--sh-3)}
.blog-card__media{display:block;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(135deg,var(--blush),var(--lavender))}
.blog-card__media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.blog-card:hover .blog-card__media img{transform:scale(1.04)}
.blog-card__ph{display:grid;place-items:center;height:100%;font-family:var(--serif);font-size:3rem;color:rgba(48,42,44,.3)}
.blog-card__body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex:1;padding:16px 18px 18px}
.blog-card h2,.blog-card h3{margin:2px 0 0;font-family:var(--serif);font-weight:600;font-size:1.45rem;line-height:1.12;color:var(--ink)}
.blog-card p{
  margin:0;color:var(--muted-ink);font-size:var(--t-sm);line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.blog-card .blog-meta{margin-top:auto;padding-top:4px}
.blog-card[hidden],.blog-feature[hidden]{display:none}
.blog-cta{margin-top:var(--s-7)}

/* single post */
.post-head{max-width:840px;margin:0 auto;text-align:center}
.post-crumbs{font-size:var(--t-xs);color:var(--muted-ink);margin-bottom:16px}
.post-crumbs a{color:inherit;text-decoration:none}
.post-crumbs a:hover{color:var(--dusty-rose)}
.post-title{margin:14px 0 18px;font-family:var(--serif);font-weight:600;font-size:clamp(2.15rem,5.4vw,3.7rem);line-height:1.04;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
.post-meta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;margin:0;font-size:var(--t-xs);color:var(--muted-ink)}
.post-meta > span + span::before{content:"·";margin-right:14px;color:var(--hairline)}
.post-meta__by{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-weight:500}
.post-meta__by i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--blush);color:#A8626A;font-style:normal;font-size:.8rem}
.post-cover{margin:clamp(24px,4vw,40px) auto 0;max-width:1000px;aspect-ratio:16/9;overflow:hidden;border-radius:var(--r-xl);background:var(--paper);box-shadow:var(--sh-3)}
.post-cover img{display:block;width:100%;height:100%;object-fit:cover}

.post-layout{display:grid;grid-template-columns:minmax(0,720px);justify-content:center;gap:56px;margin-top:clamp(28px,5vw,56px)}
.post-side{display:none}
.post-toc strong{display:block;font-size:var(--t-eyebrow);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--dusty-rose)}
.post-toc ol{list-style:none;margin:12px 0 0;padding:0;border-left:1px solid var(--hairline)}
.post-toc li a{display:block;margin-left:-1px;padding:6px 0 6px 14px;border-left:2px solid transparent;font-size:.86rem;line-height:1.35;color:var(--muted-ink);text-decoration:none;transition:color var(--tr-fast),border-color var(--tr-fast)}
.post-toc li a:hover{color:var(--ink);border-left-color:var(--dusty-rose)}
.post-toc--inline{margin:6px 0 0;padding:14px 18px;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--warm-white)}
.post-toc--inline summary{cursor:pointer;font-weight:600;font-size:var(--t-sm);color:var(--ink)}
.post-toc--inline summary span{font-weight:400;color:var(--muted-ink)}
.post-toc--inline ol{margin-top:10px}
@media (min-width:1080px){
  .post-layout--toc{grid-template-columns:220px minmax(0,720px)}
  .post-side{display:block}
  .post-side .post-toc{position:sticky;top:100px;max-height:calc(100vh - 120px);overflow:auto}
  .post-layout--toc .post-toc--inline{display:none}
}

.post-intro p{margin:0 0 16px;font-size:clamp(1.1rem,1.6vw,1.22rem);line-height:1.75;color:var(--ink)}
.post-intro > p:first-child::first-letter{float:left;margin:6px 10px 0 0;font-family:var(--serif);font-weight:600;font-size:3.7em;line-height:.78;color:var(--dusty-rose)}
.post-picks{margin:var(--s-6) 0;padding:18px;border-radius:var(--r-lg);background:linear-gradient(135deg,rgba(243,217,215,.55),rgba(255,239,196,.5));border:1px solid var(--hairline-soft)}
.post-picks h2{margin:0 0 12px;font-family:var(--sans);font-size:1.02rem;font-weight:600;color:var(--ink)}
.post-picks__row{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}

.post-body section{scroll-margin-top:96px}
.post-body h2,.post-faq h2,.post-gifts h2,.post-related h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.7rem,3vw,2.2rem);line-height:1.1;letter-spacing:-.005em;color:var(--ink);margin:1.9em 0 .5em}
.post-body section:first-child h2{margin-top:1.2em}
.post-body h3{font-family:var(--sans);font-size:1.1rem;font-weight:600;color:var(--ink);margin:1.6em 0 .4em}
.post-body p,.post-body li,.post-faq p{color:#3d3833;font-size:1.06rem;line-height:1.8}
.post-body p{margin:0 0 1.05em}
.post-body ul,.post-body ol{margin:.4em 0 1.2em;padding-left:1.3em}
.post-body li{margin:.5em 0;padding-left:.2em}
.post-body li::marker{color:var(--dusty-rose);font-weight:600}
.post-body strong,.post-intro strong{color:var(--ink);font-weight:600}
.post-body a,.post-intro a,.post-faq a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--dusty-rose);text-decoration-thickness:1.5px;text-underline-offset:3px;transition:color var(--tr-fast)}
.post-body a:hover,.post-intro a:hover,.post-faq a:hover{color:var(--dusty-rose)}
.post-body blockquote{
  margin:1.5em 0;padding:18px 22px;border-left:3px solid var(--dusty-rose);background:var(--paper);
  border-radius:0 var(--r-md) var(--r-md) 0;font-family:var(--serif);font-style:italic;font-size:1.32rem;line-height:1.45;color:var(--ink);
}
.post-faq{margin-top:var(--s-7)}
.post-faq h2{margin-top:0}

.post-gifts{margin-top:var(--s-8);padding-top:var(--s-7);border-top:1px solid var(--hairline-soft);text-align:center}
.post-gifts h2{margin:0 0 8px}
.post-gifts__how{max-width:60ch;margin:0 auto;color:var(--muted-ink);font-size:var(--t-sm)}
.post-gifts__grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-top:var(--s-5);text-align:left}
.post-related{margin-top:var(--s-8)}
.post-related h2{margin:0 0 var(--s-5);text-align:center}
.post-related .blog-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.post-related .blog-card h3{font-size:1.3rem}
.post-cta{max-width:840px;margin:var(--s-8) auto 0}

.guide-gift{
  display:flex;flex-direction:column;text-decoration:none;color:inherit;overflow:hidden;
  background:var(--warm-white);border:1px solid var(--hairline-soft);border-radius:var(--r-md);
  transition:transform var(--tr),box-shadow var(--tr);
}
.guide-gift:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}
.guide-gift img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:var(--paper)}
.guide-gift__body{display:flex;flex-direction:column;gap:4px;padding:12px 14px 14px;flex:1}
.guide-gift__body strong{color:var(--ink);font-size:1rem}
.guide-gift__body > span{color:var(--muted-ink);font-size:var(--t-sm);line-height:1.5}
.guide-gift__foot{display:flex!important;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:8px}
.guide-gift__price{font-weight:600;color:var(--ink)}
.guide-gift__price .gift-price-was{color:var(--muted-ink);font-weight:400;margin-right:4px}
.guide-gift__go{color:var(--dusty-rose);font-weight:600;font-size:var(--t-xs);white-space:nowrap}
.post-body .guide-gift--inline{flex-direction:row;margin:1.4em 0;box-shadow:var(--sh-1);text-decoration:none}
.guide-gift--inline img{width:210px;flex:none;height:auto;aspect-ratio:16/9;align-self:center;margin-left:10px;border-radius:10px}
.post-body .guide-gift--inline .guide-gift__body > span,.post-body .guide-gift--inline strong{font-size:inherit}
.post-body .guide-gift--inline strong{font-size:1rem}
.post-body .guide-gift--inline .guide-gift__body > span{font-size:var(--t-sm);line-height:1.5}

@media (max-width:1000px){
  .blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){
  .blog-feature{grid-template-columns:1fr}
  .blog-feature__media img{height:auto}
}
@media (max-width:640px){
  .blog-hero{text-align:left}
  .blog-hero .dilse-kicker::after{display:none}
  .blog-chips{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * var(--gut));padding:2px var(--gut) 4px}
  .blog-chips::-webkit-scrollbar{display:none}
  .blog-grid{grid-template-columns:1fr}
  .blog-feature{border-radius:var(--r-lg)}
  .post-head{text-align:left}
  .post-meta{justify-content:flex-start;gap:4px 12px}
  .post-meta > span + span::before{display:none}
  .post-cover{border-radius:var(--r-lg);margin-inline:calc(-.5 * var(--gut))}
  .post-picks{padding:16px}
  .post-picks__row{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:-16px;padding:2px 16px 6px;scroll-padding-inline:16px}
  .post-picks__row > *{scroll-snap-align:start}
  .post-body .guide-gift--inline{flex-direction:column}
  .guide-gift--inline img{width:100%;margin:0;border-radius:0}
  .post-related .blog-grid{grid-template-columns:1fr}
}
.dilse-btn--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);margin-left:8px}
.dilse-btn--ghost:hover{background:var(--ink);color:var(--cream)}
@media (max-width:560px){.dilse-btn--ghost{margin:10px 0 0}}
.gal__more{display:flex;justify-content:center;margin:var(--s-6,32px) 0 0}
.gal__more[hidden]{display:none}

/* Customer avatar: Google photo, else soft initials (partials/user-avatar.php) */
.dsc-av{position:relative;display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;overflow:hidden;
  font:700 13px/1 var(--sans,"DM Sans",sans-serif);letter-spacing:.02em;background:#F7DCE0;color:#8E3B55;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #F2B8C2}
.dsc-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.dsc-av--butter{background:#F7EBC3;color:#87621B;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #EED58C}
.dsc-av--sage{background:#DDE8D5;color:#466B3F;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #B7CDA9}
.dsc-av--lilac{background:#E7E0F3;color:#5F4A8C;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #C9BCE6}
.dsc-av--peach{background:#FADDC8;color:#9A4E22;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #F2BE98}
.nav__account--me{padding:4px 14px 4px 4px;gap:9px}
.nav__account--me .dsc-av{width:30px;height:30px;font-size:12px;box-shadow:none}
@media (max-width:960px){
  .nav__account--me{padding:0;border-color:transparent;background:none}
  .nav__account--me .dsc-av{position:relative;width:36px;height:36px;overflow:hidden;clip:auto;font-size:13px;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #F2B8C2}
  .nav__account--me .dsc-av__in{position:static;width:auto;height:auto;overflow:visible;clip:auto}
}
