:root{
  color-scheme: only light;
  --navy:#0E1E3A;
  --navy-deep:#0A1730;
  --cream:#F4F1E7;
  --cream-deep:#ECE8DA;
  --ink:#231F20;
  --grey:#57544C;
  --olive:#6B7A36;
  --olive-lt:#9DB350;
  --hair:rgba(35,31,32,.16);
  --hair-navy:rgba(244,241,231,.16);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--cream)}
body{font-family:'Ubuntu',system-ui,sans-serif;background:var(--cream);color:var(--ink);
  line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
::selection{background:var(--olive);color:var(--cream)}
.wrap{max-width:1140px;margin:0 auto;padding:0 40px}
.mono{font-family:'Ubuntu Mono',monospace}

/* type system */
.label{font-size:11px;letter-spacing:.30em;text-transform:uppercase;color:var(--olive);font-weight:500}
.q{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--grey);font-weight:400}
h2.display{font-size:clamp(32px,4.4vw,54px);font-weight:300;line-height:1.14;letter-spacing:-.015em;color:var(--navy)}
h2.display b{font-weight:500}
p.body{font-size:17px;font-weight:400;color:#33302B;max-width:560px}
.rule{width:40px;height:2px;background:var(--olive);border:0;margin:28px 0}
.section{padding:130px 0;background:var(--cream)}
.dot{color:var(--olive)}

/* ---------- nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
nav.scrolled{background:rgba(244,241,231,.92);backdrop-filter:blur(12px);border-bottom-color:var(--hair)}
nav.on-navy:not(.scrolled){color:var(--cream)}
.nav-in{max-width:1140px;margin:0 auto;padding:0 40px;height:78px;display:flex;justify-content:space-between;align-items:center}
.logo-img{display:flex;align-items:center}
.logo-img img{height:24px;display:block}
nav .lw{display:none}
nav.on-navy:not(.scrolled) .lw{display:block}
nav.on-navy:not(.scrolled) .lb{display:none}
.nav-links{display:flex;gap:36px;align-items:center}
.nav-links a{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.7;transition:opacity .2s;font-weight:400}
.nav-links a:hover{opacity:1}
.nav-links .cta{border:1px solid currentColor;padding:10px 24px;opacity:1;border-radius:2px;transition:.25s}
.nav-links .cta:hover{background:var(--olive);border-color:var(--olive);color:var(--cream)}
@media(max-width:900px){.nav-links a:not(.cta){display:none}}

/* ---------- hero ---------- */
.hero{background:var(--navy);color:var(--cream);min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;left:40px;right:40px;bottom:0;height:1px;background:var(--hair-navy);z-index:3}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:right center;animation:kb 50s ease-in-out infinite alternate}
.hero-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(14,30,58,.72) 0%,rgba(14,30,58,.28) 42%,rgba(14,30,58,0) 68%)}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.035)}}
#flow{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:.6;pointer-events:none}
.hero-in{max-width:1140px;margin:0 auto;padding:120px 40px 100px;width:100%;position:relative;z-index:2}
.hero .label{color:var(--olive-lt);margin-bottom:56px;display:block}
.hero h1{font-size:clamp(44px,7vw,96px);font-weight:300;line-height:1.08;letter-spacing:-.02em;max-width:1000px}
.hero h1 em{font-style:normal;font-weight:500}
html.js .hero h1 .w{display:inline-block;opacity:0;transform:translateY(34px);filter:blur(10px);
  transition:opacity .9s cubic-bezier(.2,.65,.25,1),transform .9s cubic-bezier(.2,.65,.25,1),filter .9s ease}
html.js .hero.go h1 .w{opacity:1;transform:none;filter:none}
.hero .sub{margin-top:56px;display:flex;justify-content:space-between;align-items:flex-end;gap:60px;flex-wrap:wrap}
.hero .sub p{font-size:17px;font-weight:400;color:rgba(244,241,231,.88);max-width:520px}
.hero .sub .down{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:rgba(244,241,231,.45);display:flex;align-items:center;gap:16px}
.hero .sub .down::after{content:"";width:56px;height:1px;background:var(--olive)}
.hero-tick{margin-top:44px;display:flex;gap:12px;flex-wrap:wrap}
.hero-tick span{font-family:'Ubuntu Mono',monospace;font-size:11px;letter-spacing:.08em;color:rgba(244,241,231,.72);
  border:1px solid var(--hair-navy);padding:9px 15px;border-radius:2px;background:rgba(10,23,48,.4);backdrop-filter:blur(5px)}
.hero-tick b{color:var(--olive-lt);font-weight:500}
html.js .fade{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s ease}
html.js .fade.in{opacity:1;transform:none}

/* journey questions — quiet marginalia */
.q-head{display:grid;grid-template-columns:200px 1fr;gap:60px;margin-bottom:72px;align-items:start}
.q-head .qn{border-top:1px solid var(--hair);padding-top:14px}
.q-head .qn .mono{font-size:12px;color:var(--olive);display:block;margin-bottom:6px}
.q-head .body-col{max-width:720px}
@media(max-width:820px){.q-head{grid-template-columns:1fr;gap:28px}}

/* ---------- I. what ---------- */
.what .cols{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:70px;align-items:start}
.fact-list{border-top:1px solid var(--hair)}
.fact{display:flex;justify-content:space-between;gap:30px;padding:18px 0;border-bottom:1px solid var(--hair);font-size:14.5px}
.fact span{color:var(--grey);font-weight:400}
.fact b{font-weight:500;color:var(--navy);text-align:right}
@media(max-width:820px){.what .cols{grid-template-columns:1fr;gap:44px}}

/* ---------- II. thesis diagram ---------- */
section.thesis{background:var(--cream-deep);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.diagram{margin-top:80px;display:grid;grid-template-columns:1fr 1fr;gap:28px}
.path{background:var(--cream);padding:40px 36px;position:relative;border:1px solid var(--hair);border-radius:2px}
.path.b{border:2px solid var(--olive)}
.path .tag{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--grey);display:block;margin-bottom:28px;font-weight:500}
.path.b .tag{color:var(--olive)}
.flow{display:flex;flex-direction:column;gap:0}
.node{border:1px solid var(--hair);padding:14px 18px;font-size:14.5px;font-weight:400;color:var(--navy);background:var(--cream);border-radius:2px}
.path.b .node{border-color:rgba(107,122,54,.45)}
.arrow{display:flex;justify-content:center;height:38px;color:var(--grey)}
.arrow svg{width:12px;height:38px;display:block}
.path.b .arrow{color:rgba(107,122,54,.6)}
.outcome{margin-top:28px;padding-top:20px;border-top:1px solid var(--hair)}
.outcome b{display:block;font-size:19px;font-weight:500;color:var(--navy);margin-bottom:8px}
.path.b .outcome b{color:var(--olive)}
.outcome span{font-size:14px;color:var(--grey);font-weight:400}
.diagram-note{margin-top:28px;font-size:13.5px;color:var(--grey);font-weight:400;max-width:640px}
@media(max-width:820px){.diagram{grid-template-columns:1fr}}

/* ---------- III. platform layers ---------- */
.platform .layers{margin-top:80px;max-width:760px;margin-left:auto;margin-right:auto}
.layer{border:1px solid var(--hair);background:var(--cream);padding:26px 34px;display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:-1px;transition:background .25s}
.layer:hover{background:#F9F7EF}
.layer:first-child{border-left:3px solid var(--olive)}
.layer h3{font-size:17px;font-weight:500;color:var(--navy)}
.layer span{font-size:13.5px;color:var(--grey);font-weight:400;text-align:right;max-width:340px}
.layer .n{font-family:'Ubuntu Mono',monospace;font-size:11px;color:var(--olive);margin-right:18px}
.platform-note{max-width:760px;margin:36px auto 0;font-size:15px;color:var(--grey);font-weight:400;text-align:center}

/* ---------- IV. foundations ---------- */
section.found{background:var(--navy);color:var(--cream)}
.found h2.display{color:var(--cream)}
.found .q-head .qn{border-top-color:var(--hair-navy)}
.found .q{color:rgba(244,241,231,.5)}
.found p.body{color:rgba(244,241,231,.82)}
.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:80px;border-top:1px solid var(--hair-navy);border-left:1px solid var(--hair-navy)}
.f-cell{border-right:1px solid var(--hair-navy);border-bottom:1px solid var(--hair-navy);padding:52px 46px}
.f-cell .mono{font-size:12px;color:var(--olive-lt);display:block;margin-bottom:22px}
.f-cell h3{font-size:21px;font-weight:500;margin-bottom:14px;letter-spacing:-.01em}
.f-cell p{font-size:15px;font-weight:400;color:rgba(244,241,231,.82)}
@media(max-width:820px){.f-grid{grid-template-columns:1fr}}

/* ---------- V. partnership ---------- */
section.partner{background:var(--cream-deep);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.p-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:80px;background:var(--hair);border:1px solid var(--hair)}
.p-cell{padding:52px 46px;background:var(--cream)}
.p-cell .mono{font-size:12px;color:var(--olive);display:block;margin-bottom:22px}
.p-cell h3{font-size:21px;font-weight:500;margin-bottom:14px;letter-spacing:-.01em;color:var(--navy)}
.p-cell p{font-size:15px;font-weight:400;color:var(--grey)}
.p-note{margin-top:30px;font-size:13.5px;color:var(--grey);max-width:680px}
@media(max-width:820px){.p-grid{grid-template-columns:1fr}}

/* ---------- VI. progress ledger ---------- */
.ledger{margin-top:70px;border-top:1px solid var(--hair)}
.entry{display:grid;grid-template-columns:150px 1fr 320px;gap:40px;padding:30px 0;border-bottom:1px solid var(--hair);align-items:baseline}
.entry .when{font-family:'Ubuntu Mono',monospace;font-size:12.5px;color:var(--olive)}
.entry h3{font-size:18px;font-weight:500;color:var(--navy);margin-bottom:6px}
.entry p{font-size:14.5px;color:var(--grey);font-weight:400}
.entry .status{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey);text-align:right}
.entry .status.active{color:var(--olive)}
@media(max-width:900px){.entry{grid-template-columns:1fr;gap:8px}.entry .status{text-align:left}}

/* photography frames */
.photo-row{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-top:70px}
.photo{aspect-ratio:16/10;background:#DAD5C4;position:relative;overflow:hidden}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.photo figcaption{position:absolute;left:22px;bottom:18px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.55);z-index:2}
.photo::after{content:"";position:absolute;inset:auto 0 0 0;height:90px;background:linear-gradient(transparent,rgba(14,30,58,.55))}
@media(max-width:820px){.photo-row{grid-template-columns:1fr}}
.photo-row4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:24px;align-items:start}
.photo-row4 .photo{aspect-ratio:9/16}
.row-label{margin-top:70px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--olive);font-weight:500}
@media(max-width:820px){.photo-row4{grid-template-columns:1fr 1fr}}

/* ---------- VII. market (live dashboard) ---------- */
section.market{background:var(--navy);color:var(--cream)}
.market h2.display{color:var(--cream)}
.market .q{color:rgba(244,241,231,.5)}
.market .q-head .qn{border-top-color:var(--hair-navy)}
.market p.body{color:rgba(244,241,231,.82)}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair-navy);border:1px solid var(--hair-navy);margin-top:70px}
.tile{background:var(--navy-deep);padding:36px 32px;min-height:170px;display:flex;flex-direction:column;justify-content:space-between}
.tile .t-label{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:rgba(244,241,231,.5)}
.tile .t-value{font-family:'Ubuntu Mono',monospace;font-size:clamp(24px,2.6vw,34px);font-weight:400;color:var(--cream);margin-top:18px;line-height:1.1}
.tile .t-sub{font-size:12.5px;color:rgba(244,241,231,.55);margin-top:8px}
.tile .t-sub b{color:var(--olive-lt);font-weight:500}
.tile .t-sub b.dn{color:#C98B6B}
.chart-frame{border:1px solid var(--hair-navy);background:var(--navy-deep);margin-top:24px;padding:34px 32px 24px;position:relative}
.chart-frame .t-label{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:rgba(244,241,231,.5)}
.chart-frame svg{width:100%;height:220px;display:block;margin-top:22px}
.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--olive-lt);margin-right:10px;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
.market-note{margin-top:26px;font-size:12.5px;color:rgba(244,241,231,.45);max-width:720px}
@media(max-width:960px){.tiles{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.tiles{grid-template-columns:1fr}}

/* ---------- VIII. future ---------- */
section.future{background:var(--navy);color:var(--cream);border-top:1px solid var(--hair-navy)}
.future h2.display{color:var(--cream)}
.future .q{color:rgba(244,241,231,.5)}
.future p.body{color:rgba(244,241,231,.82)}
.future .q-head .qn{border-top-color:var(--hair-navy)}
.render{aspect-ratio:21/9;background:linear-gradient(160deg,#13254A,#0A1730);border:1px solid var(--hair-navy);position:relative;margin-top:70px;overflow:hidden}
.render img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.render figcaption{position:absolute;left:26px;bottom:20px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(244,241,231,.85);text-shadow:0 1px 8px rgba(0,0,0,.6);z-index:2}
.render::after{content:"";position:absolute;inset:auto 0 0 0;height:110px;background:linear-gradient(transparent,rgba(10,23,48,.65))}
.roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:60px;border-top:1px solid var(--hair-navy)}
.rm{padding:40px 36px 10px;border-left:1px solid var(--hair-navy)}
.rm:first-child{border-left:0;padding-left:0}
.rm .mono{font-size:12px;color:var(--olive-lt);display:block;margin-bottom:16px}
.rm h3{font-size:18px;font-weight:500;margin-bottom:10px}
.rm p{font-size:14px;font-weight:400;color:rgba(244,241,231,.8)}
@media(max-width:820px){.roadmap{grid-template-columns:1fr}.rm{border-left:0;padding-left:0;border-top:1px solid var(--hair-navy);padding-top:32px}}

/* ---------- leadership & team ---------- */
.lead .split{display:grid;grid-template-columns:380px 1fr;gap:90px;align-items:center;margin-top:70px}
.portrait{aspect-ratio:4/5;background:linear-gradient(160deg,#3A3A38,#1E1E1D);position:relative;overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);display:block}
.portrait figcaption{position:absolute;left:20px;bottom:16px;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:rgba(244,241,231,.85);text-shadow:0 1px 8px rgba(0,0,0,.6);z-index:2}
.portrait::after{content:"";position:absolute;inset:auto 0 0 0;height:80px;background:linear-gradient(transparent,rgba(14,30,58,.5))}
.lead blockquote{font-size:clamp(22px,2.6vw,30px);font-weight:300;line-height:1.4;color:var(--navy);letter-spacing:-.01em}
.lead .who{margin-top:32px;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey)}
.lead .who b{color:var(--navy);font-weight:500;letter-spacing:.18em}
@media(max-width:860px){.lead .split{grid-template-columns:1fr;gap:44px}.portrait{max-width:340px}}

.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:90px}
.member{background:var(--cream);padding:0 0 34px}
.member .m-photo{aspect-ratio:1/1;overflow:hidden;background:#DAD5C4}
.member .m-photo img{width:100%;height:100%;object-fit:cover;object-position:center 22%;filter:grayscale(1);transition:transform .55s cubic-bezier(.2,.65,.25,1)}
.member:hover .m-photo img{transform:scale(1.05)}
.member .m-in{padding:26px 30px 0}
.member h3{font-size:17.5px;font-weight:500;color:var(--navy)}
.member .role{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--olive);margin:6px 0 14px;font-weight:500}
.member p{font-size:13.5px;color:var(--grey);font-weight:400}
.team-note{margin-top:34px;font-size:14.5px;color:var(--grey);max-width:680px}
@media(max-width:900px){.team-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.team-grid{grid-template-columns:1fr}}

/* ---------- contact ---------- */
section.contact{background:var(--cream-deep);border-top:1px solid var(--hair)}
.contact .split{display:grid;grid-template-columns:1fr 1fr;gap:90px}
.contact h2.display{max-width:420px}
.c-line{border-top:1px solid var(--hair);padding:18px 0;display:flex;gap:26px;font-size:15px}
.c-line b{width:24px;color:var(--olive);font-weight:500;flex-shrink:0;font-family:'Ubuntu Mono',monospace;font-size:13px}
.c-line span{color:var(--grey);font-weight:300}
form label{display:block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--grey);margin-bottom:8px}
input,select,textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--hair);color:var(--ink);
  font-family:'Ubuntu',sans-serif;font-size:15.5px;font-weight:300;padding:8px 0 14px;margin-bottom:34px;border-radius:0;transition:border-color .2s;appearance:none}
input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--olive)}
textarea{min-height:90px;resize:vertical}
.submit{background:var(--navy);color:var(--cream);border:0;padding:18px 44px;font-family:'Ubuntu',sans-serif;
  font-size:13px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:background .25s;border-radius:2px}
.submit:hover{background:var(--olive)}
@media(max-width:860px){.contact .split{grid-template-columns:1fr;gap:50px}}

/* ---------- footer ---------- */
footer{background:var(--navy);color:var(--cream);padding:64px 0 40px}
.f-in{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap}
.f-in .f-logo img{height:26px;display:block}
.f-in .tagline{font-size:14px;font-weight:300;color:rgba(244,241,231,.6);margin-top:16px;max-width:300px}
.f-nav{display:flex;gap:56px}
.f-nav a{display:block;font-size:13px;color:rgba(244,241,231,.6);margin-bottom:10px;font-weight:300;transition:color .2s}
.f-nav a:hover{color:var(--cream)}
.f-base{margin-top:56px;padding-top:22px;border-top:1px solid var(--hair-navy);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:11.5px;letter-spacing:.12em;color:rgba(244,241,231,.4)}

@media (prefers-reduced-motion:reduce){
  .fade{opacity:1;transform:none;transition:none}
  html.js .hero h1 .w{opacity:1;transform:none;filter:none;transition:none}
  .hero-bg img{animation:none}
  html{scroll-behavior:auto}
}
@media(max-width:820px){
  .hero-bg{background:#0e1d3a}.hero-bg img,.hero-bg::after{display:none}
  .closing-art{display:none}
  .hero{min-height:80vh!important}
  .closing{min-height:50vh!important}
}
@media(max-width:600px){.section{padding:90px 0}.wrap{padding:0 26px}.hero-in{padding:120px 26px 80px}
  .nav-in{height:64px;padding:0 22px}.logo-img img{height:19px}
  .nav-links .cta{padding:8px 16px;font-size:11px;white-space:nowrap}
  .q-head .qn{padding-top:10px}}