/* ============================================================
   Have We Met? — marketing site design system
   Derived from the app's Kismet design bible (locked 2026-08):
   plum dusk ground, ivory text, champagne CTAs, gold-WE lockup,
   Playfair Display display / Space Grotesk UI, ivory dividers.
   ============================================================ */

:root{
  --bg:#0b0710;
  --bgPanel:rgba(24,17,28,.72);
  --bgPanelSoft:rgba(24,17,28,.55);
  --glass:rgba(18,13,22,.66);
  --plumSolid:rgba(23,17,31,.94);

  --ivory:#F9F5F0;
  --ivoryBody:#F5EFE8;
  --ivoryDim:rgba(245,239,232,.72);
  --ivoryFaint:rgba(245,239,232,.5);

  --gold:#E6C16B;
  --goldHdr:#EEBE6E;
  --goldSoft:#F4D8A0;
  --accentItal:#E4C57E;

  --you:#C7BEE6;
  --them:#E9B6B6;

  --ink:#241A12;

  --ctaGrad:linear-gradient(135deg,#F7F1E8 0%,#EFD9A8 55%,#E6C16B 100%);
  --ctaBorder:rgba(255,234,215,.6);
  --hairline:rgba(255,234,215,.3);
  --hairlineSoft:rgba(255,255,255,.14);

  --maxw:1100px;
  --maxwText:760px;
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{
  font-family:'Space Grotesk',system-ui,sans-serif;
  background:var(--bg);
  color:var(--ivoryBody);
  font-size:16.5px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

::selection{background:rgba(230,193,107,.35);color:var(--ivory)}

a{color:var(--goldHdr);text-decoration:none}
a:hover{text-decoration:underline;text-decoration-color:rgba(238,190,110,.5);text-underline-offset:3px}

img{max-width:100%}

/* ---------- type ---------- */
.serif{font-family:'Playfair Display',serif}
h1,h2,h3{font-family:'Playfair Display',serif;font-weight:500;color:var(--ivory);letter-spacing:-.2px}
h1{font-size:clamp(40px,6vw,68px);line-height:1.08;font-weight:400;
  text-shadow:0 2px 6px rgba(8,6,12,.75),0 4px 18px rgba(8,6,12,.75),0 8px 40px rgba(8,6,12,.6)}
h2{font-size:clamp(28px,3.6vw,40px);line-height:1.18}
h3{font-size:21px;line-height:1.3}
p{max-width:68ch}

/* the single champagne-italic accent word per statement */
.accent{font-family:'Playfair Display',serif;font-style:italic;font-weight:400;color:var(--accentItal)}

/* Space Grotesk caps stamp (lockup voice) */
.stamp{
  font-family:'Space Grotesk',sans-serif;font-weight:600;
  font-size:12px;letter-spacing:3.5px;text-transform:uppercase;
  color:var(--ivoryDim);
}
.stamp .we{color:var(--gold)}

/* eyebrow plaque line above section titles */
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.eyebrow .ln{width:26px;height:1px;background:linear-gradient(90deg,transparent,rgba(238,190,110,.7))}
.eyebrow .ln.r{background:linear-gradient(90deg,rgba(238,190,110,.7),transparent)}

/* ---------- divider (C2: ivory line center-bright, gold dots, no glow) ---------- */
.hdivider{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 auto;max-width:420px}
.hdivider .ln{height:1.5px;flex:1;background:linear-gradient(90deg,transparent 0%,rgba(245,239,232,.34) 18%,rgba(245,239,232,.6) 58%,rgba(249,245,240,.85) 100%)}
.hdivider .ln.r{background:linear-gradient(90deg,rgba(249,245,240,.85) 0%,rgba(245,239,232,.6) 42%,rgba(245,239,232,.34) 82%,transparent 100%)}
.hdivider .dt{width:3.5px;height:3.5px;border-radius:50%;background:rgba(230,193,107,.65)}
.hdivider svg{flex:none}

/* ---------- buttons ---------- */
.btnPrimary{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:11px;
  border-radius:24px;padding:17px 34px;overflow:hidden;cursor:pointer;border:1px solid var(--ctaBorder);
  background:var(--ctaGrad);
  box-shadow:0 22px 54px rgba(20,12,26,.34);
  font-family:'Playfair Display',serif;font-size:18px;font-weight:500;letter-spacing:.3px;color:var(--ink);
  text-decoration:none;
}
.btnPrimary:hover{text-decoration:none;filter:brightness(1.03)}
.btnPrimary .sheen{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,transparent 32%,rgba(255,255,255,.2) 50%,transparent 68%);
  transform:translateX(-160%);animation:btnSheen 4.5s linear infinite}
@keyframes btnSheen{to{transform:translateX(160%)}}
.btnPrimary svg{position:relative}
.btnPrimary span{position:relative}

.btnGhost{
  display:inline-flex;align-items:center;gap:9px;padding:13px 28px;border-radius:999px;
  border:1px solid var(--hairline);background:rgba(20,14,24,.35);cursor:pointer;
  font-family:'Playfair Display',serif;font-size:16px;font-weight:400;letter-spacing:.2px;color:var(--goldHdr);
  text-decoration:none;
}
.btnGhost:hover{text-decoration:none;background:rgba(28,20,34,.5)}

@media (prefers-reduced-motion:reduce){
  .btnPrimary .sheen{animation:none}
  .fu{animation:none;opacity:1}
  html{scroll-behavior:auto}
}

/* ---------- header / nav ---------- */
.siteHeader{
  position:sticky;top:0;z-index:40;
  /* no backdrop-filter: it black-screens software-rasterized WebViews on scroll */
  background:rgba(13,9,18,.94);
  border-bottom:1px solid rgba(255,234,215,.12);
}
.navWrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.navBrand{display:flex;align-items:center;gap:12px;text-decoration:none}
.navBrand:hover{text-decoration:none}
.navBrand img{width:24px;height:30px;object-fit:contain}
.navBrand .stamp{font-size:12.5px;color:var(--ivory)}
.navLinks{display:flex;align-items:center;gap:26px;list-style:none}
.navLinks a{font-size:13.5px;letter-spacing:.6px;color:var(--ivoryDim)}
.navLinks a:hover{color:var(--ivory);text-decoration:none}
.navLinks a[aria-current="page"]{color:var(--goldHdr)}
.navCta{
  display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:999px;
  background:var(--ctaGrad);border:1px solid var(--ctaBorder);
  font-family:'Playfair Display',serif;font-size:14.5px;font-weight:500;color:var(--ink)!important;letter-spacing:.2px;
}
.navCta:hover{text-decoration:none;filter:brightness(1.03)}
.navToggle{display:none;background:none;border:1px solid var(--hairline);border-radius:10px;padding:8px 10px;color:var(--ivory);cursor:pointer}
@media (max-width:820px){
  .navLinks{
    display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:flex-start;
    gap:0;background:var(--plumSolid);border-bottom:1px solid rgba(255,234,215,.12);padding:8px 0;
  }
  .navLinks.open{display:flex}
  .navLinks li{width:100%}
  .navLinks a{display:block;padding:13px 26px;font-size:15px}
  .navLinks .navCta{margin:10px 26px 12px;display:inline-flex}
  .navToggle{display:block}
}

/* ---------- layout ---------- */
.section{max-width:var(--maxw);margin:0 auto;padding:96px 24px}
.sectionText{max-width:var(--maxwText);margin:0 auto;padding:72px 24px}
.center{text-align:center}
.center p{margin-left:auto;margin-right:auto}
.center .eyebrow{justify-content:center}

.lede{font-size:19px;color:var(--ivoryDim);line-height:1.7}

/* glass card */
.card{
  background:var(--bgPanelSoft);border:1px solid var(--hairlineSoft);border-radius:22px;
  padding:30px 28px;
}
.card h3{margin-bottom:10px}
.card p{font-size:15.5px;color:var(--ivoryDim)}

.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media (max-width:900px){.grid3{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}}

/* thin-line icon chip */
.iconChip{
  width:44px;height:44px;border-radius:22px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);margin-bottom:18px;
}
.iconChip svg{stroke:var(--goldHdr)}

/* You / Them dots + dash row (timeline motif) */
.tlrow{display:flex;align-items:center;gap:10px;justify-content:center}
.tlrow .dot{width:8px;height:8px;border-radius:50%}
.tlrow .dot.you{background:var(--you)}
.tlrow .dot.them{background:var(--them)}
.tlrow .dash{flex:none;width:56px;height:1.5px;background:rgba(220,190,220,.5)}
.tlrow .plabel{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--ivoryFaint)}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;
  min-height:88vh;display:flex;align-items:center;
  background:#241a2b url('assets/backgrounds/welcome-beach-sunset.png') center 30% / cover no-repeat;
}
.hero .scrim{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(11,7,16,.14) 0%,rgba(11,7,16,0) 30%,rgba(11,7,16,0) 66%,rgba(11,7,16,.88) 100%)}
.heroInner{position:relative;max-width:var(--maxw);margin:0 auto;padding:110px 24px 90px;width:100%;text-align:center}
.heroInner > *{position:relative}

@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.fu{opacity:0;animation:fadeUp .9s cubic-bezier(.215,.61,.355,1) forwards}

@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.heroMark{width:72px;height:90px;object-fit:contain;animation:floaty 6s ease-in-out infinite;
  filter:drop-shadow(0 2px 5px rgba(8,6,12,.7)) drop-shadow(0 6px 18px rgba(8,6,12,.6))}

.heroTitle .we{color:var(--gold);
  text-shadow:0 2px 6px rgba(8,6,12,.75),0 4px 18px rgba(8,6,12,.75),0 8px 40px rgba(8,6,12,.6)}
.heroTitle .q{font-family:'Cormorant Garamond',serif;font-weight:500}

.heroSub{margin:26px auto 0;max-width:520px;font-family:'Playfair Display',serif;font-weight:600;
  font-size:clamp(18px,2.2vw,21px);line-height:1.55;color:var(--ivoryBody);
  text-shadow:0 1px 3px rgba(8,6,12,.9),0 2px 10px rgba(8,6,12,.85),0 6px 26px rgba(8,6,12,.7)}

.fineprint{font-family:'Playfair Display',serif;font-weight:400;font-size:13.5px;letter-spacing:.4px;
  color:rgba(255,255,255,.66)}

/* App Store badge (official-badge placeholder drawn to Apple's spec proportions) */
.storeBadge{
  display:inline-flex;align-items:center;gap:11px;padding:12px 22px;border-radius:13px;
  background:#000;border:1px solid rgba(255,255,255,.35);text-decoration:none;color:#fff;
}
.storeBadge:hover{text-decoration:none;border-color:rgba(255,255,255,.6)}
.storeBadge .txt{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;font-family:system-ui,-apple-system,sans-serif}
.storeBadge .small{font-size:11px;letter-spacing:.2px;opacity:.9}
.storeBadge .big{font-size:19px;font-weight:600;letter-spacing:-.2px}

/* ---------- phone frame for screenshots ---------- */
.phoneShot{
  width:min(300px,78vw);border-radius:40px;overflow:hidden;flex:none;
  box-shadow:0 0 0 9px #120810,0 0 0 10.5px rgba(255,215,150,.18),0 40px 90px rgba(0,0,0,.55);
  background:#241a2b;
}
.phoneShot img{display:block;width:100%}
.shotRow{display:flex;gap:34px;justify-content:center;flex-wrap:wrap;align-items:flex-start}
.shotCap{margin-top:16px;text-align:center;font-size:13px;letter-spacing:1.4px;text-transform:uppercase;color:var(--ivoryFaint)}

/* ---------- steps (how it works) ---------- */
.step{display:flex;gap:22px;align-items:flex-start}
.stepNum{
  flex:none;width:40px;height:40px;border-radius:20px;display:flex;align-items:center;justify-content:center;
  background:var(--ctaGrad);border:1px solid var(--ctaBorder);
  font-family:'Playfair Display',serif;font-weight:500;font-size:18px;color:var(--ink);
}
.step h3{margin-bottom:6px}
.step p{font-size:15.5px;color:var(--ivoryDim)}
.steps{display:flex;flex-direction:column;gap:36px;max-width:640px;margin:0 auto}

/* ---------- category pills (moment types) ---------- */
.catCard{position:relative}
.catCard .plaq{
  display:inline-flex;align-items:center;gap:8px;padding:6px 13px;border-radius:999px;margin-bottom:16px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);
  font-size:11px;letter-spacing:2.4px;text-transform:uppercase;color:var(--goldSoft);font-weight:600;
}
.catCard .quip{font-family:'Playfair Display',serif;font-size:17px;color:var(--ivory);line-height:1.5;margin-bottom:8px}
.catCard .meta{font-size:12.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ivoryFaint)}

/* closest-moment special card (champagne-tinted glass) */
.card.closest{
  background:linear-gradient(165deg,rgba(62,46,24,.62),rgba(24,16,24,.72) 58%);
  border-color:rgba(238,190,110,.35);
}

/* ---------- FAQ ---------- */
.faq{max-width:var(--maxwText);margin:0 auto}
.faq details{border-bottom:1px solid rgba(255,234,215,.14);padding:4px 0}
.faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding:20px 4px;font-family:'Playfair Display',serif;font-size:19px;color:var(--ivory);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary .chev{flex:none;transition:transform .25s ease;color:var(--goldHdr)}
.faq details[open] summary .chev{transform:rotate(90deg)}
.faq .a{padding:0 4px 22px;color:var(--ivoryDim);font-size:15.5px;max-width:64ch}

/* ---------- privacy whisper ---------- */
.whisper{
  font-family:'Playfair Display',serif;font-style:italic;font-weight:400;
  font-size:14.5px;color:var(--ivoryFaint);letter-spacing:.2px;
}

/* ---------- legal / prose pages ---------- */
.prose h1{font-size:clamp(34px,4.6vw,48px);margin-bottom:10px}
.prose .updated{font-size:13px;letter-spacing:1.8px;text-transform:uppercase;color:var(--ivoryFaint);margin-bottom:40px}
.prose h2{font-size:24px;margin:52px 0 14px}
.prose h3{font-size:18px;margin:30px 0 10px;color:var(--goldSoft)}
.prose p{margin-bottom:16px;color:var(--ivoryDim)}
.prose ul,.prose ol{margin:0 0 18px 22px;color:var(--ivoryDim)}
.prose li{margin-bottom:8px}
.prose li::marker{color:rgba(230,193,107,.65)}
.prose strong{color:var(--ivoryBody);font-weight:600}
.prose .tocCard{margin:0 0 44px}
.prose .tocCard ol{margin-bottom:0;columns:2;column-gap:36px}
@media (max-width:640px){.prose .tocCard ol{columns:1}}

/* ---------- footer ---------- */
.siteFooter{border-top:1px solid rgba(255,234,215,.12);background:rgba(15,10,18,.6);margin-top:40px}
.footWrap{max-width:var(--maxw);margin:0 auto;padding:64px 24px 40px}
.footGrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}
@media (max-width:820px){.footGrid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footGrid{grid-template-columns:1fr}}
/* logo sits inline-left of the wordmark, first row aligned with the other columns' headers */
.footBrandRow{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.footBrandRow img{width:22px;height:28px;object-fit:contain}
.footBrandRow .stamp{margin:0}
.footBrand > p{font-size:14px;color:var(--ivoryFaint);max-width:30ch}
.footCol h4{font-family:'Space Grotesk',sans-serif;font-size:11.5px;letter-spacing:2.8px;text-transform:uppercase;color:var(--goldSoft);margin-bottom:16px;font-weight:600}
.footCol ul{list-style:none}
.footCol li{margin-bottom:11px}
.footCol a{font-size:14.5px;color:var(--ivoryDim)}
.footCol a:hover{color:var(--ivory);text-decoration:none}
.footBase{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  margin-top:52px;padding-top:26px;border-top:1px solid rgba(255,234,215,.1)}
.footBase p{font-size:13px;color:var(--ivoryFaint)}

/* subtle star field dots for section backdrops */
.stars{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.stars i{position:absolute;border-radius:50%;background:#FFF6E4;box-shadow:0 0 6px rgba(255,244,214,.9);opacity:.5}
