@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/f1.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/f2.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/f3.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* 021 site, clean direction. The system is the name: zero to one, 0 -> 1 -> n, set in one family
   (Archivo, normal width, sentence case) on a white page with neutral blocks and monochrome photography. */
:root{
  --page:#FAFAF9; --block:#EEEEEB; --block2:#E3E3E0; --g3:#D6D6D2; --g6:#3A3A37; --g7:#262624; --ink:#0A0A09; --dark:#131312;
  --mute:rgba(10,10,9,.64); --mute2:rgba(10,10,9,.5); --line:rgba(10,10,9,.10);
  --wm:rgba(255,255,255,.72); --wm2:rgba(255,255,255,.56); --wline:rgba(255,255,255,.14);
  --dcard:rgba(255,255,255,.06); --dtile:rgba(255,255,255,.10);
  --acc:#C6FF24; --onacc:#0A0A09;   /* text on lime stays dark in both themes */
  --card:#fff; --surface:#fff; --body:rgba(10,10,9,.76); --hdr:rgba(250,250,249,.86); --edge:rgba(10,10,9,.06);
  --r:16px; --r2:12px; --rb:6px; --gut:32px; --max:1440px; --gap:16px;
  --sans:'Archivo',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
  --markf:'IBM Plex Mono',ui-monospace,Menlo,monospace;
}
/* dark theme: the same system inverted. The page goes near-black, blocks step up from it, and the dark bands sit a
   step lighter so they still read as bands. Lime is unchanged; markers behind text become rules under it. */
:root{color-scheme:light}
:root[data-theme="dark"]{color-scheme:dark;
  --page:#0A0A09; --block:#191918; --block2:#262624; --g3:#3A3A37; --ink:#F6F6F4; --dark:#202020;
  --card:#2E2E2C; --surface:#1C1C1B; --body:rgba(255,255,255,.74); --hdr:rgba(10,10,9,.84);
  --mute:rgba(255,255,255,.6); --mute2:rgba(255,255,255,.5); --line:rgba(255,255,255,.12); --edge:rgba(255,255,255,.075);
  --dcard:rgba(255,255,255,.07); --dtile:rgba(255,255,255,.12);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--page)}   /* Safari tints its bars from this */
body{margin:0;background:var(--page);color:var(--ink);font:400 16px/1.5 var(--sans);font-stretch:100%;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}
img,canvas,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,p,ul,figure{margin:0}
ul{padding:0;list-style:none}
::selection{background:var(--acc);color:var(--onacc)}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}
.dk :focus-visible{outline-color:var(--acc)}
mark{background:linear-gradient(var(--acc),var(--acc)) 0 88%/100% 62% no-repeat;color:inherit;padding:0 .08em;margin:0 -.08em}
.js .rv mark{background-size:0 62%;transition:background-size .9s cubic-bezier(.6,0,.2,1) .35s}
.js .rv.in mark{background-size:100% 62%}

/* type */
h1,.h1{font-weight:500;font-size:clamp(38px,4.45vw,64px);line-height:1;letter-spacing:-.024em;text-wrap:balance}
h2,.h2{font-weight:500;font-size:clamp(30px,3.35vw,48px);line-height:1.08;letter-spacing:-.02em;text-wrap:balance}
h3,.h3{font-weight:500;font-size:24px;line-height:1.17;letter-spacing:-.012em}
.xl{font-size:clamp(28px,2.8vw,40px);line-height:1.15;letter-spacing:-.018em;font-weight:500;text-wrap:pretty}
.lead{font-size:clamp(18px,1.55vw,22px);line-height:1.36;font-weight:500;letter-spacing:-.008em;text-wrap:pretty}
.lead b{font-weight:500}
.sm{font-size:14px;line-height:1.5}
.dim{color:var(--mute)}
.dk .dim{color:var(--wm2)}
.k{font-size:12px;line-height:1.5;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--mute)}
.dk .k{color:var(--wm)}
.num{font-variant-numeric:tabular-nums}
p{text-wrap:pretty}

/* layout */
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.sec{padding-top:112px;padding-bottom:112px}
.sec.t0{padding-top:0}
.band{background:var(--dark);color:#fff;position:relative;overflow:hidden}
.blk{background:var(--block);border-radius:var(--r)}
.blk.dk,.dk.blk{background:var(--dark);color:#fff}
.g{display:grid;gap:var(--gap)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px}
.head p{max-width:46ch}
.head.hp{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px;align-items:end}
.head.hp p{max-width:none}
.split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px;align-items:start}
.split>h2,.split>.xl{position:sticky;top:112px}
.stack>*+*{margin-top:16px}
.body{color:var(--mute);max-width:60ch}
.dk .body{color:var(--wm)}
.body+.body{margin-top:14px}

/* Accent: lime marks the page's one button (its arrow badge), what is selected or new (pressed filter, selected tab,
   open row, "Launching soon"), and one marker under a page's key claim. Never a surface, never in the navigation.
   Register: a firm, not a product. No filled buttons except the contact form's submit; actions are text with an arrow. */
/* buttons and links */
.da{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s cubic-bezier(.2,.6,.2,1)}
.da.l{transform:scaleX(-1)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 20px;border-radius:8px;
  background:var(--ink);color:var(--page);font-weight:500;font-size:16px;line-height:1;letter-spacing:-.005em;white-space:nowrap;transition:background .2s,color .2s}
.btn:hover{background:var(--g7)}
.btn>.da,.btn>.ext{box-sizing:border-box;width:26px;height:26px;padding:5px;margin-right:-8px;border-radius:50%;background:var(--acc);color:var(--onacc);transition:transform .3s cubic-bezier(.2,.6,.2,1)}
.btn>.ext{padding:8px}
.btn:hover>.da,.btn:hover>.ext{transform:translateX(3px)}
.btn.alt{background:var(--block2);color:var(--ink)}
.btn.alt:hover{background:var(--g3)}
.btn.white{background:#fff;color:var(--onacc)}
.btn.white:hover{background:#e9e9e7}
.btn.ghost{background:var(--dtile);color:#fff}
.btn.ghost:hover{background:rgba(255,255,255,.18)}
.btn.sm{min-height:40px;padding:0 14px;font-size:15px;gap:8px}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.more{display:inline-flex;align-items:center;gap:10px;font-weight:500;font-size:15px;color:var(--mute);transition:color .2s}
.more:hover{color:var(--ink)}
.dk .more .da{color:var(--acc)}
.dk .more{color:var(--wm)}
.dk .more:hover{color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;background:var(--block2);font-size:13.5px;font-weight:500;line-height:1;white-space:nowrap}
.card .chip,.blk:not(.dk) .chip{background:var(--card)}
.dk .chip{background:var(--dtile);color:#fff}
button.chip{transition:background .2s,color .2s}
button.chip:hover{background:var(--g3)}
button.chip[aria-pressed=true]{background:var(--acc);color:var(--onacc)}
.chip.live,.way .chip.live{background:var(--acc)}

/* header */
.hdr{position:sticky;top:0;z-index:50;background:var(--hdr);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}
.hdr-in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:72px}
.mark{font:500 21px/1 var(--markf);letter-spacing:.01em;justify-self:start;padding:8px 0}
.nav{display:flex;gap:4px}
.nav a{padding:9px 14px;border-radius:999px;font-weight:500;font-size:15px;line-height:1;transition:background .2s}
.nav a:hover{background:var(--block)}
.nav a[aria-current=page]{background:var(--block2)}
.hdr-r{justify-self:end;display:flex;align-items:center;gap:8px}
.menu-btn{display:none}
.mnav{position:fixed;inset:0;z-index:60;background:var(--surface);padding:20px var(--gut) 28px;display:none;flex-direction:column}
.mnav.open{display:flex}
.mnav-top{display:flex;justify-content:space-between;align-items:center;height:52px;margin-bottom:28px}
.mnav a.ml{display:flex;justify-content:space-between;align-items:center;padding:14px 0;font-size:32px;font-weight:500;letter-spacing:-.02em;line-height:1.1}
.mnav a.ml[aria-current=page]{color:var(--mute)}
.mnav .btn{margin-top:auto}

/* pages */
main{display:none}
main.on{display:block}
.rv{opacity:1}
.js .rv{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1)}
.js .rv.in{opacity:1;transform:none}

/* tiles and cards */
.card{background:var(--block);border-radius:var(--r);padding:24px;display:flex;flex-direction:column}
.dk .card,.card.dkc{background:var(--dcard);color:#fff}
.card h3+p,.card h3+.sm{margin-top:10px}
.card p{color:var(--mute)}
.dk .card p{color:var(--wm)}
.card .chips{margin-top:auto;padding-top:24px}


.foot-link{display:flex;justify-content:flex-end;margin-top:32px}

.vcard{background:var(--block);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;min-height:250px;text-align:left;transition:background .2s;position:relative}
a.vcard:hover,button.vcard:hover{background:var(--block2)}
.vcard .vtop{display:flex;justify-content:space-between;align-items:center;gap:12px 16px;margin-bottom:22px;min-height:26px;flex-wrap:wrap}
.vlogo{display:inline-flex;align-items:center;height:26px;color:var(--ink)}
.vlogo svg,.vlogo img{height:100%;width:auto;max-width:120px;display:block}
.vlogo:has(img[src*="c223"]){height:22px}
.vopen{position:absolute;inset:0;border-radius:var(--r);z-index:1;cursor:pointer}
.vopen:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.vcard .vn{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.vcard .vn h2{font-size:28px;line-height:1.17;letter-spacing:-.02em;margin:0}
/* the card's one arrow: beside the site link, it tilts up; on hover the lime circle appears and it turns to point into the card */
.vkind{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:var(--mute);white-space:nowrap}
.vkind .ext{width:28px;height:28px;padding:8px;box-sizing:border-box;border-radius:50%;color:var(--ink);transition:background .25s,transform .35s cubic-bezier(.2,.6,.2,1)}
.vcard:hover .vkind .ext,.vcard:focus-within .vkind .ext{background:var(--acc);color:var(--onacc);transform:rotate(45deg)}
.vcard .vt{color:var(--mute);margin-top:8px;font-size:15px;line-height:1.45}
.vmeta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:auto;padding-top:28px}
.vmeta b{display:block;font-weight:500;font-size:15px;margin-top:2px;color:var(--ink)}
.vcard.c2{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}
.vcard.c2 .vn h2{color:var(--mute)}
.vcard[hidden]{display:none}

/* photo tiles */
.ph{position:relative;border-radius:var(--r2);overflow:hidden;background:#1d1d1b;isolation:isolate}
.ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04)}
.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.72));pointer-events:none}
.ph figcaption{position:absolute;left:20px;right:20px;bottom:18px;z-index:1;color:#fff;font-weight:500;font-size:18px;line-height:1.25;letter-spacing:-.008em}
.ph figcaption span{display:block;font-size:14px;color:rgba(255,255,255,.72);font-weight:400;margin-top:2px;letter-spacing:0}
/* footer */
.ftr{background:var(--dark);color:#fff;padding:96px 0 0;overflow:hidden}
.ftr-g{display:grid;grid-template-columns:minmax(0,2.4fr) repeat(3,minmax(0,1fr));gap:32px}
.ftr .mark{font-size:30px}
.ftr .sign{color:var(--wm);max-width:26ch;font-weight:500;margin-top:20px;line-height:1.4}
.ftr .fh{font-size:12px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--wm2);margin-bottom:12px}
.ftr li a{display:block;padding:7px 0;font-weight:500;font-size:15px;transition:color .2s}
.ftr li a:hover{color:var(--acc)}
.ftr-b{display:flex;justify-content:space-between;gap:20px;padding:22px 0 0;margin-top:72px;font-size:13px;color:var(--wm2);border-top:1px solid var(--wline)}
.ftr-b a:hover{color:#fff}
.ftr-b nav{display:flex;gap:20px}

/* inner page heroes */
.ph1{padding-top:72px;padding-bottom:64px}
.ph1 .intro{font-size:clamp(17px,1.45vw,20px);line-height:1.4;font-weight:500;color:var(--mute);max-width:52ch;letter-spacing:-.006em}
.heroblk{margin:8px var(--gut) 0;padding:40px;max-width:calc(var(--max) - 2*var(--gut));display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;min-height:0}
@media(min-width:1441px){.heroblk{margin-left:auto;margin-right:auto}}
.heroblk .l{display:flex;flex-direction:column;justify-content:flex-start;gap:28px}
.heroblk .r{display:flex;flex-direction:column;justify-content:flex-end;gap:24px}
.heroblk .intro{font-size:clamp(17px,1.45vw,20px);line-height:1.4;font-weight:500;letter-spacing:-.006em}
.heroblk:not(.dk) .intro{color:var(--mute)}
.heroblk.dk .intro{color:var(--wm)}
.heroph{position:relative;margin:8px var(--gut) 0;max-width:calc(var(--max) - 2*var(--gut));min-height:560px;border-radius:var(--r);overflow:hidden;color:#fff;display:flex;align-items:flex-end;isolation:isolate;background:#111}
@media(min-width:1441px){.heroph{margin-left:auto;margin-right:auto}}
.heroph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:grayscale(1) contrast(1.05)}
.heroph::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.2) 35%,rgba(0,0,0,.82))}
.heroph .in{padding:48px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:56px;align-items:end;width:100%}
.heroph p{font-size:clamp(16px,1.35vw,19px);line-height:1.42;font-weight:500;color:rgba(255,255,255,.86)}
.heroph mark{background:var(--acc);color:var(--onacc);padding:.05em .3em;margin:0;border-radius:3px}
.jump{display:grid;gap:8px}
.jump a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;border-radius:10px;background:var(--dcard);font-weight:500;font-size:17px;transition:background .2s}
.jump a:hover{background:rgba(255,255,255,.13)}
.jump a span{color:var(--wm2);font-size:14px;font-weight:400}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.stat{background:var(--block);border-radius:var(--r);padding:28px 28px 30px}
.stat b{display:block;font-weight:500;font-size:clamp(44px,5vw,72px);line-height:.95;letter-spacing:-.035em}
.stat span{display:block;margin-top:44px;color:var(--mute);font-weight:500;max-width:26ch;line-height:1.35}
.dk .stat{background:var(--dcard)}
.dk .stat span{color:var(--wm)}

/* build */
.vert .card{min-height:340px}

/* network */
.veh .card{padding:28px;min-height:300px}
.veh .card .top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:64px}
.veh .card .top b{font-weight:500;font-size:18px}
.veh .card h2{font-size:clamp(24px,2.1vw,30px);letter-spacing:-.02em;line-height:1.12}
.veh .card .pos{color:var(--ink);font-weight:500;margin-top:14px}
.veh .card .pos+p{margin-top:10px;max-width:56ch}
.car{position:relative}
.car-vp{overflow:hidden;border-radius:var(--r)}
.car-t{display:flex;gap:var(--gap);transition:transform .55s cubic-bezier(.2,.7,.2,1);will-change:transform}
.car-t>*{flex:0 0 calc((100% - 2*var(--gap))/3)}
.car-f{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px}
.car-bar{height:3px;border-radius:2px;background:var(--block2);margin-top:20px;overflow:hidden}
.car-bar i{display:block;height:100%;width:0;background:var(--ink);border-right:28px solid var(--acc);box-sizing:border-box;transition:width .55s cubic-bezier(.2,.7,.2,1)}
.car-n{color:var(--mute);font-weight:500;font-size:14px;font-variant-numeric:tabular-nums}
.car-c{display:flex;gap:8px}
.car-c button{width:48px;height:48px;border-radius:var(--rb);background:var(--block2);display:grid;place-items:center;transition:background .2s,opacity .2s}
.car-c button:hover{background:var(--g3)}
.car-c button:disabled{opacity:.35;cursor:default}
.car-c button:first-child .da{transform:scaleX(-1)}
.dk .car-c button{background:var(--dtile)}
.dk .car-c button:hover{background:rgba(255,255,255,.18)}
.xcard{position:relative;display:flex;flex-direction:column;background:var(--block);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:background .2s}
.xcard:hover{background:var(--block2)}
.xcard .ph{border-radius:0;height:280px}
.xcard .ph::after{display:none}
.xcard .tx{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.xcard h3{font-size:21px}
.xcard .meta{color:var(--mute);font-size:14px;font-weight:500;margin-top:4px}
.xcard p{color:var(--mute);font-size:15px;margin-top:14px}
.club{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:0;overflow:hidden}
.club .ph{border-radius:0;min-height:520px}
.club .ph::after{display:none}
.club .tx{padding:48px;display:flex;flex-direction:column}
.club .tx h3{font-size:clamp(28px,2.6vw,38px);letter-spacing:-.02em;line-height:1.08;margin-top:12px}
.club .tx>p{color:var(--mute);margin-top:18px;max-width:52ch}
.club .tx .where{font-weight:500;color:var(--mute)}
.qcard{background:var(--dcard);border-radius:var(--r);padding:28px;display:flex;flex-direction:column;justify-content:space-between;gap:36px;min-height:420px}
.qcard blockquote{margin:0;font-size:17px;line-height:1.45;font-weight:500;letter-spacing:-.006em;color:rgba(255,255,255,.92)}
.qcard .who{display:flex;align-items:center;gap:14px}
.qcard .who .wt{display:flex;flex-direction:column;min-width:0}
.qcard .who b{display:block;font-weight:500}
.face{width:44px;height:44px;border-radius:50%;flex:none;object-fit:cover;filter:grayscale(1)}
.face.mono{display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);color:rgba(255,255,255,.8);font-size:14px;font-weight:500;letter-spacing:.02em}
/* founder quotes on Build: the same card on the light page, three to a row */
.fq .qcard{min-height:340px;padding:24px;gap:28px}
.fq .qcard blockquote{font-size:15.5px;line-height:1.5}
.fq .qcard .who{gap:12px}
.fq .qcard .who span{font-size:13.5px;line-height:1.35}
.qcard .who .lk{background-size:0 1px}
.qcard .who .lk:hover{background-size:100% 1px;background-image:linear-gradient(currentColor,currentColor);background-position:0 100%}
/* one real quote so far: it takes the row and reads as a statement */
.fq:has(.qcard:only-child){grid-template-columns:minmax(0,1fr)}
.fq .qcard:only-child{min-height:0;gap:40px;padding:36px}
.fq .qcard:only-child blockquote{font-size:clamp(20px,2.2vw,30px);line-height:1.3;letter-spacing:-.015em;max-width:34em}
.dk .tbd{color:var(--wm2)}
.band.lt{background:var(--block);color:var(--ink)}
.qcard.lt{background:var(--card);min-height:360px}
.qcard.lt blockquote{color:var(--ink)}
.qcard.lt .via,.qcard.lt .who span{color:var(--mute)}
.qcard.lt .who b,.qcard.lt .who b a{color:var(--ink)}
.qcard.lt .face.mono{background:var(--block2);color:var(--mute)}
.qcard.lt .tbd{color:var(--mute2)}
.qcard .who span{color:var(--wm);font-size:14px}
.qcard .via{font-size:14px;color:var(--wm2);font-weight:500;margin-bottom:14px}

/* participate */
.way{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gap);scroll-margin-top:96px}
.way+.way{margin-top:var(--gap)}
.way .l{background:var(--block);border-radius:var(--r);padding:32px;display:flex;flex-direction:column;min-height:240px}
.way .l h2{font-size:clamp(28px,2.8vw,40px)}
.way .l .chips{margin-top:auto;padding-top:28px}
.way .r{background:var(--block);border-radius:var(--r);padding:32px;display:flex;flex-direction:column}
.way .r .lede{font-size:17px;line-height:1.5;color:var(--ink);font-weight:500;letter-spacing:-.004em}
.ticks{margin-top:24px;display:grid;gap:0}
.ticks li{position:relative;padding:7px 0 7px 24px;color:var(--mute)}
.ticks li::before{content:"";position:absolute;left:3px;top:16px;width:6px;height:6px;border-radius:50%;background:var(--ink)}
.way .act{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:auto;padding-top:28px}
.way .act>span{color:var(--mute);font-size:14px;font-weight:500}
.way .chip{background:var(--card)}
details.fine{margin-top:18px;font-size:13px;color:var(--mute)}
details.fine summary{cursor:pointer;font-weight:500;list-style:none;display:inline-flex;align-items:center;gap:8px}
details.fine summary::-webkit-details-marker{display:none}
details.fine summary::after{content:"+";font-size:16px;line-height:1}
details.fine[open] summary::after{content:"\2212"}
details.fine p{margin-top:10px;max-width:78ch;line-height:1.55}

/* news */
.feat{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:end;padding:40px;min-height:260px;margin-bottom:var(--gap);transition:background .2s}
.feat:hover{background:#1e1e1c}
.feat h2{max-width:20em;margin-top:14px}
.feat .when{color:var(--wm);font-weight:500}
.nlist{display:grid;gap:8px}
.nlist[hidden]{display:none}
.nrow{display:grid;grid-template-columns:92px minmax(0,1fr) 150px 110px 24px;gap:24px;align-items:center;padding:20px 24px;border-radius:var(--r2);background:var(--block);font-weight:500;transition:background .2s}
.nrow:hover{background:var(--block2)}
.nrow .d,.nrow .s,.nrow .c{color:var(--mute);font-size:14px}
.nrow .t{font-size:17px;letter-spacing:-.008em;line-height:1.3}
.nrow .ext{color:var(--mute);justify-self:end}
.ext{width:12px;height:12px;flex:none;stroke:currentColor;fill:none;stroke-width:1.5}

/* article + legal */
.art-h{padding:72px 0 0;max-width:720px;margin:0 auto}
.art-h .intro{margin-top:20px}
.art-h .by{margin-top:28px;color:var(--mute);font-weight:500;font-size:15px}
.art-h .by a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.art{max-width:720px;margin:0 auto;padding:40px 0 112px}
.art p{font-size:17px;line-height:1.72;color:var(--body);margin-top:1.15em}
.art h2{margin-top:2.2em;font-size:26px}
.art .fig{margin:44px 0;background:var(--block);border-radius:var(--r);padding:28px 28px 22px}
.art .fig{padding:32px 32px 24px}
.art .fig>p{margin-top:28px;padding-top:16px;border-top:1px solid var(--line)}
.art .fig h3{margin:0 0 20px;font-weight:500;font-size:17px;line-height:1.3;letter-spacing:-.008em}
.fig .vv-n{font-size:13.5px;line-height:1.45;color:var(--mute);margin-top:20px;max-width:30ch}
.vv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.vv-scatter{position:relative;height:186px}
.vv-scatter i{position:absolute;width:11px;height:11px;border-radius:3px;background:var(--g3)}
.vv-scatter i.k{background:var(--ink)}
.vv-stacks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;height:186px;align-items:end}
.vv-col{display:flex;flex-direction:column;gap:10px}
.vv-col span{font-size:13px;font-weight:500;color:var(--mute)}
.vv-bars{display:flex;flex-direction:column-reverse;gap:5px}
.vv-bars i{height:34px;border-radius:6px;background:var(--g3)}
.vv-bars i:nth-child(2){background:#B4B4B0}
.vv-bars i:nth-child(3){background:var(--g6)}
.vv-bars i:nth-child(4){background:var(--ink)}
.js .fig.rv .vv-scatter i{opacity:0;transform:scale(.4);transition:opacity .4s,transform .4s cubic-bezier(.2,.6,.2,1);transition-delay:calc(var(--n)*28ms + .2s)}
.js .fig.rv .vv-bars i{opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s cubic-bezier(.2,.6,.2,1)}
.js .fig.rv .vv-bars i:nth-child(1){transition-delay:calc(var(--n)*60ms + .5s)}
.js .fig.rv .vv-bars i:nth-child(2){transition-delay:calc(var(--n)*60ms + .68s)}
.js .fig.rv .vv-bars i:nth-child(3){transition-delay:calc(var(--n)*60ms + .86s)}
.js .fig.rv .vv-bars i:nth-child(4){transition-delay:calc(var(--n)*60ms + 1.04s)}
.js .fig.rv.in .vv-scatter i,.js .fig.rv.in .vv-bars i{opacity:1;transform:none}
.zn-row{display:flex;align-items:center;gap:22px}
.zn-row b{font-weight:500;font-size:clamp(64px,9vw,104px);line-height:.9;letter-spacing:-.04em}
.zn-row i{flex:1;height:2px;background:var(--ink);position:relative}
.zn-row i::after{content:"";position:absolute;right:0;top:50%;width:13px;height:13px;border-top:2px solid var(--ink);border-right:2px solid var(--ink);transform:translateY(-50%) rotate(45deg)}
.zn-cap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-top:22px}
.zn-cap span{font-size:13.5px;line-height:1.45;color:var(--mute);max-width:30ch}
.zn-cap span:last-child{justify-self:end;text-align:right}
.js .fig.rv .zn-row i{clip-path:inset(-12px 100% -12px -12px);transition:clip-path 1s cubic-bezier(.6,0,.2,1) .4s}
.js .fig.rv .zn-row i:nth-of-type(2){transition-delay:1s}
.js .fig.rv.in .zn-row i{clip-path:inset(-12px -12px -12px -12px)}
.art .fig p{font-size:14px;line-height:1.5;color:var(--mute);margin-top:14px}
.legal{max-width:720px;margin:0 auto;padding:40px 0 112px}
.legal p,.legal li{font-size:15px;line-height:1.7;color:var(--body);margin-top:1em}
.legal ul{margin:0;padding:0}
.legal li{list-style:disc;margin-left:20px}
.legal h2{font-size:24px;line-height:1.2;margin-top:2em;letter-spacing:-.012em}
.legal h3{font-size:18px;margin-top:1.6em}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;padding-top:72px;padding-bottom:112px;align-items:start}
.contact .l{position:sticky;top:112px}
.contact .l .intro{margin-top:20px}
.contact .follow{margin-top:48px;display:grid;gap:8px;max-width:320px}
.form{padding:32px;display:grid;gap:18px}
.form label{display:grid;gap:8px;font-weight:500;font-size:14px}
.form input:not([type=checkbox]),.form select,.form textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--card);border:1px solid transparent;border-radius:8px;padding:13px 14px;width:100%;transition:border-color .2s;-webkit-appearance:none;appearance:none}
.form select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%230A0A09' stroke-width='1.5'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.form textarea{min-height:130px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--ink)}
.acks{display:grid;gap:12px;margin-top:6px}
.ack{display:grid;grid-template-columns:20px 1fr;gap:12px;font-size:13.5px;line-height:1.5;color:var(--mute);font-weight:400}
.ack[hidden]{display:none}
.ack input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--ink)}
.ack a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.form .btn{justify-self:start;min-width:220px;margin-top:6px}
.form .note{font-size:14px;color:var(--mute);font-weight:500}

/* about */
.facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:var(--gap);margin-top:64px}
.fact{background:var(--block);border-radius:var(--r);padding:20px 22px 22px}
.fact b{display:block;font-weight:500;font-size:clamp(20px,1.9vw,26px);letter-spacing:-.018em;line-height:1.15;margin-top:36px}
/* ---------- about ---------- */
.hfacts{display:grid;gap:8px;margin:0}
.hfacts div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 18px;border-radius:10px;background:var(--dcard)}
.hfacts dt{color:var(--wm2);font-size:14px}
.hfacts dd{margin:0;font-weight:500;font-size:17px;text-align:right}
.zos{gap:var(--gap)}
.zo{padding:32px;display:flex;flex-direction:column;justify-content:space-between;gap:56px;min-height:300px}
.zo-f{display:flex;align-items:center;gap:24px;margin:0}
.zo-f b{font-weight:500;font-size:clamp(72px,9vw,128px);line-height:.9;letter-spacing:-.04em}
.zo-f i{flex:1;height:2px;background:var(--ink);position:relative}
.zo-f i::after{content:"";position:absolute;right:0;top:50%;width:14px;height:14px;border-top:2px solid var(--ink);border-right:2px solid var(--ink);transform:translateY(-50%) rotate(45deg)}
.zo-f i::before{content:"";position:absolute;left:0;top:50%;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 1.5px var(--ink)}
.js .zo.rv .zo-f i{clip-path:inset(-12px 100% -12px -12px);transition:clip-path 1.1s cubic-bezier(.6,0,.2,1) .3s}
.js .zo.rv.in .zo-f i{clip-path:inset(-12px)}
.js .zo.rv.in .zo-f i::before{animation:run 1.5s cubic-bezier(.6,0,.2,1) .5s both}
.js .zos .zo:nth-child(2).rv .zo-f i{transition-delay:.7s}
.js .zos .zo:nth-child(2).rv.in .zo-f i::before{animation-delay:.9s}
.zo .lead{max-width:24em}
.zo-c{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:var(--gap);padding:24px 32px;border-radius:var(--r);background:var(--block)}
/* the story is a timeline: the rule fills and each milestone lights as it is scrolled to */
.story{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start}
.story-l{position:sticky;top:112px}
.story-l .lead{margin-top:24px;color:var(--wm);max-width:24em}
.tlv{position:relative;margin:0;padding:0;list-style:none}
.tlv::before,.tlv::after{content:"";position:absolute;left:5px;top:8px;width:2px}
.tlv::before{bottom:8px;background:var(--wline)}
.tlv::after{height:calc((100% - 16px)*var(--p,1));background:var(--acc)}
.tlv-i{position:relative;padding:0 0 48px 48px}
.tlv-i:last-child{padding-bottom:0}
.tlv-i::before{content:"";position:absolute;left:0;top:6px;width:12px;height:12px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 5px var(--dark);z-index:1;transition:background .3s}
.tlv-i .d{font-size:14px;font-weight:500;color:var(--wm2);font-variant-numeric:tabular-nums}
.tlv-i h3{margin-top:6px;font-weight:500;font-size:clamp(24px,2.3vw,34px);letter-spacing:-.022em;line-height:1.1;transition:color .35s}
.tlv-i h3+p{margin-top:10px;max-width:50ch;color:var(--wm);transition:color .35s}
.tlv-i.key h3{display:inline;background:linear-gradient(var(--acc),var(--acc)) 0 100%/100% 3px no-repeat;padding-bottom:3px}
.tlv-i.key h3+p{margin-top:14px}
.js .tlv-i:not(.on)::before{background:#4a4a47}
.js .tlv-i:not(.on) h3{color:rgba(255,255,255,.42)}
.js .tlv-i:not(.on) h3+p{color:var(--wm2)}
.tl{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin-top:64px;position:relative}
.tl::before{content:"";position:absolute;left:0;right:0;top:5px;height:2px;background-image:radial-gradient(circle,rgba(10,10,9,.3) 1px,transparent 1.3px);background-size:8px 2px}
.tl div{position:relative;padding:28px 16px 0 0;font-size:14px;color:var(--mute);font-weight:500;line-height:1.35}
.tl div::before{content:"";position:absolute;left:0;top:0;width:12px;height:12px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 5px var(--page)}
.tl div:last-child::before{background:var(--acc);box-shadow:0 0 0 2px var(--ink),0 0 0 7px var(--page)}
.tl b{display:block;color:var(--ink);font-weight:500;font-size:17px;margin-bottom:4px;letter-spacing:-.008em}
.trio a{display:flex;flex-direction:column;justify-content:space-between;min-height:190px;padding:28px;border-radius:var(--r);background:var(--block);transition:background .2s}
.trio a:hover{background:var(--block2)}
.trio a span{color:var(--mute);font-weight:500}
.trio a b{display:flex;justify-content:space-between;align-items:center;font-weight:500;font-size:26px;letter-spacing:-.018em}

/* companies drawer */
.scrim{position:fixed;inset:0;z-index:70;background:rgba(10,10,9,.36);opacity:0;pointer-events:none;transition:opacity .3s}
.scrim.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:12px;right:12px;bottom:12px;z-index:71;width:min(520px,calc(100vw - 24px));background:var(--surface);border-radius:var(--r);padding:28px 32px 32px;
  display:flex;flex-direction:column;transform:translateX(calc(100% + 24px));transition:transform .45s cubic-bezier(.2,.7,.2,1);overflow-y:auto;visibility:hidden}
.drawer.open{transform:none;visibility:visible}
.drawer .x{align-self:flex-end;width:40px;height:40px;border-radius:var(--rb);background:var(--block);display:grid;place-items:center;font-size:20px;line-height:1}
.drawer h2{font-size:40px;margin-top:28px}
.drawer .tag{font-size:18px;font-weight:500;color:var(--mute);margin-top:10px;line-height:1.35}
.drawer .long{margin-top:24px;color:var(--body);line-height:1.6}
.drawer .vmeta{margin-top:28px;padding:20px;background:var(--block);border-radius:var(--r2);grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}
.drawer .btn{margin-top:auto;min-height:56px}
.drawer .sp{flex:1;min-height:28px}

/* home hero: the headline over real rooms, one city at a time */
.lead-in{position:relative;margin:8px var(--gut) 0;max-width:calc(var(--max) - 2*var(--gut));border-radius:var(--r);overflow:hidden;isolation:isolate;background:#0A0A09;color:#fff;
  min-height:clamp(540px,calc(100vh - 112px),780px);display:flex;flex-direction:column;justify-content:space-between;padding:28px 40px 40px}
@media(min-width:1441px){.lead-in{margin-left:auto;margin-right:auto}}
.slides{position:absolute;inset:0;z-index:-2}
.slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease;filter:grayscale(1) contrast(1.06)}
.slides img.on{opacity:1;animation:kb 7s linear forwards}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.07)}}
.lead-in::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,10,9,.62) 0%,rgba(10,10,9,.18) 24%,rgba(10,10,9,.28) 50%,rgba(10,10,9,.9) 100%)}
.lead-top{display:flex;justify-content:flex-end;align-items:center;gap:20px;font-size:14px;font-weight:500;color:rgba(255,255,255,.92)}
.city{display:flex;align-items:center;gap:14px}
.lead-bot{display:flex;justify-content:space-between;align-items:flex-end;gap:48px}
.lead-in h1{font-size:inherit;line-height:1;letter-spacing:0;text-wrap:initial}
.lead-in .pre{display:block;font-size:clamp(22px,3vw,44px);letter-spacing:-.022em;line-height:1.05}
.lead-in .z21{display:block;white-space:nowrap;font-size:clamp(58px,11.6vw,176px);line-height:.92;letter-spacing:-.048em;margin:.03em 0 -.04em -.03em}
.lead-r{max-width:400px;flex:none}
.lead-r p{font-size:17px;line-height:1.38;font-weight:500;color:rgba(255,255,255,.9);letter-spacing:-.004em}
.lead-r .btns{margin-top:22px}

/* the verticals, stacked: each one carries its ventures */
.vstack{display:grid;gap:var(--gap)}
.vblk{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;padding:40px;min-height:520px}
.vblk.dk{background:var(--dark)}
.vblk:nth-child(3){background:var(--block2)}
.vb-l{display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.vb-l h3{font-size:clamp(32px,3.35vw,48px);line-height:1.05;letter-spacing:-.022em;margin-bottom:22px}
.vb-l .lead{color:var(--mute);max-width:30ch}
.dk .vb-l .lead{color:var(--wm)}
.vb-more{margin-top:18px;max-width:36ch;color:var(--mute);font-size:15px;line-height:1.5}
.dk .vb-more{color:var(--wm)}
.vb-n{font-weight:500;color:var(--mute);font-size:15px}
.dk .vb-n{color:var(--wm)}
.vb-n span{display:block;font-size:12px;letter-spacing:.07em;text-transform:uppercase;margin-bottom:6px;color:var(--mute)}
.dk .vb-n span{color:var(--wm)}
.vb-r{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.pc{display:flex;flex-direction:column;gap:28px;padding:24px;border-radius:var(--r2);background:var(--card);min-height:210px;transition:transform .3s cubic-bezier(.2,.6,.2,1),background .2s}
.dk .pc{background:var(--dcard)}
.pc:hover{transform:translateY(-3px)}
.dk .pc:hover{background:rgba(255,255,255,.1)}
.pc h4{margin:0;font-weight:500;font-size:clamp(26px,2.5vw,36px);letter-spacing:-.025em;line-height:1.05}
.pc p{margin-top:12px;color:var(--mute);font-size:15px;line-height:1.45;max-width:34ch}
.dk .pc p{color:var(--wm)}
.pc h4+p{color:var(--ink);font-weight:500;font-size:16px}
.dk .pc h4+p{color:#fff}
.pc .pc-long{margin-top:16px;font-size:14.5px;line-height:1.5}
.pc-f{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;font-weight:500;color:var(--mute)}
.dk .pc-f{color:var(--wm)}
.pc-f .da,.trio b .da{box-sizing:border-box;width:28px;height:28px;padding:6px;border-radius:50%;transition:background .25s,color .25s,transform .3s cubic-bezier(.2,.6,.2,1)}
.pc:hover .pc-f .da,.trio a:hover .da{background:var(--acc);color:var(--onacc)}
.go{position:absolute;right:20px;top:20px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--acc);color:var(--onacc);opacity:0;transform:scale(.6);transition:opacity .25s,transform .3s cubic-bezier(.2,.6,.2,1)}
.go .da{width:16px;height:16px}
.vcard:hover>.go,.vcard:focus-visible>.go,.xcard:hover .go,.xcard:focus-visible .go{opacity:1;transform:none}
/* the three blocks pin and stack; a block taller than the screen pins by its bottom edge instead (top set by script) */
.vstack.stk .vblk{position:sticky;top:calc(88px + var(--i)*18px)}

/* the count: 0 -> 1 -> n */
.loop{gap:0 var(--gap)}
.step{padding-right:24px}
.step .n{display:flex;align-items:center;gap:24px;margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.step .n b{font-weight:500;font-size:clamp(88px,9.5vw,136px);line-height:.9;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.step .n i{flex:1;height:2px;background:var(--ink);position:relative;margin-right:8px;transform-origin:0 50%}
.step .n i::after{content:"";position:absolute;right:0;top:50%;width:14px;height:14px;border-top:2px solid var(--ink);border-right:2px solid var(--ink);transform:translateY(-50%) rotate(45deg);transform-origin:center}
.js .step.rv .n i{clip-path:inset(-12px 100% -12px -12px);transition:clip-path 1.1s cubic-bezier(.6,0,.2,1) .35s}
.js .step.rv.in .n i{clip-path:inset(-12px -12px -12px -12px)}
.js .step.rv .n i::after{opacity:0;transition:opacity .3s 1.2s}
.js .step.rv.in .n i::after{opacity:1}
.step .n i::before{content:"";position:absolute;left:0;top:50%;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 1.5px var(--ink)}
.js .step.rv.in .n i::before{animation:run 1.5s cubic-bezier(.6,0,.2,1) .5s both}
.js .loop .step:nth-child(2).rv.in .n i::before{animation-delay:1.1s}
@keyframes run{from{left:0}to{left:calc(100% - 22px)}}
.js .loop .step:nth-child(2) .n i{transition-delay:.75s}
.js .loop .step:nth-child(2) .n i::after{transition-delay:1.6s}
.step h3+p{margin-top:10px;color:var(--mute);max-width:44ch}
.seq{font-weight:500;font-size:clamp(48px,7.2vw,104px);line-height:1;letter-spacing:-.04em;white-space:nowrap;flex:none}

/* network mosaic */
.mosaic{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-rows:repeat(2,272px);gap:var(--gap)}
.mosaic .a{grid-row:1/3}

/* closing block */
.ctab{padding:48px;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;min-height:300px}
.ctab.dkb{background:var(--g7);color:#fff;border-radius:var(--r);min-height:220px}
.ctab .l{display:flex;flex-direction:column;justify-content:space-between;align-self:stretch;gap:40px}
.ctab .l p{margin-top:16px;max-width:46ch;color:var(--mute);font-weight:500}
.heroblk .seq{align-self:flex-start}
.heroblk.hb-ph{grid-template-columns:minmax(0,6fr) minmax(0,5fr);min-height:580px;padding:40px}
.heroblk.hb-ph .ph{min-height:500px}
.heroblk.hb-ph .ph img{position:absolute;inset:0}
.heroblk.hb-ph .ph::after{display:none}
.heroblk.hb-ph .intro{max-width:44ch}

/* venture image: the top of a card or panel */
.vm{margin:-24px -24px 0;height:168px;overflow:hidden;border-radius:var(--r2) var(--r2) 0 0;background:var(--g7);flex:none}
.vm img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04);transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.pc:hover .vm img,.vcard:hover .vm img{transform:scale(1.04)}
.vcard .vm{border-radius:var(--r) var(--r) 0 0}
.vb-r.n4 .vm{height:120px}
.mode-v .pc .vm{margin:-20px -20px 0;height:104px}
.mode-v .pc{gap:18px}
.vcard .vm{margin-bottom:22px}
.drawer .vm{margin:16px 0 0;height:210px;border-radius:var(--r2)}
.drawer .vm+h2{margin-top:24px}

/* gami group: three arms inside one card */
.arms{margin-top:22px;display:grid;gap:8px}
.arms li{display:block;padding:12px 14px;border-radius:10px;background:var(--block)}
.dk .arms li{background:var(--dtile)}
.arms b{font-weight:500;font-size:16px;letter-spacing:-.008em}
.arms span{display:block;margin-top:2px;color:var(--mute);font-size:14px;font-weight:500}

.arms.row{margin:18px 0 0;gap:6px}
.arms.row li{display:flex;justify-content:space-between;align-items:baseline;gap:4px 12px;background:var(--card);padding:9px 12px;flex-wrap:wrap}
.arms.row li span+span{flex-basis:100%;color:var(--ink);font-size:13px}
.arms.row b{font-size:15px}
.arms.row span{margin:0}
.arms.full p{margin-top:8px;font-size:14.5px;line-height:1.5;color:var(--body)}
.drawer .arms{margin-top:24px}
.drawer .vlogo{height:28px;margin-bottom:18px}
.drawer .vlogo:has(img[src*="c223"]){height:24px}

/* build: ways to engage, one at a time */
.modes{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;padding:40px;min-height:440px}
.modes-t{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.modes-t button{position:relative;font-weight:500;font-size:clamp(32px,3.35vw,48px);line-height:1.15;letter-spacing:-.022em;color:var(--mute2);padding:2px 0 2px 0;transition:color .25s,padding .35s cubic-bezier(.2,.6,.2,1);text-align:left}
.modes-t button::before{content:"";position:absolute;left:0;top:50%;width:14px;height:14px;margin-top:-6px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 1.5px var(--ink);transform:scale(0);transition:transform .35s cubic-bezier(.2,.6,.2,1)}
.modes-t button[aria-selected=true]{color:var(--ink);padding-left:30px}
.modes-t button[aria-selected=true]::before{transform:scale(1)}
.modes-t button:hover{color:var(--ink)}
.mode{display:none}
.mode.on{display:flex;flex-direction:column;height:100%;animation:pg .4s ease both}
.mode h3{font-size:28px;letter-spacing:-.018em}
.mode>p{color:var(--mute);margin-top:12px;max-width:56ch}
.mode-v{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin-top:auto;padding-top:36px}
.mode-v .pc{min-height:190px;padding:20px}
.mode-v .pc h4{font-size:clamp(22px,2vw,28px)}
.mode-v .pc p{font-size:14px}

/* build: founder voices, one at a time; bracketed text is a placeholder awaiting the real quote */
.voices{padding:40px;min-height:400px;display:flex;flex-direction:column}
.voice{display:none;margin:0}
.voice.on{display:flex;flex-direction:column;flex:1;justify-content:space-between;gap:48px;margin-top:48px;animation:pg .4s ease both}
.voice blockquote{margin:0;font-weight:500;font-size:clamp(26px,3vw,42px);line-height:1.18;letter-spacing:-.02em;max-width:22em;text-wrap:balance}
.voice figcaption b{display:block;font-weight:500;font-size:17px}
.voice figcaption span{color:var(--mute);font-size:14px;font-weight:500}
.tbd{color:var(--mute2)}
.voices button.chip[aria-pressed=true]{background:var(--acc)}

/* build: what a venture inherits on day one */
.dayone{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start}
.swap{display:flex;flex-direction:column;gap:2px;font-weight:500;font-size:clamp(40px,5vw,72px);line-height:1.02;letter-spacing:-.03em;margin-bottom:56px}
.swap s{color:var(--wm2);text-decoration-thickness:.05em}
.swap b{font-weight:500;color:var(--acc);display:flex;align-items:center;gap:.22em}
.swap .da{width:.62em;height:.62em;stroke-width:1.5}
.acd{display:grid;gap:8px}
.acc-i{background:var(--dcard);border-radius:var(--r2);transition:background .25s}
.acc-i.open{background:rgba(255,255,255,.1)}
.acc-i button{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;padding:22px 24px;font-weight:500;font-size:clamp(20px,1.9vw,26px);letter-spacing:-.015em;text-align:left;color:#fff}
.acc-i button i{position:relative;width:16px;height:16px;flex:none}
.acc-i button i::before,.acc-i button i::after{content:"";position:absolute;left:0;top:7px;width:16px;height:2px;background:var(--acc);transition:transform .35s cubic-bezier(.2,.6,.2,1)}
.acc-i button i::after{transform:rotate(90deg)}
.acc-i.open button i::after{transform:rotate(0)}
.acc-p{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.2,.6,.2,1)}
.acc-i.open .acc-p{grid-template-rows:1fr}
.acc-p>p{overflow:hidden;color:var(--wm);max-width:60ch;padding:0 24px}
.acc-i.open .acc-p>p{padding-bottom:24px}
.mail{margin-top:28px;font-weight:500;font-size:clamp(20px,1.9vw,26px);letter-spacing:-.015em}
.mail a{background:linear-gradient(var(--acc),var(--acc)) 0 100%/100% 2px no-repeat;padding-bottom:3px;transition:background-size .3s}
.mail a:hover{background-size:100% 100%}
.contact .follow{margin-top:28px}

/* advisory: the cases on a grey ramp */
.advs{grid-template-columns:repeat(4,minmax(0,1fr))}
.adv{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:340px;padding:22px;border-radius:var(--r);color:#fff;text-align:left;
  background:color-mix(in srgb,var(--g7) calc(100% - var(--k)*22%),#8A8A85);transition:transform .35s cubic-bezier(.2,.6,.2,1)}
.adv{overflow:hidden;isolation:isolate}
.adv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:grayscale(1) contrast(1.05);transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.adv::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,10,9,.34) 0%,rgba(10,10,9,.3) 40%,rgba(10,10,9,.88) 100%)}
.adv:hover{transform:translateY(-4px)}
.adv:hover img{transform:scale(1.04)}
.sh-media.wide{aspect-ratio:16/6}
.sh-media.wide.tall{height:min(60vh,520px);background:var(--dark)}
.sh-media.wide.tall img{object-fit:contain}
.adv{justify-content:flex-end;gap:8px}
.adv-k{font-size:14px;font-weight:500;color:rgba(255,255,255,.78)}
.adv-n{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.adv-n b{font-weight:500;font-size:clamp(24px,2.1vw,30px);letter-spacing:-.025em;line-height:1.05}
.adv-s{font-size:14px;color:rgba(255,255,255,.78);margin-top:2px}
.adv-s b{font-weight:500;color:#fff}
/* advisory panel: the KPI row from the deck */
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin:0 0 26px;padding:18px 20px;background:var(--block);border-radius:var(--r2)}
.kpis b{display:block;font-weight:500;font-size:clamp(22px,2vw,28px);letter-spacing:-.025em;line-height:1}
.kpis span{display:block;margin-top:6px;font-size:13.5px;color:var(--mute);line-height:1.35}
.adv .go{position:static;opacity:1;transform:none;flex:none}
.xcard .go{top:20px;right:20px}

/* sheet: expands a card into its full story */
.sheet-s{position:fixed;inset:0;z-index:80;background:rgba(10,10,9,.5);opacity:0;pointer-events:none;transition:opacity .3s}
.sheet-s.open{opacity:1;pointer-events:auto}
.sheet{position:fixed;z-index:81;left:50%;top:50%;width:min(1080px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow-y:auto;background:var(--surface);border-radius:var(--r);
  transform:translate(-50%,-46%) scale(.97);opacity:0;visibility:hidden;transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .3s,visibility 0s .45s;overscroll-behavior:contain}
.sheet.open{transform:translate(-50%,-50%);opacity:1;visibility:visible;transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .3s}
.sheet .x{position:sticky;top:16px;float:right;margin:16px 16px -56px 0;z-index:3;width:40px;height:40px;border-radius:50%;background:var(--surface);box-shadow:0 0 0 1px var(--line);display:grid;place-items:center;font-size:20px;line-height:1}
.sh-media{background:#111;aspect-ratio:16/8;overflow:hidden}
.sh-media img,.sh-media video{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04);display:block}
.sh-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px;padding:40px}
.sh-body.solo{padding-top:56px}
.sh-h .meta{color:var(--mute);font-weight:500;font-size:14px}
.sh-h h2{margin-top:10px;font-size:clamp(30px,3vw,44px)}
.sh-h .lead{margin-top:16px;color:var(--mute)}
.sh-t p{color:var(--body);line-height:1.6}
.sh-t p+p{margin-top:14px}
.sh-t h3{font-size:16px;letter-spacing:-.005em;margin:28px 0 8px}
.sh-t h3:first-child{margin-top:0}
.sh-t .ticks{margin-top:4px}
.sh-gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 40px 40px}
.sh-gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:var(--block);filter:grayscale(1) contrast(1.04)}

/* motion: quiet, once, and off when the reader asks for less */
main.on{animation:pg .45s ease both}
@keyframes pg{from{opacity:0}to{opacity:1}}
.lead-in .pre,.lead-in .z21,.lead-r,.lead-top{opacity:0;transform:translateY(22px)}
.ready .lead-in .pre,.ready .lead-in .z21,.ready .lead-r,.ready .lead-top{opacity:1;transform:none;transition:opacity 1s cubic-bezier(.2,.6,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1)}
.ready .lead-in .z21{transition-delay:.12s}
.ready .lead-r{transition-delay:.3s}
.ready .lead-top{transition-delay:.45s}
html:not(.js) .lead-in .pre,html:not(.js) .lead-in .z21,html:not(.js) .lead-r,html:not(.js) .lead-top{opacity:1;transform:none}
.g>.rv:nth-child(2),.loop>.rv:nth-child(2){transition-delay:.08s}
.g>.rv:nth-child(3),.loop>.rv:nth-child(3){transition-delay:.16s}
.g>.rv:nth-child(4){transition-delay:.24s}
.g>.rv:nth-child(5){transition-delay:.08s}
.g>.rv:nth-child(6){transition-delay:.16s}
.advs>.adv.rv.in{transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .35s cubic-bezier(.2,.6,.2,1)}
.ph img{transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.mosaic .ph:hover img,.xcard:hover .ph img{transform:scale(1.035)}
.vblk{transform-origin:50% 0;will-change:transform}
.vcard,.trio a,.nrow,.jump a{transition:background .2s,transform .3s cubic-bezier(.2,.6,.2,1)}
a.vcard:hover,button.vcard:hover,.trio a:hover{transform:translateY(-3px)}
.hdr{transition:box-shadow .3s}
.scrolled .hdr{box-shadow:0 1px 0 var(--line)}

/* actions are text with an arrow; the only filled button on the site is the contact form's */
.act{display:inline-flex;align-items:center;gap:10px;font-weight:500;font-size:17px;letter-spacing:-.008em;line-height:1.2;color:var(--ink)}
.act span{background:linear-gradient(var(--acc),var(--acc)) 0 92%/0 .42em no-repeat;transition:background-size .35s cubic-bezier(.2,.6,.2,1)}
.act:hover span{background-size:100% .42em}
.act .da{transition:transform .3s cubic-bezier(.2,.6,.2,1)}
.act:hover .da{transform:translateX(5px)}
.dk .act{color:#fff}
.dk .act span{background-position:0 100%}
.dk .act:hover span{background-size:100% 3px}
.ctab .l>.act{align-self:flex-start}
.way .l .wf{margin-top:auto;padding-top:28px}
.film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;background:#0A0A09}   /* graded to grey in the encode, so the one lime shot keeps its colour */
.city{transition:opacity .5s}
/* thesis: one statement across the page, read into focus as you scroll */
.thesis{padding-top:128px;padding-bottom:120px}
.say{font-weight:500;font-size:clamp(34px,5.3vw,80px);line-height:1.03;letter-spacing:-.034em;max-width:16.5em;text-wrap:balance}
.js .say span{color:var(--g3);transition:color .35s ease}
.js .say span.on{color:var(--ink)}
.js .dk .say span{color:rgba(255,255,255,.36)}   /* unlit words still clear 3:1 on the dark band */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.js .dk .say span.on{color:#fff}
.say-b{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;align-items:start;margin-top:88px;padding-top:28px;border-top:1px solid var(--wline)}
.say-b .lead{max-width:26em}
.say-b .body{margin:0}
.say-l{margin-top:26px}
/* skip link and the film's pause control */
.skip{position:absolute;left:16px;top:-60px;z-index:100;padding:10px 14px;border-radius:8px;background:var(--ink);color:var(--page);font-weight:500;font-size:15px;transition:top .2s}
.skip:focus{top:12px}
#main:focus{outline:0}
.lead-top{justify-content:flex-end;gap:18px}
.film-t{position:absolute;right:16px;top:16px;opacity:0;pointer-events:none;font-weight:500;font-size:14px;color:#fff;padding:8px 12px;border-radius:8px;background:rgba(10,10,9,.7)}
.film-t:focus-visible{opacity:1;pointer-events:auto}
.lead-in{cursor:pointer}
/* companies: the pipeline sits under the live ventures as a plain list */
.pipe{margin-top:96px}
.pipe[hidden]{display:none}
.pipe .head{margin-bottom:28px}
.pipe-l{border-top:1px solid var(--line)}
.pipe-r{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,6fr) minmax(0,3fr);gap:24px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--line)}
.pipe-r[hidden]{display:none}
.pipe-r b{font-weight:500;font-size:clamp(20px,1.9vw,26px);letter-spacing:-.018em}
.pipe-r span{color:var(--mute)}
.pipe-r em{font-style:normal;color:var(--mute);font-size:14px;font-weight:500;justify-self:end}
/* the group card takes two columns so its three arms sit in a row and the grid closes at nine cells */
@media(min-width:901px) and (max-width:1180px){#cogrid .vmeta{grid-template-columns:1.3fr .85fr 1fr;gap:10px}#cogrid .vmeta span{white-space:nowrap}}
@media(min-width:901px){
  #cogrid .vcard.wide{grid-column:span 2}
  #cogrid .vcard.wide .vt{max-width:52ch}
  #cogrid .vcard.wide .arms.row{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:auto;padding-top:18px}
  #cogrid .vcard.wide .arms.row li{display:block;padding:11px 12px}
  #cogrid .vcard.wide .arms.row span+span{color:var(--ink);font-size:13px}
  #cogrid .vcard.wide .arms.row span{display:block;margin-top:2px}
  #cogrid .vcard.wide .vmeta{margin-top:18px}
}
/* text links, for everything that is not the page's one button */
.lk{display:inline;font-weight:500;color:inherit;cursor:pointer;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:2px;transition:background-size .25s}
/* hover: on light, the lime marker rises behind the lower half of the word (ink stays readable); on dark, the rule thickens to lime and the text stays white */
.lk:hover{background-image:linear-gradient(var(--acc),var(--acc));background-size:100% .5em;background-position:0 84%}
.dk .lk:hover,.feat .lk:hover,.lead-in .lk:hover{color:inherit;background-size:100% 3px;background-position:0 100%}
.hdr-r .hlink{font-weight:500;font-size:15px;line-height:1;padding:9px 14px;border-radius:999px;transition:background .2s}
.hdr-r .hlink:hover{background:var(--block)}
.hdr-r .hlink[aria-current=page]{background:var(--block2)}
.lead-lk{margin-top:18px;font-size:15px}
.wf{margin-top:12px;color:var(--mute);font-weight:500;line-height:1.45}
.wf span{display:block}
.ctab .l p .lk{color:var(--ink)}
.feat .lk{color:#fff}
#newsMore{font-size:15px}
.drawer>.lk{margin-top:auto;align-self:flex-start}
.heroblk.hb-ph .l{justify-content:space-between}
.contact .follow{margin-top:20px;display:flex;gap:24px;font-size:15px;max-width:none}
.step .n i::before{display:none}

/* responsive */
@media(max-width:1100px){
  .dayone{grid-template-columns:minmax(0,1fr);gap:36px}
  .story{grid-template-columns:minmax(0,1fr);gap:40px}
  .story-l{position:static}
  .advs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .adv{min-height:220px}
  .modes,.dayone{grid-template-columns:minmax(0,1fr);gap:36px}
  .modes{min-height:0}
  .tl{grid-template-columns:repeat(3,minmax(0,1fr))}
  .vblk{grid-template-columns:minmax(0,1fr);min-height:0;gap:36px}
  .lead-bot{flex-direction:column;align-items:flex-start;gap:28px}
  .lead-r{max-width:480px}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split{grid-template-columns:minmax(0,1fr);gap:36px}
  .split>h2,.split>.xl{position:static}
  .ftr-g{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ftr-g>div:first-child{grid-column:1/-1;margin-bottom:16px}
  .heroblk,.heroblk.hb-ph,.heroph .in,.contact,.club,.way{grid-template-columns:minmax(0,1fr)}
  .contact .l{position:static}
  .tl{row-gap:36px}
  .tl::before{display:none}
  .car-t>*{flex-basis:calc((100% - var(--gap))/2)}
  .nrow{grid-template-columns:80px minmax(0,1fr) 24px}
  .nrow .s,.nrow .c{display:none}
  .way .l{min-height:0}
  .club .ph{min-height:340px}
}
@media(max-width:900px){
  .thesis{padding-top:80px;padding-bottom:76px}
  .say-b{grid-template-columns:minmax(0,1fr);gap:20px;margin-top:48px}
  .say-l{margin-top:20px}
  .mosaic{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-rows:300px}
  .mosaic .a{grid-row:auto}
  .ctab,.ctab.dkb{flex-direction:column;align-items:flex-start;min-height:0}
  .loop{gap:var(--gap)}
  .step .n i{display:none}
  .nav,.hdr-r .hlink{display:none}
  .hdr-in{grid-template-columns:1fr auto}
  .menu-btn{display:inline-flex;align-items:center;height:40px;padding:0 14px;border-radius:var(--rb);background:var(--block2);font-weight:500;font-size:15px}
  .g3{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  .stat span{margin-top:20px}
  .head,.head.hp{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:36px}
  .trk .card,.vert .card,.inh .card,.qcard{min-height:0}
  .feat{grid-template-columns:1fr}
}
@media(max-width:640px){
  :root{--gut:16px;--gap:12px}
  .zo{padding:24px;min-height:0;gap:36px}
  .zo-c{padding:20px 24px}
  .tlv-i{padding:0 0 36px 36px}
  .pipe{margin-top:64px}
  .pipe-r{grid-template-columns:minmax(0,1fr);gap:4px;padding:16px 0}
  .pipe-r em{justify-self:start}
  .vcard,.veh .card{min-height:0}
  .veh .card .top{margin-bottom:36px}
  .vmeta{padding-top:36px}
  .art .fig{padding:22px 20px 18px}
  .vv{grid-template-columns:minmax(0,1fr);gap:32px}
  .zn-row{gap:12px}
  .zn-cap{gap:16px}
  .sh-body{grid-template-columns:minmax(0,1fr);gap:24px;padding:24px}
  .sh-gal{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 24px 24px}
  .advs{grid-template-columns:minmax(0,1fr)}
  .adv{min-height:150px}
  .modes{padding:24px}
  .voices{padding:24px;min-height:0}
  .voice.on{margin-top:28px;gap:32px}
  .mode-v{grid-template-columns:minmax(0,1fr)}
  .mode-v .pc{min-height:0}
  .swap{margin-bottom:32px}
  .acc-i button{padding:18px 18px}
  .acc-p>p{padding:0 18px}
  .facts{grid-template-columns:minmax(0,1fr)}
  .lead-in{padding:20px 20px 24px;min-height:calc(100svh - 84px)}
  .lead-top{font-size:13px}
  .slides img:nth-child(1){object-position:74% 50%}
  .slides img:nth-child(4){object-position:60% 50%}
  .vblk{padding:24px}
  .vb-r{grid-template-columns:minmax(0,1fr)}
  .pc{min-height:0}
  .ctab{padding:24px}
  .ftr .sign{margin-top:36px}
  .sec{padding-top:72px;padding-bottom:72px}
  .hdr-in{height:60px}
  .g2,.g4{grid-template-columns:1fr}
  .ftr{padding-top:64px}
  .ftr-g{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 20px}
  .ph1{padding-top:48px;padding-bottom:40px}
  .heroblk,.heroblk.hb-ph{padding:24px;min-height:0;gap:36px}
  .heroblk.hb-ph .ph{min-height:0;aspect-ratio:4/3}
  .heroph{min-height:520px}
  .heroph .in{padding:24px;gap:20px}
  .fact b{margin-top:16px}
  .car-f{flex-wrap:wrap}
  .way .act .btn{white-space:normal;line-height:1.2;padding:12px 18px;text-align:left}
  .jump a{flex-direction:column;align-items:flex-start;gap:2px;padding:14px 16px}
  .tl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .car-t>*{flex-basis:100%}
  .veh .card,.way .l,.way .r,.form,.club .tx,.feat{padding:24px}
  .way .l{min-height:0}
  .nrow{grid-template-columns:minmax(0,1fr) 24px;gap:6px 16px;padding:16px 18px}
  .nrow .d{grid-column:1/-1}
  .contact{padding-top:48px;padding-bottom:72px;gap:36px}
  .art-h{padding-top:48px}
  .drawer{padding:20px 22px 24px}
  .vmeta{gap:8px}
  .trk{margin-top:48px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
  .js .zo.rv .zo-f i{clip-path:none}
  .car-t,.drawer,.da,.pc,.vcard,.trio a,.ph img,.sheet,.adv,.car-bar i{transition:none}
  .js .step.rv.in .n i::before{animation:none;left:calc(100% - 22px)}
  .slides img.on,main.on,.pips i.on::after,.mode.on,.voice.on{animation:none}
  .js .say span{color:var(--ink);transition:none}
  .js .dk .say span{color:#fff}
  .js .fig.rv .vv-scatter i,.js .fig.rv .vv-bars i{opacity:1;transform:none;transition:none}
  .js .fig.rv .zn-row i{clip-path:none;transition:none}
  .js .rv mark{background-size:100% 62%;transition:none}
  .acc-p,.modes-t button,.modes-t button::before{transition:none}
  .lead-in .pre,.lead-in .z21,.lead-r,.lead-top{opacity:1;transform:none;transition:none}
  .js .step.rv .n i{clip-path:none;transition:none}
  .js .step.rv .n i::after{opacity:1;transition:none}
}
/* ---------- theme toggle and dark-theme adjustments ---------- */
.thm{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--ink);transition:background .2s}
.thm:hover{background:var(--block)}
.thm svg{width:16px;height:16px;display:block;transition:transform .4s cubic-bezier(.2,.6,.2,1)}
[data-theme="dark"] .thm svg{transform:rotate(180deg)}
[data-theme="dark"] .vlogo img{filter:invert(1)}
[data-theme="dark"] mark{background:none;color:var(--acc)}
[data-theme="dark"] .heroph mark{background:var(--acc);color:var(--onacc)}
[data-theme="dark"] .lk:hover{color:inherit;background-size:100% 3px;background-position:0 100%}
[data-theme="dark"] .act span{background-position:0 100%}
[data-theme="dark"] .act:hover span{background-size:100% 3px}
[data-theme="dark"] .vblk.dk{background:#2A2A28}
/* every surface carries a hairline edge, in both themes: it is what separates a card from its block and a block from the page */
:is(.blk,.card,.vcard,.stat,.xcard,.way .l,.way .r,.trio a,.fact,.zo-c,.pc,.arms li,.qcard,.hfacts div,.jump a,.kpis,.acc-i,.nrow,.chip,.drawer,.sheet,.step,.form input,.form select,.form textarea,.car-c button){box-shadow:inset 0 0 0 1px var(--edge)}
.dk :is(.pc,.arms li,.qcard,.acc-i,.jump a,.hfacts div){box-shadow:inset 0 0 0 1px rgba(255,255,255,.075)}
/* the ring takes the colour that contrasts with its ground: ink on light, lime on anything dark */
:root{--ring:var(--ink)}
:root[data-theme="dark"],.dk,.feat,.adv,.band:not(.lt),.ftr{--ring:var(--acc)}
.band.lt{--ring:var(--ink)}
[data-theme="dark"] .band.lt{--ring:var(--acc)}
:is(.vcard,.trio a,.pc,.nrow,.jump a,.feat):is(:hover,:focus-visible),.vcard:focus-within{outline:2px solid var(--ring);outline-offset:-2px}
/* tiles that hold a moving image draw the ring as a layer above it, so the image can never cover part of the line */
:is(.adv,.xcard)::after{content:"";position:absolute;inset:0;z-index:3;border-radius:inherit;border:2px solid var(--ring);opacity:0;pointer-events:none;transition:opacity .2s}
:is(.adv,.xcard):is(:hover,:focus-visible)::after{opacity:1}
:is(.adv,.xcard):focus-visible{outline:none}
.acd .acc-i{transition:background .25s,box-shadow .25s}
.acd .acc-i.open{box-shadow:inset 0 0 0 1.5px var(--acc)}   /* the open row: needs the extra class to outrank the hairline rule above */
[data-theme="dark"] :is(.band,.ftr){box-shadow:inset 0 1px 0 var(--edge),inset 0 -1px 0 var(--edge)}
[data-theme="dark"] :is(.kpis,.drawer .vmeta){background:var(--block2)}
[data-theme="dark"] :is(.vcard,.xcard,.trio a,.nrow):hover{background:var(--block2)}
[data-theme="dark"] .scrolled .hdr{box-shadow:0 1px 0 var(--line)}
/* touch devices: every tappable thing is at least 44px in one direction, without changing how it looks */
@media (pointer:coarse){
  .act{min-height:44px}
  .lk{padding-block:6px}
  .thm{width:44px;height:44px}
  .hdr .mark,.mnav .mark{min-height:44px;display:inline-flex;align-items:center}
  .chip,button.chip{min-height:40px;padding-inline:16px}
  .ftr a{display:inline-flex;align-items:center;min-height:40px}
  .ftr-b nav a{min-height:44px}
  main p>a:not(.lk):not(.act){display:inline-block;padding-block:12px;margin-block:-12px}   /* inline links in running text */
  .menu-btn{min-height:44px}
  .car-c button{width:48px;height:48px}
}
/* ---------- screen-size edges ---------- */
/* narrow phones: the headline must clear the hero's padding */
@media(max-width:400px){.lead-in .z21{font-size:clamp(46px,15.2vw,62px)}}
/* short screens (a phone held sideways, a small laptop): the hero fits the first screen so the headline is visible */
@media(max-height:560px) and (orientation:landscape){
  .lead-in{min-height:calc(100svh - 72px);padding-top:16px;padding-bottom:18px}
  .lead-in .z21{font-size:clamp(44px,15svh,96px)}
  .lead-in .pre{font-size:clamp(18px,5svh,30px)}
  .heroph{min-height:calc(100svh - 84px)}
}
/* very wide screens: the layout widens with them instead of sitting small in the middle */
@media(min-width:2200px){:root{--max:1720px}}
@media(min-width:3000px){:root{--max:2000px;--gut:40px}}
/* ---------- depth pass ---------- */
.loop{gap:var(--gap)}
.loop .step{background:var(--block);border-radius:var(--r);padding:28px 28px 32px}
.loop .step .n{border-bottom-color:var(--line)}
.pipe.blk{padding:40px;margin-top:var(--gap)}
.pipe.dk .head .body{color:var(--wm)}
.pipe.dk .pipe-l{border-top-color:var(--wline)}
.pipe.dk .pipe-r{border-bottom-color:var(--wline)}
.pipe.dk .pipe-r:last-child{border-bottom:0;padding-bottom:0}
.pipe.dk .pipe-r span{color:var(--wm)}
.pipe.dk .pipe-r em{color:var(--wm2)}
@media(max-width:640px){.pipe.blk{padding:24px}.loop .step{padding:22px 22px 24px}}
.drawer .sites{display:flex;flex-wrap:wrap;gap:8px 24px}
/* a lime label for an outcome (Rain.fi: acquired by Jupiter), on the tile and in its panel */
.adv-tag{position:absolute;left:18px;top:18px;z-index:2;display:inline-flex;align-items:center;min-height:28px;padding:0 11px;border-radius:999px;background:var(--acc);color:var(--onacc);font-size:13px;font-weight:500}
.adv-tag.st{position:static;margin-bottom:14px}
/* a supplied graphic shown whole (Rain.fi): fitted on its own ground instead of cropped */
.adv img.fit{object-fit:contain;object-position:50% 30%;background:#C9E6F3;padding:0 0 30%}
@media(max-width:640px){.adv img.fit{padding:0 0 0 50%;object-position:100% 50%}}
.sh-media.wide.fit{background:#DFDFDF}   /* the graphic's blue, as the greyscale filter renders it */
.sh-media.wide.fit img{object-fit:contain;filter:grayscale(1)}
/* footer: social links as icons */
.ftr .soc{display:flex;gap:10px;margin:0}
.ftr .soc a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--dtile);color:#fff;transition:background .2s,color .2s}
.ftr .soc a:hover{background:var(--acc);color:var(--onacc)}
.ftr .soc svg{width:16px;height:16px}
@media(max-width:640px){.ftr-g{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 16px}.ftr .soc{gap:8px}}
/* phones with a notch or a floating browser bar: the header's own background runs up into the top inset,
   so page content never shows above it while scrolling */
.hdr{padding-top:env(safe-area-inset-top,0px)}
/* in-app browsers (Telegram, X) draw their own bar over the page and let it scroll underneath, above where the page
   starts. A fixed cap in the page colour covers that strip. It sits outside the header on purpose: the header's
   backdrop blur makes WebKit clip anything drawn outside it, which is why a cap inside the header did not show. */
body::before{content:"";position:fixed;left:0;right:0;top:-240px;height:240px;background:var(--page);z-index:49;pointer-events:none}
.mnav{padding-top:calc(20px + env(safe-area-inset-top,0px))}
.ftr{padding-bottom:env(safe-area-inset-bottom,0px)}

