/* Ported from LeadDifferent_AI_Site_v2 mockup — class names kept verbatim for fidelity. */

/* ── BRAND FONTS ─────────────────────────────────────────────────────────────
   Tiempos Fine Light (300) — headlines & display copy
   Rand Regular (400) — body copy  |  Rand Bold (700) — subheadlines & labels
   Prototype fallbacks: Playfair Display 300 · DM Sans 400/700              */

/* ── DARK THEME (default) ────────────────────────────────────────────────────*/
/* tokens in style.css */

/* ── LIGHT THEME ─────────────────────────────────────────────────────────────*/
/* light tokens in style.css */

/* ── RESET & BASE ────────────────────────────────────────────────────────────*/

body {
  font-family:'Rand','DM Sans','Inter',system-ui,sans-serif;
  background:var(--bg); color:var(--text);
  transition:background .35s ease, color .35s ease;
}

/* ── NAV ─────────────────────────────────────────────────────────────────────*/
nav {
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 48px; border-bottom:1px solid var(--border);
  position:sticky; top:0; background:var(--nav-bg);
  backdrop-filter:blur(14px); z-index:100;
  transition:background .35s ease, border-color .35s ease;
}
.nav-left { display:flex; align-items:center; gap:18px; }
.nav-wordmark {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:20px; font-weight:300; letter-spacing:-0.3px;
  color:var(--text); transition:color .35s;
}
.nav-wordmark em { color:var(--blue); font-style:normal; }
.nav-sub {
  font-size:11px; color:var(--text-dim); text-transform:uppercase;
  letter-spacing:.1em; border-left:1px solid var(--border); padding-left:16px;
  transition:color .35s;
}
.nav-links { display:flex; gap:28px; }
.nav-links a {
  font-size:13px; color:var(--text-dim); text-decoration:none;
  font-weight:500; transition:color .2s;
}
.nav-links a:hover { color:var(--text); }
.nav-right { display:flex; align-items:center; gap:12px; }
.nav-cta {
  background:var(--blue); color:#fff; border:none;
  padding:10px 20px; border-radius:6px;
  font-size:13px; font-weight:700; cursor:pointer;
  transition:all .2s; font-family:inherit;
}
.nav-cta:hover { background:var(--blue-light); transform:translateY(-1px); }

/* Theme toggle */
.theme-toggle {
  background:var(--bg-card); border:1px solid var(--border-card);
  color:var(--text-dim); padding:8px 12px; border-radius:6px;
  font-size:12px; font-weight:600; cursor:pointer;
  transition:all .2s; font-family:inherit;
  display:flex; align-items:center; gap:6px; white-space:nowrap;
}
.theme-toggle:hover { color:var(--text); border-color:var(--blue); }
.theme-toggle svg { flex-shrink:0; transition:transform .4s; }
[data-theme="light"] .theme-toggle svg { transform:rotate(180deg); }

/* ── HERO ────────────────────────────────────────────────────────────────────*/
.hero-wrap {
  position:relative; overflow:hidden;
  background:var(--bg);
  transition:background .35s;
}
.hero-wrap::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background: none;
  transition:opacity .35s;
}
[data-theme="light"] .hero-wrap::before {
  background: none;
}
.hero-wrap::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:120px;
  background:linear-gradient(to bottom, transparent, var(--bg));
  pointer-events:none; transition:background .35s;
}
.hero { max-width:900px; margin:0 auto; padding:110px 24px 80px; text-align:center; }
.hero h1 {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:clamp(64px,9vw,108px); font-weight:300;
  letter-spacing:-3px; line-height:.95; margin-bottom:28px;
  color:var(--text); transition:color .35s;
  white-space:nowrap;
}
.hero-different { color:var(--blue); }
.hero-tm {
  font-size:0.18em; vertical-align:super;
  position:relative; top:-20px;
  color:var(--text-dim); opacity:0.5;
  font-family:'Rand','Inter',sans-serif;
  font-weight:400; letter-spacing:0; margin-left:2px;
}
.hero h1 em { color:var(--blue); font-style:italic; }
.ai-letter { color:var(--blue); font-style:normal; }
.hero-pov {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:clamp(18px,2.5vw,26px); color:var(--text-dim);
  font-weight:300; margin-bottom:34px; margin-top:-16px; transition:color .35s;
}
.btn-hero {
  background:var(--blue); color:#fff; border:none;
  padding:16px 34px; border-radius:8px; font-size:15px; font-weight:700;
  cursor:pointer; transition:all .2s; letter-spacing:.01em; font-family:inherit;
}
.btn-hero:hover { background:var(--blue-light); transform:translateY(-2px); }

/* ── CHAT HERO — Claude/Perplexity-style ─────────────────────────────────────*/
.chat-hero {
  width:100%; max-width:var(--ld-chat-max-width,900px); box-sizing:border-box;
  transition:all .35s; padding:0 4px; margin-top:64px;
}
.chat-hero.ld-chat-align-center { margin-left:auto; margin-right:auto; }
.chat-hero.ld-chat-align-left { margin-left:0; margin-right:auto; }
.chat-hero.ld-chat-align-right { margin-left:auto; margin-right:0; }

/* Message thread */
.chat-messages {
  display:none; flex-direction:column; gap:20px;
  padding:0 12px 28px; max-height:var(--ld-chat-thread-height,440px); overflow-y:auto;
  text-align:left; position:relative;
}
.chat-messages.has-content { display:flex; }
.chat-messages.has-content {
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 60px, black 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, black 60px, black 100%);
  padding-top: 32px;
}
.chat-messages::-webkit-scrollbar { width:4px; }
.chat-messages::-webkit-scrollbar-track { background:transparent; }
.chat-messages::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }

/* User bubble */
.chat-msg-user {
  align-self:flex-end;
  background:var(--blue-pale); border:1px solid rgba(50,83,255,.15);
  border-radius:18px 18px 4px 18px;
  padding:11px 18px; font-size:15px; color:var(--text);
  max-width:82%; line-height:1.55;
}
/* Assistant row */
.chat-msg-edge {
  align-self:flex-start; display:flex; flex-wrap:wrap; gap:8px 12px; max-width:100%;
}
.chat-msg-avatar {
  width:24px; height:24px; flex-shrink:0; margin-top:3px;
  display:flex; align-items:center; justify-content:center;
}
.chat-msg-avatar svg { width:24px; height:24px; }
.chat-msg-avatar.thinking svg {
  animation:compass-spin 1.2s linear infinite;
}
@keyframes compass-spin {
  from { transform:rotate(0deg); }
  to   { transform:rotate(360deg); }
}
.chat-msg-bubble {
  font-size:15px; color:var(--text); line-height:1.8; flex:1; padding:2px 0;
}
.chat-msg-bubble p { margin-bottom:12px; }
.chat-msg-bubble p:last-child { margin-bottom:0; }
.chat-source {
  font-size:12px; color:var(--text-muted); margin-top:12px;
  display:flex; align-items:center; gap:8px;
}
.chat-source::before {
  content:''; display:block; width:16px; height:1px; background:var(--border); flex-shrink:0;
}
.chat-source a { color:var(--blue); text-decoration:none; font-weight:600; }

/* Conversation controls are deliberately quiet until someone starts chatting. */
.chat-toolbar {
  display:flex; justify-content:flex-end; gap:8px; padding:0 12px 10px;
}
.chat-toolbar[hidden] { display:none; }
.chat-toolbar-btn,
.chat-action {
  appearance:none; border:1px solid var(--border-card); background:var(--bg-card);
  color:var(--text-dim); border-radius:999px; padding:7px 11px;
  font:600 11px/1.1 Geist, var(--font-sans); cursor:pointer;
  transition:border-color .2s,color .2s,background .2s,transform .2s;
}
.chat-toolbar-btn:hover,
.chat-action:hover { color:var(--blue); border-color:rgba(50,83,255,.42); transform:translateY(-1px); }
.chat-toolbar-btn:focus-visible,
.chat-action:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.chat-message-actions {
  flex:0 0 100%; display:flex; align-items:center; gap:6px; min-height:30px;
  color:var(--text-muted); font-size:12px;
}
.chat-action:disabled { opacity:.5; cursor:wait; transform:none; }
.chat-retry { color:var(--blue); }
.chat-continuers {
  flex:0 0 100%; margin-top:6px;
}
.chat-continuers-label {
  color:var(--text-muted); font:600 11px/1.2 Geist, var(--font-sans);
  letter-spacing:.08em; text-transform:uppercase; margin-bottom:8px;
}
.chat-continuers-pills {
  display:flex; flex-wrap:wrap; gap:8px;
}
.chat-continuers .chat-pill { background:var(--bg-card); }
.chat-continuer:disabled { opacity:.48; cursor:default; }

/* Label above input */
.chat-above-label {
  font-size:13px; color:var(--text-muted); margin-bottom:12px;
  transition:color .35s; line-height:1.5;
}

/* Input container */
.chat-input-wrap {
  background:var(--bg-card);
  border:1.5px solid var(--border-card);
  border-radius:16px;
  padding:14px 12px 14px 20px;
  display:flex; align-items:center; gap:10px;
  transition:border-color .2s, background .35s, box-shadow .2s;
  box-shadow:0 2px 16px rgba(0,0,0,.08);
}
[data-theme="light"] .chat-input-wrap {
  box-shadow:0 2px 12px rgba(20,25,40,.07);
}
.chat-input-wrap:focus-within {
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(50,83,255,.09), 0 2px 16px rgba(0,0,0,.08);
}
.chat-input-row { display:contents; }
.chat-textarea {
  flex:1; background:none; border:none; outline:none;
  font-size:16px; color:var(--text); font-family:inherit;
  resize:none; line-height:1.55; min-height:24px; max-height:200px;
  padding:0; transition:color .35s;
}
.chat-textarea::placeholder { color:var(--text-ph); }
.chat-mic {
  background:none; border:none; color:var(--text-muted);
  width:32px; height:32px; border-radius:8px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:color .2s;
  padding:0;
}
.chat-mic:hover { color:var(--blue); }
.chat-mic.listening { color:var(--blue); animation:mic-pulse 1s ease-in-out infinite; }
@keyframes mic-pulse { 0%,100%{opacity:1} 50%{opacity:.4} }
.chat-send {
  background:var(--blue); color:#fff; border:none;
  width:36px; height:36px; border-radius:10px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all .2s;
}
.chat-send:hover { background:var(--blue-light); transform:scale(1.04); }
.chat-send svg { pointer-events:none; }
.chat-send.is-cancel { background:#b43a43; }
.chat-send.is-cancel svg { display:none; }
.chat-send.is-cancel::before { content:''; width:10px; height:10px; border-radius:2px; background:#fff; }

/* Suggestion pills */
.chat-pills-wrap { padding:16px 2px 0; }
.chat-pills { display:flex; flex-wrap:nowrap; gap:8px; justify-content:center; overflow-x:auto; }
.chat-pill {
  background:transparent;
  border:1px solid var(--border-card);
  color:var(--text-dim); padding:7px 15px; border-radius:100px;
  font-size:13px; cursor:pointer; transition:all .2s; font-family:inherit;
  text-align:left; line-height:1.4;
}
.chat-pill:hover {
  background:var(--blue-pale); border-color:rgba(50,83,255,.35); color:var(--blue);
}
.chat-footer-note {
  font-size:11px; color:var(--text-muted); text-align:center;
  margin-top:24px; letter-spacing:.02em; opacity:.6;
}

/* ── STAT STRIP ──────────────────────────────────────────────────────────────*/
.stat-strip {
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  padding:56px 24px 48px; background:var(--bg-card);
  transition:all .35s;
}
.stat-strip-inner {
  max-width:960px; margin:0 auto;
  display:grid; grid-template-columns:repeat(3,1fr);
}
.stat-strip-headline {
  grid-column:1/-1; text-align:center;
  padding-bottom:40px; margin-bottom:8px;
  border-bottom:1px solid var(--border);
}
.stat-headline {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:clamp(32px,4vw,52px); font-weight:300;
  letter-spacing:-1.5px; color:var(--text); margin-bottom:10px;
  transition:color .35s;
}
.stat-headline-sub {
  font-size:14px; color:var(--text-muted); letter-spacing:.06em;
  text-transform:uppercase; font-weight:500;
}
.stat-item { text-align:center; padding:16px 24px; border-right:1px solid var(--border); }
.stat-item:last-child { border-right:none; }
.stat-num {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:clamp(36px,5vw,58px); font-weight:300; letter-spacing:-2px;
  line-height:1; margin-bottom:6px; color:var(--text); transition:color .35s;
}
.stat-num em { color:var(--text); font-style:normal; }
.stat-label { font-size:13px; color:var(--text-muted); line-height:1.5; max-width:180px; margin:0 auto; }

/* ── EDGE CHAT ───────────────────────────────────────────────────────────────*/
.section-eyebrow {
  text-align:center; font-size:11px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--blue); margin-bottom:12px;
}
.section-title {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  text-align:center; font-size:clamp(28px,3.2vw,42px);
  font-weight:300; letter-spacing:-.5px; margin-bottom:10px; line-height:1.1;
  color:var(--text);
}
.section-sub {
  text-align:center; font-size:15px; color:var(--text-dim);
  margin-bottom:40px; line-height:1.65;
}
/* ── ANSWER ──────────────────────────────────────────────────────────────────*/
@keyframes fadeUp { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
.cursor {
  display:inline-block; width:2px; height:1em; background:var(--blue);
  margin-left:2px; animation:blink 1s infinite; vertical-align:text-bottom;
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
/* ── DIVIDER ─────────────────────────────────────────────────────────────────*/
.divider { max-width:960px; margin:72px auto; padding:0 24px; display:flex; align-items:center; gap:20px; }
.div-line { flex:1; height:1px; background:var(--border); }
.div-label { font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--text-muted); white-space:nowrap; }

/* ── FILMS ───────────────────────────────────────────────────────────────────*/
.films-section { max-width:1020px; margin:0 auto; padding:0 24px 80px; }
.series-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:18px; margin-top:64px; }
.series-card {
  background:var(--bg-card); border:1px solid var(--border-card);
  border-radius:14px; padding:28px; cursor:pointer;
  transition:all .25s; position:relative; overflow:hidden;
}
.series-card::before {
  content:''; position:absolute; top:0; left:0; width:3px; height:100%;
  background:var(--blue); opacity:0; transition:opacity .25s;
}
.series-card:hover { background:var(--bg-hover); border-color:rgba(50,83,255,.20); transform:translateY(-2px); }
.series-card:hover::before { opacity:1; }
.series-num { font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--blue); margin-bottom:8px; }
.series-track { font-weight:400; color:var(--text-muted); letter-spacing:.08em; }
.series-title {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:19px; font-weight:300; letter-spacing:-.3px; margin-bottom:8px; color:var(--text);
}
.series-behavior {
  display:inline-block; background:var(--blue-pale); border:1px solid rgba(50,83,255,.22);
  color:var(--blue); font-size:11px; font-weight:600;
  padding:3px 10px; border-radius:100px; margin-bottom:14px;
  letter-spacing:.06em; text-transform:uppercase;
}
.series-featured {
  background:var(--bg-hover); border-radius:8px; padding:12px 14px;
  font-size:13px; color:var(--text-dim); font-style:italic; line-height:1.55; margin-bottom:16px;
}
.series-expand {
  background:none; border:none; color:var(--blue);
  font-size:13px; font-weight:600; cursor:pointer; padding:0;
  display:flex; align-items:center; gap:6px; font-family:inherit;
}
.expand-arrow { transition:transform .25s; }
.series-card.expanded .expand-arrow { transform:rotate(180deg); }
.series-qs { display:none; margin-top:16px; }
.series-card.expanded .series-qs { display:block; }
.series-q {
  font-size:13px; color:var(--text-muted); padding:8px 0;
  border-bottom:1px solid var(--border); line-height:1.55; display:flex; gap:10px;
}
.series-q:last-child { border-bottom:none; }
.q-n { color:var(--blue); font-weight:700; font-size:12px; flex-shrink:0; }

/* ── ASSESSMENT ──────────────────────────────────────────────────────────────*/
.assess-section {
  background:var(--bg-mid); border-top:1px solid var(--border);
  border-bottom:1px solid var(--border); padding:80px 24px; transition:all .35s;
}
.assess-inner { max-width:680px; margin:0 auto; }
.assess-header { text-align:center; margin-bottom:48px; }
.assess-header h2 {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:clamp(28px,3.2vw,44px); font-weight:300;
  letter-spacing:-.5px; margin-bottom:12px; color:var(--text);
}
.assess-header h2 span { color:var(--blue); }
.assess-header p { font-size:15px; color:var(--text-dim); line-height:1.65; }
.assess-progress { background:var(--border); border-radius:100px; height:3px; margin-bottom:36px; }
.assess-bar { background:var(--blue); border-radius:100px; height:3px; transition:width .4s ease; }
.assess-step { display:none; animation:fadeUp .35s ease; }
.assess-step.active { display:block; }
.assess-phase { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-text); margin-bottom:10px; }
.assess-q {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:22px; font-weight:300; line-height:1.35;
  margin-bottom:28px; letter-spacing:-.2px; color:var(--text);
}
.assess-options { display:flex; flex-direction:column; gap:12px; }
.assess-opt {
  background:var(--bg-card); border:1px solid var(--border-card);
  border-radius:10px; padding:16px 20px; cursor:pointer;
  transition:all .2s; display:flex; align-items:center; gap:14px;
  text-align:left; width:100%; font-family:inherit;
}
.assess-opt:hover { background:var(--blue-pale); border-color:rgba(50,83,255,.28); }
.assess-opt.selected { background:var(--blue-pale); border-color:var(--blue); }
.opt-letter {
  width:28px; height:28px; border:1px solid var(--border-input);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; flex-shrink:0; color:var(--text-muted);
}
.assess-opt.selected .opt-letter { border-color:var(--blue); color:var(--blue); }
.opt-text { font-size:15px; color:var(--text-dim); line-height:1.45; }
.assess-nav { display:flex; justify-content:space-between; align-items:center; margin-top:28px; }
.assess-next {
  background:var(--blue); color:#fff; border:none; padding:13px 28px;
  border-radius:8px; font-size:14px; font-weight:700; cursor:pointer;
  opacity:.4; pointer-events:none; transition:all .2s; font-family:inherit;
}
.assess-next.ready { opacity:1; pointer-events:all; }
.assess-next.ready:hover { background:var(--blue-light); }

/* ── RESULT ──────────────────────────────────────────────────────────────────*/
#assess-result { display:none; text-align:center; animation:fadeUp .4s ease; }
#assess-result.show { display:block; }
.result-level { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:var(--accent-text); margin-bottom:14px; }
.result-stage {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:38px; font-weight:300; letter-spacing:-.5px; margin-bottom:18px; color:var(--text);
}
.result-text { font-size:16px; color:var(--text-dim); line-height:1.75; margin-bottom:32px; max-width:520px; margin-left:auto; margin-right:auto; }
.result-ctas { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* ── HUMAN CTA ───────────────────────────────────────────────────────────────*/
.human-section { max-width:700px; margin:0 auto 100px; padding:0 24px; text-align:center; }
.human-section h2 {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:clamp(30px,3.8vw,50px); font-weight:300;
  letter-spacing:-.8px; line-height:1.05; margin-bottom:16px; color:var(--text);
}
.human-section h2 span { color:var(--blue); font-style:italic; }
.human-section p { font-size:16px; color:var(--text-dim); line-height:1.7; margin-bottom:36px; }
.human-form {
  background:var(--bg-card); border:1px solid var(--border-card);
  border-radius:16px; padding:36px; text-align:left; transition:all .35s;
}
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.form-input {
  background:var(--bg-input); border:1px solid var(--border-input);
  border-radius:10px; padding:13px 16px; font-size:14px;
  color:var(--text); font-family:inherit; outline:none;
  width:100%; transition:border-color .2s, background .35s, color .35s;
}
.form-input::placeholder { color:var(--text-ph); }
.form-input:focus { border-color:var(--blue); }
.form-textarea { resize:none; min-height:80px; }
.form-submit {
  background:var(--blue); color:#fff; border:none; padding:15px;
  border-radius:10px; font-size:15px; font-weight:700;
  cursor:pointer; width:100%; transition:all .2s; margin-top:4px; font-family:inherit;
}
.form-submit:hover { background:var(--blue-light); }
.form-confirm { display:none; text-align:center; padding:20px; }
.form-confirm h3 {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:22px; font-weight:300; margin-bottom:8px; color:var(--golden);
}
.form-confirm p { font-size:14px; color:var(--text-muted); }

/* ── FOOTER ──────────────────────────────────────────────────────────────────*/
footer {
  border-top:1px solid var(--border); padding:40px 48px;
  display:flex; flex-direction:column; align-items:center;
  gap:20px; background:var(--bg); transition:all .35s; text-align:center;
}
.footer-logo-wrap { width:240px; }
.fc-logo { width:100%; height:auto; display:block; }
.fc-logo-white { display:block; }
.fc-logo-black { display:none; }
[data-theme="light"] .fc-logo-white { display:none; }
[data-theme="light"] .fc-logo-black { display:block; }
.footer-note { font-size:12px; color:var(--text-muted); opacity:.6; }

/* ── MODALS ──────────────────────────────────────────────────────────────────*/
.modal-bg {
  display:none; position:fixed; inset:0;
  background:var(--modal-bg); backdrop-filter:blur(10px);
  z-index:200; align-items:center; justify-content:center; transition:background .35s;
}
.modal-bg.show { display:flex; }
.modal {
  background:var(--bg-mid); border:1px solid rgba(50,83,255,.22);
  border-radius:20px; padding:44px; max-width:460px; width:90%;
  text-align:center; animation:slideUp .3s ease;
  position:relative; box-shadow:var(--shadow); transition:background .35s;
}
@keyframes slideUp { from{transform:translateY(24px);opacity:0} to{transform:translateY(0);opacity:1} }
.modal-close {
  position:absolute; top:14px; right:16px; background:none; border:none;
  color:var(--text-muted); font-size:20px; cursor:pointer;
}
.modal h2 {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:26px; font-weight:300; margin-bottom:10px; color:var(--text);
}
.modal p { font-size:14px; color:var(--text-dim); line-height:1.65; margin-bottom:22px; }
.modal-preview {
  background:var(--blue-pale); border-left:3px solid var(--blue);
  padding:11px 14px; border-radius:0 8px 8px 0; font-size:13px;
  color:var(--text-dim); font-style:italic; margin-bottom:22px; text-align:left; line-height:1.55;
}
.modal-input {
  width:100%; background:var(--bg-input); border:1px solid var(--border-input);
  border-radius:10px; padding:13px 16px; font-size:14px;
  color:var(--text); font-family:inherit; outline:none;
  margin-bottom:10px; transition:border-color .2s, background .35s, color .35s;
}
.modal-input:focus { border-color:var(--blue); }
.modal-input::placeholder { color:var(--text-ph); }
.modal-submit {
  width:100%; background:var(--blue); color:#fff; border:none;
  padding:14px; border-radius:10px; font-size:14px; font-weight:700;
  cursor:pointer; transition:all .2s; font-family:inherit;
}
.modal-submit:hover { background:var(--blue-light); }
.modal-fine { font-size:11px; color:var(--text-muted); margin-top:10px; }

/* ── TOAST ───────────────────────────────────────────────────────────────────*/
#toast {
  position:fixed; bottom:28px; left:50%;
  transform:translateX(-50%) translateY(80px);
  background:var(--bg-mid); border:1px solid rgba(50,83,255,.35);
  color:var(--text); padding:12px 22px; border-radius:10px;
  font-size:13px; font-weight:600; z-index:300;
  transition:transform .3s; white-space:nowrap;
}
#toast.show { transform:translateX(-50%) translateY(0); }

/* ── RESPONSIVE ──────────────────────────────────────────────────────────────*/
@media(max-width:700px) {
  nav { padding:16px 20px; } .nav-links { display:none; }
  .nav-wordmark { font-size:17px; }
  .hero h1 { white-space:normal; font-size:clamp(44px,14vw,64px); letter-spacing:-2px; }
  .form-row { grid-template-columns:1fr; } footer { padding:20px; }
  .stat-strip-inner { grid-template-columns:1fr; }
  .stat-item { border-right:none; border-bottom:1px solid var(--border); }
  .stat-item:last-child { border-bottom:none; }
}

/* ── RESOURCE BADGES ─────────────────────────────────────────────────────────*/
.resource-badge {
  display:block; font-family:'Rand','Inter',sans-serif;
  font-size:11px; font-weight:300; letter-spacing:.06em;
  margin-bottom:10px; background:none; border:none; padding:0;
}
.fc-badge { color:var(--blue); }
.ext-badge { color:var(--text-muted); }
[data-theme="light"] .ext-badge { color:rgba(20,25,40,.45); }

/* ── EXTERNAL RESEARCH SEPARATOR ────────────────────────────────────────────*/
.ext-research-sep {
  display:flex; align-items:center; gap:16px;
  margin:48px 0 32px; padding:0 2px;
}
.ext-sep-line { flex:1; height:1px; background:var(--border); }
.ext-sep-label {
  font-family:'Rand','Inter',sans-serif;
  font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--text-muted); white-space:nowrap;
}
.ext-card { opacity:.92; }
.ext-card:hover { opacity:1; }


/* ── HUMAN NUDGE ─────────────────────────────────────────────────────────────*/
.chat-followup-pills {
  display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;
}
.chat-followup-pill {
  background:transparent;
  border:1px solid var(--border);
  border-radius:100px;
  padding:6px 14px;
  font-size:13px; color:var(--text-muted);
  cursor:pointer; transition:color .2s, border-color .2s;
  font-family:inherit; text-align:left; line-height:1.4;
}
.chat-followup-pill:hover { color:var(--blue); border-color:var(--blue); }

.chat-human-nudge {
  margin-top:14px; padding-top:14px;
  border-top:1px solid var(--border);
  font-size:13px; color:var(--text-muted);
}
.chat-human-nudge a {
  color:var(--blue); text-decoration:none; font-weight:500;
}
.chat-human-nudge a:hover { text-decoration:underline; }


/* ── RESULT GATE ─────────────────────────────────────────────────────────────*/
.result-gate {
  margin-top:28px; padding-top:24px;
  border-top:1px solid var(--border);
  text-align:center;
}
.result-gate-label {
  font-size:13px; color:var(--text-muted); margin-bottom:16px;
  font-family:'Rand','Inter',sans-serif;
}
.result-gate-form {
  display:flex; flex-wrap:wrap; gap:10px; justify-content:center; align-items:center;
  max-width:540px; margin:0 auto;
}
.result-gate-form .form-input {
  flex:1; min-width:160px;
}
.result-gate-thanks {
  font-size:14px; color:var(--text-dim); margin-top:20px;
  font-family:'Rand','Inter',sans-serif;
}


/* ── RESEARCH SECTION ────────────────────────────────────────────────────────*/
.research-section { padding:72px 24px 80px; max-width:1200px; margin:0 auto; }
.research-header { text-align:center; margin-bottom:48px; }

.research-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
  margin-bottom:0;
}

.research-card {
  background:var(--bg-card);
  border:1px solid var(--border-card);
  border-radius:12px;
  overflow:hidden;
  transition:transform .2s, border-color .2s;
  display:flex; flex-direction:column;
}
.research-card:hover { transform:translateY(-3px); border-color:rgba(50,83,255,.22); }

.research-card-img-wrap {
  position:relative; overflow:hidden;
  aspect-ratio:16/9;
}
.research-card-img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s;
}
.research-card:hover .research-card-img { transform:scale(1.04); }

.research-card-type {
  position:absolute; top:12px; left:12px;
  background:rgba(20,25,40,.72); backdrop-filter:blur(6px);
  color:#fff; font-family:'Rand','Inter',sans-serif;
  font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  padding:4px 9px; border-radius:4px;
}
.research-card-type-ext {
  background:rgba(20,25,40,.82);
}

.research-card-body {
  padding:20px 22px 24px;
  display:flex; flex-direction:column; flex:1;
}

.research-card-badge {
  font-size:11px; font-weight:300; letter-spacing:.06em;
  margin-bottom:8px; background:none; border:none; padding:0;
  display:block;
}

.research-card-title {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:clamp(15px,1.4vw,18px); font-weight:300;
  color:var(--text); line-height:1.35; margin:0 0 10px;
}
.research-card-desc {
  font-family:'Rand','Inter',sans-serif;
  font-size:13px; color:var(--text-muted); line-height:1.65;
  margin:0 0 18px; flex:1;
}

.research-btn {
  display:inline-block; font-family:'Rand','Inter',sans-serif;
  font-size:12px; font-weight:600; letter-spacing:.04em;
  padding:8px 16px; border-radius:7px; border:none; cursor:pointer;
  text-decoration:none; transition:all .2s; width:fit-content;
}
.research-btn-read {
  background:var(--bg-hover); color:var(--text-dim);
  border:1px solid var(--border);
}
.research-btn-read:hover { border-color:rgba(50,83,255,.35); color:var(--blue); }
.research-btn-download {
  background:var(--blue-pale); color:var(--blue);
  border:1px solid rgba(50,83,255,.24);
}
.research-btn-download:hover { background:rgba(50,83,255,.15); border-color:rgba(50,83,255,.4); }

/* ── FILM SERIES CARD (full-width, cinematic) ────────────────────────────────*/
.research-films {
  grid-column:1 / -1;
  border-radius:12px; overflow:hidden;
}
.research-films-img-wrap {
  position:relative; aspect-ratio:auto; height:320px;
}
.research-films-img { width:100%; height:100%; object-fit:cover; display:block; }
.research-films-overlay {
  position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(20,25,40,.88) 0%, rgba(20,25,40,.4) 100%);
  display:flex; flex-direction:column; justify-content:center;
  padding:40px 48px;
}
.research-films-eyebrow {
  font-family:'Rand','Inter',sans-serif;
  font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--golden); margin-bottom:10px;
}
.research-films-title {
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:clamp(24px,3vw,38px); font-weight:300; color:#fff;
  margin:0 0 10px; line-height:1.15;
}
.research-films-sub {
  font-family:'Rand','Inter',sans-serif;
  font-size:14px; color:rgba(255,255,255,.65); margin:0 0 24px;
}
.research-btn-watch {
  background:var(--blue); color:#fff;
  border:none; padding:10px 22px;
}
.research-btn-watch:hover { background:var(--blue-light); }

@media(max-width:768px) {
  .research-grid { grid-template-columns:1fr; }
  .research-films-img-wrap { height:240px; }
  .research-films-overlay { padding:24px; }
}

/* ── RESEARCH ARCHIVE ────────────────────────────────────────────────────────*/
.research-archive-page { width:100%; max-width:100%; overflow-x:hidden; }
.research-archive-hero {
  max-width:1120px;
  margin:0 auto;
  padding:clamp(116px,15vw,196px) 24px clamp(64px,8vw,104px);
  text-align:center;
}
.research-archive-kicker {
  margin:0 0 18px;
  color:var(--accent-text);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.research-archive-hero h1 {
  max-width:1080px;
  margin:0 auto 26px;
  color:var(--text);
  font-family:'Tiempos Fine','Playfair Display',Georgia,serif;
  font-size:clamp(48px,7.5vw,88px);
  font-weight:300;
  letter-spacing:-.045em;
  line-height:1;
}
.research-archive-hero > p:last-child {
  max-width:720px;
  margin:0 auto;
  color:var(--text-dim);
  font-size:17px;
  line-height:1.7;
}
.ld-research-archive-results { max-width:1200px; margin:0 auto; padding:0 24px 132px; }
.ld-research-tools {
  display:grid;
  grid-template-columns:minmax(240px,1fr) minmax(180px,.35fr) auto auto;
  gap:10px;
  align-items:center;
  margin-bottom:20px;
  padding:14px;
  border:1px solid var(--border-card);
  border-radius:14px;
  background:var(--bg-card);
}
.ld-research-tools input,
.ld-research-tools select {
  width:100%; min-height:46px;
  padding:11px 14px;
  border:1px solid var(--border-input);
  border-radius:9px;
  outline:none;
  color:var(--text);
  background:var(--bg-input);
  font:400 14px/1.3 'Geist','DM Sans',system-ui,sans-serif;
}
.ld-research-tools input:focus,
.ld-research-tools select:focus { border-color:var(--blue); }
.ld-research-filter {
  min-height:46px; padding:11px 18px;
  border:0; border-radius:9px;
  color:#fff; background:var(--blue);
  font:700 13px/1.2 'Geist','DM Sans',system-ui,sans-serif;
  cursor:pointer;
}
.ld-research-filter:hover { background:var(--blue-light); }
.ld-research-clear { color:var(--text-muted); font-size:13px; text-underline-offset:3px; }
.ld-research-count { margin:0 0 28px; color:var(--text-muted); font-size:13px; }
.ld-research-empty {
  padding:80px 24px;
  border:1px solid var(--border-card);
  border-radius:16px;
  background:var(--bg-card);
  text-align:center;
}
.ld-research-empty h2 { margin:0 0 12px; color:var(--text); font-size:32px; font-weight:300; }
.ld-research-empty p { margin:0; color:var(--text-muted); }
.research-view-all { margin:32px 0 0; text-align:center; }
.ld-research-pagination { margin-top:56px; }
.ld-research-pagination ul { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0; padding:0; list-style:none; }
.ld-research-pagination a,
.ld-research-pagination span {
  display:flex; min-width:42px; min-height:42px; align-items:center; justify-content:center;
  padding:8px 12px; border:1px solid var(--border); border-radius:8px;
  color:var(--text); background:var(--bg-card); text-decoration:none; font-size:13px;
}
.ld-research-pagination .current { border-color:var(--blue); color:#fff; background:var(--blue); }

@media(max-width:760px) {
  .ld-research-tools { grid-template-columns:1fr; }
  .ld-research-clear { text-align:center; padding:8px; }
}

/* ── NAV ASSESS BUTTON ───────────────────────────────────────────────────────*/
.nav-assess-btn {
  font-family:'Rand','Inter',sans-serif;
  font-size:12px; font-weight:500; letter-spacing:.03em;
  padding:7px 14px; border-radius:8px; cursor:pointer;
  background:transparent; color:var(--text-muted);
  border:1px solid var(--border);
  transition:color .2s, border-color .2s;
}
.nav-assess-btn:hover { color:var(--blue); border-color:var(--blue); }

/* ── STAT SOURCE ─────────────────────────────────────────────────────────────*/
.stat-source {
  display:block; font-size:10px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--text-muted); opacity:.6; margin-top:4px;
}


/* ── SCROLL ANIMATIONS ───────────────────────────────────────────────────────*/
.reveal {
  opacity: 1;
  transform: none;
}
.has-js .reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .65s cubic-bezier(.25,.46,.45,.94), transform .65s cubic-bezier(.25,.46,.45,.94);
}
.has-js .reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-left {
  opacity: 1;
  transform: none;
}
.has-js .reveal-left {
  opacity: 0;
  transform: translateX(-24px);
  transition: opacity .65s cubic-bezier(.25,.46,.45,.94), transform .65s cubic-bezier(.25,.46,.45,.94);
}
.has-js .reveal-left.visible { opacity: 1; transform: translateX(0); }

/* Stagger delays for grid children */
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }
.reveal-delay-4 { transition-delay: .4s; }
.reveal-delay-5 { transition-delay: .5s; }
.reveal-delay-6 { transition-delay: .6s; }

/* Stat number count-up — starts hidden */
.stat-num { transition: opacity .4s; }

/* ── PRODUCTION FIXES ────────────────────────────────────────────────────────*/
html { scroll-behavior:smooth; }
:focus-visible { outline:2px solid var(--blue); outline-offset:2px; border-radius:4px; }
textarea:focus-visible, input:focus-visible { outline:none; } /* fields signal focus via their own border */
.assess-back {
  background:none; border:none; color:var(--text-muted);
  font-size:14px; cursor:pointer; font-family:inherit; padding:13px 0;
  transition:color .2s;
}
.assess-back:hover { color:var(--text); }
.assess-next { margin-left:auto; }
.chat-footer-note a { color:var(--text-muted); text-decoration:underline; }

/* ── MOTION ──────────────────────────────────────────────────────────────────*/
/* Word-by-word advisor answer reveal */
.chat-word-reveal { white-space:pre-wrap; }
.chat-word-reveal::after {
  content:''; display:inline-block; width:2px; height:1em; margin-left:3px;
  background:currentColor; vertical-align:-.12em;
  animation:chat-caret .8s steps(1,end) infinite;
}
@keyframes chat-caret { 50% { opacity:0; } }

/* Compass: idle breathe + settle wobble */
.nav-compass svg, .chat-msg-avatar svg { animation:breathe 7s ease-in-out infinite; }
@keyframes breathe { 0%,100% { transform:scale(1); } 50% { transform:scale(1.045); } }
.chat-msg-avatar.thinking svg { animation:compass-spin 1.2s linear infinite; }
.chat-msg-avatar.settle svg { animation:compass-settle .9s cubic-bezier(.34,1.56,.64,1); }
@keyframes compass-settle {
  0% { transform:rotate(0deg); } 25% { transform:rotate(-11deg); }
  55% { transform:rotate(6deg); } 80% { transform:rotate(-2.5deg); } 100% { transform:rotate(0deg); }
}

/* Drawn rules — divider lines draw in from the outer edges */
@media (prefers-reduced-motion: no-preference) {
  .div-line, .ext-sep-line { transform:scaleX(0); transition:transform 1.15s cubic-bezier(.25,.46,.45,.94) .1s; }
  .div-line:first-child, .ext-sep-line:first-child { transform-origin:left center; }
  .div-line:last-child, .ext-sep-line:last-child { transform-origin:right center; }
  .drawn .div-line, .drawn .ext-sep-line { transform:scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
  .nav-compass svg, .chat-msg-avatar svg, .chat-msg-avatar.settle svg { animation:none; }
  .chat-word-reveal::after { animation:none; opacity:0; }
}



      .fw1 {
        fill: url(#FCG_W);
      }

      .fw2 {
        letter-spacing: .24em;
      }

      .fw2, .fw3, .fw4, .fw5, .fw6, .fw7, .fw8, .fw9, .fw10, .fw11, .fw12 {
        font-family: TiemposFine-Light, 'Tiempos Fine';
      }

      .fw3 {
        letter-spacing: 0em;
      }

      .fw4 {
        letter-spacing: 0em;
      }

      .fw5 {
        letter-spacing: 0em;
      }

      .fw7 {
        letter-spacing: 0em;
      }

      .fw13, .fw14, .fw15 {
        fill: #fff;
      }

      .fw14 {
        font-family: Rand-Light, Rand;
        font-size: 20px;
      }

      .fw14, .fw15 {
        font-weight: 300;
      }

      .fw8 {
        letter-spacing: 0em;
      }

      .fw9 {
        letter-spacing: 0em;
      }

      .fw10 {
        letter-spacing: 0em;
      }

      .fw16 {
        font-family: TiemposFine-LightItalic, 'Tiempos Fine';
        font-style: italic;
        letter-spacing: 0em;
      }

      .fw11 {
        letter-spacing: -.07em;
      }

      .fw15 {
        font-size: 148.54px;
      }

      .fw12 {
        letter-spacing: -.03em;
      }

      .fw17 {
        fill: none;
        stroke: #fff;
        stroke-miterlimit: 10;
        stroke-width: 2px;
      }
    

      .fb1 {
        fill: url(#FCG_B);
      }

      .fb2 {
        letter-spacing: .24em;
      }

      .fb2, .fb3, .fb4, .fb5, .fb6, .fb7, .fb8, .fb9, .fb10, .fb11, .fb12 {
        font-family: TiemposFine-Light, 'Tiempos Fine';
      }

      .fb3 {
        letter-spacing: 0em;
      }

      .fb4 {
        letter-spacing: 0em;
      }

      .fb5 {
        letter-spacing: 0em;
      }

      .fb13 {
        font-family: Rand-Light, Rand;
        font-size: 20px;
      }

      .fb13, .fb14 {
        fill: #111921;
        font-weight: 300;
      }

      .fb15 {
        fill: none;
        stroke: #111921;
        stroke-miterlimit: 10;
        stroke-width: 2px;
      }

      .fb7 {
        letter-spacing: 0em;
      }

      .fb8 {
        letter-spacing: 0em;
      }

      .fb9 {
        letter-spacing: 0em;
      }

      .fb10 {
        letter-spacing: 0em;
      }

      .fb16 {
        font-family: TiemposFine-LightItalic, 'Tiempos Fine';
        font-style: italic;
        letter-spacing: 0em;
      }

      .fb11 {
        letter-spacing: -.07em;
      }

      .fb12 {
        letter-spacing: -.03em;
      }

      .fb14 {
        font-size: 148.54px;
      }

      .fb17 {
        fill: #141928;
      }
    
/* WP additions: nav home link wraps compass + wordmark (mockup had bare divs) */
.nav-home-link { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; border: 0; }
.nav-home-link:hover { text-decoration: none; }
a.nav-assess-btn { text-decoration: none; display: inline-flex; align-items: center; }

/* Chat: source attribution + typing indicator (not in the static mockup) */
.chat-msg-sources { font-size: 12px; color: var(--text-muted); margin: 2px 0 14px; letter-spacing: .02em; }
.chat-typing { opacity: .6; letter-spacing: 3px; }

/* Chat: advisor offer card */
.chat-offer { align-self:flex-start; max-width:82%; margin-top:4px; padding:16px 18px;
  background:var(--golden-pale); border:1px solid rgba(255,185,60,.3); border-radius:14px; }
.chat-offer p { font-size:14px; color:var(--text); margin:0 0 12px; line-height:1.5; }
.chat-offer-btn { background:var(--blue); color:#fff; border:none; padding:10px 20px;
  border-radius:8px; font-size:13px; font-weight:700; cursor:pointer; font-family:inherit; transition:background .2s; }
.chat-offer-btn:hover { background:var(--blue-light); }
