/* ============================================================
   YOVELL · THE LIGHT — site-wide design system
   Source of truth: CLAUDE.md DESIGN LAW + mockup_G2_the_light.html
   Palette: night-dusk · milk-cream · honey-flame. No green accents.
   No squares: cards 44px, pills 999px, panels/images 26px.
   ============================================================ */
:root{
  --night:#171220; --dusk:#2B2440; --dusk2:#4A3A63;
  --milk:#FDFBF7; --cream:#F6F1E7; --ink:#2A2620; --soft:#6E675C;
  --flame:#E8B54A; --honey1:#EDAE33; --honey2:#C97E12;
  --lightdim:rgba(253,251,247,.7);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--milk);color:var(--ink);font-family:'EB Garamond',serif;font-size:18.5px;line-height:1.75}
a{text-decoration:none;color:var(--honey2)}
a:focus-visible,button:focus-visible{outline:3px solid var(--flame);outline-offset:3px;border-radius:6px}
img,video{max-width:100%}
.mono{font-family:'IBM Plex Mono',monospace;letter-spacing:.14em;font-size:11px}

/* ---------- header ---------- */
header.site{position:sticky;top:0;z-index:9;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 42px;background:rgba(23,18,32,.86);backdrop-filter:blur(10px)}
.lock{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.lock .name{font-family:'Fraunces',serif;font-weight:600;font-size:22px;background:linear-gradient(180deg,#FFF3D6,var(--flame));-webkit-background-clip:text;background-clip:text;color:transparent}
.lock .heb{font-family:'Frank Ruhl Libre',serif;font-size:14px;color:var(--flame)}
.lock .mono{color:rgba(253,251,247,.55)}
nav.site{display:flex;gap:24px;align-items:center;font-family:'Karla',sans-serif;font-weight:700;font-size:14px}
nav.site a{color:var(--lightdim)}
nav.site a[aria-current="true"]{color:#FFF3D6;border-bottom:2px solid var(--flame);padding-bottom:2px}
nav.site .cta{background:linear-gradient(135deg,var(--honey1),var(--honey2));color:#241C10;padding:12px 22px;border-radius:999px;box-shadow:0 6px 20px rgba(201,126,18,.35)}

/* ---------- the free banner (site-wide) ---------- */
.freebar{background:var(--night);color:#FFE9AE;text-align:center;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.16em;padding:9px 14px}
.freeline{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.16em;color:#FFE9AE}
.freesmall{font-family:'Karla',sans-serif;font-size:12.5px;color:var(--soft);max-width:60ch;margin:10px auto 0;text-align:center}

/* ---------- hero: the descent + the kav (ceremony pages) ---------- */
.hero{position:relative;overflow:hidden;text-align:center;padding:110px 24px 230px;color:var(--milk);
  background:linear-gradient(180deg,var(--night) 0%,var(--dusk) 40%,var(--dusk2) 66%,#8A6B8F 82%,var(--milk) 100%)}
.hero.short{padding:80px 24px 170px}
/* home only: the light, dominant — wide, bright, unmissable */
.hero.grand{padding:140px 24px 280px}
.hero.grand .beam{width:min(760px,94vw);opacity:.75}
.hero.grand .beam .outer{background:
  radial-gradient(70% 46% at 50% 0%, rgba(255,244,214,.28), transparent 72%),
  linear-gradient(180deg, rgba(255,244,214,.20), rgba(232,181,74,.08) 55%, transparent 94%)}
.hero.grand .beam .core{width:120px;background:linear-gradient(180deg, rgba(255,248,228,.5), rgba(255,236,190,.22) 55%, transparent 90%)}
.hero.grand .beam .core2{width:6px;background:linear-gradient(180deg, rgba(255,248,228,.75), rgba(255,240,200,.35) 70%, transparent)}
.hero.grand .pool{height:300px;bottom:-70px;background:radial-gradient(50% 60% at 50% 50%, rgba(255,246,220,.85), rgba(246,225,168,.4) 45%, rgba(253,251,247,0) 75%)}
.beam{position:absolute;top:-2%;bottom:0;left:50%;width:min(620px,86vw);transform:translateX(-50%);pointer-events:none;opacity:.55;mix-blend-mode:screen}
.beam .outer{position:absolute;inset:0;background:
  radial-gradient(64% 42% at 50% 0%, rgba(255,244,214,.16), transparent 70%),
  linear-gradient(180deg, rgba(255,244,214,.12), rgba(232,181,74,.05) 55%, transparent 92%);
  clip-path:polygon(40% 0, 60% 0, 88% 100%, 12% 100%);filter:blur(10px)}
.beam .core{position:absolute;top:0;bottom:0;left:50%;width:70px;transform:translateX(-50%);
  background:linear-gradient(180deg, rgba(255,248,228,.35), rgba(255,236,190,.14) 55%, transparent 88%);filter:blur(14px)}
.beam .core2{position:absolute;top:0;bottom:10%;left:50%;width:4px;transform:translateX(-50%);
  background:linear-gradient(180deg, rgba(255,248,228,.5), rgba(255,240,200,.22) 70%, transparent);filter:blur(3px)}
.pool{position:absolute;left:50%;bottom:-60px;transform:translateX(-50%);width:min(1000px,130vw);height:240px;pointer-events:none;
  background:radial-gradient(50% 60% at 50% 50%, rgba(255,246,220,.7), rgba(246,225,168,.32) 45%, rgba(253,251,247,0) 75%);filter:blur(6px)}
@media(prefers-reduced-motion:no-preference){
  .beam .core{animation:breathe 5s ease-in-out infinite alternate}
  @keyframes breathe{from{opacity:.5}to{opacity:.65}}
}
.hero .k{position:relative;color:rgba(253,251,247,.6)}
.hero .heb{position:relative;font-family:'Frank Ruhl Libre',serif;font-size:44px;color:#FFF3D6;text-shadow:0 0 34px rgba(232,181,74,.45)}
.hero h1{position:relative;font-family:'Fraunces',serif;font-weight:300;font-size:clamp(42px,7vw,86px);line-height:1.04;margin:16px auto 0;max-width:16ch}
.hero h1 b{font-weight:600;background:linear-gradient(180deg,#FFFBEE,#F3CE7C);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{position:relative;max-width:52ch;margin:24px auto 0;color:var(--lightdim);font-size:20px}
.hero .go{position:relative;margin-top:32px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero .free{position:relative;margin-top:26px}

/* daylight page head (tool/utility screens — calm, no descent) */
.dayhead{background:var(--cream);text-align:center;padding:64px 24px 46px}
.dayhead .heb{font-family:'Frank Ruhl Libre',serif;font-size:34px;color:var(--honey2)}
.dayhead h1{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(36px,5.5vw,58px);line-height:1.06;margin:10px auto 0;max-width:18ch}
.dayhead p.lead{max-width:56ch;margin:18px auto 0;color:var(--soft);font-family:'Karla',sans-serif;font-size:18px;line-height:1.65}

/* ---------- honey drip divider ---------- */
.drip{display:block;width:100%;height:44px;margin:-1px 0 0}

/* ---------- buttons ---------- */
.btn{display:inline-block;padding:15px 28px;border-radius:999px;font-family:'Karla',sans-serif;font-weight:700;font-size:15px;border:none;cursor:pointer;transition:transform .2s ease, box-shadow .2s ease}
.btn.honey{background:linear-gradient(135deg,var(--honey1),var(--honey2));color:#241C10;box-shadow:0 8px 24px rgba(201,126,18,.45)}
.btn.honey:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(201,126,18,.55)}
.btn.ghost{border:1px solid rgba(253,251,247,.5);color:var(--milk);background:transparent}
.btn.quiet{border:1.5px solid rgba(201,126,18,.5);color:var(--honey2);background:transparent}
.btn.quiet:hover{border-color:var(--honey2)}

/* ---------- sections ---------- */
.sec{padding:64px 24px}
.wrap{max-width:1140px;margin:0 auto}
.wrap.narrow{max-width:820px}
.center{text-align:center}
h2.f{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(30px,4vw,40px);line-height:1.12;margin:8px 0 0}
.sub{color:var(--soft);font-family:'Karla',sans-serif;margin:10px 0 0}
.kick{font-family:'IBM Plex Mono',monospace;letter-spacing:.14em;font-size:11px;color:var(--honey2)}
.kick.dim{color:var(--soft)}
p.plain{font-family:'Karla',sans-serif;font-size:19px;line-height:1.65;color:var(--ink)}
p.plain b{color:var(--honey2)}

/* ---------- oval door cards ---------- */
.doors{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.doors.two{grid-template-columns:1fr 1fr;max-width:900px;margin-left:auto;margin-right:auto}
a.door{background:#fff;border-radius:44px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:30px 24px 26px;box-shadow:0 14px 36px rgba(42,38,32,.10);border:1.5px solid rgba(201,126,18,.18);transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;text-align:center;color:var(--ink)}
a.door:hover{transform:translateY(-6px);border-color:var(--honey2);box-shadow:0 20px 44px rgba(201,126,18,.22)}
.door .q{font-family:'Karla',sans-serif;font-weight:700;font-size:13px;color:var(--soft);line-height:1.45}
.door .nm{margin-top:14px;display:flex;flex-direction:column;align-items:center;gap:2px}
.door .heb{font-family:'Frank Ruhl Libre',serif;font-size:18px;color:var(--honey2)}
.door h3{font-family:'Fraunces',serif;font-weight:600;font-size:26px;margin:0;color:var(--ink)}
.door .gl{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.16em;color:var(--soft);margin-top:2px}
.door p{font-family:'Karla',sans-serif;color:var(--soft);font-size:13.5px;line-height:1.55;margin:12px 0 0}
.door .act{margin-top:16px;background:linear-gradient(135deg,var(--honey1),var(--honey2));color:#241C10;font-family:'Karla',sans-serif;font-weight:700;font-size:13.5px;padding:11px 20px;border-radius:999px;box-shadow:0 6px 16px rgba(201,126,18,.3)}
a.door:hover .act{box-shadow:0 8px 20px rgba(201,126,18,.45)}
.loop{width:min(540px,78%);margin:0 auto;display:block;opacity:.85}
.loop path{fill:none;stroke:url(#lg);stroke-width:3;stroke-linecap:round}

/* ---------- panels (26px, never squares) ---------- */
.panel{border-radius:26px;overflow:hidden}
.panel.dark{background:var(--night);color:#F6F2E9;padding:44px 40px}
.panel.creamy{background:var(--cream);color:var(--ink);padding:44px 40px}
.panel.pic{box-shadow:0 22px 50px rgba(42,38,32,.18);position:relative;padding:0}
.panel.pic img,.panel.pic video{display:block;width:100%;height:auto}
.tag{position:absolute;bottom:16px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.12em;color:#fff;background:rgba(42,38,32,.6);padding:6px 10px;border-radius:999px}
.tag.l{left:16px}.tag.r{right:16px}
.cred{position:absolute;top:12px;right:14px;font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.1em;color:rgba(255,255,255,.85);background:rgba(42,38,32,.45);padding:4px 8px;border-radius:999px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}

/* ---------- ladder of rest ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.step{background:var(--cream);border-radius:999px;padding:24px 16px;text-align:center}
.step .n{font-family:'Fraunces',serif;font-weight:600;font-size:27px;color:var(--honey2)}
.step .t{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.14em;color:var(--soft);margin-top:6px}
.step p{font-family:'Karla',sans-serif;font-size:12.5px;color:var(--soft);margin:8px 0 0}

/* ---------- the letter chrome ---------- */
.letterwrap{background:var(--milk);padding:30px 18px 90px}
.lettercard{max-width:860px;margin:0 auto;background:#FFFDF8;color:var(--ink);border-radius:26px;box-shadow:0 30px 80px rgba(23,18,32,.35);padding:72px 88px 64px}
.lettercard .body{font-size:19.5px;line-height:1.8;display:flex;flex-direction:column;gap:22px}
.lettercard .pull{border-left:4px solid var(--flame);padding:4px 0 4px 26px;font-style:italic;font-size:23px;line-height:1.55}
.lettercard h1.t{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(30px,4.6vw,44px);line-height:1.08;margin:0 0 8px}
.lettercard .deck{font-style:italic;font-size:21px;color:var(--soft);margin-bottom:40px}

/* ---------- quote band ---------- */
.quoteband{background:var(--dusk);color:#F6F2E9;border-radius:34px;max-width:1040px;margin:20px auto;padding:58px 48px;text-align:center}
.quoteband blockquote{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(21px,3vw,28px);line-height:1.5;margin:14px 0 0}
.quoteband b{color:var(--flame);font-weight:600}

/* ---------- footer: return to dusk, two candles ---------- */
footer.site{background:linear-gradient(180deg,var(--milk) 0%,var(--dusk2) 26%,var(--dusk) 62%,var(--night) 100%);color:var(--milk);text-align:center;padding:130px 24px 60px;margin-top:40px}
.candles{display:flex;gap:56px;justify-content:center;margin-bottom:30px}
.candle{width:5px;height:64px;background:linear-gradient(180deg,#EFE7D6,#CFC4AC);border-radius:3px;position:relative}
.candle::before{content:"";position:absolute;top:-24px;left:50%;transform:translateX(-50%);width:14px;height:22px;border-radius:50% 50% 45% 45%;background:radial-gradient(circle at 50% 70%, #FFF3CE, var(--flame) 55%, rgba(216,144,38,0) 78%)}
.candle::after{content:"";position:absolute;top:-42px;left:50%;transform:translateX(-50%);width:58px;height:58px;border-radius:50%;background:radial-gradient(circle, rgba(232,181,74,.42), transparent 70%)}
@media(prefers-reduced-motion:no-preference){.candle::before{animation:flick 2.6s ease-in-out infinite alternate}.candle:nth-child(2)::before{animation-delay:1.3s}@keyframes flick{from{transform:translateX(-50%) scale(1)}to{transform:translateX(-52%) scale(1.07)}}}
footer.site .heb{font-family:'Frank Ruhl Libre',serif;font-size:24px;color:var(--flame)}
footer.site p{color:var(--lightdim);max-width:46ch;margin:12px auto 0}
.footnav{display:flex;gap:40px;justify-content:center;flex-wrap:wrap;margin-top:44px;text-align:left}
.footnav .col{min-width:150px}
.footnav .h{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.16em;color:rgba(253,251,247,.5);margin-bottom:10px}
.footnav a{display:block;font-family:'Karla',sans-serif;font-size:14px;color:var(--lightdim);padding:4px 0}
.footnav a:hover{color:#FFF3D6}

/* ---------- forms (daylight) ---------- */
.formcard{background:#fff;border-radius:26px;box-shadow:0 14px 36px rgba(42,38,32,.10);border:1.5px solid rgba(201,126,18,.18);padding:36px 32px;max-width:640px;margin:0 auto;text-align:left}
.formcard label{display:block;font-family:'Karla',sans-serif;font-weight:700;font-size:14px;margin:18px 0 6px}
.formcard input,.formcard textarea,.formcard select{width:100%;font-family:'Karla',sans-serif;font-size:16px;padding:13px 18px;border-radius:18px;border:1.5px solid rgba(110,103,92,.35);background:var(--milk);color:var(--ink)}
.formcard input:focus,.formcard textarea:focus{outline:3px solid var(--flame);outline-offset:1px;border-color:var(--honey2)}
.trust{font-family:'Karla',sans-serif;font-size:13px;color:var(--soft);margin-top:14px}

/* ---------- lists / rows ---------- */
.row{background:#fff;border-radius:44px;border:1.5px solid rgba(201,126,18,.18);box-shadow:0 10px 28px rgba(42,38,32,.08);padding:30px 34px;display:grid;grid-template-columns:200px 1fr auto;gap:28px;align-items:center;text-align:left}
.row .nm{font-family:'Fraunces',serif;font-weight:600;font-size:28px}
.row .nm .heb{display:block;font-family:'Frank Ruhl Libre',serif;font-size:16px;color:var(--honey2)}
.row .nm .gl{display:block;font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.14em;color:var(--soft);margin-top:3px}
.row p{font-family:'Karla',sans-serif;font-size:15px;line-height:1.6;color:var(--soft);margin:0}
.pill{display:inline-block;background:linear-gradient(135deg,var(--honey1),var(--honey2));color:#241C10;font-family:'Karla',sans-serif;font-weight:700;font-size:13.5px;padding:11px 20px;border-radius:999px;white-space:nowrap}
.pill.soon{background:var(--cream);color:var(--soft);box-shadow:none}

/* ---------- mobile (the 6 AM merchant on a phone) ---------- */
@media(max-width:900px){
  header.site{padding:12px 16px;flex-wrap:wrap}
  nav.site{gap:14px}
  nav.site a:not(.cta){font-size:13px}
  .doors{grid-template-columns:1fr}
  .doors.two{grid-template-columns:1fr}
  a.door{border-radius:999px;padding:26px 22px}
  .grid2,.grid3{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .row{grid-template-columns:1fr;text-align:center;gap:16px;border-radius:34px}
  .lettercard{padding:44px 24px 40px;border-radius:22px}
  .quoteband{margin:20px 14px;padding:40px 22px}
  .sec{padding:48px 18px}
  .hero{padding:90px 18px 190px}
  .footnav{gap:24px}
}
