/* ============================================================
   LYRAE ATELIER — SOVEREIGN VELVET
   Obsidian / Champagne Gold / Ivory / Blush
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,400&family=Montserrat:wght@300;400;500;600&display=swap');

:root{
  --obsidian:#0b0b0c;
  --obsidian-2:#131315;
  --obsidian-soft:#1c1c1f;
  --ivory:#f6f2ea;
  --ivory-dim:#cfc9bd;
  --gold:#c9a44c;
  --gold-bright:#e7c877;
  --gold-dim:#8a733a;
  --blush:#c98f8f;
  --line:rgba(201,164,76,0.22);
  --line-soft:rgba(246,242,234,0.10);

  --serif:'Playfair Display', 'Cormorant Garamond', serif;
  --script:'Cormorant Garamond', serif;
  --sans:'Montserrat', sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--obsidian);
  color:var(--ivory);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* film grain overlay */
body::before{
  content:"";
  position:fixed; inset:0;
  z-index:9999;
  pointer-events:none;
  opacity:0.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.eyebrow{
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:0.32em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:500;
}
.serif{font-family:var(--serif);}
.script{font-family:var(--script); font-style:italic; font-weight:400;}

/* ---------- container ---------- */
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
@media(max-width:640px){ .wrap{padding:0 22px;} }

/* ---------- nav ---------- */
.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 40px;
  background:linear-gradient(180deg, rgba(11,11,12,0.92), rgba(11,11,12,0));
  transition:background .4s ease, padding .4s ease, border-color .4s ease;
  border-bottom:1px solid transparent;
}
.site-nav.scrolled{
  background:rgba(11,11,12,0.88);
  backdrop-filter:blur(14px);
  padding:16px 40px;
  border-bottom:1px solid var(--line-soft);
}
.brand-mark{
  font-family:var(--serif);
  font-size:19px;
  letter-spacing:0.14em;
  color:var(--ivory);
}
.brand-mark span{color:var(--gold);}
.nav-links{display:flex; align-items:center; gap:36px;}
.nav-links a{
  font-size:11px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--ivory-dim); font-weight:500;
  position:relative; padding-bottom:4px;
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--gold); transition:width .35s ease;
}
.nav-links a:hover::after, .nav-links a.active::after{width:100%;}
.nav-links a.active{color:var(--gold);}
.nav-cta{
  border:1px solid var(--gold-dim); padding:10px 22px !important;
  color:var(--gold-bright) !important;
}
.nav-cta::after{display:none;}
.nav-cta:hover{background:var(--gold); color:var(--obsidian) !important; border-color:var(--gold);}
.nav-burger{display:none; background:none; border:none; color:var(--ivory); font-size:22px; cursor:pointer;}
@media(max-width:860px){
  .site-nav{padding:18px 22px;}
  .nav-links{
    position:fixed; inset:0 0 0 auto; width:78%; max-width:340px;
    background:var(--obsidian-2); flex-direction:column; align-items:flex-start;
    padding:100px 32px 40px; gap:26px; transform:translateX(100%);
    transition:transform .4s ease; border-left:1px solid var(--line);
  }
  .nav-links.open{transform:translateX(0);}
  .nav-burger{display:block;}
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--sans); font-size:11.5px; letter-spacing:0.2em; text-transform:uppercase;
  font-weight:500; padding:17px 36px; border-radius:2px; cursor:pointer;
  transition:all .35s cubic-bezier(.2,.7,.3,1); white-space:nowrap;
}
.btn-gold{
  background:linear-gradient(135deg, var(--gold-bright), var(--gold-dim));
  color:var(--obsidian); border:1px solid var(--gold);
}
.btn-gold:hover{transform:translateY(-2px); box-shadow:0 14px 30px -10px rgba(201,164,76,0.45);}
.btn-outline{
  background:transparent; color:var(--ivory); border:1px solid var(--line-soft);
}
.btn-outline:hover{border-color:var(--gold); color:var(--gold-bright);}
.btn-ghost{
  background:transparent; color:var(--gold); border:none;
  text-decoration:underline; text-underline-offset:5px; text-decoration-color:var(--gold-dim);
  padding:6px 0; letter-spacing:0.16em;
}

/* ---------- section rhythm ---------- */
section{padding:120px 0; position:relative;}
@media(max-width:640px){ section{padding:80px 0;} }
.section-divider{
  width:100%; max-width:1120px; margin:0 auto; height:1px;
  background:linear-gradient(90deg, transparent, var(--line), transparent);
}
h1,h2,h3{font-family:var(--serif); font-weight:500; letter-spacing:-0.01em; color:var(--ivory);}
h1{font-size:clamp(40px,6.4vw,86px); line-height:1.04;}
h2{font-size:clamp(30px,4.2vw,52px); line-height:1.12;}
h3{font-size:clamp(20px,2.4vw,26px); line-height:1.3;}
p{color:var(--ivory-dim); font-weight:300;}
.lede{font-family:var(--script); font-size:clamp(20px,2.4vw,28px); color:var(--ivory); font-style:italic; line-height:1.5;}

/* ---------- hero ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  padding:0 0 90px; overflow:hidden;
}
.hero-media{position:absolute; inset:0; z-index:0;}
.hero-media video{width:100%; height:100%; object-fit:cover; filter:blur(7px) brightness(.62) saturate(1.05);}
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(11,11,12,0.35) 0%, rgba(11,11,12,0.35) 40%, rgba(11,11,12,0.94) 92%),
    linear-gradient(90deg, rgba(11,11,12,0.55), rgba(11,11,12,0.15) 45%, rgba(11,11,12,0.55));
}
.hero-inner{position:relative; z-index:2; width:100%;}
.hero .eyebrow{margin-bottom:22px;}
.hero h1{max-width:920px; margin-bottom:26px; text-shadow:0 4px 30px rgba(0,0,0,0.45);}
.hero .lede{max-width:560px; margin-bottom:40px; text-shadow:0 2px 16px rgba(0,0,0,0.4);}
.hero-actions{display:flex; gap:18px; flex-wrap:wrap;}
.hero-scroll{
  position:absolute; bottom:32px; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color:var(--gold); font-size:10px; letter-spacing:0.3em; text-transform:uppercase;
}
.hero-scroll .line{width:1px; height:34px; background:linear-gradient(180deg, var(--gold), transparent); animation:scrollpulse 2.2s ease-in-out infinite;}
@keyframes scrollpulse{0%,100%{opacity:.3;} 50%{opacity:1;}}

/* ---------- kicker rows ---------- */
.kicker-row{display:flex; align-items:center; gap:16px; margin-bottom:26px;}
.kicker-row .rule{flex:1; height:1px; background:var(--line);}

/* ---------- grid utilities ---------- */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
@media(max-width:860px){ .grid-2{grid-template-columns:1fr; gap:40px;} }
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
@media(max-width:860px){ .grid-3{grid-template-columns:1fr;} }

/* ---------- method steps ---------- */
.method-list{display:flex; flex-direction:column;}
.method-row{
  display:grid; grid-template-columns:90px 1fr; gap:28px; align-items:baseline;
  padding:34px 0; border-top:1px solid var(--line-soft);
}
.method-row:last-child{border-bottom:1px solid var(--line-soft);}
.method-num{font-family:var(--serif); font-style:italic; font-size:15px; color:var(--gold);}
.method-row h3{margin-bottom:8px;}
@media(max-width:640px){ .method-row{grid-template-columns:44px 1fr; gap:16px;} }

/* ---------- reframe cards ---------- */
.reframe-card{
  border:1px solid var(--line-soft); padding:34px 30px; position:relative;
  background:linear-gradient(160deg, rgba(201,164,76,0.03), transparent 60%);
}
.reframe-old{color:var(--ivory-dim); font-size:13px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:10px; opacity:.55;}
.reframe-old span{text-decoration:line-through; text-decoration-color:var(--blush);}
.reframe-new{font-family:var(--script); font-style:italic; font-size:22px; color:var(--gold-bright); line-height:1.4;}

/* ---------- diagnostic path (homepage journey map) ---------- */
.path-diagram{display:flex; flex-direction:column;}
.path-step{
  display:grid; grid-template-columns:110px 1fr; gap:30px;
  padding:36px 0; border-top:1px solid var(--line-soft); position:relative;
}
.path-step:last-child{border-bottom:1px solid var(--line-soft);}
.path-num{
  font-family:var(--serif); font-style:italic; font-size:16px; color:var(--gold);
  display:flex; flex-direction:column; gap:6px;
}
.path-num .n{font-size:34px; font-style:normal; font-weight:500; color:var(--ivory); line-height:1;}
.path-step h3{font-size:22px; margin-bottom:6px;}
.path-question{font-family:var(--script); font-style:italic; color:var(--gold-bright); font-size:17px; margin-bottom:14px; display:block;}
.path-items{display:flex; gap:10px; flex-wrap:wrap;}
.path-items a, .path-items span{
  font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ivory-dim);
  border:1px solid var(--line-soft); padding:8px 14px; transition:all .3s ease;
}
.path-items a:hover{border-color:var(--gold); color:var(--gold-bright);}
.path-arrow-cell{
  grid-column:1; display:flex; justify-content:center; padding:2px 0;
  color:var(--gold-dim); font-size:15px;
}
@media(max-width:640px){
  .path-step{grid-template-columns:56px 1fr; gap:16px;}
  .path-num .n{font-size:24px;}
}

/* ---------- founder section ---------- */
.founder-photo{
  position:relative; border-radius:2px; overflow:hidden; aspect-ratio:4/5;
  border:1px solid var(--line);
}
.founder-photo img{width:100%; height:100%; object-fit:cover;}
.founder-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(11,11,12,0.55));
}
.founder-quote{font-family:var(--serif); font-size:clamp(24px,2.6vw,32px); font-style:italic; color:var(--ivory); line-height:1.5; margin:26px 0 22px;}
.founder-sign{font-family:var(--script); font-style:italic; color:var(--gold); font-size:22px;}

/* ---------- entry points / offer cards ---------- */
.entry-card{
  border:1px solid var(--line-soft); padding:44px 38px; position:relative;
  transition:border-color .35s ease, transform .35s ease;
}
.entry-card:hover{border-color:var(--line); transform:translateY(-4px);}
.entry-card.featured{border-color:var(--gold-dim); background:linear-gradient(165deg, rgba(201,164,76,0.06), transparent 55%);}
.entry-tag{font-size:10.5px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; display:block;}
.entry-card h3{margin-bottom:14px; font-family:var(--serif); font-size:26px;}
.entry-card p{margin-bottom:22px; font-size:14.5px;}
.entry-meta{display:flex; gap:18px; margin-bottom:26px; flex-wrap:wrap;}
.entry-meta span{font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ivory-dim); border:1px solid var(--line-soft); padding:6px 12px;}
.entry-price{font-family:var(--serif); font-size:30px; color:var(--gold-bright); margin-bottom:22px;}
.entry-price small{font-family:var(--sans); font-size:12px; color:var(--ivory-dim); letter-spacing:.05em;}

/* ---------- expanded offer detail (offers.html — certainty layer) ---------- */
.entry-detail{margin:24px 0 28px; padding-top:22px; border-top:1px solid var(--line-soft);}
.entry-detail-title{
  font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold);
  margin-bottom:12px; display:block;
}
.entry-detail ul{list-style:none; margin-bottom:20px;}
.entry-detail ul li{
  font-size:13.5px; color:var(--ivory-dim); padding:6px 0 6px 20px; position:relative; line-height:1.5;
}
.entry-detail ul li::before{content:"—"; position:absolute; left:0; color:var(--gold-dim);}
.entry-forwho{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:20px;}
@media(max-width:520px){ .entry-forwho{grid-template-columns:1fr;} }
.entry-forwho .col-yes .entry-detail-title{color:var(--gold);}
.entry-forwho .col-no .entry-detail-title{color:var(--blush);}
.entry-forwho p{font-size:13px; margin-bottom:0; color:var(--ivory-dim);}
.entry-after{
  font-family:var(--script); font-size:16px; color:var(--ivory); margin-bottom:0; padding:14px 16px;
  border-left:2px solid var(--gold-dim); background:rgba(201,164,76,0.04); font-style:italic;
}

/* ---------- testimonials ---------- */
.testi-track{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
@media(max-width:860px){ .testi-track{grid-template-columns:1fr;} }
.testi-card{border:1px solid var(--line-soft); padding:32px; position:relative;}
.testi-card::before{content:"“"; font-family:var(--serif); font-size:60px; color:var(--gold-dim); position:absolute; top:6px; left:20px; opacity:.5;}
.testi-quote{font-family:var(--script); font-style:italic; font-size:19px; color:var(--ivory); line-height:1.55; margin-bottom:20px; position:relative; z-index:1;}
.testi-name{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold);}
.testi-role{font-size:12px; color:var(--ivory-dim);}

/* ---------- for-her list ---------- */
.forher-list{display:grid; grid-template-columns:1fr 1fr; gap:16px 40px;}
@media(max-width:760px){ .forher-list{grid-template-columns:1fr;} }
.forher-item{
  display:flex; gap:14px; padding:18px 0; border-bottom:1px solid var(--line-soft); font-size:15px; color:var(--ivory-dim);
}
.forher-item .mark{color:var(--gold); font-family:var(--serif); font-style:italic;}

/* ---------- final cta ---------- */
.final-cta{
  text-align:center; padding:150px 0;
  background:radial-gradient(ellipse at 50% 0%, rgba(201,164,76,0.10), transparent 60%);
}
.final-cta h2{max-width:780px; margin:0 auto 30px;}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line-soft); padding:60px 0 40px;}
.footer-grid{display:flex; justify-content:space-between; align-items:flex-start; gap:40px; flex-wrap:wrap;}
.footer-links{display:flex; gap:28px; flex-wrap:wrap;}
.footer-links a{font-size:12px; letter-spacing:.08em; color:var(--ivory-dim);}
.footer-links a:hover{color:var(--gold);}
.footer-tag{font-family:var(--script); font-style:italic; color:var(--gold); font-size:16px; margin-top:8px;}
.footer-bottom{margin-top:44px; padding-top:24px; border-top:1px solid var(--line-soft); display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; font-size:11.5px; color:var(--ivory-dim); letter-spacing:.05em;}

/* ---------- offers page hero ---------- */
.page-hero{padding:190px 0 80px; text-align:center;}
.page-hero .eyebrow{justify-content:center; display:flex;}
.page-hero h1{max-width:820px; margin:20px auto 0;}
.page-hero p.lede{max-width:640px; margin:24px auto 0;}

/* ---------- terms page ---------- */
.legal{max-width:820px; margin:0 auto;}
.legal h2{font-size:26px; margin:52px 0 16px;}
.legal h2:first-of-type{margin-top:0;}
.legal p, .legal li{color:var(--ivory-dim); font-size:15px; margin-bottom:14px;}
.legal ul{padding-left:22px; margin-bottom:16px;}
.legal-meta{color:var(--gold); font-size:12px; letter-spacing:.14em; text-transform:uppercase; margin-bottom:6px;}
.legal-tabs{display:flex; gap:10px; margin-bottom:50px;}
.legal-tab{
  padding:10px 22px; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  border:1px solid var(--line-soft); cursor:pointer; color:var(--ivory-dim); background:transparent;
}
.legal-tab.active{border-color:var(--gold); color:var(--gold-bright);}
.legal-panel{display:none;}
.legal-panel.active{display:block;}

/* ---------- POPUP ---------- */
.lyrae-overlay{
  position:fixed; inset:0; z-index:2000; display:none;
  align-items:center; justify-content:center; padding:22px;
  background:rgba(6,6,7,0.82); backdrop-filter:blur(6px);
  opacity:0; transition:opacity .45s ease;
}
.lyrae-overlay.show{display:flex;}
.lyrae-overlay.in{opacity:1;}
.lyrae-modal{
  position:relative; max-width:480px; width:100%;
  background:linear-gradient(165deg, #17171a, #0d0d0e);
  border:1px solid var(--line); padding:52px 40px 42px;
  text-align:center; transform:translateY(18px) scale(.98); transition:transform .45s cubic-bezier(.2,.8,.3,1);
}
.lyrae-overlay.in .lyrae-modal{transform:translateY(0) scale(1);}
.lyrae-modal::before{
  content:""; position:absolute; inset:10px; border:1px solid var(--line-soft); pointer-events:none;
}
.lyrae-close{
  position:absolute; top:16px; right:18px; background:none; border:none; color:var(--ivory-dim);
  font-size:20px; cursor:pointer; line-height:1; padding:6px;
}
.lyrae-close:hover{color:var(--gold);}
.lyrae-modal .eyebrow{display:block; margin-bottom:16px;}
.lyrae-modal h3{font-size:clamp(22px,3vw,28px); margin-bottom:18px; line-height:1.35;}
.lyrae-modal .lede{font-size:16px; margin-bottom:8px;}
.lyrae-modal .lyrae-sub{font-size:13.5px; color:var(--ivory-dim); margin-bottom:30px;}
.lyrae-modal .btn{width:100%; margin-bottom:12px;}
