/* ═══════════════════════
   TOKENS
═══════════════════════ */
:root {
  --ink:         #0D0D0D;
  --ocean:       #0E2A3D;
  --ocean-mid:   #163548;
  --ocean-deep:  #091D2B;
  --ocean-pale:  rgba(14,42,61,.55);
  --ocean-light: #1A4A6B;
  --surface:     #F8F4EE;
  --warm:        #EDE6DA;
  --warm-mid:    #D0C8BA;
  --warm-dark:   #C4B9A8;
  --card:        #F1EAE0;
  --muted:       #6B6350;
  --slate:       #4A4540;
  --sep:         rgba(14,42,61,.1);
  --sep-light:   rgba(14,42,61,.18);
  --ff-d: 'Cormorant Garamond', Georgia, serif;
  --ff-b: 'DM Sans', system-ui, sans-serif;
  --sp-lg: 52px; --sp-xl: 72px;
  --ease:      .25s ease;
  --ease-med:  .45s ease;
  --ease-slow: .65s ease;
  --spring:    cubic-bezier(.34,1.56,.64,1);
}

/* ═══════════════════════
   RESET
═══════════════════════ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--ff-b); background:var(--surface); color:var(--ink);
  line-height:1.6; overflow-x:hidden;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
::selection { background:var(--ocean); color:var(--surface); }
a { color:inherit; text-decoration:none; }
button { cursor:pointer; font-family:var(--ff-b); border:none; background:none; }
em { font-style:italic; }
ul { list-style:none; }
img { max-width:100%; display:block; }
p { line-height:1.7; font-size:1rem; }
h1,h2,h3,h4 { font-family:var(--ff-d); font-weight:400; }
h1 { font-size:clamp(52px,9vw,108px); line-height:1.0; }
h2 { font-size:clamp(2.2rem,4vw,3.8rem); line-height:1.08; }
h3 { font-size:clamp(1.4rem,2.2vw,2rem); line-height:1.12; }

/* ═══════════════════════
   BLUEPRINT GRID
═══════════════════════ */
body::before {
  content:''; position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(14,42,61,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(14,42,61,.025) 1px, transparent 1px);
  background-size:40px 40px;
}

/* ═══════════════════════
   LAYOUT
═══════════════════════ */
.container { max-width:1080px; margin:0 auto; padding:0 var(--sp-lg); }
.sep { width:100%; height:.5px; background:var(--warm-mid); }
section { padding:var(--sp-xl) 0; position:relative; z-index:1; }
.s-ey {
  font-size:10px; font-weight:500; letter-spacing:.45em;
  text-transform:uppercase; color:var(--ocean); margin-bottom:16px;
  display:flex; align-items:center; gap:14px;
}
.s-ey::before { content:''; display:block; width:22px; height:.5px; background:var(--ocean); flex-shrink:0; }
.s-sub { color:var(--muted); max-width:580px; font-size:1.05rem; margin-top:16px; line-height:1.8; }

/* ═══════════════════════
   ANIMATIONS
═══════════════════════ */
.fu { opacity:0; transform:translateY(28px); transition:opacity var(--ease-slow), transform var(--ease-slow); will-change:opacity,transform; }
.fu.in { opacity:1; transform:none; }
.fu-d1 { transition-delay:.1s; } .fu-d2 { transition-delay:.2s; }
.fu-d3 { transition-delay:.3s; } .fu-d4 { transition-delay:.4s; }

@keyframes fadeUp    { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:none} }
@keyframes scrollLine{ 0%,100%{opacity:.3;transform:scaleY(.4);transform-origin:top} 50%{opacity:1;transform:scaleY(1);transform-origin:top} }
@keyframes blink     { 0%,80%,100%{opacity:0} 40%{opacity:1} }
@keyframes gateIn    { from{opacity:0;transform:scale(.97)} to{opacity:1;transform:none} }
@keyframes pulseRing { 0%{transform:scale(1);opacity:.5} 100%{transform:scale(1.6);opacity:0} }

/* ═══════════════════════
   BUTTONS
═══════════════════════ */
.btn-ink {
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--ink); border:1px solid var(--ink);
  color:var(--surface); padding:14px 34px; font-size:9px; font-weight:500;
  letter-spacing:.35em; text-transform:uppercase; transition:all var(--ease);
  position:relative; overflow:hidden;
}
.btn-ink::after {
  content:''; position:absolute; inset:0;
  background:var(--ocean); transform:scaleX(0); transform-origin:left;
  transition:transform var(--ease-med); z-index:0;
}
.btn-ink > * { position:relative; z-index:1; }
.btn-ink:hover::after { transform:scaleX(1); }
.btn-ink:hover { border-color:var(--ocean); }

.btn-out {
  display:inline-block; border:1px solid var(--warm-dark); color:var(--slate);
  padding:14px 32px; font-size:9px; font-weight:500;
  letter-spacing:.35em; text-transform:uppercase; transition:all var(--ease);
}
.btn-out:hover { border-color:var(--ocean); color:var(--ocean); }

/* ═══════════════════════
   GATE
═══════════════════════ */
.g-hidden { display:none !important; }
#gate {
  position:fixed; inset:0; background:var(--ink); z-index:1000;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  transition:opacity .9s var(--ease-med);
}
body.gated { overflow:hidden; }
#gate.out { opacity:0; pointer-events:none; }
#gate > * { animation:gateIn .8s ease both; }
#gate > *:nth-child(2) { animation-delay:.1s; }
#gate > *:nth-child(3) { animation-delay:.2s; }
#gate > *:nth-child(4) { animation-delay:.3s; }
.gate-sym { margin:0 auto 44px; position:relative; width:64px; height:64px; }
.gate-sym svg { width:64px; height:64px; opacity:.65; }
.gate-sym::after {
  content:''; position:absolute; inset:-8px; border-radius:50%;
  border:.5px solid rgba(14,42,61,.4);
  animation:pulseRing 3s ease-in-out infinite;
}
.gate-ttl {
  font-family:var(--ff-d); font-size:clamp(2rem,4vw,3rem);
  color:var(--surface); margin-bottom:10px; font-weight:300;
  letter-spacing:.03em; text-align:center;
}
.gate-intro { font-size:.875rem; color:rgba(248,244,238,.42); max-width:340px; text-align:center; line-height:1.75; margin-bottom:28px; }
.gate-sub { color:rgba(248,244,238,.38); font-size:8px; margin-bottom:52px; letter-spacing:.6em; text-transform:uppercase; text-align:center; }

.gate-go {
  background:var(--ocean); color:var(--surface); border:none;
  padding:16px 28px; font-size:8px; font-weight:500;
  letter-spacing:.15em; text-transform:uppercase; transition:background var(--ease);
}
.gate-go:hover { background:var(--ocean-mid); }

.gate-ft { color:rgba(255,255,255,.1); font-size:7px; letter-spacing:.22em; text-transform:uppercase; position:absolute; bottom:32px; }
.gate-req { font-size:8px; letter-spacing:.22em; text-transform:uppercase; color:rgba(248,244,238,.28); margin-top:20px; transition:color .25s ease; text-decoration:none; position:absolute; bottom:32px; }
.gate-req:hover { color:rgba(248,244,238,.55); }
.gate-langs { display:none; border:.5px solid rgba(255,255,255,.1); margin-top:32px; }
.g-lb { background:none; border:none; padding:8px 18px; font-size:8px; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.22); transition:all var(--ease); }
.g-lb.on { background:var(--ocean); color:var(--surface); }

/* ═══════════════════════
   NAV
═══════════════════════ */
#nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(248,244,238,.96);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border-bottom:.5px solid var(--sep);
  transition:transform .35s ease;
}
#nav.up { transform:translateY(-100%); }
.ni { max-width:1080px; margin:0 auto; padding:0 var(--sp-lg); display:flex; align-items:center; justify-content:space-between; height:60px; }
.n-logo { font-family:var(--ff-d); font-size:1.05rem; font-weight:500; letter-spacing:.03em; display:flex; align-items:center; gap:10px; }
.n-logo svg { width:18px; height:18px; flex-shrink:0; }
.n-links { display:flex; gap:36px; align-items:center; }
.n-links a { font-size:8px; letter-spacing:.35em; text-transform:uppercase; color:var(--ink); opacity:.65; transition:opacity var(--ease); }
.n-links a:hover { opacity:1; }
.n-r { display:flex; align-items:center; gap:12px; }
.lang-tog { display:none; border:.5px solid var(--warm-mid); }
.lb { background:none; border:none; padding:7px 14px; font-size:8px; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); transition:all var(--ease); }
.lb.on { background:var(--ocean); color:var(--surface); }
.n-cta { background:var(--ocean); color:var(--surface); padding:9px 22px; font-size:8px; letter-spacing:.2em; text-transform:uppercase; transition:background var(--ease); display:inline-block; }
.n-cta:hover { background:var(--ocean-mid); }
.burger { display:none; flex-direction:column; gap:5px; padding:4px; }
.burger span { display:block; width:22px; height:.5px; background:var(--ink); transition:all var(--ease); }
#mmenu { display:none; position:fixed; inset:0; background:var(--surface); z-index:99; padding:88px var(--sp-lg) 32px; flex-direction:column; gap:0; }
#mmenu.open { display:flex; }
#mmenu a { font-family:var(--ff-d); font-size:2.4rem; font-weight:300; border-bottom:.5px solid var(--warm-mid); padding:20px 0; transition:color var(--ease); }
#mmenu a:hover { color:var(--ocean); }

/* ═══════════════════════
   HERO
═══════════════════════ */
#hero { padding:120px 0 var(--sp-xl); min-height:auto; display:flex; align-items:center; overflow:hidden; }
.h-ey { font-size:8.5px; font-weight:500; letter-spacing:.5em; text-transform:uppercase; color:var(--ocean); margin-bottom:32px; display:flex; align-items:center; gap:14px; opacity:0; animation:fadeUp 1s ease .25s forwards; }
.h-ey::before { content:''; display:block; width:22px; height:.5px; background:var(--ocean); flex-shrink:0; }
.h-ttl { font-family:var(--ff-d); font-size:clamp(44px,7vw,88px); font-weight:400; color:var(--ink); line-height:1.02; max-width:860px; opacity:0; animation:fadeUp 1s ease .4s forwards; margin-bottom:32px; }
.h-ttl em { font-style:italic; color:var(--ocean-light); }
.h-sub { font-size:.95rem; color:var(--muted); max-width:480px; line-height:1.85; opacity:0; animation:fadeUp 1s ease .55s forwards; margin-bottom:44px; }
.h-acts { display:flex; gap:16px; align-items:center; flex-wrap:wrap; opacity:0; animation:fadeUp 1s ease .7s forwards; }
.scroll-hint { display:flex; align-items:center; gap:16px; font-size:8px; letter-spacing:.3em; text-transform:uppercase; color:var(--muted); margin-top:72px; opacity:0; animation:fadeUp 1s ease .9s forwards; }
.scroll-line { width:1px; height:52px; background:rgba(14,42,61,.45); animation:scrollLine 2.2s ease-in-out infinite; }

/* ═══════════════════════
   MANIFESTO
═══════════════════════ */
#manifesto { background:var(--ocean); padding:var(--sp-xl) 0; }
.man-in { max-width:820px; margin:0 auto; text-align:center; padding:0 var(--sp-lg); }
.man-q { font-family:var(--ff-d); font-size:clamp(1.9rem,3.8vw,3.4rem); font-weight:300; color:var(--surface); line-height:1.4; margin-bottom:48px; letter-spacing:.01em; }
.man-q em { color:rgba(248,244,238,.45); font-style:italic; }
.man-line { width:32px; height:.5px; background:rgba(248,244,238,.2); margin:0 auto 32px; }
.man-tag { font-size:8.5px; letter-spacing:.45em; text-transform:uppercase; color:rgba(248,244,238,.3); }

/* ═══════════════════════
   FOR WHO
═══════════════════════ */
#forwho { background:var(--card); }
.fw-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:.5px solid var(--sep); margin-top:64px; }
.fw-card { padding:48px 40px; border-right:.5px solid var(--sep); transition:background var(--ease); position:relative; overflow:hidden; }
.fw-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--ocean); transform:scaleX(0); transform-origin:left; transition:transform var(--ease-med); }
.fw-card:hover::after { transform:scaleX(1); }
.fw-card:last-child { border-right:none; }
.fw-card:hover { background:var(--warm); }
.fw-num { font-family:var(--ff-d); font-size:3rem; font-weight:300; color:var(--ink); margin-bottom:24px; line-height:1; opacity:.15; }
.fw-tag { display:inline-block; font-size:9px; letter-spacing:.28em; text-transform:uppercase; color:var(--ocean); border:.5px solid rgba(14,42,61,.25); padding:7px 14px; margin-bottom:22px; font-weight:500; }
.fw-ttl { font-family:var(--ff-d); font-size:1.85rem; margin-bottom:20px; }
.fw-desc { font-size:.95rem; color:var(--muted); line-height:1.85; }

/* ═══════════════════════
   ENGAGEMENTS
═══════════════════════ */
.eng-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:.5px solid var(--sep); margin-top:64px; }
.ec { padding:44px 36px; border-right:.5px solid var(--sep); display:flex; flex-direction:column; transition:background var(--ease); position:relative; overflow:hidden; }
.ec:last-child { border-right:none; }
.ec:not(.feat):hover { background:var(--warm); }
.ec.feat { background:var(--ocean); }
.ec.feat:hover { background:var(--ocean-mid); }
.ec-badge { font-size:7.5px; font-weight:500; letter-spacing:.28em; text-transform:uppercase; color:var(--ocean); margin-bottom:28px; min-height:16px; }
.ec.feat .ec-badge { color:rgba(248,244,238,.4); }
.ec-price { font-family:var(--ff-d); font-size:3.4rem; font-weight:300; line-height:1; margin-bottom:10px; color:var(--ink); }
.ec.feat .ec-price { color:var(--surface); }
.ec-price-free { font-family:var(--ff-d); font-size:2.2rem; font-weight:300; color:rgba(14,42,61,.6); margin-bottom:8px; line-height:1; }
.ec-dur { font-size:8px; color:var(--muted); letter-spacing:.2em; text-transform:uppercase; margin-bottom:28px; padding-bottom:28px; border-bottom:.5px solid var(--sep); }
.ec.feat .ec-dur { color:rgba(248,244,238,.35); border-color:rgba(255,255,255,.07); }
.ec-name { font-family:var(--ff-d); font-size:1.8rem; margin-bottom:18px; color:var(--ink); }
.ec.feat .ec-name { color:var(--surface); }
.ec-desc { font-size:.95rem; color:var(--muted); line-height:1.8; margin-bottom:28px; flex:1; }
.ec.feat .ec-desc { color:rgba(248,244,238,.5); }
.ec-list { margin-bottom:32px; }
.ec-list li { font-size:.8rem; color:var(--muted); padding:10px 0; border-bottom:.5px solid var(--sep); display:flex; gap:14px; align-items:baseline; }
.ec-list li::before { content:'\2014'; color:rgba(14,42,61,.52); flex-shrink:0; font-size:.75rem; }
.ec.feat .ec-list li { color:rgba(248,244,238,.45); border-color:rgba(255,255,255,.06); }
.ec.feat .ec-list li::before { color:rgba(248,244,238,.4); }
.ec-btn { width:100%; padding:14px; border:.5px solid var(--sep); background:none; color:var(--ocean); font-size:8px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; transition:all var(--ease); margin-top:auto; display:block; text-align:center; }
.ec-btn:hover { background:var(--ocean); color:var(--surface); border-color:var(--ocean); }
.ec.feat .ec-btn { border-color:rgba(248,244,238,.14); color:rgba(248,244,238,.6); }
.ec.feat .ec-btn:hover { background:rgba(248,244,238,.1); border-color:rgba(248,244,238,.2); color:var(--surface); }
.ec-btn-br { width:100%; padding:14px; background:var(--surface); color:var(--ocean); font-size:8px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; transition:all var(--ease); margin-top:auto; display:block; text-align:center; border:.5px solid rgba(248,244,238,.2); }
.ec-btn-br:hover { background:var(--warm); color:var(--ocean-deep); }
.eng-guar { margin-top:40px; font-size:.82rem; color:var(--muted); font-style:italic; text-align:center; padding:20px 32px; border:.5px solid var(--sep); }

/* ═══════════════════════
   TRAINING
═══════════════════════ */
#training { background:var(--card); }
.tr-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0; border:.5px solid var(--sep); margin-top:56px; }
.tr-card { padding:28px 26px; cursor:pointer; transition:background var(--ease); position:relative; border-bottom:.5px solid var(--sep); }
.tr-card:nth-child(odd) { border-right:.5px solid var(--sep); }
.tr-card:hover, .tr-card.open { background:var(--warm); }
.tr-hd { display:flex; justify-content:space-between; align-items:start; gap:16px; }
.tr-name { font-family:var(--ff-d); font-size:1.35rem; margin-bottom:6px; line-height:1.25; }
.tr-hook { font-size:.8rem; color:var(--muted); font-style:italic; line-height:1.5; }
.tr-r { text-align:right; flex-shrink:0; }
.tr-price { font-family:var(--ff-d); font-size:1.3rem; line-height:1; }
.tr-tog { font-size:1rem; color:rgba(14,42,61,.52); margin-top:6px; transition:transform var(--ease); }
.tr-card.open .tr-tog { transform:rotate(45deg); }
.tr-body { display:none; margin-top:22px; padding-top:22px; border-top:.5px solid var(--sep); }
.tr-card.open .tr-body { display:block; }
.tr-desc { font-size:.8rem; color:var(--muted); line-height:1.8; margin-bottom:14px; }
.tr-inc { font-size:.75rem; color:var(--muted); font-style:italic; margin-bottom:16px; padding-bottom:14px; border-bottom:.5px solid var(--sep); }
.tr-inc strong { font-style:normal; font-weight:500; color:var(--slate); font-size:7.5px; letter-spacing:.2em; text-transform:uppercase; display:block; margin-bottom:4px; }
.tr-bk { padding:9px 18px; border:.5px solid var(--sep); background:none; color:var(--ocean); font-size:7.5px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; transition:all var(--ease); display:inline-block; margin-top:12px; }
.tr-bk:hover { background:var(--ocean); color:var(--surface); border-color:var(--ocean); }
.tr-disc { font-size:.78rem; color:var(--muted); margin-top:40px; font-style:italic; padding:20px 24px; border:.5px solid var(--sep); background:var(--surface); }

/* ═══════════════════════
   WHERE TO START
═══════════════════════ */
.wts-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:.5px solid var(--sep); margin-top:48px; }
.wts-card { padding:36px 32px; border-right:.5px solid var(--sep); }
.wts-card:last-child { border-right:none; }
.wts-label { font-size:7.5px; letter-spacing:.32em; text-transform:uppercase; color:var(--ocean); margin-bottom:16px; }
.wts-title { font-family:var(--ff-d); font-size:1.55rem; margin-bottom:12px; }
.wts-desc { font-size:.875rem; color:var(--muted); line-height:1.8; margin-bottom:24px; }
.wts-link { font-size:8px; letter-spacing:.22em; text-transform:uppercase; color:var(--ocean); display:inline-flex; align-items:center; gap:8px; }
.wts-link::before { content:''; display:inline-block; width:16px; height:.5px; background:var(--ocean); }

/* ═══════════════════════
   FOUNDERSTACK
═══════════════════════ */
#founderstack { background:var(--ink); padding:var(--sp-xl) 0; position:relative; overflow:hidden; }
#founderstack::before { content:''; position:absolute; inset:0; pointer-events:none; background-image: linear-gradient(rgba(14,42,61,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(14,42,61,.06) 1px, transparent 1px); background-size:40px 40px; }
.fs-hd { margin-bottom:56px; }
.fs-hd .s-ey { color:rgba(248,244,238,.35); }
.fs-hd .s-ey::before { background:rgba(248,244,238,.2); }
.fs-hd h2 { color:var(--surface); }
.fs-hd .s-sub { color:rgba(248,244,238,.38); }
.fs-cats { display:flex; gap:0; border:.5px solid rgba(255,255,255,.08); margin-bottom:32px; flex-wrap:wrap; }
.fs-cat { padding:10px 22px; font-size:8px; letter-spacing:.25em; text-transform:uppercase; color:rgba(248,244,238,.3); transition:all var(--ease); cursor:pointer; border-right:.5px solid rgba(255,255,255,.06); }
.fs-cat:last-child { border-right:none; }
.fs-cat.on { background:var(--ocean); color:var(--surface); }
.fs-cat:hover:not(.on) { color:rgba(248,244,238,.6); background:rgba(255,255,255,.03); }
.fs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:.5px solid rgba(255,255,255,.08); }
.fs-card { padding:32px 28px; border-right:.5px solid rgba(255,255,255,.06); border-bottom:.5px solid rgba(255,255,255,.06); transition:background var(--ease); position:relative; }
.fs-card:nth-child(3n) { border-right:none; }
.fs-card:hover { background:rgba(255,255,255,.02); }
.fs-card-top { display:flex; justify-content:space-between; align-items:start; margin-bottom:14px; }
.fs-card-name { font-family:var(--ff-d); font-size:1.3rem; color:var(--surface); }
.fs-card-badge { font-size:7px; letter-spacing:.2em; text-transform:uppercase; padding:4px 10px; border:.5px solid rgba(248,244,238,.12); color:rgba(248,244,238,.35); }
.fs-card-badge.rec { border-color:var(--ocean); color:var(--ocean-light); background:rgba(14,42,61,.15); }
.fs-card-desc { font-size:.82rem; color:rgba(248,244,238,.4); line-height:1.7; margin-bottom:16px; }
.fs-card-meta { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.fs-card-price { font-size:.8rem; color:rgba(248,244,238,.55); }
.fs-card-tag { font-size:7px; letter-spacing:.15em; text-transform:uppercase; color:rgba(248,244,238,.2); padding:3px 8px; border:.5px solid rgba(255,255,255,.06); }
.fs-card-link { font-size:7.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ocean-light); margin-top:14px; display:inline-block; transition:color var(--ease); }
.fs-card-link:hover { color:var(--surface); }
.fs-verdict { margin-top:32px; padding:24px 28px; border:.5px solid rgba(255,255,255,.06); }
.fs-verdict-label { font-size:7.5px; letter-spacing:.3em; text-transform:uppercase; color:rgba(248,244,238,.3); margin-bottom:10px; }
.fs-verdict-text { font-size:.9rem; color:rgba(248,244,238,.5); line-height:1.8; }
.fs-cta { margin-top:40px; text-align:center; }
.fs-cta-btn { display:inline-block; border:.5px solid rgba(248,244,238,.14); color:rgba(248,244,238,.6); padding:14px 36px; font-size:8px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; transition:all var(--ease); }
.fs-cta-btn:hover { background:rgba(248,244,238,.06); border-color:rgba(248,244,238,.2); color:var(--surface); }

/* ═══════════════════════
   FIT CALL BANNER
═══════════════════════ */
#fitcall { background:var(--ocean); padding:var(--sp-lg) 0; }
.fc-in { display:flex; justify-content:space-between; align-items:center; gap:56px; }
.fc-ey { font-size:8.5px; letter-spacing:.48em; text-transform:uppercase; color:rgba(248,244,238,.35); margin-bottom:16px; }
.fc-ttl { font-family:var(--ff-d); font-size:clamp(2.4rem,4vw,3.6rem); font-weight:300; color:var(--surface); line-height:1.05; margin-bottom:12px; }
.fc-sub { color:rgba(248,244,238,.55); font-size:.9rem; line-height:1.75; }
.fc-val { font-size:8px; color:rgba(248,244,238,.28); margin-top:14px; letter-spacing:.15em; text-transform:uppercase; }
.fc-btn { white-space:nowrap; background:var(--surface); color:var(--ocean); padding:16px 40px; font-size:8px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; transition:all var(--ease); display:inline-block; flex-shrink:0; }
.fc-btn:hover { background:var(--warm); color:var(--ocean-deep); }

/* ═══════════════════════
   FOUNDER ROOM
═══════════════════════ */
#founderroom { background:var(--card); }

/* ═══════════════════════
   BOOKING
═══════════════════════ */
#booking { background:var(--ink); padding:var(--sp-xl) 0; position:relative; overflow:hidden; }
#booking::before { content:''; position:absolute; inset:0; pointer-events:none; background-image: linear-gradient(rgba(14,42,61,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(14,42,61,.06) 1px, transparent 1px); background-size:40px 40px; }
.bk-hd { margin-bottom:48px; }
.bk-hd .s-ey { color:rgba(248,244,238,.35); }
.bk-hd .s-ey::before { background:rgba(248,244,238,.2); }
.bk-hd h2 { color:var(--surface); }
.bk-hd .s-sub { color:rgba(248,244,238,.3); }
.bk-wrap { border:.5px solid rgba(255,255,255,.06); overflow:hidden; }
.calendly-inline-widget { min-width:320px; height:700px; }
.bk-note { margin-top:24px; font-size:10px; font-weight:300; color:rgba(248,244,238,.18); text-align:center; letter-spacing:.05em; }

/* ═══════════════════════
   FOUNDING MEMBERS
═══════════════════════ */
.founding-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:.5px solid var(--sep); margin-top:56px; }
.founding-card { padding:36px 30px; border-right:.5px solid var(--sep); transition:background var(--ease); }
.founding-card:last-child { border-right:none; }
.founding-card:hover { background:var(--warm); }
.founding-num { font-family:var(--ff-d); font-size:1.8rem; font-weight:300; color:var(--ocean); margin-bottom:16px; line-height:1; opacity:.45; }
.founding-role { font-size:8px; letter-spacing:.28em; text-transform:uppercase; color:var(--ocean); border:.5px solid rgba(14,42,61,.3); padding:6px 13px; margin-bottom:18px; display:inline-block; font-weight:500; }
.founding-desc { font-size:.95rem; color:var(--muted); line-height:1.9; }

/* ═══════════════════════
   BRIEFING BANNER
═══════════════════════ */
#briefing { background:var(--ink); padding:var(--sp-lg) 0; }
.br-in { display:flex; justify-content:space-between; align-items:center; gap:56px; }
.br-ey { font-size:8.5px; letter-spacing:.48em; text-transform:uppercase; color:rgba(248,244,238,.35); margin-bottom:16px; }
.br-ttl { font-family:var(--ff-d); font-size:clamp(1.8rem,3.4vw,2.8rem); color:var(--surface); font-weight:300; margin-bottom:12px; line-height:1.1; }
.br-sub { font-size:.875rem; color:rgba(248,244,238,.35); max-width:360px; line-height:1.8; }
.br-form { display:flex; border:.5px solid rgba(255,255,255,.09); flex-shrink:0; transition:border-color var(--ease); }
.br-form:focus-within { border-color:rgba(14,42,61,.5); }
.br-inp { background:rgba(255,255,255,.04); border:none; padding:14px 22px; font-size:.875rem; color:var(--surface); font-family:var(--ff-b); width:248px; outline:none; }
.br-inp::placeholder { color:rgba(255,255,255,.18); }
.br-sub-btn { background:var(--ocean); color:var(--surface); border:none; padding:14px 22px; font-size:.95rem; transition:background var(--ease); display:flex; align-items:center; justify-content:center; }
.br-sub-btn:hover { background:var(--ocean-mid); }
.br-ok { font-size:.82rem; color:rgba(248,244,238,.5); margin-top:14px; display:none; font-style:italic; }

/* ═══════════════════════
   FOUNDER
═══════════════════════ */
#founder { background:var(--ink); padding:var(--sp-xl) 0; }
.fo-in { display:grid; grid-template-columns:1fr 1fr; gap:88px; align-items:center; }
.fo-lbl { font-size:8.5px; font-weight:500; letter-spacing:.5em; text-transform:uppercase; color:rgba(248,244,238,.3); margin-bottom:24px; }
.fo-ttl { font-family:var(--ff-d); font-size:clamp(2rem,3.4vw,3rem); font-weight:300; color:var(--surface); margin-bottom:28px; line-height:1.15; }
.fo-div { width:32px; height:.5px; background:rgba(14,42,61,.55); margin-bottom:32px; }
.fo-txt p { font-size:.95rem; color:rgba(248,244,238,.45); line-height:1.95; margin-bottom:22px; }
.fo-txt strong { font-weight:500; color:rgba(248,244,238,.72); }

/* ═══════════════════════
   FAQ
═══════════════════════ */
#faq { background:var(--card); }
.faq-list { margin-top:48px; max-width:760px; border:.5px solid var(--sep); }
.faq-it { border-bottom:.5px solid var(--sep); }
.faq-it:last-child { border-bottom:none; }
.faq-q { width:100%; background:var(--card); border:none; text-align:left; padding:22px 28px; font-family:var(--ff-d); font-size:1.05rem; display:flex; justify-content:space-between; align-items:center; gap:28px; cursor:pointer; transition:background var(--ease); }
.faq-q:hover { background:var(--warm); }
.faq-ic { color:rgba(14,42,61,.52); font-size:1rem; flex-shrink:0; transition:transform var(--ease); }
.faq-it.open .faq-ic { transform:rotate(45deg); }
.faq-a { display:none; padding:0 28px 22px; font-size:.875rem; color:var(--muted); line-height:1.9; background:var(--card); }
.faq-it.open .faq-a { display:block; }

/* ═══════════════════════
   POLICIES
═══════════════════════ */
#policies { background:var(--surface); }
.pol-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:.5px solid var(--sep); margin-top:40px; }
.pol-card { padding:30px 26px; border-right:.5px solid var(--sep); }
.pol-card:last-child { border-right:none; }
.pol-ttl { font-size:8.5px; font-weight:500; letter-spacing:.42em; text-transform:uppercase; color:var(--ocean); margin-bottom:14px; }
.pol-txt { font-size:.82rem; color:var(--muted); line-height:1.8; }

/* ═══════════════════════
   STICKY BAR
═══════════════════════ */
#sbar { position:fixed; bottom:0; left:0; right:0; background:var(--ink); border-top:.5px solid rgba(255,255,255,.06); padding:14px var(--sp-lg); display:none; align-items:center; justify-content:space-between; gap:24px; z-index:90; }
#sbar.on { display:flex; }
.sb-lbl { font-size:7.5px; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.28); }
.sb-sel { font-size:.9rem; color:var(--surface); margin-top:3px; }
.sb-btn { background:var(--ocean); color:var(--surface); padding:10px 28px; font-size:8px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; transition:background var(--ease); }
.sb-btn:hover { background:var(--ocean-mid); }
.sb-x { color:rgba(255,255,255,.18); font-size:14px; cursor:pointer; transition:color var(--ease); line-height:1; }
.sb-x:hover { color:var(--surface); }

/* ═══════════════════════
   BACK TO TOP
═══════════════════════ */
#btop { position:fixed; bottom:72px; right:28px; width:36px; height:36px; background:var(--ink); border:.5px solid rgba(255,255,255,.12); color:var(--surface); display:none; align-items:center; justify-content:center; z-index:200; transition:all var(--ease); cursor:pointer; }
#btop.on { display:flex; }
#btop:hover { background:var(--ocean); border-color:var(--ocean); }
#btop svg { width:13px; height:13px; }

/* ═══════════════════════
   BOT
═══════════════════════ */
/* bot masqué tant que la clé /chat est morte (renvoie 401) — remettre display:flex une fois la clé Anthropic reposée dans Cloudflare */
#bot-tog { position:fixed; bottom:28px; right:28px; width:44px; height:44px; background:var(--ink); border:.5px solid rgba(255,255,255,.12); color:rgba(248,244,238,.55); display:flex; align-items:center; justify-content:center; z-index:200; font-size:1.1rem; transition:all var(--ease); cursor:pointer; }
#bot-tog:hover, #bot-tog.on { background:var(--ocean); border-color:var(--ocean); color:var(--surface); }
#bot-pan { position:fixed; bottom:84px; right:28px; width:340px; max-height:500px; background:var(--ink); border:.5px solid rgba(255,255,255,.08); z-index:200; flex-direction:column; visibility:hidden; opacity:0; transform:translateY(10px) scale(.97); transition:opacity var(--ease-med), transform var(--ease-med), visibility 0s linear .45s; display:flex; }
#bot-pan.open { visibility:visible; opacity:1; transform:none; transition:opacity var(--ease-med), transform var(--ease-med), visibility 0s linear 0s; }
.bh { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:.5px solid rgba(255,255,255,.07); }
.bh-t { font-family:var(--ff-d); font-size:.95rem; color:var(--surface); }
.bh-s { font-size:7.5px; color:rgba(248,244,238,.35); letter-spacing:.15em; text-transform:uppercase; margin-top:2px; }
.b-close { color:rgba(255,255,255,.28); font-size:1rem; transition:color var(--ease); }
.b-close:hover { color:var(--surface); }
.b-msgs { flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; min-height:180px; }
.b-msg { max-width:88%; font-size:.82rem; line-height:1.7; padding:10px 14px; }
.b-msg.bot { background:rgba(255,255,255,.05); color:rgba(248,244,238,.78); align-self:flex-start; }
.b-msg.usr { background:var(--ocean); color:var(--surface); align-self:flex-end; }
.b-typ { padding:10px 14px; background:rgba(255,255,255,.05); align-self:flex-start; display:none; gap:4px; align-items:center; }
.b-typ.on { display:flex; }
.b-dot { width:5px; height:5px; background:rgba(248,244,238,.45); border-radius:50%; animation:blink 1.2s infinite; }
.b-dot:nth-child(2) { animation-delay:.2s; }
.b-dot:nth-child(3) { animation-delay:.4s; }
.b-row { display:flex; border-top:.5px solid rgba(255,255,255,.07); }
.b-in { flex:1; background:transparent; border:none; padding:13px 16px; color:var(--surface); font-size:.82rem; font-family:var(--ff-b); outline:none; resize:none; }
.b-in::placeholder { color:rgba(255,255,255,.18); }
.b-send { background:var(--ocean); padding:13px 16px; color:var(--surface); font-size:.85rem; transition:background var(--ease); }
.b-send:hover { background:var(--ocean-mid); }
.b-send.busy { opacity:.4; pointer-events:none; }

/* ═══════════════════════
   NOTIFICATION
═══════════════════════ */
#notif { position:fixed; bottom:24px; left:24px; background:var(--card); border:.5px solid var(--ocean); border-left:2px solid var(--ocean); padding:13px 18px; font-size:11px; font-weight:300; color:var(--ink); z-index:9000; max-width:290px; transform:translateX(-130%); transition:transform .4s var(--spring); pointer-events:none; }
#notif.on { transform:translateX(0); }

/* ═══════════════════════
   MODALS
═══════════════════════ */
.ov { position:fixed; inset:0; background:rgba(13,13,13,.88); z-index:500; display:none; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(6px); overflow-y:auto; }
.ov.open { display:flex; }
.mb { background:var(--surface); max-width:540px; width:100%; padding:52px 44px; position:relative; max-height:90vh; overflow-y:auto; }
.mb-x { position:absolute; top:20px; right:20px; font-size:1.1rem; color:var(--muted); transition:color var(--ease); cursor:pointer; }
.mb-x:hover { color:var(--ink); }
#mod-app .mb { background:var(--ocean); border:.5px solid rgba(248,244,238,.08); }
#mod-app .mb-x { color:rgba(248,244,238,.28); }
#mod-app .mb-x:hover { color:var(--surface); }
.app-ey { font-size:8.5px; letter-spacing:.5em; text-transform:uppercase; color:rgba(248,244,238,.35); margin-bottom:18px; }
.app-ttl { font-family:var(--ff-d); font-size:2.4rem; font-weight:300; color:var(--surface); margin-bottom:14px; }
.app-desc { font-size:.875rem; color:rgba(248,244,238,.42); line-height:1.85; margin-bottom:28px; }
.app-div { height:.5px; background:rgba(248,244,238,.07); margin-bottom:28px; }
.app-cta { font-size:.875rem; color:rgba(248,244,238,.45); margin-bottom:22px; line-height:1.7; }
.app-mail { display:inline-block; font-size:.875rem; color:rgba(248,244,238,.65); letter-spacing:.04em; padding:16px 24px; border:.5px solid rgba(248,244,238,.15); transition:all var(--ease); word-break:break-all; }
.app-mail:hover { border-color:rgba(248,244,238,.3); background:rgba(248,244,238,.04); }
.app-note { margin-top:24px; font-size:10px; color:rgba(248,244,238,.18); letter-spacing:.06em; line-height:1.7; }

/* ═══════════════════════
   LEGAL PANEL
═══════════════════════ */
#legal { position:fixed; inset:0; background:var(--surface); z-index:600; display:none; overflow-y:auto; }
#legal.open { display:block; }
.lg-in { max-width:720px; margin:0 auto; padding:88px var(--sp-lg) var(--sp-xl); }
.lg-x { position:fixed; top:24px; right:var(--sp-lg); background:var(--ink); color:var(--surface); padding:9px 20px; font-size:7.5px; letter-spacing:.2em; text-transform:uppercase; transition:background var(--ease); cursor:pointer; }
.lg-x:hover { background:var(--ocean); }
.lg-tabs { display:flex; border:.5px solid var(--sep); margin-bottom:52px; }
.lg-tab { padding:10px 22px; font-size:8px; letter-spacing:.3em; text-transform:uppercase; color:var(--muted); transition:all var(--ease); cursor:pointer; }
.lg-tab.on { background:var(--ocean); color:var(--surface); }
.lg-pane { display:none; }
.lg-pane.on { display:block; }
.lg-pane h2 { font-family:var(--ff-d); font-size:1.9rem; margin-bottom:36px; }
.lg-pane h3 { font-family:var(--ff-d); font-size:1.2rem; margin:32px 0 10px; }
.lg-pane p { font-size:.875rem; color:var(--muted); line-height:1.9; margin-bottom:12px; }

/* ═══════════════════════
   CONFIRMATION
═══════════════════════ */
#conf-page { display:none; min-height:100vh; padding:108px var(--sp-lg) var(--sp-xl); }
#conf-page.on { display:block; }
.cp-wrap { max-width:580px; margin:0 auto; }
.cp-back { display:inline-flex; align-items:center; gap:10px; font-size:8px; letter-spacing:.3em; text-transform:uppercase; color:var(--ocean); margin-bottom:52px; cursor:pointer; transition:opacity var(--ease); }
.cp-back:hover { opacity:.6; }
.cp-ic { font-family:var(--ff-d); font-size:1.4rem; font-weight:300; color:var(--ocean); margin-bottom:14px; display:flex; align-items:center; gap:14px; }
.cp-ttl { font-family:var(--ff-d); font-size:clamp(2rem,4vw,3rem); font-weight:300; margin-bottom:52px; line-height:1.1; }
.cp-blk { padding:26px 0; border-bottom:.5px solid var(--warm-mid); }
.cp-blk-l { font-size:8px; letter-spacing:.38em; text-transform:uppercase; color:var(--ocean); margin-bottom:12px; }
.cp-blk-t { font-size:.875rem; color:var(--muted); line-height:1.85; }
.cp-blk-t strong { font-weight:500; color:var(--ink); }
.cp-close { font-family:var(--ff-d); font-size:1.25rem; margin:36px 0 10px; font-style:italic; color:var(--muted); }
.cp-mail { font-size:.85rem; color:var(--ocean); }
.cp-brand { font-size:7.5px; color:var(--muted); margin-top:12px; letter-spacing:.2em; text-transform:uppercase; }

/* ═══════════════════════
   FOOTER
═══════════════════════ */
#footer { background:var(--ink); padding:var(--sp-lg) 0 var(--sp-xl); }
.ft-in { display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-lg); margin-bottom:48px; padding-bottom:48px; border-bottom:.5px solid rgba(255,255,255,.06); }
.ft-brand { font-family:var(--ff-d); font-size:1.4rem; color:var(--surface); margin-bottom:12px; font-weight:300; }
.ft-tag { font-size:7.5px; color:rgba(255,255,255,.15); letter-spacing:.26em; text-transform:uppercase; }
.ft-ct { font-size:7.5px; letter-spacing:.32em; text-transform:uppercase; color:rgba(248,244,238,.3); margin-bottom:20px; }
.ft-links { display:flex; flex-direction:column; gap:12px; }
.ft-links a, .ft-links button { font-size:.82rem; color:rgba(255,255,255,.26); transition:color var(--ease); background:none; border:none; padding:0; text-align:left; cursor:pointer; font-family:var(--ff-b); }
.ft-links a:hover, .ft-links button:hover { color:var(--surface); }
.ft-bot { display:flex; justify-content:space-between; align-items:center; }
.ft-copy { font-size:7.5px; color:rgba(255,255,255,.1); letter-spacing:.15em; }
.ft-langs { display:none; gap:20px; }
.ft-lb { color:rgba(255,255,255,.15); font-size:7.5px; letter-spacing:.2em; text-transform:uppercase; transition:color var(--ease); cursor:pointer; }
.ft-lb.on { color:rgba(248,244,238,.55); }

/* ═══════════════════════
   UTILS
═══════════════════════ */
::-webkit-scrollbar { width:3px; }
::-webkit-scrollbar-track { background:var(--card); }
::-webkit-scrollbar-thumb { background:var(--warm-mid); }
:focus-visible { outline:1px solid var(--ocean); outline-offset:3px; }

/* ═══════════════════════
   RESPONSIVE
═══════════════════════ */
@media (max-width:900px) {
  .container { padding:0 24px; } .ni { padding:0 24px; }
  .n-links { display:none; } .burger { display:flex; }
  .h-ttl { font-size:clamp(40px,10vw,60px); }
  .eng-grid, .fw-grid, .tr-grid, .founding-grid, .pol-grid, .wts-grid, .fs-grid { grid-template-columns:1fr; border:none; }
  .ec, .fw-card, .tr-card, .founding-card, .pol-card, .wts-card, .fs-card { border-right:none; border-bottom:.5px solid var(--sep); }
  .fo-in { grid-template-columns:1fr; gap:44px; }
  .br-in, .fc-in { flex-direction:column; text-align:center; }
  .br-sub { margin:0 auto; }
  .ft-in { grid-template-columns:1fr; }
  .man-in, .lg-in { padding:0 24px; } .lg-x { right:24px; }
  #sbar { padding:14px 24px; } #bot-pan { width:calc(100vw - 48px); }
  #conf-page { padding:88px 24px var(--sp-xl); }
  .fs-cats { flex-wrap:wrap; }
  .fs-card { border-right:none; }
}
@media print {
  #gate,#nav,#sbar,#btop,#bot-tog,#bot-pan,#notif,body::before { display:none !important; }
  body { background:white; color:black; }
  section { padding:20px 0; break-inside:avoid; }
}

/* ═══════════════════════
   INTAKE MODAL
═══════════════════════ */
#intake-ov { position:fixed; inset:0; background:rgba(13,13,13,.92); z-index:700; display:none; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(8px); overflow-y:auto; }
#intake-ov.open { display:flex; }
.intake-box { background:var(--surface); max-width:520px; width:100%; padding:52px 44px; position:relative; }
.intake-x { position:absolute; top:20px; right:20px; font-size:1.1rem; color:var(--muted); cursor:pointer; transition:color .25s ease; background:none; border:none; font-family:var(--ff-b); }
.intake-x:hover { color:var(--ink); }
.intake-ey { font-size:8.5px; letter-spacing:.5em; text-transform:uppercase; color:var(--ocean); margin-bottom:14px; }
.intake-ttl { font-family:var(--ff-d); font-size:2rem; font-weight:400; margin-bottom:8px; line-height:1.1; }
.intake-sub { font-size:.875rem; color:var(--muted); line-height:1.75; margin-bottom:32px; }
.intake-div { height:.5px; background:var(--warm-mid); margin-bottom:28px; }
.intake-field { margin-bottom:20px; }
.intake-label { font-size:8px; letter-spacing:.32em; text-transform:uppercase; color:var(--ocean); display:block; margin-bottom:8px; }
.intake-input, .intake-select, .intake-textarea {
  width:100%; background:var(--warm); border:.5px solid var(--warm-mid); padding:12px 16px;
  font-size:.875rem; color:var(--ink); font-family:var(--ff-b); outline:none;
  transition:border-color .25s ease; appearance:none;
}
.intake-input:focus, .intake-select:focus, .intake-textarea:focus { border-color:var(--ocean); }
.intake-textarea { resize:none; height:88px; line-height:1.6; }
.intake-select { cursor:pointer; }
.intake-btn { width:100%; background:var(--ink); color:var(--surface); border:none; padding:14px; font-size:8.5px; font-weight:500; letter-spacing:.3em; text-transform:uppercase; cursor:pointer; transition:background .25s ease; font-family:var(--ff-b); margin-top:8px; }
.intake-btn:hover { background:var(--ocean); }
.intake-btn:disabled { opacity:.5; cursor:not-allowed; }
.intake-note { font-size:.75rem; color:var(--muted); text-align:center; margin-top:14px; font-style:italic; line-height:1.6; }
