@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Lora:ital,wght@0,400;0,500;1,400;1,500&display=swap');

:root {
  --bg:     #0C0C0C;
  --fg:     #EAEAE8;
  --accent: #A89A82;
  --alt-bg: #101010;
  --muted:  color-mix(in srgb, var(--fg) 55%, transparent);
  --dim:    color-mix(in srgb, var(--fg) 22%, transparent);
  --border: color-mix(in srgb, var(--fg) 12%, transparent);
  --surf:   color-mix(in srgb, var(--fg) 6%, transparent);
  --lbg:    #F4F3F1;
  --link:   #161614;
  --lmut:   #82817C;
  --lbdr:   color-mix(in srgb, var(--link) 10%, transparent);
  --ph-bg:  #F5E7C3; --ph-bdr: #D4B86A; --ph-ink: #8B6914;
  --f-m: 'IBM Plex Mono', monospace;
  --f-d: 'Lora', Georgia, serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:16px;}
body{background:var(--bg);color:var(--fg);font-family:var(--f-d);font-size:1.125rem;line-height:1.65;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

h1,h2,h3{font-family:var(--f-m);font-weight:400;}
h1{font-size:clamp(1.9rem,3.6vw,3.4rem);line-height:1.18;letter-spacing:-0.01em;}
h2{font-size:clamp(1.3rem,2.4vw,2.2rem);line-height:1.2;}
h3{font-size:clamp(1rem,1.6vw,1.3rem);}
p{line-height:1.7;}

.label{font-family:var(--f-m);font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);}
.sec-label{display:flex;align-items:center;gap:12px;font-family:var(--f-m);font-size:0.6rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:52px;}
.sec-label::before{content:'';display:block;width:20px;height:1px;background:var(--muted);}
.accent{color:var(--accent);}

.wrap{max-width:1200px;margin:0 auto;padding:0 56px;}
.narrow{max-width:720px;}
section{padding:104px 0;}

/* LIGHT */
.light{background:var(--lbg);color:var(--link);}
.light .sec-label{color:var(--lmut);}
.light .sec-label::before{background:var(--lmut);}
.alt{background:var(--alt-bg);}

/* HEADER */
.hdr{position:fixed;inset:0 0 auto;z-index:300;padding:22px 56px;display:flex;align-items:center;justify-content:space-between;background:rgba(13,12,9,0.94);backdrop-filter:blur(12px);transition:box-shadow 0.3s;}
.hdr.scrolled{box-shadow:0 1px 0 var(--border);}
.logo{display:flex;align-items:center;gap:12px;}
.logo-name{font-family:var(--f-m);font-size:0.82rem;letter-spacing:0.28em;text-transform:uppercase;}
.nav-links{display:flex;gap:22px;}
.nav-links a{font-family:var(--f-m);font-size:0.58rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);transition:color 0.2s;}
.nav-links a:hover{color:var(--fg);}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border:1px solid currentColor;font-family:var(--f-m);font-size:0.65rem;letter-spacing:0.1em;text-transform:uppercase;background:transparent;color:inherit;cursor:pointer;transition:background 0.2s,color 0.2s;}
.btn:hover{background:var(--fg);color:var(--bg);border-color:var(--fg);}
.btn.amber{border-color:var(--accent);color:var(--accent);}
.btn.amber:hover{background:var(--accent);color:var(--bg);}
.btn.solid{background:var(--fg);color:var(--bg);border-color:var(--fg);}
.btn.solid:hover{background:transparent;color:var(--fg);}
.light .btn{color:var(--link);border-color:var(--link);}
.light .btn:hover{background:var(--link);color:var(--lbg);}
.light .btn.solid{background:var(--link);color:var(--lbg);}
.light .btn.solid:hover{background:transparent;color:var(--link);}

/* CARDS */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);}
.card{padding:36px 30px;background:var(--bg);}
.light .cards-3{background:var(--lbdr);}
.light .card{background:var(--lbg);}
.alt .card{background:var(--alt-bg);}
.stat-num{font-family:var(--f-m);font-size:clamp(2rem,3.8vw,3.2rem);font-weight:400;line-height:1;letter-spacing:-0.01em;margin-bottom:12px;}
.stat-meta{font-family:var(--f-m);font-size:0.62rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.stat-desc{font-family:var(--f-d);font-size:0.95rem;color:var(--muted);line-height:1.55;}
.stat-src{font-family:var(--f-m);font-size:0.58rem;color:var(--muted);margin-top:16px;opacity:0.6;}
.stat-src a{text-decoration:underline;text-underline-offset:2px;}
.light .stat-meta,.light .stat-desc,.light .stat-src{color:var(--lmut);}
.prop-title{font-family:var(--f-m);font-size:0.78rem;letter-spacing:0.05em;margin-bottom:14px;}
.prop-body{font-family:var(--f-d);font-size:0.97rem;color:var(--muted);line-height:1.65;}
.light .prop-body{color:var(--lmut);}

/* PLACEHOLDER */
.ph-badge{display:inline-flex;align-items:center;background:var(--ph-bg);border:1px dashed var(--ph-bdr);padding:5px 10px;font-family:var(--f-m);font-size:0.6rem;letter-spacing:0.04em;color:var(--ph-ink);}

/* ACCORDION */
.acc-item{border-bottom:1px solid var(--border);}
.light .acc-item{border-bottom-color:var(--lbdr);}
.acc-btn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:20px 0;background:none;border:none;cursor:pointer;text-align:left;font-family:var(--f-d);font-size:1.05rem;color:inherit;gap:20px;}
.acc-icon{font-family:var(--f-m);font-size:0.95rem;color:var(--muted);flex-shrink:0;transition:transform 0.25s;}
.light .acc-icon{color:var(--lmut);}
.acc-item.open .acc-icon{transform:rotate(45deg);}
.acc-body{max-height:0;overflow:hidden;transition:max-height 0.45s ease;}
.acc-inner{padding-bottom:24px;color:var(--muted);line-height:1.75;font-size:0.97rem;font-family:var(--f-d);}
.light .acc-inner{color:var(--lmut);}

/* FORM */
.f-input{width:100%;padding:14px 18px;border:1px solid var(--border);background:var(--surf);font-family:var(--f-d);font-size:1rem;color:var(--fg);outline:none;transition:border-color 0.2s,box-shadow 0.2s,background 0.2s;-webkit-appearance:none;}
.f-input:focus{border-color:color-mix(in srgb, var(--fg) 45%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--fg) 10%, transparent);}
.f-input::placeholder{color:var(--muted);font-style:italic;}
textarea.f-input{resize:vertical;min-height:90px;}
.form-row{margin-bottom:12px;}

.light .f-input{border-color:var(--lbdr);background:rgba(0,0,0,0.03);color:var(--link);}
.light .f-input:focus{border-color:color-mix(in srgb, var(--link) 35%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--link) 10%, transparent);}
.light .f-input::placeholder{color:var(--lmut);}

/* TABLES */
.data-tbl{width:100%;border-collapse:collapse;}
.data-tbl th{font-family:var(--f-m);font-size:0.6rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);}
.data-tbl td{padding:12px 16px;border-bottom:1px solid var(--border);font-family:var(--f-d);font-size:0.97rem;vertical-align:middle;}
.data-tbl tr:last-child td{border-bottom:none;}
.light .data-tbl th{color:var(--lmut);border-bottom-color:var(--lbdr);}
.light .data-tbl td{border-bottom-color:var(--lbdr);}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.cmp-tbl{width:100%;border-collapse:collapse;min-width:700px;}
.cmp-tbl th{font-family:var(--f-m);font-size:0.58rem;letter-spacing:0.09em;text-transform:uppercase;color:var(--lmut);padding:12px 14px;text-align:center;border-bottom:1px solid var(--lbdr);}
.cmp-tbl th:first-child{text-align:left;}
.cmp-tbl th.gem{color:var(--link);background:color-mix(in srgb, var(--link) 5%, transparent);font-weight:700;}
.cmp-tbl td{padding:11px 14px;border-bottom:1px solid var(--lbdr);text-align:center;font-family:var(--f-d);font-size:0.92rem;}
.cmp-tbl td:first-child{text-align:left;font-family:var(--f-m);font-size:0.62rem;letter-spacing:0.04em;color:var(--lmut);}
.cmp-tbl td.gem{background:color-mix(in srgb, var(--link) 4%, transparent);font-weight:600;}
.cmp-tbl tr.key-row td.gem{background:color-mix(in srgb, var(--link) 7%, transparent);}
.cmp-tbl tr:last-child td{border-bottom:none;}
.ck{color:var(--link);}
.cx{color:color-mix(in srgb, var(--link) 20%, transparent);}
.cp{font-family:var(--f-m);font-size:0.6rem;color:var(--lmut);}

/* COUNTERS */
.ctrs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);}
.ctr{padding:40px 32px;background:var(--bg);}
.alt .ctr{background:var(--alt-bg);}
.ctr-n{font-family:var(--f-m);font-size:clamp(2.4rem,4.5vw,3.8rem);font-weight:400;letter-spacing:-0.02em;line-height:1;margin-bottom:12px;}
.ctr-l{font-family:var(--f-m);font-size:0.6rem;letter-spacing:0.09em;text-transform:uppercase;color:var(--muted);}

/* PIPELINE */
.pipe-wrap{border:none;}
.pipe-stage{padding:28px 32px;}
.pipe-stage+.pipe-stage{border-top:1px solid var(--border);}
.pipe-head{display:flex;align-items:baseline;gap:18px;margin-bottom:12px;}
.pipe-num{font-family:var(--f-m);font-size:clamp(0.78rem, 1vw, 0.92rem);letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);flex-shrink:0;}
.pipe-title{font-family:var(--f-m);font-size:clamp(1.25rem, 1.8vw, 1.6rem);letter-spacing:0.02em;}
.pipe-body{font-family:var(--f-d);font-size:0.93rem;color:var(--muted);line-height:1.65;}
.sub-grid{display:flex;flex-direction:column;gap:10px;background:transparent;margin-top:18px;}
.sub-cell{background:var(--surf);padding:14px 16px;border:1px solid var(--border);}
.sub-line{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;}
.sub-id{font-family:var(--f-m);font-size:0.56rem;letter-spacing:0.1em;color:var(--muted);margin:0;flex-shrink:0;}
.sub-name{font-family:var(--f-d);font-size:0.9rem;margin:0;}
.pipe-sep{display:flex;align-items:center;gap:12px;padding:10px 32px;border-top:1px solid var(--border);}
.pipe-sep-line{flex:1;height:1px;background:var(--ph-bdr);opacity:0.35;}
.pipe-sep-lbl{font-family:var(--f-m);font-size:0.58rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ph-ink);background:var(--ph-bg);border:1px dashed var(--ph-bdr);padding:4px 10px;}

.pipe-boundary{padding:22px 32px;border:none;display:flex;flex-direction:column;gap:6px;}
.pipe-boundary-title{font-family:var(--f-m);font-size:0.62rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--ph-ink);}
.pipe-boundary-sub{font-family:var(--f-m);font-size:0.58rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);}
.pipe-arrow{padding:12px 32px;text-align:center;font-family:var(--f-m);font-size:0.9rem;color:var(--muted);}

.light .pipe-wrap{border-color:transparent;}
.light .pipe-stage+.pipe-stage{border-top-color:var(--lbdr);}
.light .pipe-boundary{background:transparent;}
.light .pipe-num,.light .pipe-body,.light .pipe-arrow{color:var(--lmut);}
.light .sub-grid{background:transparent;}
.light .sub-cell{background:rgba(0,0,0,0.02);border-color:var(--lbdr);}
.light .sub-id{color:var(--lmut);}
.light .sub-name{color:var(--link);}

/* FUND BARS */
.fund{margin-bottom:20px;}
.fund-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;}
.fund-name{font-family:var(--f-m);font-size:0.64rem;letter-spacing:0.06em;color:var(--muted);}
.fund-pct{font-family:var(--f-m);font-size:0.9rem;color:var(--accent);}
.fund-bar{height:1px;background:var(--border);}
.fund-fill{height:100%;background:var(--accent);width:0;transition:width 1.2s ease;}
.fund-sub{font-family:var(--f-d);font-size:0.85rem;color:var(--muted);margin-top:6px;}

/* MILESTONES */
.ms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-top:48px;}
.ms{background:var(--bg);padding:32px 28px;}
.alt .ms{background:var(--alt-bg);}
.ms-m{font-family:var(--f-m);font-size:0.58rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;}
.ms-t{font-family:var(--f-m);font-size:0.78rem;letter-spacing:0.02em;margin-bottom:12px;line-height:1.4;}
.ms-b{font-family:var(--f-d);font-size:0.88rem;color:var(--muted);line-height:1.65;}

/* CASES */
.cases-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);}
.case{padding:36px 30px;background:var(--bg);}
.light .cases-grid{background:var(--lbdr);}
.light .case{background:var(--lbg);}
.case-lbl{font-family:var(--f-m);font-size:0.58rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;}
.case-body{font-family:var(--f-d);font-size:0.93rem;color:var(--muted);line-height:1.75;}
.light .case-body{color:var(--lmut);}
.case-quote{font-family:var(--f-d);font-style:italic;font-size:1.05rem;color:var(--accent);margin:18px 0;border-left:2px solid var(--accent);padding-left:18px;line-height:1.6;}

/* STEPS */
.steps-row{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--lbdr);}
.step-card{background:var(--lbg);padding:28px 22px;display:flex;flex-direction:column;}
.step-n{font-family:var(--f-m);font-size:0.56rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--lmut);margin-bottom:18px;}
.step-ph{width:100%;aspect-ratio:1;margin-bottom:18px;background:rgba(26,23,16,0.06);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;}
.step-ph::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(0,0,0,0.03) 4px,rgba(0,0,0,0.03) 8px);}
.step-ph span{position:relative;z-index:1;font-family:var(--f-m);font-size:0.55rem;letter-spacing:0.07em;text-transform:uppercase;color:var(--lmut);text-align:center;padding:16px;line-height:1.9;}
.step-ph img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;display:block;}
.step-title{font-family:var(--f-m);font-size:0.78rem;letter-spacing:0.04em;margin-bottom:10px;color:var(--link);}
.step-desc{font-family:var(--f-d);font-size:0.87rem;color:var(--lmut);line-height:1.65;flex:1;}
.step-note{font-family:var(--f-m);font-size:0.56rem;letter-spacing:0.05em;color:var(--ph-ink);background:var(--ph-bg);padding:5px 8px;margin-top:12px;display:inline-block;border:1px dashed var(--ph-bdr);}

/* TEAM */
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:60px;}
.team-photo{width:100%;aspect-ratio:4/5;margin-bottom:24px;}
.team-name{font-family:var(--f-m);font-size:0.9rem;letter-spacing:0.04em;margin-bottom:6px;}
.team-role{font-family:var(--f-m);font-size:0.6rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;}
.team-bio{font-family:var(--f-d);font-size:0.93rem;color:var(--muted);line-height:1.72;}
.team-link{font-family:var(--f-m);font-size:0.6rem;letter-spacing:0.06em;color:var(--muted);text-decoration:underline;text-underline-offset:3px;margin-top:14px;display:block;}

.light .team-role,.light .team-bio,.light .team-link{color:var(--lmut);}
.light .team-link{text-decoration-color:color-mix(in srgb, var(--lmut) 65%, transparent);}

/* MATERIALS */
.mat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);}
.mat{background:var(--bg);padding:36px 30px;display:flex;flex-direction:column;}
.mat-title{font-family:var(--f-m);font-size:0.82rem;letter-spacing:0.04em;margin-bottom:12px;}
.mat-desc{font-family:var(--f-d);font-size:0.92rem;color:var(--muted);line-height:1.6;flex:1;margin-bottom:24px;}

/* IMG PH */
.img-ph{background:var(--surf);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.img-ph::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(237,232,223,0.025) 5px,rgba(237,232,223,0.025) 10px);}
.img-ph span{position:relative;z-index:1;font-family:var(--f-m);font-size:0.6rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);text-align:center;padding:20px;line-height:1.9;}
.light .img-ph{background:rgba(26,23,16,0.05);}
.light .img-ph::before{background:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(0,0,0,0.03) 5px,rgba(0,0,0,0.03) 10px);}
.light .img-ph span{color:var(--lmut);}

/* PROGRESS */
.prog-track{height:1px;background:var(--border);margin:12px 0 8px;}
.prog-fill{height:100%;background:var(--accent);width:0;transition:width 1.4s ease;}

/* FU */
.fu{opacity:0;transform:translateY(14px);transition:opacity 0.65s ease,transform 0.65s ease;}
.fu.vis{opacity:1;transform:none;}

/* FOOTER */
.footer-wrap{border-top:1px solid var(--border);padding:32px 0;}
.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;font-family:var(--f-m);font-size:0.62rem;letter-spacing:0.07em;color:var(--muted);}

/* INV NAV */
.inv-nav{display:flex;gap:20px;flex-wrap:wrap;}
.inv-nav a{font-family:var(--f-m);font-size:0.58rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);transition:color 0.2s;}
.inv-nav a:hover{color:var(--fg);}

/* SHARED SCRIPT */
@media(max-width:900px){
  .cards-3,.cases-grid,.mat-grid,.ms-grid,.ctrs{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:1fr;gap:44px;}
  .steps-row{grid-template-columns:1fr 1fr;}
  .sub-grid{grid-template-columns:1fr;}
}
@media(max-width:768px){
  .wrap{padding:0 24px;}
  .hdr{padding:18px 24px;}
  section{padding:68px 0;}
  .nav-links,.inv-nav{display:none;}
  .steps-row{grid-template-columns:1fr;}
  h1{font-size:clamp(1.6rem,7vw,2.4rem);}
}
