/* Theia design system — shared across all pages */
:root{
  --bg:#f6f4ef;
  --bg-2:#efece4;
  --ink:#13140f;
  --ink-2:#3a3a33;
  --muted:#6b6b62;
  --line:rgba(19,20,15,.12);
  --accent:#7d9885;      /* sage — pulled from the Theia logo */
  --accent-deep:#2f4a3a; /* deep forest — for hover states */
  --accent-2:#b89968;    /* warm brass — secondary accent */
  --max:1240px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:"Inter",system-ui,sans-serif;font-weight:400;line-height:1.6}
.serif{font-family:"Fraunces",Georgia,serif;font-weight:400;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}

/* Nav */
header{position:sticky;top:0;z-index:50;background:rgba(246,244,239,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
nav{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;max-width:var(--max);margin:0 auto}
.logo{display:flex;align-items:center;gap:10px;font-family:"Fraunces",serif;font-size:22px;letter-spacing:.02em}
.logo-mark{display:none}
.logo-img{height:56px;width:auto;display:block;mix-blend-mode:multiply}
.logo span.wordmark{display:none} /* image replaces the wordmark text */
footer .logo-img{height:64px}
.cta .logo-img,.stub-dark .logo-img{filter:none}
.nav-links{display:flex;gap:36px;font-size:14px;color:var(--ink-2)}
.nav-links a:hover,.nav-links a.active{color:var(--ink)}
.nav-cta{display:flex;gap:10px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:999px;font-size:14px;font-weight:500;border:1px solid var(--ink);transition:all .25s ease;cursor:pointer}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--ink);color:var(--bg)}
.btn-primary:hover{background:var(--accent-deep)}
.btn-ghost{background:transparent}
.btn-ghost:hover{background:var(--ink);color:var(--bg)}

/* Generic headings + eyebrows */
.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:28px;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--ink-2)}
h1.display{font-size:clamp(48px,7vw,104px);line-height:.96;letter-spacing:-.025em;margin:0 0 32px;max-width:14ch;font-weight:300}
h1.display em{font-style:italic;color:var(--accent)}
h1.page{font-size:clamp(44px,5.8vw,84px);line-height:1.02;letter-spacing:-.025em;margin:0 0 28px;max-width:18ch;font-weight:300}
h1.page em{font-style:italic;color:var(--accent)}

/* Hero */
.hero{padding:96px 0 120px;position:relative;overflow:hidden}
.hero-sub{font-size:19px;max-width:56ch;color:var(--ink-2);margin-bottom:44px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-meta{margin-top:88px;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;border-top:1px solid var(--line);padding-top:36px}
.meta-item .num{font-family:"Fraunces",serif;font-size:40px;line-height:1;letter-spacing:-.02em}
.meta-item .lbl{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-top:10px}

/* Page hero (shorter) */
.page-hero{padding:72px 0 64px;border-bottom:1px solid var(--line)}
.page-hero p{font-size:19px;max-width:60ch;color:var(--ink-2);margin:0}

/* Sections */
section{padding:120px 0;border-top:1px solid var(--line)}
section.flush{border-top:none;padding-top:96px}
.section-head{display:grid;grid-template-columns:1fr 2fr;gap:64px;margin-bottom:72px}
.section-head h2{font-size:clamp(34px,4.4vw,56px);line-height:1.04;letter-spacing:-.02em;margin:0;font-weight:300}
.section-head p{margin:0;color:var(--ink-2);font-size:18px;max-width:60ch}

/* Pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.pillar{background:var(--bg);padding:48px 36px;min-height:320px;display:flex;flex-direction:column;justify-content:space-between}
.pillar .n{font-family:"Fraunces",serif;font-size:14px;color:var(--accent-2);letter-spacing:.1em}
.pillar h3{font-family:"Fraunces",serif;font-size:30px;line-height:1.1;margin:24px 0 16px;font-weight:400;letter-spacing:-.01em}
.pillar p{color:var(--ink-2);font-size:15px;margin:0}

/* Platform layer */
.platform{background:var(--bg-2)}
.platform-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.platform-card{background:var(--bg);padding:40px;border:1px solid var(--line);min-height:280px;position:relative;transition:transform .3s ease}
.platform-card:hover{transform:translateY(-4px)}
.platform-card .tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.platform-card h3{font-family:"Fraunces",serif;font-size:32px;font-weight:400;margin:18px 0 14px;letter-spacing:-.01em}
.platform-card p{color:var(--ink-2);font-size:15px}
.platform-card .arrow{position:absolute;bottom:32px;left:40px;font-size:13px;color:var(--accent);display:flex;align-items:center;gap:6px}

/* Track */
.track-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.case{border:1px solid var(--line);background:var(--bg)}
.case-img{aspect-ratio:4/3;background:linear-gradient(135deg,#3a4a3f,#1a201c);position:relative;overflow:hidden}
.case-img::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(184,153,104,.25),transparent 60%)}
.case-body{padding:28px}
.case-body .loc{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.case-body h4{font-family:"Fraunces",serif;font-size:24px;margin:10px 0 14px;font-weight:400}
.case-stats{display:flex;gap:24px;font-size:13px;color:var(--ink-2);border-top:1px solid var(--line);padding-top:16px;margin-top:16px;flex-wrap:wrap}
.case-stats span strong{display:block;font-family:"Fraunces",serif;font-size:18px;color:var(--ink);font-weight:400}

/* Prose */
.prose{max-width:68ch;font-size:18px;color:var(--ink-2);line-height:1.75}
.prose h2{font-family:"Fraunces",serif;font-weight:400;font-size:36px;line-height:1.1;color:var(--ink);margin:64px 0 20px;letter-spacing:-.01em}
.prose h3{font-family:"Fraunces",serif;font-weight:400;font-size:24px;color:var(--ink);margin:40px 0 12px}
.prose p{margin:0 0 22px}
.prose blockquote{border-left:2px solid var(--accent-2);margin:32px 0;padding:8px 0 8px 28px;font-family:"Fraunces",serif;font-size:24px;line-height:1.35;color:var(--ink);font-style:italic}
.prose ul{padding-left:22px}
.prose li{margin-bottom:10px}

/* Team grid */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.person{border:1px solid var(--line);background:var(--bg)}
.person-img{aspect-ratio:4/5;background:linear-gradient(160deg,#2f4a3a,#13140f);position:relative}
.person-img::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(184,153,104,.2),transparent 55%)}
.person-body{padding:28px}
.person-body h4{font-family:"Fraunces",serif;font-size:24px;font-weight:400;margin:0 0 4px}
.person-body .role{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.person-body p{color:var(--ink-2);font-size:14px;margin:0}

/* Strategy cards (large) */
.strategy-list{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.strategy-row{background:var(--bg);padding:56px 40px;display:grid;grid-template-columns:1fr 2fr 1fr;gap:48px;align-items:start;transition:background .25s}
.strategy-row:hover{background:var(--bg-2)}
.strategy-row .label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2)}
.strategy-row h3{font-family:"Fraunces",serif;font-size:36px;font-weight:400;margin:8px 0 0;letter-spacing:-.01em}
.strategy-row .desc{color:var(--ink-2);font-size:16px}
.strategy-row .stats{font-size:13px;color:var(--ink-2)}
.strategy-row .stats div{margin-bottom:10px}
.strategy-row .stats strong{display:block;font-family:"Fraunces",serif;font-size:18px;color:var(--ink);font-weight:400}

/* Insights */
.insights-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}
.insight{border:1px solid var(--line);background:var(--bg);padding:40px;min-height:260px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .3s}
.insight:hover{transform:translateY(-3px)}
.insight .meta{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.insight h4{font-family:"Fraunces",serif;font-size:28px;font-weight:400;margin:16px 0 14px;letter-spacing:-.01em;line-height:1.15}
.insight p{color:var(--ink-2);font-size:15px;margin:0 0 20px}
.insight .read{font-size:13px;color:var(--accent)}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.contact-copy h2{font-family:"Fraunces",serif;font-size:48px;font-weight:300;line-height:1.02;margin:0 0 24px;letter-spacing:-.02em}
.contact-copy p{color:var(--ink-2);font-size:17px;max-width:44ch}
.contact-meta{margin-top:40px;font-size:14px;color:var(--ink-2)}
.contact-meta div{margin-bottom:14px}
.contact-meta .lbl{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
form.contact{background:var(--bg);border:1px solid var(--line);padding:40px}
form.contact label{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
form.contact input,form.contact select,form.contact textarea{width:100%;padding:14px 16px;background:var(--bg-2);border:1px solid var(--line);font-family:inherit;font-size:15px;color:var(--ink);margin-bottom:22px;border-radius:2px}
form.contact input:focus,form.contact select:focus,form.contact textarea:focus{outline:none;border-color:var(--accent)}
form.contact textarea{min-height:120px;resize:vertical}
form.contact .btn{width:100%;justify-content:center}

/* CTA */
.cta{background:var(--ink);color:var(--bg);text-align:center;padding:140px 0}
.cta h2{font-family:"Fraunces",serif;font-size:clamp(40px,5.5vw,72px);line-height:1.02;font-weight:300;letter-spacing:-.02em;max-width:18ch;margin:0 auto 32px}
.cta p{color:rgba(246,244,239,.7);max-width:52ch;margin:0 auto 40px;font-size:17px}
.cta .btn{border-color:var(--bg);color:var(--bg)}
.cta .btn-primary{background:var(--bg);color:var(--ink)}
.cta .btn-primary:hover{background:var(--accent-2);color:var(--ink)}
.cta .hero-cta{justify-content:center}

/* Footer */
footer{background:var(--bg-2);padding:80px 0 40px;border-top:1px solid var(--line)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:60px}
.foot-grid h5{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 18px;font-weight:500}
.foot-grid ul{list-style:none;padding:0;margin:0;font-size:14px}
.foot-grid li{margin-bottom:10px}
.foot-grid li a{color:var(--ink-2)}
.foot-grid li a:hover{color:var(--ink)}
.foot-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:28px;font-size:12px;color:var(--muted);flex-wrap:wrap;gap:12px}

/* Cinematic splash (Home) */
.splash{position:relative;min-height:100vh;background:#0b0c0a;color:var(--bg);overflow:hidden;display:flex;flex-direction:column}
.splash::before{content:"";position:absolute;inset:-20%;background:
  radial-gradient(ellipse at 18% 30%, rgba(125,152,133,.28), transparent 55%),
  radial-gradient(ellipse at 82% 70%, rgba(184,153,104,.18), transparent 60%),
  radial-gradient(ellipse at 50% 100%, rgba(47,74,58,.5), transparent 70%);
  filter:blur(40px);animation:drift 22s ease-in-out infinite alternate;z-index:0}
.splash::after{content:"";position:absolute;inset:0;background:
  repeating-linear-gradient(180deg, transparent 0 2px, rgba(255,255,255,.012) 2px 3px);
  pointer-events:none;z-index:1}
@keyframes drift{
  0%{transform:translate3d(0,0,0) scale(1)}
  100%{transform:translate3d(-3%,2%,0) scale(1.08)}
}
.splash-nav{position:relative;z-index:5;padding:28px 0;border-bottom:1px solid rgba(246,244,239,.08);background:rgba(11,12,10,.5);backdrop-filter:blur(8px)}
.splash-nav nav{padding:0 32px}
.splash .logo-img{height:64px;mix-blend-mode:screen;filter:none}
.splash .nav-links a{color:rgba(246,244,239,.7)}
.splash .nav-links a:hover{color:var(--bg)}
.splash .btn{border-color:rgba(246,244,239,.3);color:var(--bg)}
.splash .btn-ghost:hover{background:rgba(246,244,239,.08);border-color:var(--bg)}
.splash .btn-primary{background:var(--bg);color:#0b0c0a;border-color:var(--bg)}
.splash .btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2)}

.splash-body{position:relative;z-index:3;flex:1;display:flex;align-items:center;padding:120px 0 80px}
.splash-body .wrap{width:100%}
.splash-mark{height:260px;width:auto;display:block;margin:0 0 44px -14px;mix-blend-mode:screen;filter:none;opacity:0;animation:rise 1s ease .05s forwards}
@media (max-width:880px){.splash-mark{height:160px}}
.splash-eyebrow{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:rgba(246,244,239,.55);margin-bottom:48px;display:flex;align-items:center;gap:16px}
.splash-eyebrow::before{content:"";width:48px;height:1px;background:var(--accent)}
.splash-eyebrow span{color:var(--accent-2)}
.splash h1{font-family:"Fraunces",serif;font-weight:200;font-size:clamp(56px,9vw,148px);line-height:.92;letter-spacing:-.035em;margin:0 0 40px;max-width:14ch}
.splash h1 em{font-style:italic;color:var(--accent);font-weight:300}
.splash h1 .line{display:block;opacity:0;transform:translateY(24px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
.splash h1 .line:nth-child(1){animation-delay:.15s}
.splash h1 .line:nth-child(2){animation-delay:.35s}
.splash h1 .line:nth-child(3){animation-delay:.55s}
@keyframes rise{to{opacity:1;transform:translateY(0)}}
.splash-lede{max-width:60ch;font-size:20px;line-height:1.55;color:rgba(246,244,239,.78);margin:0 0 48px;font-weight:300;opacity:0;animation:rise 1s ease .85s forwards}
.splash-cta{display:flex;gap:14px;flex-wrap:wrap;opacity:0;animation:rise 1s ease 1s forwards}
.splash-foot{position:relative;z-index:3;border-top:1px solid rgba(246,244,239,.1);padding:32px 0;background:rgba(11,12,10,.4);backdrop-filter:blur(6px)}
.splash-foot .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:48px}
.splash-foot .stat .num{font-family:"Fraunces",serif;font-weight:300;font-size:42px;line-height:1;letter-spacing:-.02em;color:var(--bg)}
.splash-foot .stat .num em{font-style:italic;color:var(--accent)}
.splash-foot .stat .lbl{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,244,239,.5);margin-top:10px}
.scroll-cue{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:4;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(246,244,239,.5);display:flex;flex-direction:column;align-items:center;gap:10px}
.scroll-cue::after{content:"";width:1px;height:36px;background:linear-gradient(to bottom,rgba(246,244,239,.5),transparent);animation:pulse 2s ease infinite}
@keyframes pulse{0%,100%{opacity:.3}50%{opacity:1}}
@media (max-width:880px){.splash-foot .wrap{grid-template-columns:1fr 1fr;gap:24px}.splash-body{padding:80px 0 60px}}

/* Income pillars (Thesis) */
.income-hero{background:var(--ink);color:var(--bg);padding:120px 0;border-top:1px solid var(--line)}
.income-hero .eyebrow{color:rgba(246,244,239,.55)}
.income-hero .eyebrow::before{background:rgba(246,244,239,.4)}
.income-hero h2{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(40px,5.4vw,72px);line-height:1.02;letter-spacing:-.02em;margin:0 0 24px;max-width:18ch}
.income-hero h2 em{font-style:italic;color:var(--accent)}
.income-hero .lede{color:rgba(246,244,239,.72);max-width:60ch;font-size:18px;margin:0 0 64px}
.income-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(246,244,239,.12);border:1px solid rgba(246,244,239,.12)}
.income-card{background:var(--ink);padding:44px 32px;display:flex;flex-direction:column;min-height:340px;position:relative}
.income-card .pn{font-family:"Fraunces",serif;font-size:13px;letter-spacing:.18em;color:var(--accent-2);text-transform:uppercase}
.income-card h3{font-family:"Fraunces",serif;font-weight:400;font-size:26px;line-height:1.1;margin:14px 0 8px;color:var(--bg)}
.income-card .sub{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:rgba(246,244,239,.5);margin-bottom:24px}
.income-card .amt{font-family:"Fraunces",serif;font-size:46px;line-height:1;color:var(--bg);letter-spacing:-.02em;margin-top:auto}
.income-card .amt-lbl{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,244,239,.5);margin-top:8px}
.income-card p{color:rgba(246,244,239,.72);font-size:14px;line-height:1.55;margin:0 0 24px}
.income-total{margin-top:64px;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;border-top:1px solid rgba(246,244,239,.18);padding-top:48px}
.income-total .big{font-family:"Fraunces",serif;font-size:clamp(56px,8vw,112px);line-height:.95;letter-spacing:-.025em;color:var(--bg)}
.income-total .big em{font-style:italic;color:var(--accent)}
.income-total .note{color:rgba(246,244,239,.7);font-size:15px;max-width:42ch}
@media (max-width:880px){.income-grid{grid-template-columns:1fr}.income-total{grid-template-columns:1fr;gap:24px}}

/* Stub pages */
.stub{min-height:70vh;display:flex;align-items:center}
.stub h1{font-family:"Fraunces",serif;font-size:clamp(40px,5vw,72px);font-weight:300;line-height:1.05;letter-spacing:-.02em;margin:0 0 24px}
.stub p{color:var(--ink-2);font-size:18px;max-width:56ch;margin:0 0 32px}
.stub .note{display:inline-block;padding:6px 14px;border:1px solid var(--line);border-radius:999px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:28px}

@media (max-width:880px){
  .nav-links{display:none}
  .hero-meta,.pillars,.platform-grid,.track-grid,.team-grid,.foot-grid,.section-head,.contact-grid,.insights-grid{grid-template-columns:1fr;gap:24px}
  .strategy-row{grid-template-columns:1fr;gap:20px;padding:40px 28px}
  .hero{padding:64px 0 80px}
  section{padding:80px 0}
  nav{padding:16px 20px}
  .wrap{padding:0 20px}
}
