/* ============================================================
   DELPHINE BRASSERIE — coming soon
   A candlelit brasserie, a fashion editorial, and a
   handwritten invitation — had a very smart daughter.
   ============================================================ */

/* ---------- tokens ---------- */
:root{
  /* institutional core */
  --oxblood:        #8A1E1B;
  --oxblood-deep:   #5E1513;
  --oxblood-darker: #43100F;
  --classic-red:    #C7262E;
  --espresso:       #1E1513;
  --olive:          #6B6A43;

  /* paper + light */
  --cream:    #F1E4CB;
  --paper:    #E7D8BC;
  --champagne:#E4B98C;
  --gold:     #C9A062;
  --gold-deep:#B0853F;
  --rust:     #C04A22;
  --ink:      #2A1A14;

  /* type */
  --serif-display:'Bodoni Moda', 'Times New Roman', serif;
  --serif-body:'Cormorant Garamond', Georgia, serif;
  --script:'Pinyon Script', cursive;

  /* motion */
  --ease:cubic-bezier(.22,.61,.36,1);

  --gutter:clamp(20px, 5vw, 80px);
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  min-height:100%;
  font-family:var(--serif-body);
  color:var(--cream);
  background:var(--oxblood-darker);
  overflow-x:hidden;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  cursor:none;
}
@media (pointer:coarse){ body{ cursor:auto; } }
img,svg{ max-width:100%; }
button{ font:inherit; color:inherit; background:none; border:none; cursor:none; }
@media (pointer:coarse){ button{ cursor:pointer; } }
a{ color:inherit; text-decoration:none; }
.visually-hidden{ position:absolute!important; width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0; }

/* ---------- the page surface (aged oxblood poster) ---------- */
body::before{
  content:"";
  position:fixed; inset:0; z-index:-3;
  background:
    radial-gradient(120% 90% at 50% 22%, #7A1A18 0%, #631513 42%, #4A1110 74%, #380C0B 100%);
}
body::after{ /* warm candle bloom that follows nothing, just glows */
  content:"";
  position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(40% 35% at 50% 38%, rgba(228,185,140,.16), transparent 70%),
    radial-gradient(30% 30% at 16% 76%, rgba(201,160,98,.10), transparent 70%),
    radial-gradient(26% 26% at 84% 28%, rgba(199,38,46,.10), transparent 70%);
  mix-blend-mode:screen;
}

.atmosphere{ position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.9; }

.grain{
  position:fixed; inset:-50%; z-index:60; pointer-events:none; opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 8s steps(6) infinite;
  will-change:transform;
}
@keyframes grain{
  0%{transform:translate(0,0)} 20%{transform:translate(-4%,3%)}
  40%{transform:translate(3%,-2%)} 60%{transform:translate(-2%,2%)}
  80%{transform:translate(2%,-3%)} 100%{transform:translate(0,0)}
}
.vignette{
  position:fixed; inset:0; z-index:55; pointer-events:none;
  box-shadow:inset 0 0 220px 40px rgba(28,8,8,.7), inset 0 0 60px rgba(28,8,8,.4);
}

/* ---------- custom cursor ---------- */
.cursor{ position:fixed; top:0; left:0; z-index:200; pointer-events:none; mix-blend-mode:screen; }
.cursor__dot{ position:absolute; width:6px;height:6px; border-radius:50%; background:var(--champagne); transform:translate(-50%,-50%); }
.cursor__ring{
  position:absolute; width:38px;height:38px; border:1px solid rgba(228,185,140,.55);
  border-radius:50%; transform:translate(-50%,-50%) scale(1);
  transition:width .3s var(--ease), height .3s var(--ease), border-color .3s, background .3s;
}
.cursor.is-hover .cursor__ring{ width:70px; height:70px; border-color:rgba(228,185,140,.9); background:rgba(228,185,140,.06); }
.cursor__label{
  position:absolute; transform:translate(-50%,-50%); top:0;left:0;
  font-family:var(--serif-body); font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--champagne); opacity:0; white-space:nowrap; transition:opacity .25s;
}
.cursor.is-label .cursor__label{ opacity:1; }
@media (pointer:coarse){ .cursor{ display:none; } }

/* ---------- icons ---------- */
svg.ico{ display:block; width:100%; height:auto; overflow:visible; color:var(--champagne); }
svg.ico.seal{ color:var(--oxblood); }
svg.ico.lips{ color:var(--classic-red); }
img.ico{ display:block; width:100%; height:auto; }

/* ============================================================
   LOADER
   ============================================================ */
.loader{
  position:fixed; inset:0; z-index:300;
  display:grid; place-items:center;
  background:radial-gradient(120% 100% at 50% 40%, #6A1614, #43100F 80%);
}
.loader__inner{ text-align:center; }
.loader__script{
  display:block; font-family:var(--script); font-size:clamp(20px,3.4vw,30px);
  color:var(--champagne); opacity:0; transform:translateY(8px);
  animation:fadeUp .9s var(--ease) .15s forwards;
}
.loader__word{
  display:block; font-family:var(--serif-display); font-weight:600;
  font-size:clamp(40px,11vw,120px); letter-spacing:.16em; color:var(--champagne);
  margin:.1em 0 .15em .16em;
  opacity:0; clip-path:inset(0 100% 0 0);
  animation:wipe 1.1s var(--ease) .4s forwards;
}
.loader__rule{
  display:flex; align-items:center; justify-content:center; gap:14px;
  font-family:var(--serif-body); letter-spacing:.5em; text-transform:uppercase;
  font-size:clamp(11px,1.5vw,14px); color:var(--gold);
  opacity:0; animation:fade 1s ease 1s forwards; padding-left:.5em;
}
.loader__rule i{ width:clamp(28px,8vw,70px); height:1px; background:linear-gradient(90deg,transparent,var(--gold)); }
.loader__rule i:last-child{ background:linear-gradient(90deg,var(--gold),transparent); }
.loader.is-done{ opacity:0; visibility:hidden; transition:opacity .8s var(--ease), visibility .8s; }
@keyframes wipe{ from{opacity:0;clip-path:inset(0 100% 0 0)} to{opacity:1;clip-path:inset(0 0 0 0)} }
@keyframes fadeUp{ to{opacity:1;transform:translateY(0)} }
@keyframes fade{ to{opacity:1} }

/* ============================================================
   TOP BAR
   ============================================================ */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--gutter);
  font-family:var(--serif-body); font-size:13px; letter-spacing:.32em;
  text-transform:uppercase; color:var(--champagne);
  opacity:0; transition:opacity 1s ease 1.3s;
  mix-blend-mode:screen;
}
.topbar.is-in{ opacity:.85; }
.topbar__mark .ico{ width:22px; color:var(--gold); }
.topbar__side--r{ text-align:right; }
@media (max-width:640px){ .topbar{ font-size:10px; letter-spacing:.22em; padding:14px 18px; } }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;
  min-height:100svh;
  overflow:hidden;
  padding:0 var(--gutter);
}
.hero__center{
  position:absolute; top:clamp(74px,11vh,128px); left:50%;
  transform:translateX(-50%); width:min(96vw,1120px);
  z-index:5; text-align:center;
}
.hero__womanwrap{
  position:absolute; inset:0; z-index:3;
  display:flex; justify-content:center; align-items:flex-end;
  pointer-events:none;
}
.hero__woman{
  height:min(72vh,640px); width:auto; max-width:84vw;
  opacity:0; transform:translateY(26px);
  filter:drop-shadow(0 18px 40px rgba(20,6,6,.55));
}

.hero__script{
  font-family:var(--script); font-size:clamp(30px,6vw,62px);
  color:var(--champagne); line-height:1; margin:0 0 .1em;
  transform:rotate(-3deg);
}
.wordmark{
  margin:0; font-family:var(--serif-display); font-weight:600;
  font-size:clamp(40px,12.6vw,178px); line-height:.9; letter-spacing:.035em;
  display:flex; justify-content:center; padding-left:.04em; max-width:100%;
}
.wordmark .l{
  display:inline-block;
  background:linear-gradient(180deg,#F6DCB4 0%,#E7BC8E 46%,#C7964F 78%,#A9772F 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:0 1px 0 rgba(0,0,0,.25);
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.35));
}
.hero__sub{
  display:flex; align-items:center; justify-content:center; gap:14px;
  font-family:var(--serif-body); text-transform:uppercase; letter-spacing:.62em;
  font-size:clamp(13px,2.2vw,22px); color:var(--cream); margin:.5em 0 0; padding-left:.6em;
}
.hero__sub .ico{ width:16px; color:var(--gold); }
.hero__sub i{ width:clamp(24px,7vw,64px); height:1px; background:linear-gradient(90deg,transparent,var(--gold)); }
.hero__sub i:last-of-type{ display:none; }
.hero__tag{
  position:absolute; bottom:clamp(66px,12vh,112px); left:50%;
  transform:translateX(-50%); width:min(92vw,640px); z-index:6; margin:0;
  font-family:var(--serif-body); font-style:italic; font-size:clamp(15px,2.4vw,22px);
  color:var(--champagne); letter-spacing:.02em;
  text-shadow:0 2px 12px rgba(20,6,6,.8), 0 1px 3px rgba(20,6,6,.8);
}

/* floats */
.floats{ position:absolute; inset:0; z-index:1; }
.float{ position:absolute; margin:0; opacity:0; will-change:transform; }
.float .ico{ filter:drop-shadow(0 6px 14px rgba(20,6,6,.4)); }
.float--martini{ width:clamp(56px,7vw,104px); left:15%; top:42%; }
.float--oyster { width:clamp(96px,12vw,168px); right:9%;  top:13%; }
.float--champ  { width:clamp(40px,5vw,70px);  right:15%; top:42%; }
.float--match  { width:clamp(50px,6vw,86px);  left:12%;  top:66%; }
.float--key    { width:clamp(70px,9vw,126px); left:17%;  top:33%; }
.float--lamp   { width:clamp(60px,7vw,104px); left:7%;   top:76%; }
.float--wine   { width:clamp(46px,5.5vw,78px);left:24%;  top:78%; }
.float--coffee { width:clamp(64px,8vw,118px); left:19%;  top:11%; }
.float--seal   { width:clamp(54px,6.5vw,94px); left:83%;  top:76%; }
.float--lips   { width:clamp(44px,5vw,74px);  right:13%; top:64%; }
.float--charm  { width:clamp(40px,4.8vw,72px); left:25%;  top:58%; }

.frame{
  display:block; padding:10px; border:2px solid var(--gold);
  border-radius:50%; box-shadow:inset 0 0 0 4px var(--oxblood-deep), inset 0 0 0 6px var(--gold-deep), 0 8px 20px rgba(20,6,6,.4);
  background:radial-gradient(circle, #6e1715, #4d1110);
}

/* scattered annotations */
.annot{
  position:absolute; z-index:2; margin:0;
  font-family:var(--serif-body); font-style:italic; line-height:1.25;
  font-size:clamp(14px,1.5vw,21px); color:var(--champagne); opacity:0;
  text-shadow:0 1px 3px rgba(20,6,6,.5);
}
.annot--1{ left:13%; top:53%; transform:rotate(-4deg); }
.annot--2{ right:9%; top:70%; text-align:right; transform:rotate(3deg); }
.annot--3{ left:11%; top:88%; transform:rotate(-2deg); }
.annot--4{ right:13%; top:31%; text-align:right; transform:rotate(2deg); }

/* scroll cue */
.scrollcue{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:6;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  font-family:var(--serif-body); text-transform:uppercase; letter-spacing:.4em;
  font-size:11px; color:var(--champagne); opacity:0;
}
.scrollcue i{ width:1px; height:46px; background:linear-gradient(var(--champagne),transparent); animation:cue 2.2s var(--ease) infinite; transform-origin:top; }
@keyframes cue{ 0%,100%{transform:scaleY(.4);opacity:.4} 50%{transform:scaleY(1);opacity:1} }

@media (max-width:860px){
  .float--key,.float--coffee,.float--wine,.float--lamp,.float--charm,.float--oyster,.annot--4{ display:none; }
  .hero__woman{ height:min(55vh,448px); max-width:72vw; }
  .float--martini{ left:2%;  top:44%; width:clamp(52px,15vw,84px); }
  .float--champ  { right:2%; top:52%; width:clamp(38px,11vw,58px); }
  .float--match  { left:3%;  top:73%; width:clamp(46px,13vw,72px); }
  .float--lips   { right:5%; top:40%; width:clamp(40px,11vw,64px); }
  .float--seal   { right:5%; top:80%; left:auto; width:clamp(48px,13vw,76px); }
  .annot{ font-size:12px; }
  .annot--1{ left:3%;  top:58%; }
  .annot--2{ right:3%; top:90%; text-align:right; }
  .annot--3{ display:none; }
}

/* ============================================================
   THE IDEA
   ============================================================ */
.kicker{
  font-family:var(--serif-body); text-transform:uppercase; letter-spacing:.5em;
  font-size:13px; color:var(--gold); margin:0 0 1.4em; padding-left:.5em;
}
.idea{
  position:relative; max-width:1100px; margin:0 auto;
  padding:clamp(90px,16vh,200px) var(--gutter) clamp(40px,8vh,90px);
  text-align:center;
}
.idea__head{
  margin:0 0 .8em; font-family:var(--serif-display); font-weight:500;
  font-size:clamp(34px,7vw,86px); line-height:1.02; letter-spacing:.01em;
  display:flex; flex-direction:column; gap:.04em;
}
.idea__head .line{ display:block; }
.idea__accent{ font-style:italic; color:var(--champagne); }
.idea__body{
  max-width:620px; margin:2em auto 0;
  font-size:clamp(17px,2.2vw,23px); color:var(--cream); line-height:1.7;
}
.idea__body p{ margin:0 0 1.1em; }
.idea__sign{
  font-family:var(--serif-body); font-style:italic; color:var(--champagne);
  font-size:clamp(19px,2.6vw,27px); margin-top:1.6em;
}
.divider{ display:flex; align-items:center; justify-content:center; gap:18px; margin-top:clamp(50px,9vh,110px); }
.divider i{ width:clamp(40px,16vw,160px); height:1px; background:linear-gradient(90deg,transparent,var(--gold-deep),transparent); }
.divider .ico{ width:26px; color:var(--gold); }

/* ============================================================
   TICKER
   ============================================================ */
.ticker{ overflow:hidden; border-top:1px solid rgba(201,160,98,.22); border-bottom:1px solid rgba(201,160,98,.22); padding:18px 0; background:rgba(40,12,11,.35); }
.ticker__track{ display:inline-flex; align-items:center; gap:32px; white-space:nowrap; will-change:transform; }
.ticker__track span{ font-family:var(--serif-display); font-style:italic; font-size:clamp(18px,2.4vw,28px); color:var(--champagne); letter-spacing:.02em; }
.ticker__track .dot{ color:var(--gold); }

/* ============================================================
   EVIDENCE / cards
   ============================================================ */
.evidence{ max-width:1180px; margin:0 auto; padding:clamp(80px,14vh,170px) var(--gutter); }
.evidence__intro{ text-align:center; margin-bottom:clamp(40px,7vh,80px); }
.evidence__head{ margin:0; font-family:var(--serif-display); font-weight:500; font-size:clamp(30px,5.5vw,64px); line-height:1.04; }
.evidence__note{ font-family:var(--serif-body); font-style:italic; color:var(--champagne); font-size:clamp(15px,2vw,20px); margin:.8em 0 0; opacity:.85; }

.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,30px); }
@media (max-width:820px){ .cards{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .cards{ grid-template-columns:1fr; } }

.card{
  position:relative; display:flex; flex-direction:column; align-items:center; gap:18px;
  padding:clamp(26px,4vw,46px) 22px;
  border:1px solid rgba(201,160,98,.26);
  background:linear-gradient(180deg, rgba(120,26,24,.22), rgba(40,12,11,.30));
  text-align:center; overflow:hidden;
  transition:border-color .5s var(--ease), background .5s var(--ease), transform .5s var(--ease);
}
.card::after{ /* inner hairline */
  content:""; position:absolute; inset:7px; border:1px solid rgba(201,160,98,.12); pointer-events:none;
}
.card:hover{ border-color:rgba(228,185,140,.7); background:linear-gradient(180deg, rgba(138,30,27,.32), rgba(40,12,11,.42)); transform:translateY(-4px); }
.card__art{ position:relative; width:100%; height:clamp(108px,13vw,142px); display:flex; align-items:center; justify-content:center; }
.card__art .ico{ width:auto; height:100%; max-width:100%; object-fit:contain; transition:transform .6s var(--ease); filter:drop-shadow(0 8px 16px rgba(20,6,6,.4)); }
.card:hover .card__art .ico{ transform:rotate(-3deg) scale(1.05); }
.card__kiss{
  position:absolute; bottom:2px; left:52%; width:46px!important; height:auto!important;
  opacity:0; transform:translateY(6px) rotate(8deg) scale(.6); filter:none;
  transition:opacity .4s var(--ease), transform .5s var(--ease);
}
.card:hover .card__kiss{ opacity:.92; transform:translateY(0) rotate(8deg) scale(1); }

.card__cap{ display:block; }
.card__cap b{ display:block; font-family:var(--serif-display); font-weight:500; font-size:clamp(18px,2.4vw,24px); color:var(--cream); letter-spacing:.02em; }
.card__cap em{ display:block; font-style:italic; color:var(--champagne); font-size:clamp(14px,1.8vw,18px); margin-top:.3em; opacity:0; transform:translateY(6px); transition:opacity .45s var(--ease), transform .45s var(--ease); }
.card:hover .card__cap em{ opacity:.95; transform:translateY(0); }

/* note flip card */
.card__art--note{ width:auto; height:auto; perspective:800px; }
.note{ position:relative; display:block; width:clamp(120px,16vw,168px); height:clamp(86px,11vw,116px); transform-style:preserve-3d; transition:transform .7s var(--ease); }
.card:hover .note{ transform:rotateY(180deg); }
.note__front,.note__back{
  position:absolute; inset:0; backface-visibility:hidden;
  display:grid; place-items:center; padding:14px; text-align:center;
  background:linear-gradient(170deg,#F1E4CB,#E2CDA6); color:var(--ink);
  box-shadow:0 8px 18px rgba(20,6,6,.4); border-radius:3px;
}
.note__front{ font-family:var(--script); font-size:clamp(16px,2.2vw,22px); line-height:1.1; }
.note__back{ transform:rotateY(180deg); font-family:var(--serif-body); font-style:italic; font-size:clamp(12px,1.5vw,15px); line-height:1.35; }
.note__back i{ display:block; font-family:var(--script); font-style:normal; font-size:1.5em; margin-top:.2em; color:var(--oxblood); }

.card--seal .seal{ transition:transform .6s var(--ease), filter .6s; }
.card--seal:hover .seal{ transform:scale(1.08) rotate(-6deg); filter:drop-shadow(0 8px 14px rgba(20,6,6,.5)); }

/* ============================================================
   SIGN UP
   ============================================================ */
.signup{
  position:relative; max-width:760px; margin:0 auto;
  padding:clamp(70px,12vh,150px) var(--gutter) clamp(60px,10vh,120px);
  text-align:center;
}
.signup__femme{ position:absolute; top:8%; right:4%; width:min(20vw,150px); color:rgba(228,185,140,.10); }
.signup__femme svg{ width:100%; color:inherit; }
.signup__head{ margin:0; font-family:var(--serif-display); font-weight:500; font-size:clamp(34px,6.5vw,76px); line-height:1.02; }
.signup__lede{ max-width:480px; margin:1.4em auto 0; font-size:clamp(16px,2vw,21px); color:var(--cream); line-height:1.65; }

.form{ margin:clamp(34px,5vh,56px) auto 0; max-width:540px; }
.form__row{ display:flex; gap:10px; }
.form__input{
  flex:1; min-width:0; font-family:var(--serif-body); font-size:18px;
  color:var(--cream); background:transparent;
  border:1px solid rgba(228,185,140,.4); border-radius:2px;
  padding:16px 18px; outline:none; transition:border-color .3s, background .3s;
}
.form__input::placeholder{ color:rgba(241,228,203,.4); font-style:italic; }
.form__input:focus{ border-color:var(--champagne); background:rgba(228,185,140,.06); }
.form__input.is-error{ border-color:var(--classic-red); }
.form__btn{
  position:relative; flex:0 0 auto; padding:16px 28px;
  font-family:var(--serif-body); text-transform:uppercase; letter-spacing:.22em; font-size:14px;
  color:var(--ink); background:linear-gradient(180deg,#EAC393,#C9A062); border-radius:2px;
  overflow:hidden; transition:transform .3s var(--ease), box-shadow .3s;
}
.form__btn:hover{ transform:translateY(-2px); box-shadow:0 10px 22px rgba(20,6,6,.45); }
.form__btn::before{ content:""; position:absolute; inset:0; background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.5),transparent 70%); transform:translateX(-120%); }
.form__btn:hover::before{ transform:translateX(120%); transition:transform .7s var(--ease); }
.form__hint{ font-family:var(--serif-body); font-style:italic; font-size:14px; color:var(--champagne); opacity:.65; margin:1em 0 0; }
.form__hint.is-error{ color:var(--classic-red); opacity:1; }

@media (max-width:540px){ .form__row{ flex-direction:column; } }

/* success */
.thanks{ display:none; flex-direction:column; align-items:center; gap:10px; margin-top:clamp(34px,5vh,56px); }
.thanks.is-on{ display:flex; }
.thanks__seal{ width:90px; opacity:0; transform:scale(.4) rotate(-30deg); }
.thanks__seal.is-stamped{ animation:stamp .6s var(--ease) forwards; }
@keyframes stamp{ 0%{opacity:0;transform:scale(1.6) rotate(-30deg)} 60%{opacity:1;transform:scale(.92) rotate(-6deg)} 100%{opacity:1;transform:scale(1) rotate(-6deg)} }
.thanks__line{ font-family:var(--serif-display); font-style:italic; font-size:clamp(22px,3.4vw,32px); color:var(--cream); margin:.4em 0 0; }
.thanks__sign{ font-family:var(--serif-body); color:var(--champagne); font-size:18px; margin:0; }
.thanks__sign i{ font-family:var(--script); font-style:normal; font-size:1.6em; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ text-align:center; padding:clamp(50px,9vh,100px) var(--gutter) 60px; border-top:1px solid rgba(201,160,98,.2); }
.footer__crest{ display:inline-block; width:78px; color:var(--gold); }
.footer__line{ font-family:var(--serif-display); font-style:italic; font-size:clamp(18px,3vw,30px); color:var(--champagne); margin:.6em 0 1.4em; letter-spacing:.02em; }
.footer__nav{ display:flex; align-items:center; justify-content:center; gap:14px; font-family:var(--serif-body); text-transform:uppercase; letter-spacing:.2em; font-size:13px; color:var(--cream); flex-wrap:wrap; }
.footer__nav a{ transition:color .3s; }
.footer__nav a:hover{ color:var(--champagne); }
.footer__nav span{ color:var(--gold); }
.footer__fine{ font-family:var(--serif-body); letter-spacing:.18em; text-transform:uppercase; font-size:11px; color:rgba(241,228,203,.45); margin-top:2.4em; }

/* ============================================================
   REVEAL (set by JS; safe default = visible)
   ============================================================ */
.js [data-reveal]{ opacity:0; transform:translateY(26px); }
.js .idea__head .line{ opacity:0; transform:translateY(26px); }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
  .grain{ animation:none; }
  .js [data-reveal], .js .idea__head .line{ opacity:1; transform:none; }
  .loader{ display:none; }
}
