
:root{--paper:oklch(96.8% .013 88);--paper2:oklch(93.6% .019 84);--paper3:oklch(90.5% .024 82);--ink:oklch(23% .028 162);--pine:oklch(33% .055 162);--pine2:oklch(22.5% .042 163);--pine3:oklch(45% .058 162);--amber:oklch(66% .145 58);--amber2:oklch(89% .062 72);--line:oklch(84% .016 88);--line2:oklch(74% .02 88);--muted:oklch(47% .018 152);--white:oklch(94% .014 96);--dim:oklch(78% .02 130);--darkline:oklch(34% .03 163);--serif:"Fraunces",Georgia,serif;--sans:"Archivo",system-ui,sans-serif;--expo:cubic-bezier(.16,1,.3,1);--quart:cubic-bezier(.25,1,.5,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}
body{margin:0;background:var(--paper);color:var(--ink);font:1.0625rem/1.65 var(--sans);-webkit-font-smoothing:antialiased;background-image:radial-gradient(oklch(78% .02 88/.34) .5px,transparent .5px);background-size:24px 24px;overflow-x:hidden}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.05;letter-spacing:-.015em;text-wrap:balance;margin:0}
p{margin:0;text-wrap:pretty}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--amber2);color:var(--pine2)}:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:4px}
.wrap{width:min(1120px,calc(100% - 48px));margin:auto}
.progress{position:fixed;inset:0 0 auto;height:2px;background:var(--amber);transform:scaleX(0);transform-origin:0;z-index:80}
header{position:sticky;top:0;z-index:60;border-bottom:1px solid transparent;transition:.4s var(--quart)}
header.stuck{background:oklch(96.8% .013 88/.93);backdrop-filter:blur(7px);border-color:var(--line)}
.bar{display:flex;align-items:center;gap:24px;min-height:62px}
.brand{display:flex;align-items:center;gap:10px;font:1.3rem var(--serif)}.brand svg{width:25px;height:25px}
.bar .spacer{flex:1}
.back{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.875rem;transition:color .2s var(--quart)}.back:hover{color:var(--ink)}.back svg{transition:transform .3s var(--expo)}.back:hover svg{transform:translateX(-3px)}
.cta{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:11px 17px;background:var(--pine);color:var(--white);font-size:.875rem;font-weight:500;transition:transform .2s var(--quart),background .25s var(--quart)}.cta:hover{background:var(--pine2)}.cta:active{transform:translateY(1px)}
.ghost{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line2);border-radius:999px;padding:10px 16px;font-size:.875rem;font-weight:500;transition:.25s var(--quart)}.ghost:hover{border-color:var(--pine);background:var(--paper2)}

/* ---------- hero: scatter -> order ---------- */
.hero{padding:74px 0 40px}
.hero-grid{display:grid;grid-template-columns:1fr 320px;gap:60px;align-items:end}
.eyebrow{display:flex;align-items:center;gap:10px;color:var(--pine3);font-size:.75rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase}
.eyebrow:before{content:"";width:22px;height:1px;background:var(--amber)}.eyebrow .tag{color:var(--amber)}.eyebrow .dot{color:var(--line2)}
h1{font-size:clamp(2.6rem,6.4vw,5rem);max-width:16ch;margin-top:20px}h1 em{font-style:italic;color:var(--pine)}
.lead{max-width:62ch;margin-top:24px;color:var(--muted);font-size:1.18rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:26px;color:var(--muted);font-size:.85rem}.facts b{color:var(--ink)}

.converge{position:relative;height:300px;border-left:1px solid var(--line);padding-left:26px;overflow:hidden}
.converge .lbl{position:absolute;top:0;left:26px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.chip{position:absolute;left:26px;max-width:calc(100% - 30px);display:flex;align-items:center;gap:7px;border:1px solid var(--line2);background:var(--paper2);border-radius:8px;padding:6px 9px;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 0 oklch(80% .02 88/.6);animation:settle 9s var(--expo) infinite}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--amber);flex:none}
.chip:nth-child(4){--x:34px;--y:-12px;--r:-4deg;top:44px;animation-delay:0s}
.chip:nth-child(5){--x:-14px;--y:14px;--r:3deg;top:86px;animation-delay:.45s}
.chip:nth-child(6){--x:44px;--y:-16px;--r:-2.5deg;top:128px;animation-delay:.9s}
.chip:nth-child(7){--x:-18px;--y:18px;--r:4deg;top:170px;animation-delay:1.35s}
.chip:nth-child(8){--x:38px;--y:12px;--r:-3deg;top:212px;animation-delay:1.8s}
.chip:nth-child(9){--x:-12px;--y:-14px;--r:2.5deg;top:254px;animation-delay:2.25s}
@keyframes settle{0%,12%{translate:var(--x) var(--y);rotate:var(--r);opacity:.5;border-color:var(--line)}
40%,72%{translate:0 0;rotate:0deg;opacity:1;border-color:var(--line2)}
100%{translate:var(--x) var(--y);rotate:var(--r);opacity:.5;border-color:var(--line)}}
.converge .rail{position:absolute;left:0;top:36px;bottom:8px;width:1px;background:var(--line)}
.converge .runner{position:absolute;left:0;width:5px;height:5px;border-radius:50%;background:var(--pine);animation:run 9s var(--quart) infinite}
@keyframes run{0%{top:36px;opacity:0}18%{opacity:1}72%{top:82%;opacity:1}100%{top:82%;opacity:0}}

/* ---------- meters ---------- */
.meters{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.mt u{display:block;text-decoration:none;font:2.1rem/1 var(--serif);color:var(--pine)}
.mt u s{text-decoration:none;font-size:1rem;color:var(--muted);margin-left:3px}
.mt .track{display:block;height:3px;background:var(--paper3);border-radius:3px;margin:12px 0 10px;overflow:hidden}
.mt .fill{display:block;height:100%;background:var(--amber);transform:scaleX(0);transform-origin:0;transition:transform 1.3s var(--expo)}
.meters.in .fill{transform:scaleX(var(--v,1))}
.mt b{display:block;font-size:.8rem;font-weight:600}
.mt small{display:block;color:var(--muted);font-size:.76rem;margin-top:3px}
.mnote{grid-column:1/-1;max-width:88ch;color:var(--muted);font-size:.78rem;padding:16px 0 0;border-top:1px dashed var(--line)}

/* ---------- section frame ---------- */
.sec{padding:72px 0;border-top:1px solid var(--line)}
.sec:first-of-type{border-top:0}
.shead{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;margin-bottom:36px}
.snum{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px}
.snum span{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line2);border-radius:50%;font-family:var(--serif);font-size:.8rem;letter-spacing:0;color:var(--pine)}
.sec h2{font-size:clamp(1.85rem,3.4vw,2.7rem);max-width:20ch}.sec h2 em{font-style:italic;color:var(--pine)}
.sdesc{color:var(--muted)}
.sdesc p+p{margin-top:14px}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--quart),transform .8s var(--expo)}
.reveal.in{opacity:1;transform:none}

/* ---------- story ledger ---------- */
.ledger{position:relative;padding-left:0}
.ledger:before{content:"";position:absolute;left:50%;top:6px;bottom:6px;width:1px;background:var(--line);translate:-.5px 0}
.ledger i.grow{position:absolute;left:50%;top:6px;width:1px;background:var(--amber);translate:-.5px 0;height:0;transition:height .2s linear}
.ent{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:56px;padding:22px 0}
.ent .box{border:1px solid var(--line);border-radius:14px;background:var(--paper2);padding:20px 22px;transition:transform .4s var(--expo),border-color .3s}
.ent.in .box{transform:none}
.ent .box{transform:translateY(14px)}
.ent:hover .box{border-color:var(--line2)}
.ent .box time{display:block;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--amber)}
.ent .box h3{font-size:1.22rem;margin:8px 0 8px}
.ent .box p{color:var(--muted);font-size:.92rem}
.ent .box .out{display:inline-block;margin-top:12px;border-top:1px dashed var(--line2);padding-top:9px;font-size:.8rem;color:var(--pine)}
.ent:nth-child(odd) .box{grid-column:1}
.ent:nth-child(even) .box{grid-column:2}
.ent .pin{position:absolute;left:50%;top:38px;width:11px;height:11px;border-radius:50%;background:var(--paper);border:1px solid var(--line2);translate:-50% 0;transition:.4s var(--quart)}
.ent.in .pin{background:var(--amber);border-color:var(--amber);box-shadow:0 0 0 4px oklch(89% .062 72/.55)}

/* ---------- principles ---------- */
.prin{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pc{border:1px solid var(--line);border-radius:16px;background:var(--paper2);padding:22px;position:relative;overflow:hidden}
.pc:before{content:"";position:absolute;inset:auto 0 0 0;height:2px;background:var(--amber);transform:scaleX(0);transform-origin:0;transition:transform .55s var(--expo)}
.pc:hover:before,.pc:focus-within:before{transform:none}
.pc .n{font:.78rem var(--sans);font-weight:600;letter-spacing:.1em;color:var(--amber);text-transform:uppercase}
.pc h3{font-size:1.24rem;margin:10px 0 9px}
.pc p{color:var(--muted);font-size:.92rem}
.pc .cost{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--expo);margin-top:0}
.pc:hover .cost,.pc:focus-within .cost{grid-template-rows:1fr}
.pc .cost>div{overflow:hidden}
.pc .cost em{display:block;margin-top:14px;border-left:2px solid var(--amber2);padding-left:12px;font-style:normal;font-size:.85rem;color:var(--pine)}
.pc .cost b{font-weight:600}
.hint{color:var(--muted);font-size:.78rem;margin-top:14px}

/* ---------- how we build (sparkline + loop) ---------- */
.build{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:start}
.spark{border:1px solid var(--line);border-radius:16px;background:var(--paper2);padding:20px}
.spark h3{font-size:1.1rem}
.spark svg{width:100%;height:118px;display:block;margin-top:14px;overflow:visible}
.spark path.ln{fill:none;stroke:var(--pine);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1000;stroke-dashoffset:1000;transition:stroke-dashoffset 2.2s var(--quart)}
.spark.in path.ln{stroke-dashoffset:0}
.spark path.area{fill:oklch(66% .145 58/.12);opacity:0;transition:opacity 1s .8s var(--quart)}
.spark.in path.area{opacity:1}
.spark circle{fill:var(--amber);opacity:0;transition:opacity .4s var(--quart)}
.spark.in circle{opacity:1;transition-delay:1.6s}
.spark .ax{display:flex;justify-content:space-between;color:var(--muted);font-size:.7rem;margin-top:8px;border-top:1px solid var(--line);padding-top:8px}
.spark .cap{color:var(--muted);font-size:.8rem;margin-top:12px}
.loop{display:grid;gap:11px}
.step{display:grid;grid-template-columns:32px 1fr;gap:14px;align-items:start;border:1px solid var(--line);border-radius:13px;background:var(--paper2);padding:15px 17px;position:relative}
.step em{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--pine2);color:var(--amber);font-style:normal;font-family:var(--serif);font-size:.95rem}
.step b{display:block;font-size:.95rem}
.step p{color:var(--muted);font-size:.86rem;margin-top:4px}
.step:not(:last-child):after{content:"";position:absolute;left:32px;bottom:-11px;width:1px;height:11px;background:var(--line2)}

/* ---------- team ---------- */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.person{border:1px solid var(--line);border-radius:16px;background:var(--paper2);padding:20px;transition:transform .4s var(--expo),border-color .3s}
.person:hover{transform:translateY(-5px);border-color:var(--line2)}
.mono{width:44px;height:44px;border-radius:12px;background:var(--pine2);color:var(--amber2);display:grid;place-items:center;font:1.05rem var(--serif)}
.person b{display:block;margin-top:14px;font-size:1rem}
.person u{display:block;text-decoration:none;color:var(--pine3);font-size:.8rem;margin-top:2px}
.person p{color:var(--muted);font-size:.85rem;margin-top:10px}
.person s{display:block;text-decoration:none;color:var(--muted);font-size:.74rem;margin-top:12px;border-top:1px dashed var(--line);padding-top:9px}

/* ---------- money ---------- */
.money{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.rev{border:1px solid var(--line);border-radius:16px;background:var(--paper2);padding:22px}
.rev h3{font-size:1.08rem}
.stack{display:flex;height:34px;border-radius:9px;overflow:hidden;margin:16px 0 14px;border:1px solid var(--line2)}
.stack span{display:block;width:0;transition:width 1.2s var(--expo)}
.rev.in .stack span{width:var(--w)}
.stack .a{background:var(--pine)}.stack .b{background:var(--pine3)}.stack .c{background:var(--amber)}.stack .d{background:var(--paper3)}
.key{display:grid;gap:9px}
.key div{display:flex;align-items:center;gap:9px;font-size:.85rem}
.key i{width:10px;height:10px;border-radius:3px;flex:none}
.key .spacer{flex:1}
.key b{font-weight:600;font-variant-numeric:tabular-nums}
.plain{border-left:2px solid var(--amber);background:oklch(93.6% .019 84/.7);border-radius:0 12px 12px 0;padding:14px 18px;font-size:.92rem;margin-top:18px}
.plain b{font-weight:600}
.nolist{display:grid;gap:12px}
.nolist > div{display:grid;grid-template-columns:20px 1fr;gap:12px;font-size:.93rem}
.nolist svg{width:18px;height:18px;margin-top:3px;flex:none}
.nolist .y svg{color:var(--pine3)}.nolist .n svg{color:var(--amber)}
.nolist p{color:var(--muted);font-size:.85rem;margin-top:3px}
.nolist b{font-weight:600;color:var(--ink)}

/* ---------- fit table ---------- */
.fit{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fc{border:1px solid var(--line);border-radius:16px;padding:22px;background:var(--paper2)}
.fc.no{background:transparent;border-style:dashed}
.fc h3{font-size:1.15rem;display:flex;align-items:center;gap:10px}
.fc h3 i{width:8px;height:8px;border-radius:50%;background:var(--pine3)}
.fc.no h3 i{background:var(--amber)}
.fc ul{margin-top:14px;display:grid;gap:10px}
.fc li{display:flex;align-items:flex-start;gap:11px;color:var(--muted);font-size:.9rem}
.fc li:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--line2);margin-top:8px;flex:none}
.fc li b{color:var(--ink);font-weight:600}

/* ---------- accordion ---------- */
.acc{border-top:1px solid var(--line)}
.it{border-bottom:1px solid var(--line)}
.hd{width:100%;display:flex;align-items:center;gap:16px;text-align:left;padding:19px 0;font-size:1.02rem;font-family:var(--serif);transition:color .2s}
.hd:hover{color:var(--pine)}
.pm{position:relative;width:13px;height:13px;margin-left:auto;flex:none}
.pm:before,.pm:after{content:"";position:absolute;inset:50% 0 auto;height:1px;background:var(--pine);transition:transform .35s var(--expo)}
.pm:after{transform:rotate(90deg)}
.it.open .pm:after{transform:rotate(0)}
.bd{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--expo)}
.it.open .bd{grid-template-rows:1fr}
.bd>div{overflow:hidden}
.bd p{color:var(--muted);font-size:.94rem;padding-bottom:20px;max-width:78ch}
.bd p+p{padding-top:0;margin-top:-8px}

/* ---------- contact + footer ---------- */
.contact{border:1px solid var(--line2);border-radius:20px;background:var(--pine2);color:var(--white);padding:38px;display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between;margin:24px 0 80px}
.contact h2{font-size:1.9rem;color:var(--white)}.contact h2 em{font-style:italic;color:var(--amber2)}
.contact p{color:var(--dim);margin-top:9px;max-width:52ch;font-size:.95rem}
.contact .cta{background:var(--amber);color:var(--pine2)}.contact .cta:hover{background:var(--amber2)}
footer{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;border-top:1px solid var(--line);margin-top:56px;padding:26px 0 46px;color:var(--muted);font-size:.83rem}
footer .spacer{flex:1}footer a:hover{color:var(--ink)}

@media (max-width:960px){
  .hero-grid,.build,.money{grid-template-columns:1fr;gap:34px}
  .converge{height:250px}
  .meters{grid-template-columns:1fr 1fr;gap:26px}
  .shead{grid-template-columns:1fr;gap:20px}
  .prin,.team,.fit{grid-template-columns:1fr 1fr}
  .ledger:before,.ledger i.grow{left:5px}
  .ent{grid-template-columns:1fr;gap:0;padding:14px 0 14px 30px}
  .ent .box,.ent:nth-child(even) .box{grid-column:1}
  .ent .pin{left:5px;top:32px}
}
@media (max-width:640px){
  .wrap{width:calc(100% - 32px)}
  .prin,.team,.fit,.meters{grid-template-columns:1fr}
  .sec{padding:52px 0}
  .contact{padding:26px}
  .facts{gap:6px 16px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
  .ent .box{transform:none}
  .spark path.ln{stroke-dashoffset:0}.spark path.area,.spark circle{opacity:1}
  .meters .fill{transform:scaleX(var(--v,1))}
  .rev .stack span{width:var(--w)}
}

/* Hide global marketing header on about page */
#hdr.inner { display: none !important; }


.brand, .mark { display: flex; align-items: center; gap: 12px; font-family: var(--serif, inherit); font-size: 1.45rem; font-weight: 700; letter-spacing: -0.025em; cursor: pointer; }
.brand img, .mark img { width: 42px !important; height: 42px !important; transition: transform 280ms cubic-bezier(0.16, 1, 0.3, 1); display: block; }
.brand:hover img, .mark:hover img { transform: scale(1.08) rotate(-2deg); }


/* Ultra-Premium Glowing Progress Bar */
.progress, #progress, #prog, #fcount + .progress {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  height: 3.5px !important;
  background: linear-gradient(90deg, #10b981 0%, #06b6d4 50%, #f59e0b 100%) !important;
  box-shadow: 0 0 12px rgba(16, 185, 129, 0.8), 0 0 20px rgba(245, 158, 11, 0.6) !important;
  transform-origin: 0 50% !important;
  z-index: 99999 !important;
  pointer-events: none !important;
  transition: transform 120ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}
