/* ============================================================
   TADZIE MADZIMA — "Blush Scrapbook" system v2
   Light, warm, unapologetically feminine. Cream + blush
   backgrounds, hot pink accents, plum ink for text, playful
   hand-drawn marks (scribbles, blobs, confetti, tape, stamps),
   a handwritten accent font for the personality bits.
   Same class names as v1 — every page just needs this file.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@500;700&display=swap');

:root{
  /* base surfaces */
  --cream:   #FFF7F1;   /* page background */
  --blush-bg:#FFE7EE;   /* alt section background */
  --white:   #FFFFFF;

  /* ink */
  --plum:      #3B1530;              /* headings / primary text */
  --plum-soft: rgba(59,21,48,.62);   /* body text */
  --plum-faint:rgba(59,21,48,.32);

  /* pink family — the star of the show */
  --pink:      #FF8FAE;
  --rose:      #E64A7C;
  --rose-deep: #C6316A;
  --hotpink:   #FF2D77;
  --gold:      #F3B94E;

  /* legacy black/walnut kept ONLY for photo-hero overlays (photos are dark) */
  --black:   #23101B;
  --walnut:  #3B1530;

  --ease:    cubic-bezier(0.16,1,0.3,1);
  --bounce:  cubic-bezier(.34,1.56,.64,1);

  --squiggle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 12'%3E%3Cpath d='M0 7 Q5 1 10 7 T20 7 T30 7 T40 7' stroke='%23E64A7C' stroke-width='2.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  --squiggle-blush: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 12'%3E%3Cpath d='M0 7 Q5 1 10 7 T20 7 T30 7 T40 7' stroke='%23FFFFFF' stroke-width='2.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  --circle-scribble: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 110'%3E%3Cpath d='M18 58 C10 24 64 6 110 8 C162 10 210 26 204 56 C198 92 138 102 100 100 C54 98 22 90 18 58Z' stroke='%23E64A7C' stroke-width='4.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  --wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cpath d='M0 10 C10 0 20 20 30 10 C40 0 50 20 60 10 C70 0 80 20 90 10 C100 0 110 20 120 10 L120 20 L0 20 Z' fill='%23FFF7F1'/%3E%3C/svg%3E");
  --wave-blush: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cpath d='M0 10 C10 0 20 20 30 10 C40 0 50 20 60 10 C70 0 80 20 90 10 C100 0 110 20 120 10 L120 20 L0 20 Z' fill='%23FFE7EE'/%3E%3C/svg%3E");
  --blob: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'%3E%3Cpath d='M320 60C370 110 390 190 370 260C350 330 280 380 200 385C120 390 40 350 20 280C0 210 40 130 100 80C160 30 270 10 320 60Z' fill='%23FFD9E4'/%3E%3C/svg%3E");
  --confetti: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Ccircle cx='8' cy='10' r='3' fill='%23FF8FAE'/%3E%3Ccircle cx='40' cy='30' r='2' fill='%23F3B94E'/%3E%3Crect x='60' y='8' width='5' height='5' fill='%23E64A7C' transform='rotate(20 62 10)'/%3E%3Ccircle cx='20' cy='55' r='2.5' fill='%23E64A7C'/%3E%3Crect x='55' y='55' width='4' height='4' fill='%23F3B94E' transform='rotate(-15 57 57)'/%3E%3Ccircle cx='70' cy='65' r='3' fill='%23FF8FAE'/%3E%3C/svg%3E");
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--cream);
  color:var(--plum);
  font-family:'Poppins',sans-serif;
  font-size:1rem;
  font-weight:300;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  cursor:none;
}
a{text-decoration:none;color:inherit}
img{max-width:100%}

/* ── CURSOR ── */
#cur{
  width:9px;height:9px;background:var(--hotpink);border-radius:50%;
  position:fixed;top:0;left:0;pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);transition:width .3s,height .3s,background .3s;
}
#cur-ring{
  width:34px;height:34px;border:2px dashed rgba(230,74,124,.55);
  border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%) rotate(0deg);animation:spinRing 9s linear infinite;
}
@keyframes spinRing{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* ── LOADER ── */
#loader{
  position:fixed;inset:0;background:var(--cream);z-index:9000;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px;
  transition:opacity .9s var(--ease), transform .9s var(--ease);
}
#loader.out{opacity:0;transform:scale(1.03) rotate(.4deg);pointer-events:none}
.loader-name{
  font-family:'Bebas Neue',sans-serif;font-size:clamp(3rem,10vw,9rem);letter-spacing:.12em;
  color:transparent;-webkit-text-stroke:1.5px var(--rose);overflow:hidden;display:flex;
}
.loader-name span{display:inline-block;transform:translateY(120%) rotate(6deg);transition:transform .7s var(--bounce)}
.loader-name span.up{transform:translateY(0) rotate(0deg)}
.loader-bar-wrap{width:200px;height:3px;background:var(--blush-bg);border-radius:10px;position:relative;overflow:hidden}
.loader-bar{position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--rose);transition:left 1.4s var(--ease)}
.loader-bar.go{left:0}
.loader-words{
  font-family:'Caveat',cursive;font-size:1.05rem;font-weight:700;letter-spacing:.02em;color:var(--rose-deep);
  text-transform:none;border:2px dashed var(--pink);border-radius:100px;padding:7px 22px;transform:rotate(-2deg);
  background:var(--white);
}

/* ── PILL NAV ── */
.pill-nav{
  position:fixed;top:24px;left:50%;transform:translateX(-50%);
  height:60px;padding:0 10px 0 28px;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border:1.5px dashed rgba(230,74,124,.4);
  border-radius:100px;
  display:flex;align-items:center;gap:8px;
  box-shadow:0 12px 34px rgba(230,74,124,.16);
  z-index:800;transition:all .5s var(--ease);opacity:0;
}
.pill-nav.show{opacity:1}
.pill-nav:hover{border-color:rgba(230,74,124,.7)}
.pill-logo{padding-right:18px;border-right:1px solid rgba(59,21,48,.1);margin-right:4px;transition:transform .4s var(--bounce)}
.pill-logo:hover{transform:rotate(-8deg) scale(1.06)}
.pill-logo img{height:28px;width:auto;object-fit:contain}
.pill-logo-text{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:.22em;color:var(--plum)}
.pill-links{display:flex;align-items:center;gap:2px;list-style:none}
.pill-links a{
  font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(59,21,48,.55);padding:8px 14px;border-radius:50px;
  transition:color .3s,background .3s;position:relative;
}
.pill-links a:hover{color:var(--plum);background:rgba(230,74,124,.08)}
.pill-links a.active{color:var(--rose-deep)}
.pill-links a.active::before{
  content:'';position:absolute;inset:-6px -10px;background:var(--circle-scribble);
  background-repeat:no-repeat;background-size:100% 100%;z-index:-1;opacity:.9;transform:rotate(-3deg);
}
.pill-book{
  height:40px;padding:0 22px;background:var(--hotpink);color:var(--white) !important;
  border-radius:50px;font-size:.68rem !important;font-weight:700 !important;letter-spacing:.1em !important;
  margin-left:4px;display:inline-flex;align-items:center;gap:6px;
  transition:background .3s,transform .3s var(--bounce) !important;
  box-shadow:3px 3px 0 rgba(230,74,124,.35);
}
.pill-book:hover{background:var(--rose-deep);transform:translateY(-2px) rotate(-2deg)}
.pill-menu-btn{display:none;width:40px;height:40px;background:none;border:none;cursor:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0;margin-left:4px}
.pill-menu-btn span{display:block;width:20px;height:2px;background:var(--plum);border-radius:2px;transition:all .35s var(--ease);transform-origin:center}
.pill-back{
  height:40px;padding:0 20px;background:var(--blush-bg);
  border:1.5px dashed rgba(230,74,124,.4);color:var(--rose-deep);
  border-radius:50px;font-size:.68rem;font-weight:600;letter-spacing:.1em;
  display:inline-flex;align-items:center;gap:8px;margin-left:4px;
  transition:background .3s,border-color .3s,transform .3s var(--bounce);
  font-family:'Poppins',sans-serif;
}
.pill-back:hover{background:var(--pink);color:var(--white);border-color:var(--rose);transform:rotate(-2deg)}

/* OVERLAY NAV — full hot-pink takeover, big fun energy */
.pill-overlay{
  position:fixed;inset:0;background:var(--hotpink);z-index:700;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  clip-path:circle(0% at 50% 44px);transition:clip-path .9s var(--ease);pointer-events:none;
}
.pill-overlay::before{
  content:'';position:absolute;width:700px;height:700px;
  background:radial-gradient(circle,rgba(255,255,255,.16),transparent 65%);
  filter:blur(60px);animation:auraMove 20s ease-in-out infinite alternate;pointer-events:none;
}
@keyframes auraMove{0%{transform:translate(-200px,-150px) scale(1)}100%{transform:translate(200px,150px) scale(1.2)}}
.pill-overlay.open{clip-path:circle(150% at 50% 44px);pointer-events:all}
.pill-overlay ul{list-style:none;text-align:center}
.pill-overlay ul li{overflow:hidden;margin:6px 0}
.pill-overlay ul li a{
  font-family:'Bebas Neue',sans-serif;font-size:clamp(2.8rem,7vw,6rem);letter-spacing:.08em;
  color:rgba(255,255,255,.55);display:inline-block;transform:translateY(100%);
  transition:transform .6s var(--ease),color .3s;position:relative;
}
.pill-overlay ul li a::after{
  content:'';position:absolute;bottom:2px;left:0;width:0;height:100%;
  background-image:var(--squiggle-blush);background-repeat:repeat-x;background-position:0 100%;background-size:24px 8px;
  transition:width .45s var(--ease);
}
.pill-overlay ul li a:hover{color:var(--white)}
.pill-overlay ul li a:hover::after{width:100%}
.pill-overlay.open ul li a{transform:translateY(0)}
.pill-overlay ul li:nth-child(1) a{transition-delay:.06s}
.pill-overlay ul li:nth-child(2) a{transition-delay:.12s}
.pill-overlay ul li:nth-child(3) a{transition-delay:.18s}
.pill-overlay ul li:nth-child(4) a{transition-delay:.24s}
.pill-overlay ul li:nth-child(5) a{transition-delay:.30s}
.overlay-sub{
  margin-top:40px;font-family:'Caveat',cursive;font-size:1.3rem;font-weight:700;letter-spacing:.02em;
  color:var(--white);transform:translateY(16px) rotate(-1deg);opacity:0;
  transition:transform .5s,opacity .5s;
  border:2px dashed rgba(255,255,255,.6);border-radius:100px;padding:8px 22px;
}
.pill-overlay.open .overlay-sub{transform:translateY(0) rotate(-1deg);opacity:1;transition-delay:.4s}

/* ── DOODLE UTILITIES ── */
.scribble{position:relative;display:inline-block;white-space:nowrap}
.scribble::after{
  content:'';position:absolute;inset:-.18em -.22em;background-image:var(--circle-scribble);
  background-repeat:no-repeat;background-size:100% 100%;z-index:-1;transform:rotate(-2deg);pointer-events:none;
}
.underline-squiggle{background-image:var(--squiggle);background-repeat:repeat-x;background-position:0 100%;background-size:20px 7px;padding-bottom:6px}
.tag-note{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Caveat',cursive;font-size:1rem;font-weight:700;color:var(--rose-deep);
  border:2px dashed rgba(230,74,124,.5);border-radius:100px;padding:8px 18px;transform:rotate(-2deg);
  background:var(--white);
}
.tape{
  position:absolute;width:64px;height:24px;
  background:linear-gradient(100deg,rgba(255,143,174,.75),rgba(255,143,174,.45));
  border:1px solid rgba(255,255,255,.5);box-shadow:0 3px 8px rgba(59,21,48,.15);z-index:3;
}
.polaroid{background:var(--white);padding:12px 12px 46px;box-shadow:0 22px 48px rgba(59,21,48,.18);position:relative}
.polaroid img{display:block;width:100%;height:100%;object-fit:cover}
.polaroid-cap{position:absolute;left:14px;right:14px;bottom:14px;font-family:'Caveat',cursive;font-size:1rem;color:var(--plum);text-align:center}
.stamp{
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  width:128px;height:128px;border-radius:50%;border:2px dashed rgba(230,74,124,.55);
  color:var(--rose-deep);text-align:center;padding:14px;background:var(--white);
  transition:transform .4s var(--bounce),border-color .3s,color .3s;
}
.stamp:hover{transform:scale(1.06) rotate(0deg) !important;border-color:var(--rose);color:var(--rose-deep)}
.stamp h4{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:.04em;line-height:1.05;margin-bottom:4px}
.stamp span{font-size:.52rem;letter-spacing:.1em;text-transform:uppercase;opacity:.75}
.torn-divider{width:100%;height:26px;background-image:var(--wave);background-repeat:repeat-x;background-size:80px 26px}
.torn-divider.flip{transform:scaleY(-1)}
.torn-divider.to-blush{background-image:var(--wave-blush)}
.blob-behind{position:relative}
.blob-behind::before{
  content:'';position:absolute;top:-18%;left:50%;transform:translateX(-50%);
  width:130%;max-width:780px;aspect-ratio:1/1;background-image:var(--blob);background-size:100% 100%;
  z-index:-1;opacity:.6;pointer-events:none;
}
.confetti-strip{position:relative}
.confetti-strip::after{
  content:'';position:absolute;inset:0;background-image:var(--confetti);background-repeat:repeat;
  background-size:90px 90px;opacity:.5;pointer-events:none;
}

/* ── BUTTONS ── */
.btn-fill{
  height:50px;padding:0 32px;background:var(--hotpink);color:var(--white);
  border:none;border-radius:100px;font-family:'Poppins',sans-serif;font-size:.72rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;cursor:none;display:inline-flex;align-items:center;gap:10px;
  transition:background .3s,transform .3s var(--bounce),box-shadow .3s;
  box-shadow:4px 4px 0 rgba(230,74,124,.35);
}
.btn-fill:hover{background:var(--rose-deep);transform:translateY(-3px) rotate(-1.5deg);box-shadow:6px 6px 0 rgba(230,74,124,.4)}
.btn-stroke{
  height:50px;padding:0 28px;background:var(--white);color:var(--plum);
  border:1.5px dashed rgba(230,74,124,.5);border-radius:100px;font-family:'Poppins',sans-serif;font-size:.72rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;cursor:none;display:inline-flex;align-items:center;
  transition:border-color .3s,background .3s,transform .3s var(--bounce);
}
.btn-stroke:hover{border-color:var(--rose);background:var(--blush-bg);transform:translateY(-3px) rotate(1.5deg)}
.btn-outline{
  height:54px;padding:0 40px;background:transparent;color:var(--white);border:1.5px dashed rgba(255,255,255,.55);
  border-radius:100px;font-family:'Poppins',sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;cursor:none;display:inline-flex;align-items:center;gap:12px;position:relative;overflow:hidden;
  transition:border-color .4s,color .4s,transform .3s var(--bounce);
}
.btn-outline::before{content:'';position:absolute;inset:0;background:var(--white);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);z-index:0;border-radius:100px}
.btn-outline span{position:relative;z-index:1;transition:color .4s}
.btn-outline:hover{border-color:var(--white);transform:rotate(-1.5deg)}
.btn-outline:hover::before{transform:scaleX(1)}
.btn-outline:hover span{color:var(--rose-deep)}

/* ── HERO (index) — photo stays photo, fades into cream ── */
.hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:flex-end;overflow:hidden;background:var(--cream)}
.hero-bg{position:absolute;inset:0;background:url('hero 2.webp') center 20%/cover no-repeat;transform:scale(1.06);animation:heroZoom 18s var(--ease) forwards;filter:saturate(1.08)}
@keyframes heroZoom{to{transform:scale(1)}}
.hero-gradient{position:absolute;inset:0;background:linear-gradient(to top,var(--cream) 0%,transparent 55%),linear-gradient(to right,rgba(59,21,48,.55) 0%,transparent 60%)}
.hero-monogram{position:absolute;right:-2vw;bottom:-4vh;font-family:'Bebas Neue',sans-serif;font-size:clamp(18rem,32vw,42rem);line-height:.8;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px rgba(255,143,174,.5);user-select:none;pointer-events:none;z-index:1;white-space:nowrap}
.hero-content{position:relative;z-index:3;padding:0 60px 80px;max-width:900px}
.hero-kicker{display:flex;align-items:center;gap:14px;font-size:.65rem;letter-spacing:.4em;text-transform:uppercase;color:var(--pink);opacity:.95;margin-bottom:20px}
.hero-kicker::before{content:'';display:block;width:24px;height:1px;background:var(--pink)}
.hero-content h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(3.5rem,9vw,10rem);line-height:.9;letter-spacing:.02em;color:var(--white);margin-bottom:28px}
.hero-content h1 em{font-style:normal;color:var(--pink);position:relative}
.hero-sticker{
  position:absolute;top:14%;right:6%;z-index:4;width:118px;height:118px;border-radius:50%;
  border:2px dashed var(--white);display:flex;align-items:center;justify-content:center;text-align:center;
  font-family:'Caveat',cursive;font-size:1.1rem;font-weight:700;color:var(--white);
  background:rgba(230,74,124,.35);backdrop-filter:blur(4px);
  transform:rotate(8deg);animation:floaty 6s ease-in-out infinite;
}
@keyframes floaty{0%,100%{transform:rotate(8deg) translateY(0)}50%{transform:rotate(11deg) translateY(-10px)}}
.hero-p{font-size:1rem;line-height:1.85;color:rgba(255,255,255,.82);max-width:460px;margin-bottom:40px;font-weight:300}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}
.hero-scroll{position:absolute;bottom:40px;right:60px;display:flex;flex-direction:column;align-items:center;gap:12px;z-index:3}
.hero-scroll span{font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:rgba(255,255,255,.65);writing-mode:vertical-rl;font-style:italic}
.scroll-track{width:1px;height:60px;background:rgba(255,255,255,.2);position:relative;overflow:hidden}
.scroll-track::after{content:'';position:absolute;top:-100%;left:0;width:1px;height:100%;background:var(--pink);animation:scrollTrack 2.4s var(--ease) infinite}
@keyframes scrollTrack{0%{top:-100%}100%{top:100%}}

/* ── MARQUEE / RIBBON ── */
.marquee{
  padding:18px 0;background:var(--hotpink);overflow:hidden;
  border-top:2px dashed rgba(255,255,255,.5);border-bottom:2px dashed rgba(255,255,255,.5);
  transform:rotate(-.8deg) scale(1.01);box-shadow:0 10px 30px rgba(230,74,124,.3);
  position:relative;z-index:5;
}
.marquee-track{display:flex;white-space:nowrap;animation:mq 32s linear infinite}
.marquee-track:hover{animation-play-state:paused}
.mq-item{display:inline-flex;align-items:center;gap:20px;padding:0 20px;font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:.14em;color:var(--white)}
.mq-dot{font-size:.8rem;color:var(--gold);flex-shrink:0}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── BIO SECTION ── */
.bio-section{padding:160px 60px 140px;background:var(--cream);display:grid;grid-template-columns:1px 1fr;gap:0 80px;max-width:1400px;margin:0 auto;position:relative}
.bio-rail{display:flex;flex-direction:column;align-items:center;padding-top:12px}
.bio-rail-line{width:2px;flex:1;background-image:repeating-linear-gradient(to bottom,var(--rose) 0 6px,transparent 6px 12px);transform:scaleY(0);transform-origin:top;transition:transform 1.4s var(--ease)}
.bio-section.in .bio-rail-line{transform:scaleY(1)}
.bio-eyebrow{font-family:'Caveat',cursive;font-size:1.15rem;font-weight:700;color:var(--rose-deep);margin-bottom:20px}
.bio-h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.8rem,6vw,6.5rem);line-height:.94;letter-spacing:.02em;color:var(--plum);margin-bottom:48px;opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.bio-section.in .bio-h2{opacity:1;transform:translateY(0)}
.bio-lead{font-size:1.05rem;line-height:1.9;color:var(--plum);margin-bottom:28px;font-weight:400}
.bio-body{font-size:.96rem;line-height:1.95;color:var(--plum-soft);margin-bottom:24px}
.text-link{display:inline-flex;align-items:center;gap:14px;font-size:.68rem;letter-spacing:.25em;text-transform:uppercase;font-weight:700;color:var(--rose-deep);margin-top:20px;padding-bottom:6px;background-image:var(--squiggle);background-repeat:repeat-x;background-position:0 100%;background-size:18px 6px;transition:gap .4s}
.text-link:hover{gap:22px}
.bio-p-wrap{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.bio-section.in .bio-p-wrap{opacity:1;transform:translateY(0)}
.bio-section.in .bio-p-wrap:nth-child(2){transition-delay:.15s}
.bio-section.in .bio-p-wrap:nth-child(3){transition-delay:.28s}
.bio-section.in .bio-p-wrap:nth-child(4){transition-delay:.38s}

/* ── FEATURED / LOGOS ── */
.featured{padding:80px 0;background:var(--white);overflow:hidden;position:relative}
.feat-label{text-align:center;font-family:'Caveat',cursive;font-size:1.15rem;font-weight:700;color:var(--rose-deep);margin-bottom:32px}
.feat-wrap{position:relative;overflow:hidden}
.feat-track{display:flex;align-items:center;gap:80px;width:max-content;animation:feat 24s linear infinite}
.feat-track:hover{animation-play-state:paused}
.feat-track img{height:32px;width:auto;object-fit:contain;filter:grayscale(1) contrast(.8) opacity(.4);mix-blend-mode:multiply;transition:filter .4s,transform .4s}
.feat-track img:hover{filter:grayscale(0) contrast(1) opacity(.9);transform:rotate(-3deg) scale(1.08)}
.feat-wrap::before,.feat-wrap::after{content:'';position:absolute;top:0;height:100%;width:120px;z-index:2;pointer-events:none}
.feat-wrap::before{left:0;background:linear-gradient(to right,var(--white),transparent)}
.feat-wrap::after{right:0;background:linear-gradient(to left,var(--white),transparent)}
@keyframes feat{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── SERVICES (index summary rows) ── */
.services{padding:160px 60px;background:var(--blush-bg)}
.services-header{max-width:1300px;margin:0 auto 100px}
.section-eyebrow{font-family:'Caveat',cursive;font-size:1.15rem;font-weight:700;color:var(--rose-deep);margin-bottom:14px;display:block}
.section-h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,6vw,6.5rem);line-height:.92;letter-spacing:.02em;color:var(--plum);max-width:900px}
.service-row{display:grid;grid-template-columns:120px 1fr;gap:0 60px;max-width:1300px;margin:0 auto;padding:56px 0;border-top:2px dashed rgba(230,74,124,.28);opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.service-row.in{opacity:1;transform:translateY(0)}
.svc-num{width:84px;height:84px;border-radius:50%;border:2px dashed var(--rose);background:var(--white);display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:1.6rem;color:var(--rose-deep);transform:rotate(-7deg);transition:transform .4s var(--bounce)}
.service-row:hover .svc-num{transform:rotate(0deg) scale(1.06)}
.svc-h3{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.8rem,3.5vw,3rem);letter-spacing:.04em;color:var(--plum);margin-bottom:18px;line-height:1}
.svc-p{font-size:.95rem;line-height:1.9;color:var(--plum-soft);margin-bottom:28px;max-width:600px}
.svc-link{display:inline-flex;align-items:center;gap:14px;font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;font-weight:700;color:var(--rose-deep);opacity:.9;background-image:var(--squiggle);background-repeat:repeat-x;background-position:0 100%;background-size:18px 6px;padding-bottom:6px;transition:gap .4s,opacity .3s}
.svc-link:hover{gap:22px;opacity:1}

/* ── IMPACT ── */
.impact{padding:160px 60px;background:var(--cream)}
.impact-header{max-width:1300px;margin:0 auto 120px}
.impact-header p{font-size:1rem;line-height:1.9;color:var(--plum-soft);max-width:520px;margin-top:20px}
.impact-panel{display:grid;grid-template-columns:1.1fr .9fr;gap:0 100px;align-items:center;max-width:1300px;margin:0 auto 150px;opacity:0;transform:translateY(50px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.impact-panel.in{opacity:1;transform:translateY(0)}
.impact-panel.rev{grid-template-columns:.9fr 1.1fr}
.impact-panel.rev .impact-frame{order:2}
.impact-frame{position:relative;background:var(--white);padding:12px;box-shadow:0 24px 50px rgba(230,74,124,.2);transform:rotate(-2deg)}
.impact-panel.rev .impact-frame{transform:rotate(2deg)}
.impact-img{width:100%;height:500px;object-fit:cover;display:block;transform:scale(1.06);transition:transform 1.4s var(--ease)}
.impact-panel.in .impact-img{transform:scale(1)}
.impact-big-num{font-family:'Bebas Neue',sans-serif;font-size:clamp(5rem,10vw,11rem);line-height:.85;letter-spacing:-.01em;color:transparent;-webkit-text-stroke:1.5px var(--rose);display:inline-block;margin-bottom:16px;position:relative}
.impact-h3{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.8rem,3vw,3rem);letter-spacing:.04em;color:var(--plum);margin-bottom:16px;line-height:1}
.impact-p{font-size:.95rem;line-height:1.9;color:var(--plum-soft)}

/* ── CLOSING — bold hot-pink card ── */
.closing{padding:180px 60px;background:var(--hotpink);text-align:center;position:relative;overflow:hidden}
.closing::before{content:'';position:absolute;inset:0;background-image:var(--confetti);background-repeat:repeat;background-size:110px 110px;opacity:.35;pointer-events:none}
.closing-big{font-family:'Caveat',cursive;font-size:1.5rem;font-weight:700;color:var(--white);margin-bottom:20px;display:inline-block;border:2px dashed rgba(255,255,255,.6);border-radius:100px;padding:8px 24px;transform:rotate(-2deg);position:relative;z-index:2}
.closing h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(3rem,8vw,9rem);line-height:.88;letter-spacing:.02em;color:var(--white);margin:28px 0 48px;position:relative;z-index:2}
.closing h2 em{font-style:italic;color:#FFE1EC;font-family:'Poppins',sans-serif;font-size:.65em;font-weight:300;letter-spacing:.05em;display:block}
.closing .btn-fill{position:relative;z-index:2;background:var(--white);color:var(--rose-deep);box-shadow:4px 4px 0 rgba(59,21,48,.18)}
.closing .btn-fill:hover{background:var(--plum);color:var(--white)}

/* ── PAGE HERO (about / services) ── */
.page-hero{height:100vh;position:relative;overflow:hidden;display:flex;align-items:flex-end}
.page-hero-img{position:absolute;inset:0;background:url('about.webp') center/cover no-repeat;transform:scale(1.05);animation:phZoom 16s var(--ease) forwards}
@keyframes phZoom{to{transform:scale(1)}}
.page-hero-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(59,21,48,.94) 0%,rgba(59,21,48,.25) 70%,transparent 100%)}
.page-hero-bg-text{position:absolute;bottom:0;right:-2vw;font-family:'Bebas Neue',sans-serif;font-size:clamp(14rem,28vw,38rem);line-height:.8;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px rgba(255,143,174,.18);user-select:none;pointer-events:none;z-index:1}
.page-hero-content{position:relative;z-index:2;padding:0 60px 80px;max-width:850px}
.page-eyebrow{font-size:.65rem;letter-spacing:.4em;text-transform:uppercase;color:var(--pink);opacity:.95;margin-bottom:20px;display:flex;align-items:center;gap:14px}
.page-eyebrow::before{content:'';display:block;width:24px;height:1px;background:var(--pink)}
.page-hero-content h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(4rem,10vw,12rem);line-height:.88;letter-spacing:.02em;color:var(--white)}
.page-hero-content h1 em{font-style:normal;color:var(--pink)}

/* ── BIO (about page) ── */
.bio-wrap{padding:160px 60px;background:var(--cream);max-width:1000px;margin:0 auto}
.bio-lead-q{
  font-family:'Bebas Neue',sans-serif;font-size:clamp(1.9rem,4.6vw,4rem);line-height:1.05;letter-spacing:.02em;color:var(--plum);
  background:var(--white);padding:40px 44px;margin-bottom:60px;position:relative;
  transform:rotate(-1deg);box-shadow:0 18px 40px rgba(230,74,124,.18);
  border-left:4px solid var(--hotpink);
}
.bio-lead-q .tape{top:-14px;left:36px;transform:rotate(-8deg)}
.bio-body-p{font-size:1rem;line-height:1.95;color:var(--plum-soft);margin-bottom:22px}
.bio-body-p strong{color:var(--plum);font-weight:600;background-image:var(--squiggle);background-repeat:repeat-x;background-position:0 100%;background-size:16px 5px;padding-bottom:2px}

/* ── TIMELINE ── */
.timeline-section{padding:140px 60px;background:var(--blush-bg);position:relative;overflow:hidden}
.timeline-section::before{content:'LEGACY';position:absolute;right:-2vw;top:50%;transform:translateY(-50%);font-family:'Bebas Neue',sans-serif;font-size:clamp(10rem,20vw,28rem);color:transparent;-webkit-text-stroke:1.5px rgba(230,74,124,.08);user-select:none;pointer-events:none;line-height:1;letter-spacing:-.02em}
.tl-header{max-width:1200px;margin:0 auto 80px}
.tl-grid{display:grid;grid-template-columns:1fr 2px 1fr;gap:0 60px;max-width:1200px;margin:0 auto}
.tl-line{background-image:repeating-linear-gradient(to bottom,var(--rose) 0 8px,transparent 8px 16px);width:2px}
.tl-col{display:flex;flex-direction:column}
.tl-item{padding:36px 0;border-bottom:2px dashed rgba(230,74,124,.22);opacity:0;transform:translateX(-20px);transition:opacity .8s var(--ease),transform .8s var(--ease);position:relative}
.tl-item.right-item{transform:translateX(20px)}
.tl-item.in{opacity:1;transform:translateX(0)}
.tl-item h3{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.5rem,3vw,2.3rem);letter-spacing:.04em;color:var(--plum);margin-bottom:8px;line-height:1}
.tl-item p{font-size:.88rem;line-height:1.7;color:var(--plum-soft)}

/* ── AWARDS — passport-stamp collage ── */
.awards-section{padding:160px 60px;background:var(--cream)}
.awards-inner{max-width:1300px;margin:0 auto}
.awards-header{margin-bottom:90px}
.awards-header h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,6vw,6.5rem);line-height:.9;letter-spacing:.02em;color:var(--plum)}
.awards-grid{display:flex;flex-wrap:wrap;gap:34px;justify-content:flex-start}
.award-card{
  width:190px;padding:26px 18px;text-align:center;background:var(--white);
  border:2px dashed var(--rose);border-radius:50%;
  aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  opacity:0;transform:translateY(24px) rotate(0deg);
  transition:opacity .7s var(--ease),transform .7s var(--bounce),border-color .3s,background .3s;
}
.award-card.in{opacity:1}
.award-card:hover{background:var(--blush-bg);border-color:var(--rose-deep);transform:scale(1.05) rotate(0deg) !important}
.award-card h3{font-family:'Bebas Neue',sans-serif;font-size:1.05rem;letter-spacing:.03em;color:var(--plum);margin-bottom:8px;line-height:1.05}
.award-card span{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rose-deep);opacity:.85}

/* ── ABOUT CLOSING — bold hot-pink card ── */
.about-closing{padding:180px 60px;background:var(--hotpink);text-align:center;position:relative;overflow:hidden}
.about-closing::before{content:'';position:absolute;inset:0;background-image:var(--confetti);background-repeat:repeat;background-size:110px 110px;opacity:.35;pointer-events:none}
.about-closing span{font-family:'Caveat',cursive;font-size:1.5rem;font-weight:700;color:var(--white);display:inline-block;margin-bottom:16px;border:2px dashed rgba(255,255,255,.6);border-radius:100px;padding:7px 22px;transform:rotate(2deg);position:relative;z-index:2}
.about-closing h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(3rem,8vw,9rem);line-height:.88;color:var(--white);margin:24px 0 10px;position:relative;z-index:2}
.about-closing h2 em{font-style:italic;color:#FFE1EC;font-family:'Poppins',sans-serif;font-size:.5em;font-weight:300;letter-spacing:.08em;display:block}
.about-closing p{font-size:.85rem;color:rgba(255,255,255,.85);letter-spacing:.3em;text-transform:uppercase;margin-top:14px;position:relative;z-index:2}

/* ── SERVICES PAGE HERO/STATEMENT ── */
.svc-hero{height:100vh;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.svc-hero-bg{position:absolute;inset:0;background:url('about.webp') center/cover no-repeat;filter:brightness(.34) contrast(1.1) saturate(1.1);transform:scale(1.04);animation:phz 16s var(--ease) forwards}
@keyframes phz{to{transform:scale(1)}}
.svc-hero-grad{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(59,21,48,.15) 0%,rgba(59,21,48,.92) 100%)}
.svc-hero-content{position:relative;z-index:2;text-align:center;max-width:900px;padding:0 40px}
.hero-kicker2{font-size:.65rem;letter-spacing:.5em;text-transform:uppercase;color:var(--pink);opacity:.95;display:block;margin-bottom:24px}
.svc-hero-content h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(3rem,8vw,8.5rem);line-height:.88;letter-spacing:.02em;color:var(--white);margin-bottom:28px}
.svc-hero-content p{font-size:1rem;line-height:1.85;color:rgba(255,255,255,.72);max-width:520px;margin:0 auto;font-weight:300}
.scroll-pulse{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:2}
.scroll-pulse span{display:block;width:1px;height:60px;background:linear-gradient(to bottom,var(--pink),transparent);animation:sp 2.4s var(--ease) infinite;margin:0 auto}
@keyframes sp{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

.statement{padding:140px 60px;background:var(--blush-bg);text-align:center}
.statement-inner{max-width:800px;margin:0 auto}
.statement-label{font-family:'Caveat',cursive;font-size:1.2rem;font-weight:700;color:var(--rose-deep);margin-bottom:16px;display:block}
.statement h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(3rem,8vw,8.5rem);line-height:.88;letter-spacing:.02em;color:var(--rose)}
.statement h2 small{font-family:'Poppins',sans-serif;font-size:.2em;font-style:normal;font-weight:300;letter-spacing:.3em;color:var(--plum-soft);text-transform:uppercase;display:block;margin-bottom:8px}

/* SERVICES BLOCKS */
.services-body{background:var(--cream);padding:60px 0 120px}
.svc-block{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;min-height:80vh;padding:0 60px;gap:0 100px;position:relative}
.svc-block.rev{grid-template-columns:.9fr 1.1fr}
.svc-block.rev .svc-media{order:2}
.svc-block.rev .svc-copy{order:1;padding-left:0;padding-right:60px}
.svc-media{position:relative;background:var(--white);padding:12px;box-shadow:0 26px 56px rgba(230,74,124,.2);transform:rotate(-2deg)}
.svc-block.rev .svc-media{transform:rotate(2deg)}
.svc-media img{width:100%;height:520px;object-fit:cover;display:block;transform:scale(1.08);transition:transform 1.4s var(--ease)}
.svc-block.in .svc-media img{transform:scale(1)}
.svc-copy{padding-left:40px}
.svc-num2{width:96px;height:96px;border-radius:50%;border:2px dashed var(--rose);background:var(--white);display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:1.9rem;color:var(--rose-deep);margin-bottom:18px;transform:rotate(-6deg)}
.svc-copy h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2rem,4vw,4.3rem);line-height:.92;letter-spacing:.02em;color:var(--plum);margin-bottom:22px}
.svc-copy p{font-size:.95rem;line-height:1.9;color:var(--plum-soft);margin-bottom:36px;max-width:440px}
.svc-cta{display:inline-block;position:relative;padding-bottom:12px}
.svc-cta span{font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;font-weight:700;color:var(--plum);transition:color .3s}
.svc-cta-line{position:absolute;bottom:0;left:0;width:40px;height:2px;background-image:repeating-linear-gradient(to right,var(--rose) 0 6px,transparent 6px 11px);transition:width .5s var(--ease)}
.svc-cta:hover span{color:var(--rose-deep)}
.svc-cta:hover .svc-cta-line{width:100%}

.authority{padding:120px 60px;background:var(--cream);text-align:center}
.authority-label{font-family:'Caveat',cursive;font-size:1.2rem;font-weight:700;color:var(--rose-deep);margin-bottom:44px;display:block}
.authority-logos{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:20px}
.logo-name{
  font-family:'Bebas Neue',sans-serif;font-size:clamp(1rem,2.2vw,1.5rem);letter-spacing:.1em;color:var(--plum-soft);
  border:1.5px dashed rgba(230,74,124,.35);border-radius:100px;padding:12px 24px;background:var(--white);
  transition:color .3s,border-color .3s,transform .3s var(--bounce);cursor:default;
}
.logo-name:hover{color:var(--rose-deep);border-color:var(--rose);transform:rotate(-3deg)}

.final{padding:180px 60px;background:var(--hotpink);text-align:center;position:relative;overflow:hidden}
.final::before{content:'';position:absolute;inset:0;background-image:var(--confetti);background-repeat:repeat;background-size:110px 110px;opacity:.3;pointer-events:none}
.final-inner{position:relative;z-index:2;max-width:900px;margin:0 auto}
.final h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,7vw,8rem);line-height:.9;letter-spacing:.02em;color:var(--white);margin-bottom:10px}
.final h2 em{font-style:italic;color:#FFE1EC;font-family:'Poppins',sans-serif;font-size:.45em;font-weight:300;letter-spacing:.08em;display:block;margin-top:10px}
.final-cta-wrap{margin-top:50px;display:flex;justify-content:center}

/* ── FOOTER — deep plum bookend, cream text, pink accents ── */
.site-footer{background:var(--plum);position:relative;overflow:hidden}
.site-footer::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background-image:repeating-linear-gradient(to right,var(--pink) 0 10px,transparent 10px 18px);opacity:.6}
.site-footer::after{content:'';position:absolute;bottom:-20%;right:-10%;width:700px;height:700px;background:radial-gradient(circle,rgba(230,74,124,.18) 0%,transparent 70%);pointer-events:none}
.footer-statement{max-width:1400px;margin:0 auto;padding:100px 60px 0;display:grid;grid-template-columns:1fr auto;align-items:flex-end;gap:40px;position:relative;z-index:2}
.footer-statement-quote{font-family:'Poppins',sans-serif;font-size:clamp(1.4rem,3.2vw,2.8rem);font-weight:300;font-style:italic;line-height:1.25;color:rgba(255,247,241,.5);max-width:820px;letter-spacing:.01em}
.footer-statement-quote em{font-style:normal;color:var(--pink)}
.footer-coords{text-align:right;padding-bottom:6px}
.footer-coords span{display:block;font-family:'Poppins',sans-serif;font-size:.6rem;letter-spacing:.35em;text-transform:uppercase;color:rgba(255,247,241,.4);line-height:2}
.footer-coords strong{font-weight:400;color:var(--pink)}
.footer-rule{max-width:1400px;margin:60px auto 0;padding:0 60px;position:relative;z-index:2}
.footer-rule::after{content:'';display:block;height:2px;background-image:repeating-linear-gradient(to right,var(--pink) 0 8px,transparent 8px 14px);opacity:.4}
.footer-columns{max-width:1400px;margin:0 auto;padding:0 60px;display:grid;grid-template-columns:2fr 1fr 1fr;position:relative;z-index:2}
.footer-col{padding:56px 0}
.footer-col + .footer-col{padding-left:56px;border-left:1px dashed rgba(255,247,241,.14)}
.footer-col-eyebrow{font-family:'Caveat',cursive;font-size:1.1rem;font-weight:700;color:var(--pink);margin-bottom:26px;display:block}
.footer-identity-name{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.8rem,6vw,5.5rem);line-height:.88;letter-spacing:.06em;color:var(--white);display:block;margin-bottom:4px}
.footer-identity-name-accent{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.8rem,6vw,5.5rem);line-height:.88;letter-spacing:.06em;color:transparent;-webkit-text-stroke:1.5px var(--pink);display:block;margin-bottom:28px;transform:rotate(-1deg)}
.footer-identity-desc{font-size:.82rem;line-height:1.85;color:rgba(255,247,241,.48);max-width:300px;font-weight:300}
.footer-identity-desc em{font-style:italic;color:rgba(255,247,241,.75)}
.footer-nav-list{list-style:none;display:flex;flex-direction:column}
.footer-nav-list li{border-bottom:1px dashed rgba(255,247,241,.14)}
.footer-nav-list li:first-child{border-top:1px dashed rgba(255,247,241,.14)}
.footer-nav-list li a{display:flex;align-items:center;justify-content:space-between;padding:14px 0;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,247,241,.55);font-weight:500;transition:color .35s,padding-left .35s var(--ease);position:relative;overflow:hidden}
.footer-nav-list li a:hover{color:var(--white);padding-left:8px}
.footer-nav-arrow{font-size:.65rem;opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s var(--ease);color:var(--pink)}
.footer-nav-list li a:hover .footer-nav-arrow{opacity:1;transform:translateX(0)}
.footer-connect-block{margin-bottom:32px}
.footer-connect-label{font-size:.55rem;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,247,241,.35);display:block;margin-bottom:10px}
.footer-connect-value{font-size:.82rem;color:rgba(255,247,241,.65);letter-spacing:.05em;transition:color .3s;display:inline-block}
.footer-connect-value:hover{color:var(--pink)}
.footer-credentials{margin-top:28px;padding-top:28px;border-top:1px dashed rgba(255,247,241,.14)}
.footer-credential-tag{display:inline-block;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--pink);border:1.5px dashed rgba(255,143,174,.4);border-radius:100px;padding:6px 12px;margin:4px 5px 4px 0;transition:border-color .3s,color .3s,transform .3s var(--bounce)}
.footer-credential-tag:nth-child(odd){transform:rotate(-2deg)}
.footer-credential-tag:nth-child(even){transform:rotate(2deg)}
.footer-credential-tag:hover{color:var(--white);border-color:var(--pink);transform:scale(1.06) rotate(0deg)}
.footer-lower-rule{max-width:1400px;margin:0 auto;padding:0 60px;position:relative;z-index:2}
.footer-lower-rule::after{content:'';display:block;height:1px;background:rgba(255,247,241,.1)}
.footer-base{max-width:1400px;margin:0 auto;padding:28px 60px 60px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;position:relative;z-index:2}
.footer-base-copy{font-size:.6rem;letter-spacing:.12em;color:rgba(255,247,241,.35)}
.footer-base-monogram{
  font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:.4em;color:var(--pink);text-align:center;user-select:none;
  width:46px;height:46px;border:2px dashed rgba(255,143,174,.5);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto;
}
.footer-base-sig{text-align:right;font-family:'Caveat',cursive;font-size:1.05rem;font-weight:700;color:rgba(255,247,241,.5)}
.footer-base-sig em{font-style:normal;color:var(--pink)}

/* ── SCROLL REVEAL ── */
.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:translateY(0)}

/* ============================================================
   GALLERY / EVENTS / BOOKING
   ============================================================ */
.gal-hero{height:100vh;min-height:600px;position:relative;display:flex;align-items:flex-end;overflow:hidden}
.gal-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.05);animation:phz 16s var(--ease) forwards}
.gal-hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(59,21,48,.96) 0%,rgba(59,21,48,.25) 70%,transparent 100%)}
.gal-hero-bg-text{position:absolute;right:-2vw;bottom:-2vh;font-family:'Bebas Neue',sans-serif;font-size:clamp(14rem,26vw,36rem);line-height:.8;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px rgba(255,143,174,.15);user-select:none;pointer-events:none;z-index:1;white-space:nowrap}
.gal-hero-content{position:relative;z-index:2;padding:0 60px 80px;max-width:900px}
.gal-hero-content .back-link{display:inline-flex;align-items:center;gap:10px;font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:24px;transition:color .3s;background-image:var(--squiggle-blush);background-repeat:repeat-x;background-position:0 100%;background-size:16px 5px;padding-bottom:5px}
.gal-hero-content .back-link:hover{color:var(--pink)}
.gal-eyebrow{font-size:.65rem;letter-spacing:.4em;text-transform:uppercase;color:var(--pink);opacity:.95;margin-bottom:16px;display:flex;align-items:center;gap:14px}
.gal-eyebrow::before{content:'';display:block;width:24px;height:1px;background:var(--pink)}
.gal-hero-content h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(3rem,8vw,8.5rem);line-height:.9;letter-spacing:.02em;color:var(--white);opacity:0;transform:translateY(40px) rotate(1deg);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.gal-hero-content h1.show{opacity:1;transform:translateY(0) rotate(0deg)}

.gal-grid{padding:80px 40px 120px;display:grid;grid-template-columns:repeat(6,1fr);gap:14px;max-width:1600px;margin:0 auto;background:var(--cream)}
.gal-item{position:relative;overflow:hidden;border-radius:4px;opacity:0;transform:translateY(60px);transition:opacity 1s var(--ease),transform 1.1s var(--ease);background:var(--white);padding:8px}
.gal-item.show{opacity:1;transform:translateY(0)}
.gal-item:nth-child(6n+1){grid-column:span 4;height:600px;transform:translateY(60px) rotate(-1deg)}
.gal-item:nth-child(6n+2){grid-column:span 2;height:400px;transform:translateY(60px) rotate(1deg)}
.gal-item:nth-child(6n+3){grid-column:span 2;height:400px;transform:translateY(60px) rotate(-1deg)}
.gal-item:nth-child(6n+4){grid-column:span 4;height:600px;transform:translateY(60px) rotate(1deg)}
.gal-item:nth-child(6n+5){grid-column:span 3;height:440px;transform:translateY(60px) rotate(-1deg)}
.gal-item:nth-child(6n+6){grid-column:span 3;height:440px;transform:translateY(60px) rotate(1deg)}
.gal-item.show:nth-child(6n+1){transform:translateY(0) rotate(-1deg)}
.gal-item.show:nth-child(6n+2){transform:translateY(0) rotate(1deg)}
.gal-item.show:nth-child(6n+3){transform:translateY(0) rotate(-1deg)}
.gal-item.show:nth-child(6n+4){transform:translateY(0) rotate(1deg)}
.gal-item.show:nth-child(6n+5){transform:translateY(0) rotate(-1deg)}
.gal-item.show:nth-child(6n+6){transform:translateY(0) rotate(1deg)}
.gal-item img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.04);transition:transform .5s var(--ease),filter .4s}
.gal-item:hover{transform:rotate(0deg) scale(1.015) !important;box-shadow:0 24px 50px rgba(230,74,124,.3);z-index:2}
.gal-item:hover img{filter:brightness(1.05)}

.gal-quote{grid-column:span 6;padding:120px 60px;position:relative;opacity:0;transform:translateY(50px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.gal-quote.show{opacity:1;transform:translateY(0)}
.gal-quote::before{content:'\201C';position:absolute;top:60px;left:50px;font-family:'Bebas Neue',sans-serif;font-size:12rem;line-height:1;color:rgba(230,74,124,.1);pointer-events:none}
.gal-quote blockquote{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,5vw,5rem);line-height:.95;letter-spacing:.02em;color:var(--plum);max-width:1100px;margin:0 auto 28px;text-align:center}
.gal-quote blockquote em{font-style:normal;color:var(--rose-deep)}
.gal-quote cite{display:block;text-align:center;font-family:'Caveat',cursive;font-size:1.2rem;font-weight:700;color:var(--rose-deep);margin-top:20px}
.gal-quote cite::before{content:'';display:inline-block;width:16px;height:15px;margin-right:8px;vertical-align:middle;background-image:var(--doodle-heart);background-repeat:no-repeat;background-size:100% 100%;transform:translateY(-2px)}

.lightbox{position:fixed;inset:0;background:rgba(59,21,48,.96);z-index:9000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}
.lightbox.open{opacity:1;pointer-events:all}
.lb-img{max-width:90vw;max-height:86vh;object-fit:contain;background:var(--white);padding:14px;box-shadow:0 30px 70px rgba(0,0,0,.5);transform:rotate(-1deg)}
.lb-close{position:absolute;top:28px;right:36px;font-family:'Bebas Neue',sans-serif;font-size:1.4rem;letter-spacing:.15em;color:rgba(255,255,255,.6);cursor:none;transition:color .3s;background:none;border:none}
.lb-close:hover{color:var(--pink)}
.lb-prev,.lb-next{position:absolute;top:50%;transform:translateY(-50%);background:none;border:2px dashed rgba(255,255,255,.35);border-radius:50%;color:rgba(255,255,255,.6);font-size:1.6rem;width:52px;height:52px;cursor:none;transition:color .3s,border-color .3s}
.lb-prev{left:24px}.lb-next{right:24px}
.lb-prev:hover,.lb-next:hover{color:var(--pink);border-color:var(--pink)}

/* EVENTS */
.events-hero{padding:220px 60px 100px;position:relative;overflow:hidden;background:var(--cream)}
.events-hero::before{content:'EVENTS';position:absolute;right:-2vw;top:50%;transform:translateY(-50%);font-family:'Bebas Neue',sans-serif;font-size:clamp(12rem,22vw,30rem);line-height:.85;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px rgba(230,74,124,.08);user-select:none;pointer-events:none}
.events-hero-inner{max-width:1300px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:flex-end}
.events-eyebrow{font-size:.65rem;letter-spacing:.4em;text-transform:uppercase;color:var(--rose-deep);opacity:.9;margin-bottom:20px;display:flex;align-items:center;gap:14px}
.events-eyebrow::before{content:'';display:block;width:24px;height:1px;background:var(--rose)}
.events-h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(4rem,10vw,11rem);line-height:.88;letter-spacing:.02em;color:var(--plum)}
.events-h1 em{font-style:normal;color:var(--rose)}
.events-intro-p{font-size:1rem;line-height:1.9;color:var(--plum-soft);max-width:420px;align-self:flex-end;padding-bottom:8px}

.events-grid{padding:0 60px 160px;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);gap:18px;background:var(--cream)}
.event-card{position:relative;border-radius:8px;overflow:hidden;cursor:none;opacity:0;transform:translateY(50px) scale(.97);transition:opacity 1s var(--ease),transform 1s var(--ease),box-shadow .5s;border:2px dashed transparent}
.event-card.in{opacity:1;transform:translateY(0) scale(1)}
.event-card:nth-child(1){grid-column:span 4;height:68vh}
.event-card:nth-child(2){grid-column:span 2;height:68vh}
.event-card:nth-child(3){grid-column:span 3;height:52vh}
.event-card:nth-child(4){grid-column:span 3;height:52vh}
.event-card:hover{box-shadow:0 40px 80px rgba(230,74,124,.3);border-color:var(--pink)}
.event-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.08);transition:transform 1.2s var(--ease)}
.event-card:hover .event-bg{transform:scale(1) translateY(-6px)}
.event-card::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(59,21,48,.88) 0%,rgba(59,21,48,.3) 55%,transparent 100%)}
.event-num{position:absolute;top:22px;right:24px;z-index:3;width:44px;height:44px;border-radius:50%;border:2px dashed rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:.8rem;letter-spacing:.1em;color:var(--white);transform:rotate(-6deg)}
.event-text{position:absolute;bottom:0;left:0;right:0;padding:36px;z-index:3;transform:translateY(6px);transition:transform .6s var(--ease)}
.event-card:hover .event-text{transform:translateY(0)}
.event-text h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.6rem,3vw,2.8rem);letter-spacing:.04em;color:var(--white);line-height:.95;margin-bottom:10px}
.event-text p{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.event-arrow{display:inline-flex;align-items:center;gap:8px;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--pink);margin-top:14px;opacity:0;transform:translateX(-8px);transition:opacity .4s,transform .4s var(--ease)}
.event-card:hover .event-arrow{opacity:1;transform:translateX(0)}

/* BOOKING */
.book-hero{height:100vh;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.book-hero-img{position:absolute;inset:0;background:url('booking.webp') center/cover no-repeat;transform:scale(1.05);animation:phz 16s var(--ease) forwards;filter:brightness(.34) contrast(1.1) saturate(1.1)}
.book-hero-grad{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(59,21,48,.15) 0%,rgba(59,21,48,.94) 100%),radial-gradient(ellipse at 20% 50%,rgba(230,74,124,.15) 0%,transparent 60%)}
.book-hero-ghost{position:absolute;bottom:-6vh;right:-3vw;font-family:'Bebas Neue',sans-serif;font-size:clamp(16rem,28vw,38rem);line-height:.8;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px rgba(255,143,174,.15);user-select:none;pointer-events:none;z-index:1;white-space:nowrap}
.book-hero-content{position:relative;z-index:2;text-align:center;max-width:860px;padding:0 40px}
.book-eyebrow{font-size:.6rem;letter-spacing:.55em;text-transform:uppercase;color:var(--pink);opacity:.95;display:block;margin-bottom:28px}
.book-hero-content h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(3.5rem,9vw,9.5rem);line-height:.88;letter-spacing:.02em;color:var(--white);margin-bottom:28px}
.book-hero-content h1 em{font-style:normal;color:var(--pink)}
.book-hero-content p{font-size:.98rem;line-height:1.9;color:rgba(255,255,255,.72);max-width:480px;margin:0 auto}
.book-hero-scroll{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px}
.book-hero-scroll span{font-size:.58rem;letter-spacing:.35em;text-transform:uppercase;color:rgba(255,255,255,.6);font-style:italic}
.scroll-line{width:1px;height:56px;position:relative;overflow:hidden;background:rgba(255,255,255,.2)}
.scroll-line::after{content:'';position:absolute;top:-100%;left:0;width:1px;height:100%;background:var(--pink);animation:sl 2.4s var(--ease) infinite}
@keyframes sl{0%{top:-100%}100%{top:100%}}

.book-body{width:min(1400px,92%);margin:0 auto;padding:120px 0 160px;display:grid;grid-template-columns:200px 1fr .5fr;gap:0 60px;align-items:flex-start;background:var(--cream)}
.step-rail{position:sticky;top:110px;padding-top:8px}
.step-rail-item{display:flex;align-items:flex-start;gap:16px;padding:20px 0;border-bottom:1px dashed rgba(230,74,124,.25);cursor:pointer;transition:opacity .35s;opacity:.35}
.step-rail-item:first-child{border-top:1px dashed rgba(230,74,124,.25)}
.step-rail-item.active{opacity:1}
.step-rail-item.done{opacity:.6}
.step-rail-item.done .sri-num{border-color:var(--rose);color:var(--rose-deep)}
.step-rail-item.active .sri-num{border-color:var(--rose);background:var(--hotpink);color:var(--white);transform:rotate(-6deg)}
.sri-num{width:32px;height:32px;border-radius:50%;border:2px dashed rgba(230,74,124,.35);background:var(--white);display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:.72rem;letter-spacing:.12em;color:var(--plum-soft);flex-shrink:0;transition:all .4s var(--bounce)}
.sri-label{font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--plum-faint);display:block;margin-bottom:3px}
.sri-title{font-size:.78rem;color:var(--plum-soft);font-weight:400;line-height:1.3}
.step-rail-item.active .sri-title{color:var(--plum);font-weight:600}
.step-rail-connector{width:1px;height:24px;background-image:repeating-linear-gradient(to bottom,rgba(230,74,124,.35) 0 4px,transparent 4px 8px);margin-left:15px}

.stage-shell{position:relative;min-height:560px}
.stage{position:absolute;width:100%;opacity:0;transform:translateY(24px);pointer-events:none;transition:opacity .65s var(--ease),transform .65s var(--ease)}
.stage.active{opacity:1;transform:translateY(0);pointer-events:auto;position:relative}
.stage-eyebrow{font-size:.6rem;letter-spacing:.45em;text-transform:uppercase;color:var(--rose-deep);opacity:.9;display:block;margin-bottom:16px}
.stage h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.2rem,5vw,5rem);line-height:.9;letter-spacing:.02em;color:var(--plum);margin-bottom:14px}
.stage-subtext{font-size:.9rem;line-height:1.85;color:var(--plum-soft);max-width:520px;margin-bottom:48px}

.service-grid{display:flex;flex-direction:column;gap:12px;margin-bottom:40px}
.svc-card{padding:26px 30px;border:2px dashed rgba(230,74,124,.28);border-radius:6px;background:var(--white);cursor:none;text-align:left;width:100%;transition:border-color .4s var(--ease),background .4s,transform .3s var(--bounce);position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px}
.svc-card-indicator{width:14px;height:14px;border-radius:50%;border:2px dashed rgba(230,74,124,.4);flex-shrink:0;transition:background .35s,border-color .35s}
.svc-card:hover{border-color:var(--rose);transform:rotate(-.4deg)}
.svc-card.chosen{border-color:var(--hotpink);background:var(--blush-bg);transform:rotate(0deg)}
.svc-card.chosen .svc-card-indicator{background:var(--hotpink);border-color:var(--hotpink)}
.svc-card-tag{font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--rose-deep);display:block;margin-bottom:6px;opacity:.9}
.svc-card h3{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.4rem,2.5vw,2rem);letter-spacing:.04em;color:var(--plum);margin-bottom:6px;line-height:1}
.svc-card p{font-size:.82rem;line-height:1.7;color:var(--plum-soft)}
.svc-card-arrow{font-size:.85rem;color:var(--plum-faint);transition:color .35s,transform .35s}
.svc-card:hover .svc-card-arrow,.svc-card.chosen .svc-card-arrow{color:var(--rose-deep);transform:translateX(4px)}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field{position:relative;margin-bottom:12px}
.field input,.field textarea,.field select{width:100%;padding:28px 20px 14px;background:var(--white);border:2px dashed rgba(230,74,124,.28);border-radius:6px;color:var(--plum);font-family:'Poppins',sans-serif;font-size:.9rem;font-weight:300;outline:none;transition:border-color .4s,background .4s;appearance:none}
.field select option{background:var(--white);color:var(--plum)}
.field textarea{height:140px;resize:none}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--hotpink);background:var(--blush-bg)}
.field label{position:absolute;top:20px;left:20px;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--plum-faint);pointer-events:none;transition:all .35s var(--ease)}
.field input:focus+label,.field input:not(:placeholder-shown)+label,.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label,.field select:focus+label,.field.filled label{transform:translateY(-10px);font-size:.55rem;color:var(--rose-deep)}

.access-wrap{padding:40px 0}
.access-pulse{width:1px;height:80px;background:linear-gradient(to bottom,var(--hotpink),transparent);margin:0 0 40px;animation:ap 2s var(--ease) infinite}
@keyframes ap{0%,100%{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}
.access-note{font-family:'Caveat',cursive;font-size:1.1rem;font-weight:700;color:var(--rose-deep);margin-top:40px}

.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}
.cal-month{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;letter-spacing:.06em;color:var(--plum)}
.cal-btn{width:40px;height:40px;border-radius:50%;border:2px dashed rgba(230,74,124,.35);background:var(--white);color:var(--rose-deep);font-size:1rem;cursor:none;transition:border-color .3s,color .3s}
.cal-btn:hover{border-color:var(--rose);color:var(--rose-deep)}
.weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:10px;gap:4px}
.weekdays span{text-align:center;font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;color:var(--plum-faint)}
#calGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cday{aspect-ratio:1;border-radius:4px;border:1.5px dashed rgba(230,74,124,.2);background:var(--white);display:flex;align-items:center;justify-content:center;font-size:.82rem;color:var(--plum-soft);cursor:none;transition:all .3s var(--ease)}
.cday:hover:not(.past):not(.blocked){border-color:var(--rose);color:var(--plum);background:var(--blush-bg)}
.cday.chosen{background:var(--hotpink);border-color:var(--hotpink);border-style:solid;color:var(--white);font-weight:600;transform:rotate(-4deg)}
.cday.past{opacity:.18;pointer-events:none}
.cday.blocked{opacity:.18;pointer-events:none}
.times-section{margin-top:32px}
.times-label{font-size:.58rem;letter-spacing:.35em;text-transform:uppercase;color:var(--plum-faint);margin-bottom:16px;display:block}
.times-wrap{display:flex;flex-wrap:wrap;gap:8px}
.tslot{padding:10px 18px;border-radius:100px;border:1.5px dashed rgba(230,74,124,.3);font-size:.75rem;letter-spacing:.1em;cursor:none;transition:all .3s;color:var(--plum-soft);background:var(--white)}
.tslot:hover:not(.blocked){border-color:var(--rose);color:var(--plum)}
.tslot.chosen{background:var(--hotpink);border-color:var(--hotpink);border-style:solid;color:var(--white);font-weight:600;transform:rotate(-2deg)}
.tslot.blocked{opacity:.18;pointer-events:none}

.review-block{border-top:2px dashed rgba(230,74,124,.25)}
.review-row{display:flex;justify-content:space-between;align-items:baseline;padding:18px 0;border-bottom:1px dashed rgba(230,74,124,.2)}
.review-row:last-child{border-bottom:none}
.review-key{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--plum-faint)}
.review-val{font-size:.88rem;color:var(--plum);text-align:right;max-width:55%}

.btn-primary{margin-top:36px;height:52px;padding:0 36px;background:var(--hotpink);color:var(--white);border:none;border-radius:100px;font-family:'Poppins',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;cursor:none;display:inline-flex;align-items:center;gap:12px;transition:background .3s,transform .3s var(--bounce);box-shadow:4px 4px 0 rgba(230,74,124,.35)}
.btn-primary:hover{background:var(--rose-deep);transform:translateY(-2px) rotate(-1.5deg)}

.book-aside{position:sticky;top:110px;height:fit-content}
.aside-inner{border:2px dashed var(--rose);border-radius:8px;padding:40px 32px;background:var(--white);transform:rotate(.6deg);box-shadow:0 20px 50px rgba(230,74,124,.15)}
.aside-top-eyebrow{font-family:'Caveat',cursive;font-size:1.15rem;font-weight:700;color:var(--rose-deep);display:block;margin-bottom:20px}
.aside-service-name{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.6rem,2.5vw,2.2rem);letter-spacing:.04em;line-height:1;color:var(--plum);margin-bottom:32px}
.aside-divider{height:1px;background-image:repeating-linear-gradient(to right,rgba(230,74,124,.3) 0 6px,transparent 6px 11px);margin:20px 0}
.aside-detail{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0}
.aside-detail span{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--plum-faint)}
.aside-detail strong{font-size:.82rem;color:var(--plum);font-weight:500;text-align:right}
.aside-endorsements{margin-top:32px;padding-top:28px;border-top:1px dashed rgba(230,74,124,.2)}
.aside-endorsements-label{font-size:.55rem;letter-spacing:.4em;text-transform:uppercase;color:var(--plum-faint);display:block;margin-bottom:14px}
.aside-tag{display:inline-block;font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-deep);border:1.5px dashed rgba(230,74,124,.35);border-radius:100px;padding:5px 11px;margin:2px 3px 2px 0}
.aside-trust{margin-top:24px;font-family:'Caveat',cursive;font-size:1.05rem;font-weight:500;line-height:1.6;color:var(--plum-soft)}

.success-screen{position:fixed;inset:0;background:var(--cream);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .8s var(--ease);z-index:9000}
.success-screen.open{opacity:1;visibility:visible}
.success-inner{text-align:center;max-width:680px;padding:40px;position:relative;z-index:2}
.success-screen::before{content:'';position:absolute;inset:0;background-image:var(--confetti);background-repeat:repeat;background-size:110px 110px;opacity:.35;pointer-events:none}
.success-inner .suc-line{width:1px;height:60px;background-image:repeating-linear-gradient(to bottom,var(--hotpink) 0 6px,transparent 6px 11px);margin:0 auto 32px}
.success-inner .suc-eyebrow{font-family:'Caveat',cursive;font-size:1.3rem;font-weight:700;color:var(--rose-deep);display:block;margin-bottom:20px}
.success-inner h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.8rem,7vw,7rem);line-height:.88;letter-spacing:.02em;color:var(--plum);margin-bottom:24px}
.success-inner p{font-size:.92rem;color:var(--plum-soft);line-height:1.9;max-width:440px;margin:0 auto}
.success-inner a{display:inline-block;margin-top:48px;font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--rose-deep);background-image:var(--squiggle);background-repeat:repeat-x;background-position:0 100%;background-size:16px 5px;padding-bottom:5px;transition:color .3s}
.success-inner a:hover{color:var(--hotpink)}

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  .svc-block,.svc-block.rev{grid-template-columns:1fr;padding:80px 32px;gap:40px;min-height:auto}
  .svc-block.rev .svc-media,.svc-block.rev .svc-copy{order:unset}
  .svc-block.rev .svc-copy{padding:0}.svc-copy{padding-left:0}.svc-media img{height:340px}
  .statement{padding:100px 32px}.authority{padding:80px 32px}.final{padding:120px 32px}
  .book-body{grid-template-columns:1fr;padding:100px 24px 120px;gap:0}
  .step-rail{position:relative;top:auto;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:48px;padding-top:0}
  .step-rail-item{padding:10px 16px;border:1.5px dashed rgba(230,74,124,.3);width:auto;flex:1}
  .step-rail-connector{display:none}
  .book-aside{position:relative;top:auto;margin-top:48px}
  .form-row{grid-template-columns:1fr}
}
@media(max-width:1024px){
  .bio-section{grid-template-columns:1fr;gap:40px;padding:100px 32px}
  .bio-rail{display:none}
  .impact-panel,.impact-panel.rev{grid-template-columns:1fr;gap:40px}
  .impact-panel.rev .impact-frame{order:0}
  .impact-img{height:340px}
  .services{padding:100px 32px}.impact{padding:100px 32px}
  .page-hero-content{padding:0 32px 64px}.bio-wrap{padding:100px 32px}
  .timeline-section{padding:100px 32px}.tl-grid{grid-template-columns:1fr}.tl-line{display:none}
  .awards-section{padding:100px 32px}
  .about-closing{padding:100px 32px}
  .footer-statement{grid-template-columns:1fr;padding:80px 32px 0}
  .footer-coords{text-align:left}
  .footer-rule,.footer-lower-rule{padding:0 32px}
  .footer-columns{grid-template-columns:1fr;padding:0 32px}
  .footer-col + .footer-col{padding-left:0;border-left:none;border-top:1px dashed rgba(255,247,241,.14)}
  .footer-base{grid-template-columns:1fr;gap:12px;padding:28px 32px 48px;text-align:center}
  .footer-base-sig{text-align:center}
  .footer-base-monogram{display:none}
  .pill-links,.pill-book,.pill-back{display:none}
  .pill-menu-btn{display:flex}
  .hero-content{padding:0 32px 64px}
  .hero-scroll{right:32px}
  .closing{padding:120px 32px}
  .hero-sticker{width:90px;height:90px;font-size:.85rem;right:5%}
  .gal-hero-content{padding:0 32px 64px}
  .gal-grid{grid-template-columns:1fr 1fr;padding:60px 24px 80px;gap:10px}
  .gal-item:nth-child(n){grid-column:span 2;height:360px;transform:translateY(60px) rotate(0deg) !important}
  .gal-item.show:nth-child(n){transform:translateY(0) rotate(0deg) !important}
  .gal-quote{padding:80px 32px}
  .gal-quote blockquote{font-size:2rem}
  .events-hero{padding:160px 32px 80px}
  .events-hero-inner{grid-template-columns:1fr}
  .events-grid{grid-template-columns:1fr;padding:0 32px 100px}
  .event-card:nth-child(n){grid-column:span 1;height:56vh}
}
@media(max-width:600px){
  .hero-content h1{font-size:3.2rem}
  .hero-monogram{font-size:12rem}
  .impact-img{height:240px}
  .services-header{margin-bottom:60px}
  .service-row{grid-template-columns:1fr;gap:16px;padding:44px 0}
  .svc-num{margin-bottom:6px}
  .footer-identity-name,.footer-identity-name-accent{font-size:2.8rem}
  .award-card{width:150px}
  .hero-sticker{display:none}
  .gal-grid{grid-template-columns:1fr;gap:8px}
  .gal-item:nth-child(n){grid-column:span 1;height:280px}
  .events-hero-inner{gap:24px}
  .book-hero{height:90vh}
}

/* ============================================================
   NEWSLETTER — standalone signup page + homepage teaser section
   ============================================================ */

.nl-page{background:var(--cream);min-height:100vh;position:relative;overflow-x:hidden}
.nl-topbar{display:flex;align-items:center;justify-content:space-between;padding:28px 48px;position:relative;z-index:5}
.nl-topbar-logo{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:.22em;color:var(--plum)}
.nl-topbar-back{
  display:inline-flex;align-items:center;gap:8px;font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;font-weight:600;
  color:var(--rose-deep);border:1.5px dashed rgba(230,74,124,.4);border-radius:100px;padding:9px 18px;
  background:var(--white);transition:background .3s,transform .3s var(--bounce);
}
.nl-topbar-back:hover{background:var(--blush-bg);transform:rotate(-2deg)}

/* HERO */
.nl-hero{max-width:1300px;margin:0 auto;padding:40px 48px 100px;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;position:relative}
.nl-hero::before{content:'';position:absolute;top:-10%;left:-6%;width:420px;height:420px;background-image:var(--blob);background-size:100% 100%;opacity:.55;z-index:-1;pointer-events:none}
.nl-eyebrow{font-family:'Caveat',cursive;font-size:1.3rem;font-weight:700;color:var(--rose-deep);display:inline-block;margin-bottom:18px;transform:rotate(-2deg)}
.nl-headline{font-family:'Bebas Neue',sans-serif;font-size:clamp(3rem,7vw,6.5rem);line-height:.92;letter-spacing:.02em;color:var(--plum);margin-bottom:24px}
.nl-headline em{font-style:normal;color:var(--hotpink)}
.nl-sub{font-size:1.02rem;line-height:1.9;color:var(--plum-soft);max-width:460px}

/* ENVELOPE */
.nl-envelope-wrap{display:flex;align-items:center;justify-content:center;position:relative}
.nl-envelope{width:280px;height:190px;position:relative;filter:drop-shadow(0 26px 40px rgba(230,74,124,.28));animation:envFloat 5s ease-in-out infinite}
@keyframes envFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-14px) rotate(1deg)}}
.nl-envelope-body{position:absolute;inset:0;background:var(--white);border-radius:10px;border:2px solid var(--blush-bg)}
.nl-envelope-flap{position:absolute;top:0;left:0;width:0;height:0;border-left:140px solid transparent;border-right:140px solid transparent;border-top:95px solid var(--pink);transform-origin:top center;transition:transform .6s var(--bounce)}
.nl-envelope.open .nl-envelope-flap{transform:rotateX(180deg)}
.nl-envelope-seal{position:absolute;top:64px;left:50%;transform:translateX(-50%);width:52px;height:52px;border-radius:50%;background:var(--hotpink);display:flex;align-items:center;justify-content:center;color:var(--white);font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:.05em;box-shadow:0 6px 14px rgba(230,74,124,.4);z-index:2}
.nl-envelope-lines{position:absolute;left:26px;right:26px;bottom:28px;display:flex;flex-direction:column;gap:9px}
.nl-envelope-lines span{display:block;height:5px;border-radius:4px;background:var(--blush-bg)}
.nl-envelope-lines span:nth-child(2){width:70%}
.nl-envelope-lines span:nth-child(3){width:45%}

/* BENEFITS */
.nl-benefits{max-width:1300px;margin:0 auto;padding:0 48px 100px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.nl-benefit-card{background:var(--white);border:2px dashed rgba(230,74,124,.3);border-radius:16px;padding:32px 24px;text-align:center;transition:transform .4s var(--bounce),border-color .3s}
.nl-benefit-card:hover{transform:translateY(-6px) rotate(-1deg);border-color:var(--rose)}
.nl-benefit-icon{width:56px;height:56px;border-radius:50%;background:var(--blush-bg);margin:0 auto 18px;display:flex;align-items:center;justify-content:center;font-size:1.4rem}
.nl-benefit-card h3{font-family:'Bebas Neue',sans-serif;font-size:1.15rem;letter-spacing:.03em;color:var(--plum);margin-bottom:8px}
.nl-benefit-card p{font-size:.82rem;line-height:1.65;color:var(--plum-soft)}

/* FORM CARD */
.nl-form-section{max-width:700px;margin:0 auto;padding:0 48px 140px;position:relative}
.nl-form-card{background:var(--white);border:2px dashed var(--rose);border-radius:20px;padding:52px 44px;text-align:center;position:relative;box-shadow:0 30px 60px rgba(230,74,124,.16);transform:rotate(-.4deg)}
.nl-form-card .tape{top:-14px;left:44px;transform:rotate(-8deg)}
.nl-form-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.8rem,4vw,2.6rem);color:var(--plum);margin-bottom:12px}
.nl-form-desc{font-size:.88rem;color:var(--plum-soft);margin-bottom:32px;line-height:1.7}
.nl-form-row{display:flex;flex-direction:column;gap:14px;margin-bottom:8px}
.nl-input{width:100%;padding:18px 20px;border-radius:100px;border:2px dashed rgba(230,74,124,.3);background:var(--cream);color:var(--plum);font-family:'Poppins',sans-serif;font-size:.9rem;font-weight:400;outline:none;transition:border-color .3s,background .3s;text-align:center}
.nl-input:focus{border-color:var(--hotpink);background:var(--white)}
.nl-submit{margin-top:10px;width:100%;height:56px;background:var(--hotpink);color:var(--white);border:none;border-radius:100px;font-family:'Poppins',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:background .3s,transform .3s var(--bounce);box-shadow:4px 4px 0 rgba(230,74,124,.35)}
.nl-submit:hover{background:var(--rose-deep);transform:translateY(-2px) rotate(-1deg)}
.nl-submit:disabled{opacity:.6;pointer-events:none}
.nl-form-note{margin-top:20px;font-family:'Caveat',cursive;font-size:.95rem;font-weight:600;color:var(--plum-faint)}
.nl-error{color:var(--hotpink);font-size:.78rem;margin-top:14px;display:none;font-weight:600}
.nl-error.show{display:block}

.nl-success{display:none;text-align:center}
.nl-success.show{display:block}
.nl-form-body.hide{display:none}
.nl-success-badge{width:70px;height:70px;border-radius:50%;background:var(--hotpink);margin:0 auto 20px;display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:var(--white);animation:popIn .5s var(--bounce)}
@keyframes popIn{0%{transform:scale(0)}100%{transform:scale(1)}}
.nl-success h3{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.6rem,3.5vw,2.3rem);color:var(--plum);margin-bottom:12px}
.nl-success p{font-size:.92rem;color:var(--plum-soft);line-height:1.8;max-width:420px;margin:0 auto}

.nl-confetti-piece{position:fixed;top:-20px;z-index:9500;border-radius:2px;pointer-events:none;animation:confettiFall linear forwards}
@keyframes confettiFall{0%{transform:translateY(0) rotate(0deg);opacity:1}100%{transform:translateY(105vh) rotate(600deg);opacity:0}}

.nl-footer-mini{text-align:center;padding:0 48px 60px;font-size:.7rem;letter-spacing:.15em;color:var(--plum-faint);text-transform:uppercase}
.nl-footer-mini a{color:var(--rose-deep);text-decoration:underline}

/* ── HOMEPAGE TEASER SECTION (paste into index.html) ── */
.nl-teaser{padding:120px 60px;background:var(--blush-bg);position:relative;overflow:hidden}
.nl-teaser::before{content:'';position:absolute;top:-15%;right:-8%;width:480px;height:480px;background-image:var(--blob);background-size:100% 100%;opacity:.6;pointer-events:none}
.nl-teaser-inner{max-width:1100px;margin:0 auto;background:var(--white);border:2px dashed var(--rose);border-radius:24px;padding:64px 56px;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;position:relative;box-shadow:0 30px 60px rgba(230,74,124,.16);transform:rotate(-.3deg)}
.nl-teaser-inner .tape{top:-14px;left:60px;transform:rotate(-8deg)}
.nl-teaser-eyebrow{font-family:'Caveat',cursive;font-size:1.2rem;font-weight:700;color:var(--rose-deep);display:inline-block;margin-bottom:14px;transform:rotate(-2deg)}
.nl-teaser-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(2rem,4.5vw,3.2rem);line-height:.98;color:var(--plum);margin-bottom:14px}
.nl-teaser-title em{font-style:normal;color:var(--hotpink)}
.nl-teaser-text p{font-size:.92rem;line-height:1.85;color:var(--plum-soft);max-width:420px}
.nl-teaser-form{display:flex;flex-direction:column;gap:12px}
.nl-teaser-form-row{display:flex;gap:8px;flex-wrap:wrap}
.nl-teaser-input{flex:1;min-width:180px;padding:16px 20px;border-radius:100px;border:2px dashed rgba(230,74,124,.3);background:var(--cream);color:var(--plum);font-family:'Poppins',sans-serif;font-size:.85rem;outline:none;transition:border-color .3s,background .3s}
.nl-teaser-input:focus{border-color:var(--hotpink);background:var(--white)}
.nl-teaser-btn{height:50px;padding:0 26px;background:var(--hotpink);color:var(--white);border:none;border-radius:100px;font-family:'Poppins',sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:none;transition:background .3s,transform .3s var(--bounce);box-shadow:4px 4px 0 rgba(230,74,124,.3);white-space:nowrap}
.nl-teaser-btn:hover{background:var(--rose-deep);transform:translateY(-2px) rotate(-1.5deg)}
.nl-teaser-btn:disabled{opacity:.6;pointer-events:none}
.nl-teaser-note{font-family:'Caveat',cursive;font-size:.92rem;font-weight:600;color:var(--plum-faint)}
.nl-teaser-error{color:var(--hotpink);font-size:.74rem;font-weight:600;display:none}
.nl-teaser-error.show{display:block}
.nl-teaser-success{display:none;text-align:left}
.nl-teaser-success.show{display:block}
.nl-teaser-form.hide{display:none}
.nl-teaser-success h4{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;color:var(--plum);margin-bottom:8px}
.nl-teaser-success p{font-size:.85rem;color:var(--plum-soft);line-height:1.7}

@media(max-width:1024px){
  .nl-hero{grid-template-columns:1fr;padding:20px 32px 60px;text-align:center}
  .nl-hero::before{display:none}
  .nl-envelope-wrap{order:-1}
  .nl-benefits{grid-template-columns:1fr 1fr;padding:0 32px 80px}
  .nl-form-section{padding:0 32px 100px}
  .nl-teaser-inner{grid-template-columns:1fr;padding:44px 32px;text-align:center}
  .nl-teaser-text p{margin:0 auto}
  .nl-teaser-form-row{justify-content:center}
}
@media(max-width:600px){
  .nl-benefits{grid-template-columns:1fr}
  .nl-topbar{padding:20px 24px}
  .nl-form-card{padding:40px 26px}
}

/* ============================================================
   CUSTOM HAND-DRAWN DOODLES — pins, hearts, stars, sparkles, arrows
   Small, purposeful marks placed where they mean something —
   a pin by the city, a heart by a quote, an arrow at a button —
   rather than generic decoration scattered everywhere.
   ============================================================ */
:root{
  --doodle-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 50'%3E%3Cpath d='M20 2C10 2 3 10 3 20c0 14 17 27 17 27s17-13 17-27C37 10 30 2 20 2z' fill='none' stroke='%23E64A7C' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='20' cy='19' r='6' fill='none' stroke='%23E64A7C' stroke-width='2.5'/%3E%3C/svg%3E");
  --doodle-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 36'%3E%3Cpath d='M20 33C20 33 3 22 3 11.5C3 5 8 2 13 2C17 2 19.5 5 20 7C20.5 5 23 2 27 2C32 2 37 5 37 11.5C37 22 20 33 20 33Z' fill='none' stroke='%23FF2D77' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --doodle-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M20 2 C21 14 26 19 38 20 C26 21 21 26 20 38 C19 26 14 21 2 20 C14 19 19 14 20 2Z' fill='none' stroke='%23F3B94E' stroke-width='2.2' stroke-linejoin='round'/%3E%3C/svg%3E");
  --doodle-sparkle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 L14 10 L22 12 L14 14 L12 22 L10 14 L2 12 L10 10 Z' fill='%23F3B94E'/%3E%3C/svg%3E");
  --doodle-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 60'%3E%3Cpath d='M5 10 C 30 5, 60 45, 90 40' fill='none' stroke='%23C6316A' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M78 32 L92 40 L80 50' fill='none' stroke='%23C6316A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.doodle{position:absolute;pointer-events:none;user-select:none;background-repeat:no-repeat;background-size:100% 100%;z-index:4}
.doodle-inline{position:relative;display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-size:100% 100%;pointer-events:none}

.doodle-pin{width:24px;height:30px;background-image:var(--doodle-pin)}
.doodle-heart{width:26px;height:24px;background-image:var(--doodle-heart);animation:doodleBeat 1.8s ease-in-out infinite}
.doodle-star{width:30px;height:30px;background-image:var(--doodle-star);animation:doodleSpin 10s linear infinite}
.doodle-sparkle{width:20px;height:20px;background-image:var(--doodle-sparkle);animation:doodleTwinkle 2.2s ease-in-out infinite}
.doodle-arrow{width:84px;height:50px;background-image:var(--doodle-arrow)}
.doodle-arrow.flip{transform:scaleX(-1)}
.doodle-arrow.down{transform:rotate(70deg)}

@keyframes doodleBeat{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
@keyframes doodleSpin{to{transform:rotate(360deg)}}
@keyframes doodleTwinkle{0%,100%{opacity:.5;transform:scale(.8) rotate(0deg)}50%{opacity:1;transform:scale(1.15) rotate(14deg)}}

/* footer coordinate pin + signature heart — shared placement, small scale */
.footer-coords .doodle-pin{width:13px;height:16px;top:2px;margin-right:5px}
.footer-base-sig .doodle-heart{width:14px;height:13px;top:2px;margin-right:5px;animation-duration:1.4s}

  .nl-teaser{
    position:relative;
    padding:6.5rem 6vw 7rem;
    background:var(--cream);
    overflow:hidden;
  }
  .nl-teaser::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      radial-gradient(var(--ink-soft) 0.6px, transparent 0.6px);
    background-size:16px 16px;
    opacity:.05;
    pointer-events:none;
  }
  .nl-teaser-inner{
    position:relative;
    max-width:1100px;
    margin:0 auto;
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:4.5rem;
    align-items:center;
  }

  /* ---- PHOTO SIDE ---- */
  .nl-photo-col{ position:relative; }
  .polaroid{
    position:relative;
    background:#fff;
    padding:14px 14px 54px;
    box-shadow:0 18px 40px -14px rgba(42,33,28,.35);
    transform:rotate(-4deg);
    max-width:340px;
    margin:0 auto;
  }
  .polaroid img{
    display:block;
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
    filter:saturate(1.02);
  }
  .polaroid-caption{
    position:absolute;
    bottom:12px; left:0; right:0;
    text-align:center;
    font-family:'Caveat',cursive;
    font-size:1.25rem;
    color:var(--ink-soft);
    transform:rotate(1deg);
  }
  .tape-strip{
    position:absolute;
    width:74px; height:26px;
    background:linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.25)), var(--rose);
    opacity:.85;
    top:-14px; left:38px;
    transform:rotate(-8deg);
    box-shadow:0 2px 6px rgba(0,0,0,.15);
  }
  .tape-strip.two{
    left:auto; right:24px; top:auto; bottom:66px;
    transform:rotate(9deg);
    width:60px; height:24px;
    background:linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.25)), var(--gold);
  }

  .postmark{
    position:absolute;
    top:-26px; right:-22px;
    width:104px; height:104px;
    border:2px dashed var(--rose-deep);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    text-align:center;
    transform:rotate(9deg);
    background:var(--cream);
  }
  .postmark span{
    font-family:'Bebas Neue',sans-serif;
    font-size:.62rem;
    letter-spacing:.14em;
    line-height:1.25;
    color:var(--rose-deep);
    padding:0 8px;
  }

  /* ---- TEXT SIDE ---- */
  .nl-text-col{ position:relative; }
  .nl-eyebrow{
    display:inline-flex; align-items:center; gap:.5rem;
    font-family:'Poppins',sans-serif;
    font-size:.78rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--rose-deep);
    font-weight:600;
    margin-bottom:1rem;
  }
  .nl-title{
    font-family:'Bebas Neue',sans-serif;
    font-size:clamp(2.4rem, 4.2vw, 3.6rem);
    line-height:.98;
    letter-spacing:.01em;
    margin:0 0 1.1rem;
    color:var(--ink);
  }
  .nl-title em{
    font-style:normal;
    color:var(--rose-deep);
    position:relative;
    font-family:'Caveat',cursive;
    font-size:1.15em;
    font-weight:700;
  }
  .nl-body{
    font-size:1.02rem;
    line-height:1.65;
    color:var(--ink-soft);
    max-width:38ch;
    margin:0 0 1.6rem;
  }

  .letter-scrap{
    position:relative;
    background:var(--paper);
    padding:1.1rem 1.4rem;
    max-width:34ch;
    margin:0 0 2rem;
    transform:rotate(-1.2deg);
    box-shadow:0 10px 22px -12px rgba(42,33,28,.25);
  }
  .letter-scrap::before{
    content:"”";
    position:absolute;
    top:-18px; left:14px;
    font-family:'Bebas Neue',sans-serif;
    font-size:3rem;
    color:var(--rose);
    opacity:.5;
  }
  .letter-scrap p{
    margin:0;
    font-family:'Caveat',cursive;
    font-size:1.35rem;
    line-height:1.3;
    color:var(--ink);
  }

  .nl-cta-row{
    display:flex;
    align-items:center;
    gap:1.4rem;
    flex-wrap:wrap;
  }
  .wax-seal{
    display:inline-flex;
    align-items:center; justify-content:center;
    flex-direction:column;
    width:118px; height:118px;
    border-radius:50%;
    background:radial-gradient(circle at 35% 30%, var(--rose) 0%, var(--rose-deep) 70%);
    color:#fff;
    text-decoration:none;
    font-family:'Bebas Neue',sans-serif;
    letter-spacing:.04em;
    font-size:.95rem;
    text-align:center;
    box-shadow:0 14px 26px -10px rgba(147,71,90,.55);
    transform:rotate(-6deg);
    transition:transform .35s ease, box-shadow .35s ease;
    position:relative;
    flex-shrink:0;
  }
  .wax-seal::after{
    content:"";
    position:absolute; inset:8px;
    border:1px solid rgba(255,255,255,.4);
    border-radius:50%;
  }
  .wax-seal:hover{
    transform:rotate(0deg) scale(1.05);
    box-shadow:0 18px 32px -10px rgba(147,71,90,.65);
  }
  .wax-seal span.small{
    font-family:'Poppins',sans-serif;
    font-size:.55rem;
    letter-spacing:.1em;
    margin-top:2px;
    opacity:.85;
  }
  .nl-note{
    font-size:.85rem;
    color:var(--ink-soft);
    max-width:20ch;
    line-height:1.5;
    margin:0;
  }
  .nl-note a{ color:var(--rose-deep); text-decoration:underline; }

  @media (max-width: 860px){
    .nl-teaser{ padding:4.5rem 6vw 5rem; }
    .nl-teaser-inner{ grid-template-columns:1fr; gap:3rem; }
    .polaroid{ max-width:280px; }
    .nl-body, .letter-scrap{ max-width:none; }
  }


  @media (max-width:480px){
  .nl-topbar{
    padding:16px 20px;
    flex-wrap:wrap;
    gap:10px;
  }
  .nl-hero{
    padding:16px 20px 48px;
    display: block!important;
  }
  .nl-envelope-wrap{
    transform:scale(0.78);
    transform-origin:top center;
    margin-bottom:-40px; /* compensates for the empty space scale() leaves behind */
  }
  .nl-hero-photo{
    width:min(120px, 40vw);
  }
  .nl-benefits{
    padding:0 20px 60px;
    gap:14px;
  }
  .nl-form-section{
    padding:0 20px 80px;
  }
  .nl-form-card{
    padding:32px 20px;
  }
  .nl-form-photo{
    width:min(170px, 55vw);
  }
}