:root{
    --ground:#F1EEE7; --ink:#1B1B1A; --ink-2:#4A4844; --ink-3:#7A7772;
    --rule:#D9D4CA; --rust:#9A4A38; --rust-deep:#7E3A2B; --sage:#D8DBD3; --sage-rule:#C3C7BD;
    --night:#161614; --night-2:#A9A69E; --night-rule:#2E2D2A; --cream-text:#F3EEE4;
    --line-1:#1B1B1A; --line-2:#7A7772; --line-3:#BDB9B1;
    --serif:"EB Garamond",Garamond,Georgia,serif; --body:"DM Sans",system-ui,sans-serif;
    --mono:"DM Mono",ui-monospace,monospace; --sans:"DM Sans",system-ui,sans-serif;
    --ease:cubic-bezier(.22,.61,.36,1);
    --d-xl:clamp(48px,7.6vw,128px); --d-l:clamp(38px,5vw,80px); --d-m:clamp(24px,2.2vw,34px);
    --t-lg:clamp(16px,1.25vw,19px); --t:15px; --t-sm:13px; --m:10px;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
  h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;text-wrap:balance}
  a{color:inherit;text-decoration:none}
  .wrap{padding-inline:clamp(16px,8.5vw,136px)}
  .label{font-family:var(--mono);font-size:var(--m);letter-spacing:.22em;text-transform:uppercase}
  .label b{font-weight:400;color:var(--rust);margin-right:.9em}
  .sans{font-family:var(--sans);font-size:var(--t);line-height:1.7;color:var(--ink-2)}

  /* ---------- nav ---------- */
  nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--ground);height:52px;display:flex;align-items:center;justify-content:space-between;padding-inline:clamp(16px,2.7vw,44px);border-bottom:1px solid var(--rule)}
  nav .brand{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:var(--m);letter-spacing:.26em}
  nav .brand svg{width:30px;height:30px}
  nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0}
  nav li a{font-family:var(--mono);font-size:var(--m);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);position:relative;padding-bottom:3px}
  nav li a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
  nav li a:hover::after,nav li a:focus-visible::after{transform:scaleX(1)}
  nav li a[aria-current]{color:var(--ink)}
  .burger{display:none;background:none;border:0;padding:8px 0;cursor:pointer;font-family:var(--mono);font-size:var(--m);letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
  .menu{position:fixed;top:calc(52px + env(safe-area-inset-top,0px));left:0;right:0;bottom:0;background:var(--ground);z-index:9;display:flex;flex-direction:column;padding:32px 16px}
  .menu[hidden]{display:none}
  .menu a{font-family:var(--serif);font-size:var(--d-m);padding:16px 0;border-bottom:1px solid var(--rule)}
  @media (max-width:860px){ .burger{display:block} }
  nav .progress{position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--rust);transform:scaleX(0);transform-origin:left;pointer-events:none}

  /* ---------- side label (lives across the page) ---------- */
  .side{position:fixed;left:26px;top:120px;z-index:5;width:14px;height:220px;pointer-events:none}
  .side .sl{position:absolute;left:0;top:0;writing-mode:vertical-rl;font-family:var(--mono);font-size:var(--m);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap;opacity:0;transition:opacity .35s var(--ease);-webkit-backface-visibility:hidden;transform:translateZ(0)}
  .side .sl.on{opacity:1}
  .side.on-dark .sl{color:var(--night-2)}

  /* ---------- hero ---------- */
  .hero{position:relative;height:calc(100vh - 52px);min-height:640px;max-height:980px;overflow:hidden}
  .hero canvas{position:absolute;inset:0;width:100%;height:100%}
  .hero .copy{position:absolute;left:clamp(16px,8.5vw,136px);top:22%;max-width:760px;padding-right:16px}
  .hero h1{font-size:var(--d-xl);line-height:.94;letter-spacing:-.015em;margin-bottom:22px}
  .hero h1 em{font-style:italic}
  .hero p{font-size:var(--t-lg);line-height:1.6;max-width:34em;margin:0;color:var(--ink-2)}
  .hero .tick{position:absolute;right:4.5%;top:0;width:1px;height:130px;background:var(--rust)}
  .hero .explore{position:absolute;right:26px;bottom:60px;writing-mode:vertical-rl;font-family:var(--mono);font-size:var(--m);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2)}
  .hero .explore::after{content:"";display:block;width:1px;height:44px;background:var(--ink);margin:16px auto 0;animation:nudge 3.2s var(--ease) infinite}
  @keyframes nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
  .hero .copy > *{opacity:0;transform:translateY(14px);animation:rise 1.1s var(--ease) forwards}
  .hero .copy p{animation-delay:.25s}
  @keyframes rise{to{opacity:1;transform:none}}

  /* ---------- sections ---------- */
  section.block{position:relative;padding-block:clamp(88px,10vw,140px)}
  .rule{height:1px;background:var(--rule);transform:scaleX(0);transform-origin:left;transition:transform .9s var(--ease)}
  .in .rule{transform:scaleX(1)}
  .reveal{opacity:0;transform:translateY(10px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  .in .reveal{opacity:1;transform:none}
  .rv{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
  .rv.in{opacity:1;transform:none}
  .in .reveal:nth-child(2){transition-delay:.08s}.in .reveal:nth-child(3){transition-delay:.16s}
  .two{display:grid;grid-template-columns:1.4fr .8fr;gap:clamp(32px,6vw,96px);align-items:end}
  .two h2{font-size:var(--d-l);line-height:1.02;letter-spacing:-.012em}
  .two h2 em{font-style:italic}
  .two .sans p{margin:0 0 1.2em}
  .lnk{display:inline-flex;align-items:center;gap:22px;font-family:var(--mono);font-size:var(--m);letter-spacing:.2em;text-transform:uppercase;padding-bottom:8px;position:relative}
  .lnk::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;opacity:.45;transition:opacity .3s}
  .lnk::before{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease);z-index:1}
  .lnk:hover::before,.lnk:focus-visible::before{transform:scaleX(1)}
  .lnk svg{width:10px;height:10px;transition:transform .35s var(--ease)}
  .lnk:hover svg{transform:translate(2px,-2px)}

  /* 01 about — the last line warms after the rest */
  #about .last{color:var(--ink-3);transition:color 1.2s var(--ease) .55s}
  #about.in .last{color:var(--rust)}

  /* 02 investments */
  #invest{background:var(--sage)}
  #invest .rule{background:var(--sage-rule)}
  #invest .contour{position:absolute;right:0;top:0;width:min(60vw,900px);height:100%;pointer-events:none}
  .cols{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(40px,5vw,72px);border-top:1px solid var(--sage-rule)}
  .col{padding:28px clamp(20px,2.5vw,40px) 36px 0;position:relative}
  .col + .col{padding-left:clamp(20px,2.5vw,40px);border-left:1px solid var(--sage-rule);transition:border-color .5s}
  .col .num{font-family:var(--mono);font-size:var(--m);color:var(--rust);display:flex;align-items:center;gap:8px;height:12px}
  .col .num::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--rust);opacity:0;transform:scale(.4);transition:opacity .4s var(--ease),transform .4s var(--ease)}
  .col:hover .num::after{opacity:1;transform:none}
  .col:hover + .col{border-left-color:var(--ink-3)}
  .col h3{font-size:var(--d-m);margin:40px 0 14px;min-height:2.2em;line-height:1.1}
  .col p{margin:0;font-family:var(--sans);font-size:var(--t);line-height:1.65;color:var(--ink-2)}
  .fine{font-family:var(--sans);font-size:var(--t-sm);color:var(--ink-3);margin-top:28px}
  #invest.block{padding-block:clamp(72px,9vw,120px)}
  #invest .two{margin-top:clamp(40px,5vw,72px)!important}

  /* 03 insights */
  #insights{background:var(--night);color:var(--cream-text)}
  #insights .rule{background:var(--night-rule)}
  #insights .sans{color:var(--night-2)}
  #insights .two h2{color:#CFCBC2}
  #insights .label{color:var(--night-2)}
  .list{margin-top:clamp(48px,6vw,88px)}
  .row{display:grid;grid-template-columns:100px 1fr 200px;align-items:center;gap:24px;padding:40px 0;border-top:1px solid var(--night-rule);position:relative}
  .row:last-of-type{border-bottom:1px solid var(--night-rule)}
  .row .idx{font-family:var(--mono);font-size:var(--t-sm);color:var(--night-2);transition:color .35s}
  .row .meta{font-family:var(--mono);font-size:var(--m);letter-spacing:.2em;text-transform:uppercase;color:var(--night-2);margin-bottom:12px}
  .row h3{font-size:var(--d-m);line-height:1.15;color:var(--cream-text);transition:transform .45s var(--ease);max-width:26em}
  .row p{font-family:var(--sans);font-size:var(--t);line-height:1.6;color:var(--night-2);max-width:46em;margin:12px 0 0}
  .row .acts{display:flex;gap:28px;justify-content:flex-end}
  .row .acts .lnk{padding-bottom:4px}
  .row .acts .lnk::after{display:none}
  .row:hover .idx{color:var(--rust)}
  .row:hover h3{transform:translateX(6px)}
  .archive{display:inline-flex;margin-top:56px;border:1px solid var(--night-rule);padding:14px 20px;gap:40px;transition:border-color .4s}
  .archive::after,.archive::before{display:none}
  .archive:hover{border-color:var(--night-2)}

  /* 04 team */
  #team .two{grid-template-columns:1fr;gap:20px}
  #team .sans{max-width:32em}
  .people{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:clamp(48px,6vw,88px)}
  .card{border:1px solid var(--rule);transition:border-color .5s var(--ease)}
  .card:hover{border-color:var(--ink-3)}
  .card .port{aspect-ratio:1/1.05;overflow:hidden;background:#EDE9E1;display:grid;place-items:center}
  .card .port img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s var(--ease)}
  .card:hover .port img{transform:scale(1.02)}
  .card .who{padding:18px 20px 22px;border-top:1px solid var(--rule)}
  .card .who h3{font-size:var(--d-m);margin-bottom:4px}
  .card .who span{font-family:var(--mono);font-size:var(--m);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}

  /* 05 contact */
  #contact{background:var(--rust);color:var(--cream-text);overflow:hidden}
  #contact canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
  #contact .label{color:#E7C9BF}
  #contact h2{font-size:var(--d-xl);line-height:.95;letter-spacing:-.015em;max-width:9em;position:relative}
  #contact .lnk{margin-top:44px;font-family:var(--sans);font-size:var(--t);letter-spacing:0;text-transform:none;position:relative}
  footer{position:relative;margin-top:clamp(96px,12vw,170px);padding-top:28px;border-top:1px solid rgba(243,238,228,.28);display:flex;justify-content:space-between;align-items:center;font-family:var(--sans);font-size:var(--m);color:#E7C9BF}
  footer .brand{font-family:var(--mono);font-size:var(--m);letter-spacing:.26em;color:var(--cream-text)}
  footer .links{display:flex;gap:24px}

  @media (max-width:860px){
    nav ul{display:none}
    .side{display:none}
    .two{grid-template-columns:1fr}
    .cols{grid-template-columns:1fr}
    .col + .col{border-left:0;border-top:1px solid var(--sage-rule);padding-left:0}
    .col h3{margin-top:20px;min-height:0}
    .col{padding-bottom:24px}
    .row{grid-template-columns:1fr;gap:12px}
    .row .acts{justify-content:flex-start}
    .people{grid-template-columns:1fr}
    footer{flex-direction:column;gap:14px;align-items:flex-start}
    .hero .tick,.hero .explore{display:none}
    .hero .copy{top:9%}
    .hero h1{font-size:clamp(42px,12vw,60px)}
  }
  @media (prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important}
    .reveal,.rule{opacity:1;transform:none}
    .hero .copy > *{opacity:1;transform:none}
  }

  /* ===== Our Edge page ===== */
  #pg-edge .label{color:var(--ink-2)}
  #pg-edge .sans p{margin:0 0 1.2em}
  .measure{max-width:62ch}
  .phero{padding-block:clamp(72px,10vw,140px) clamp(48px,6vw,88px)}
  .phero h1{font-size:var(--d-xl);line-height:.98;letter-spacing:-.015em;margin:28px 0 32px;max-width:12em}
  .phero h1 em{font-style:italic}
  .phero p{font-size:var(--t-lg);line-height:1.6;color:var(--ink-2);max-width:30em;margin:0}
  .phero .copy > *{opacity:0;transform:translateY(12px);animation:rise 1s var(--ease) forwards}
  .phero .copy > :nth-child(2){animation-delay:.1s}.phero .copy > :nth-child(3){animation-delay:.22s}
  #pg-edge section.block{padding-block:clamp(72px,8vw,112px)}
  .in .reveal:nth-child(4){transition-delay:.24s}
  .head{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,6vw,96px);align-items:end;margin-top:48px}
  .head h2{font-size:var(--d-l);line-height:1.04;letter-spacing:-.012em}
  .head h2 em{font-style:italic;color:var(--rust)}
  .diagram{margin-top:clamp(48px,6vw,80px);position:relative}
  .diagram svg{width:100%;height:auto;display:block;overflow:visible}
  .diagram .cap{stroke:var(--ink);stroke-width:2.2;fill:none;stroke-linecap:round}
  .diagram .price{stroke:var(--ink-3);stroke-width:1.6;fill:none;stroke-linejoin:round}
  .diagram .win{fill:var(--rust);opacity:0;transition:opacity 1.2s var(--ease) 1.6s}
  .in .diagram .win{opacity:.16}
  .diagram .draw{stroke-dasharray:2000;stroke-dashoffset:2000;transition:stroke-dashoffset 2.2s var(--ease)}
  .in .diagram .draw{stroke-dashoffset:0}
  .diagram .price.draw{transition-delay:.35s}
  .diagram .dot{fill:var(--rust);opacity:0;transition:opacity .5s var(--ease) 2s}
  .in .diagram .dot{opacity:1}
  .diagram .tag{font-family:var(--mono);font-size:var(--m);letter-spacing:.18em;text-transform:uppercase;fill:var(--ink-3)}
  .diagram .tag.rust{fill:var(--rust)}
  .diagram .rnd{font-family:var(--sans);font-size:var(--m);fill:var(--ink-3)}
  .diagram .axis{stroke:var(--rule);stroke-width:1}
  .diagram .axis.rust{stroke:var(--rust);stroke-width:1.5}
  .diagram .dash{stroke:var(--rust);stroke-width:1;stroke-dasharray:3 4;opacity:.6}
  .phases{display:none}
  @media (max-width:860px){
    .diagram .tag{display:none}
    .diagram .rnd{font-size:var(--t)}
    .phases{display:grid;grid-template-columns:1fr;gap:8px;margin-top:18px;font-family:var(--mono);font-size:var(--m);letter-spacing:.14em;text-transform:uppercase;line-height:1.6;color:var(--ink-3)}
    .phases span br{display:none}
    .phases span::before{content:"—  "}
    .phases .r{color:var(--rust)}
    .legend{gap:14px;font-size:var(--m)}
  }
  .legend{display:flex;gap:36px;flex-wrap:wrap;margin-top:24px;font-family:var(--mono);font-size:var(--m);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
  .legend span::before{content:"";display:inline-block;width:22px;height:2px;vertical-align:middle;margin-right:10px;background:var(--ink)}
  .legend span.p::before{background:var(--ink-3);height:1px}
  .legend span.w::before{background:var(--rust);opacity:.5;height:10px}
  .figs{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(40px,5vw,64px);border-top:1px solid var(--rule)}
  .fig{padding:32px clamp(20px,2.5vw,40px) 36px 0}
  .fig + .fig{border-left:1px solid var(--rule);padding-left:clamp(20px,2.5vw,40px)}
  .fig .n{font-family:var(--serif);font-size:var(--d-l);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
  .fig .n small{font-size:.45em;color:var(--rust);margin-left:.3em;letter-spacing:0}
  .fig .l{font-family:var(--sans);font-size:var(--t);line-height:1.55;color:var(--ink-2);margin-top:16px;max-width:24em}
  .fig .s{font-family:var(--mono);font-size:var(--m);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-top:12px}
  .impl{margin-top:40px;padding:26px 30px;background:var(--sage);display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:baseline}
  .impl .label{white-space:nowrap}
  .impl p{margin:0;font-family:var(--sans);font-size:17px;line-height:1.55}
  #thesis{background:var(--night);color:var(--cream-text)}
  #thesis .rule{background:var(--night-rule)}
  #thesis .label{color:var(--night-2)}
  #thesis .head h2{color:#CFCBC2}
  #thesis .sans{color:var(--night-2)}
  .trows{margin-top:clamp(40px,5vw,64px)}
  .trow{display:grid;grid-template-columns:.9fr 1.3fr .9fr;gap:clamp(20px,4vw,64px);align-items:center;padding:40px 24px;margin-inline:-24px;border-top:1px solid var(--night-rule);transition:background .5s var(--ease)}
  .trow:last-of-type{border-bottom:1px solid var(--night-rule)}
  .trow .t{font-family:var(--sans);font-weight:500;font-size:var(--t);letter-spacing:.06em;text-transform:uppercase;line-height:1.35;color:#CFCBC2;transition:color .5s}
  .trow .t small{display:none}
  .trow .d{font-family:var(--sans);font-size:var(--t);line-height:1.65;color:var(--night-2);padding-left:20px;border-left:1px solid var(--night-rule);transition:border-color .6s var(--ease),color .5s}
  .trow .a{font-family:var(--sans);font-size:17px;line-height:1.4;color:var(--night-2);display:flex;align-items:center;gap:16px;transition:color .5s}
  .trow .a::before{content:"→";color:var(--rust);font-family:var(--sans);font-size:.8em;transition:transform .5s var(--ease)}
  .trow:hover{background:rgba(243,238,228,.03)}
  .trow:hover .t,.trow:hover .a{color:var(--cream-text)}
  .trow:hover .d{border-left-color:var(--rust);color:#CFCBC2}
  .trow:hover .a::before{transform:translateX(6px)}
  /* edge pillars — level at rest, depth on hover */
  #edge{background:var(--sage)}
  #edge .rule{background:var(--sage-rule)}
  .pillars{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(40px,5vw,64px);border-top:1px solid var(--sage-rule)}
  .pil{padding:30px clamp(20px,2.5vw,40px) 34px 0;position:relative}
  .pil + .pil{border-left:1px solid var(--sage-rule);padding-left:clamp(20px,2.5vw,40px)}
  .pil::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--rust);transition:width .7s var(--ease)}
  .pil:hover::before{width:100%}
  .pil .num{font-family:var(--mono);font-size:var(--m);color:var(--rust);height:12px}
  .pil h3{font-size:var(--d-m);line-height:1.1;margin:36px 0 12px;min-height:2.2em}
  .pil .sub{font-family:var(--sans);font-size:var(--t);line-height:1.55;color:var(--ink-2);min-height:3.1em;margin:0}
  .pil .more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
  .pil .more > div{overflow:hidden}
  .pil ul{margin:22px 0 0;padding:22px 0 0;border-top:1px solid var(--sage-rule);list-style:none;font-family:var(--sans);font-size:var(--t);line-height:1.75;color:var(--ink-2)}
  .pil ul li::before{content:"·";color:var(--rust);margin-right:10px}
  .pil .for{margin-top:20px;font-family:var(--sans);font-size:var(--t);line-height:1.6;color:var(--ink);opacity:0;transform:translateY(6px);transition:opacity .5s var(--ease) .2s,transform .5s var(--ease) .2s}
  .pil .for b{display:block;font-family:var(--mono);font-weight:400;font-size:var(--m);letter-spacing:.2em;text-transform:uppercase;color:var(--rust);margin-bottom:8px}
  .pil:hover .more,.pil.open .more{grid-template-rows:1fr}
  .pil:hover .for,.pil.open .for{opacity:1;transform:none}
  /* process — three columns, steps on hover */
  .q{font-family:var(--serif);font-size:var(--d-m);line-height:1.3;font-style:italic;color:var(--ink-2);max-width:26em;margin-top:24px}
  .procs{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(40px,5vw,64px);border-top:1px solid var(--rule)}
  .proc{padding:30px clamp(20px,2.5vw,40px) 34px 0;position:relative}
  .proc + .proc{border-left:1px solid var(--rule);padding-left:clamp(20px,2.5vw,40px)}
  .proc::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--rust);transition:width .7s var(--ease)}
  .proc:hover::before{width:100%}
  .proc .num{font-family:var(--mono);font-size:var(--m);color:var(--rust);height:12px}
  .proc h3{font-family:var(--sans);font-weight:500;font-size:var(--t);letter-spacing:.06em;text-transform:uppercase;margin:36px 0 12px;min-height:2.6em;line-height:1.3}
  .proc .sub{font-family:var(--sans);font-size:var(--t);line-height:1.55;color:var(--ink-2);min-height:3.1em;margin:0}
  .proc .more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
  .proc .more > div{overflow:hidden}
  .proc .st{margin-top:22px;padding-top:18px;border-top:1px solid var(--rule)}
  .proc .st + .st{margin-top:18px}
  .proc .st b{display:block;font-family:var(--mono);font-weight:400;font-size:var(--m);letter-spacing:.2em;text-transform:uppercase;color:var(--rust);margin-bottom:6px}
  .proc .st p{margin:0;font-family:var(--sans);font-size:var(--t);line-height:1.6;color:var(--ink-2)}
  .proc:hover .more,.proc.open .more{grid-template-rows:1fr}
  .std{margin-top:40px;padding:22px 30px;border:1px solid var(--ink);display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:baseline}
  .std p{margin:0;font-family:var(--serif);font-size:var(--t-lg)}
  .card{display:block}
  .bio{display:grid;grid-template-columns:minmax(200px,.55fr) 1.45fr;gap:clamp(28px,5vw,80px);padding:clamp(40px,5vw,72px) 0;border-bottom:1px solid var(--rule)}
  .bio:last-of-type{border-bottom:0}
  .bport{border:1px solid var(--rule);background:#EDE9E1;aspect-ratio:1/1.05;overflow:hidden;align-self:start}
  .bport img{width:100%;height:100%;object-fit:cover;display:block}
  .btext h2{font-size:var(--d-l);line-height:1.05;margin:14px 0 22px}
  .btext p{font-family:var(--sans);font-size:var(--t);line-height:1.7;color:var(--ink-2);max-width:62ch;margin:0 0 1.1em}
  .btext .tags{font-family:var(--mono);font-size:var(--m);letter-spacing:.2em;text-transform:uppercase;color:var(--rust);margin-top:26px}
  #tclose{background:var(--rust);color:var(--cream-text)}
  #tclose .label{color:#E7C9BF}
  #tclose h2{font-size:var(--d-l);line-height:.98;letter-spacing:-.015em;margin-top:24px}
  #tclose h2 em{font-style:italic}
  #tclose footer{margin-top:clamp(64px,8vw,110px)}
  @media (max-width:860px){ .bio{grid-template-columns:1fr;gap:24px} .bport{max-width:260px} }
  #close{background:var(--rust);color:var(--cream-text)}
  #close .label{color:#E7C9BF}
  #close h2{font-size:var(--d-l);line-height:.98;letter-spacing:-.015em;margin-top:24px}
  #close h2 em{font-style:italic}
  .lnks{display:flex;gap:40px;margin-top:40px;flex-wrap:wrap}
  #close footer{margin-top:clamp(64px,8vw,110px)}
  .tgl{display:none}
  @media (hover:none){
    .pil .sub,.proc .sub{display:none}
    .pil h3,.proc h3{min-height:0;margin-bottom:0}
    .pil .more,.proc .more{grid-template-rows:0fr}
    .pil.open .more,.proc.open .more{grid-template-rows:1fr}
    .pil.open .sub,.proc.open .sub{display:block;margin-top:12px}
    .pil.open .for{opacity:1;transform:none}
    .pil::before,.proc::before{display:none}
    .tgl{display:none}
    .pil.open::before,.proc.open::before{display:block;width:100%}
    .pil .more,.proc .more{transition:grid-template-rows .8s var(--ease)}
    .pil ul{margin-top:12px;padding-top:0;border-top:0}
    .pil,.proc{padding-block:22px 24px}
  }
  @media (max-width:860px){
    :root{--t:17px;--t-lg:18px;--t-sm:14px}
    .head h2{font-size:clamp(38px,11vw,52px)}
    .phero h1{font-size:clamp(42px,12vw,60px)}
    .phero p{font-size:var(--t-lg)}
    .fig .n{font-size:var(--d-l)}
    .head{grid-template-columns:1fr;gap:20px}
    .figs,.pillars,.procs{grid-template-columns:1fr}
    .fig + .fig,.pil + .pil,.proc + .proc{border-left:0;border-top:1px solid var(--rule);padding-left:0}
    .pil + .pil{border-top-color:var(--sage-rule)}
    .pil h3,.proc h3,.pil .sub,.proc .sub{min-height:0}
    .trow{grid-template-columns:1fr;gap:16px;padding:28px 0;margin-inline:0}
    .trow .d{padding-left:16px}
    .impl,.std{grid-template-columns:1fr;gap:12px}
  }
  @media (prefers-reduced-motion:reduce){
    .phero .copy > *{opacity:1;transform:none}
    .diagram .draw{stroke-dashoffset:0}.diagram .win{opacity:.16}.diagram .dot{opacity:1}
  }

/* ---- phone spacing (last so it wins) ---- */
@media (max-width:860px){
  section.block,#pg-edge section.block,#invest.block{padding-block:48px 56px}
  .label.reveal{margin-top:28px!important}
  .two,.head{margin-top:28px!important}
  .cols,.pillars,.procs,.figs,.trows,.list,.people{margin-top:32px}
  .diagram{margin-top:32px}
  .legend{gap:10px 22px;margin-top:16px}
  .legend span{display:block}
  .diagram .rnd{font-size:15px}
  .phases{margin-top:14px}
  .impl,.std{margin-top:28px}
  .fine{margin-top:20px}
  .lnks{margin-top:28px}
  .archive{margin-top:32px}
  .phero{padding-block:56px 32px}
  .lnk.reveal{margin-top:24px!important}
  footer{margin-top:56px}
  .bio{padding:36px 0}
}

/* Live research and accessibility integration. */
.report-viewer-open{overflow:hidden}.report-viewer{position:fixed;z-index:20;inset:0;display:grid;grid-template-rows:auto 1fr;background:rgba(17,17,15,.97);color:var(--paper-light)}.report-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:72px;padding:0 clamp(20px,4vw,64px);border-bottom:1px solid rgba(255,255,255,.18)}.report-viewer-bar p{margin:0;overflow:hidden;font-family:var(--serif);font-size:20px;text-overflow:ellipsis;white-space:nowrap}.report-viewer-bar>div{display:flex;align-items:center;gap:26px}.report-viewer-bar a,.report-viewer-bar button{display:flex;gap:9px;align-items:center;padding:0;border:0;background:transparent;color:inherit;font:500 10px var(--sans);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;cursor:pointer}.report-viewer-bar i{font-size:16px;font-style:normal}.report-viewer iframe{width:100%;height:100%;border:0;background:#555}@media (max-width:580px){.insight-row{grid-template-columns:38px 1fr}.insight-actions{grid-column:2;justify-content:flex-start;margin-top:10px}.report-viewer-bar{min-height:62px;padding:0 16px;gap:14px}.report-viewer-bar p{font-size:16px}.report-viewer-bar>div{gap:14px}.report-viewer-bar a,.report-viewer-bar button{font-size:9px;letter-spacing:.1em}}

:root{--t:16px;--t-sm:14px;--m:12px;--paper-light:#F3EEE4}
[hidden]{display:none!important}
section[id],.bio[id]{scroll-margin-top:76px}
.row .acts button{background:none;border:0;padding:0;color:inherit;font-family:inherit;cursor:pointer}
.menu{overflow-y:auto}
:focus-visible{outline:2px solid var(--rust);outline-offset:5px}
.pil:focus-within .more,.proc:focus-within .more{grid-template-rows:1fr}
.pil:focus-within .for{opacity:1;transform:none}
@media(min-width:861px) and (max-width:1100px){nav ul{gap:16px}nav li a{letter-spacing:.1em}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rv{opacity:1;transform:none}}
/* Keep chart captions readable and contained instead of overflowing the SVG. */
.diagram .tag{display:none}
.phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:16px;font:12px/1.7 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.phases .r{color:var(--rust)}
@media(max-width:860px){.phases{grid-template-columns:1fr;gap:8px}}
/* Why North America: three sourced market anchors. */
.why-figs .why-kicker{margin-bottom:24px;line-height:1.6;color:var(--rust)}
.why-figs h3{font:500 17px/1.6 var(--sans);margin-top:24px;min-height:3.2em}
.why-figs .l{margin-top:12px}
.why-figs .s{letter-spacing:.06em;line-height:1.8}
.why-figs .s a{text-decoration:underline;text-underline-offset:4px}
.why-notes{margin-top:24px;color:var(--ink-2);font:14px/1.85 var(--sans)}
.why-notes summary{cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.why-notes p{max-width:100ch;margin:18px 0 0}
@media(max-width:860px){.why-figs h3{min-height:0}.why-figs .why-kicker{margin-bottom:18px}}
