@font-face { font-family:'Inter'; font-weight:300; font-style:normal; font-display:block;
  src:url(../fonts/inter-300.woff2) format('woff2'); }
@font-face { font-family:'Inter'; font-weight:400; font-style:normal; font-display:block;
  src:url(../fonts/inter-400.woff2) format('woff2'); }
@font-face { font-family:'Inter'; font-weight:600; font-style:normal; font-display:block;
  src:url(../fonts/inter-600.woff2) format('woff2'); }
@font-face { font-family:'Inter'; font-weight:700; font-style:normal; font-display:block;
  src:url(../fonts/inter-700.woff2) format('woff2'); }
@font-face { font-family:'JetBrains Mono'; font-weight:400; font-style:normal; font-display:block;
  src:url(../fonts/jetbrains-mono-400.woff2) format('woff2'); }
@font-face { font-family:'JetBrains Mono'; font-weight:500; font-style:normal; font-display:block;
  src:url(../fonts/jetbrains-mono-500.woff2) format('woff2'); }
:root {
  color-scheme:light only;
  --deep:#004B13; --green:#299A47; --mid:#359041; --bright:#5AB947;
  --ink:#1D1D1D; --lime:#E4F3DC; --mist:#EEF3EE;
  --teal:#1F8A7A; --dteal:#0E4F48; --sage:#9DB89A;
  --grad:linear-gradient(45deg,#004B13 0%,#359041 50%,#5AB947 100%);
  --gradlive:linear-gradient(45deg,#004B13 0%,#359041 42%,#5AB947 68%,#359041 100%);
  --m:clamp(24px,5vw,72px);
  --ease:cubic-bezier(.22,.9,.24,1);
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
html { background:#fff; }
body { font-family:'Inter',Arial,sans-serif; color:var(--ink); background:#fff; font-size:16px; line-height:1.45; }
body.locked { overflow:hidden; }
.mono { font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.17em; text-transform:uppercase; }
h1,h2,h3 { font-weight:600; line-height:1.05; }
.wrap { max-width:1360px; margin:0 auto; padding-left:var(--m); padding-right:var(--m); }
.card,.stat,.cap-cell,.way,.mcol,.ph-col,.blk { min-width:0; }

/* ---------- loader ---------- */
#loader { position:fixed; inset:0; z-index:200; background:var(--ink); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:34px; transition:transform .75s var(--ease); }
#loader.done { transform:translateY(-101%); }
.ld-sym { width:132px; overflow:visible; }
.ld-sym .up { transform:translateY(-46px); opacity:0; animation:lockUp .9s var(--ease) .15s forwards; }
.ld-sym .lo { transform:translateY(46px); opacity:0; animation:lockLo .9s var(--ease) .15s forwards; }
@keyframes lockUp { to { transform:translateY(0); opacity:1; } }
@keyframes lockLo { to { transform:translateY(0); opacity:1; } }
.ld-bar { width:170px; height:2px; background:rgba(255,255,255,.14); overflow:hidden; }
.ld-bar i { display:block; height:100%; width:0; background:var(--grad); animation:fill 1.25s var(--ease) .35s forwards; }
@keyframes fill { to { width:100%; } }
.ld-tag { color:#C9D8C6; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.3em; text-transform:uppercase; opacity:0; animation:tagIn .6s ease .5s forwards; }
@keyframes tagIn { to { opacity:1; } }

@keyframes gradShift { from { background-position:0% 100%; } to { background-position:100% 0%; } }
/* ---------- tracer (light follows symbol outline) ---------- */
.tracer { position:absolute; pointer-events:none; }
.tsvg { width:100%; height:auto; display:block; overflow:visible; }
.tbase path { stroke:currentColor; stroke-width:.7; opacity:.13; }
.trun path { stroke:var(--bright); stroke-width:1.2; stroke-linecap:round;
  stroke-dasharray:44 956; stroke-dashoffset:0; animation:trace 7s linear infinite;
  filter:drop-shadow(0 0 5px rgba(90,185,71,.95)) drop-shadow(0 0 14px rgba(90,185,71,.55)); }
@keyframes trace { to { stroke-dashoffset:-1000; } }
.tracer.t2 .trun path { animation-duration:9s; animation-delay:1.2s; }
/* ---------- aurora orbs ---------- */
.orb { position:absolute; width:520px; height:520px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(90,185,71,.34) 0%, rgba(90,185,71,0) 62%);
  filter:blur(10px); animation:drift 13s ease-in-out infinite alternate; }
.orb.o2 { background:radial-gradient(circle, rgba(228,243,220,.22) 0%, rgba(228,243,220,0) 60%); animation-duration:17s; animation-delay:2s; }
@keyframes drift { from { transform:translate(0,0) scale(1); } to { transform:translate(90px,-70px) scale(1.18); } }
/* ---------- floating photos ---------- */
.float { position:absolute; z-index:3; box-shadow:0 24px 60px rgba(0,20,6,.35); overflow:hidden; animation:bob 7s ease-in-out infinite alternate; will-change:transform; }
.float .ph { display:block; width:100%; height:100%; background-size:cover; background-position:center; }
@keyframes bob { from { transform:translateY(-17px) rotate(var(--rot,0deg)); } to { transform:translateY(17px) rotate(var(--rot,0deg)); } }
@keyframes bobS { from { transform:translateY(-9px) rotate(var(--rot,0deg)); } to { transform:translateY(9px) rotate(var(--rot,0deg)); } }
.float.f2 { animation-duration:9s; animation-delay:1.4s; }
/* ---------- photography ---------- */
.aimg { position:relative; overflow:hidden; }
.aimg img { display:block; width:100%; height:100%; min-height:280px; max-height:360px; object-fit:cover; }
.breather { position:relative; height:480px; overflow:hidden; }
.breather .bbg { position:absolute; left:0; right:0; top:-22%; bottom:-22%; background:url(../img/valley-mist.webp) center/cover no-repeat; will-change:transform; }
/* ---------- progress + nav ---------- */
#prog { position:fixed; top:0; left:0; height:3px; width:0; background:var(--grad); z-index:120; }
nav { position:fixed; top:0; left:0; right:0; z-index:100; transition:background .35s ease, box-shadow .35s ease; }
nav .nav-in { display:flex; align-items:center; justify-content:space-between; height:80px; transition:height .35s ease; }
nav.scrolled { background:rgba(255,255,255,.96); box-shadow:0 1px 0 #E3E6E3; }
nav.scrolled .nav-in { height:66px; }
.lockup { height:29px; color:#fff; display:block; transition:color .35s ease; }
nav.scrolled .lockup { color:var(--ink); }
.lockup svg { height:100%; width:auto; display:block; }
.nav-links { display:flex; align-items:center; gap:36px; }
.nav-links > a:not(.btn) { color:#fff; text-decoration:none; font-size:14px; position:relative; transition:color .35s ease; }
nav.scrolled .nav-links > a:not(.btn) { color:var(--ink); }
.nav-links > a:not(.btn)::after { content:''; position:absolute; left:0; bottom:-6px; height:2px; width:0; background:var(--bright); transition:width .3s var(--ease); }
.nav-links > a:not(.btn):hover::after { width:100%; }

.btn { display:inline-flex; align-items:center; gap:10px; background:var(--green); color:#fff; border:none; cursor:pointer;
  font-family:'Inter'; font-weight:600; font-size:14px; padding:13px 24px; text-decoration:none; transition:background .25s ease; }
.btn .ar { display:inline-block; transition:transform .3s var(--ease); }
.btn:hover { background:var(--mid); }
.btn:hover .ar { transform:translateX(5px); }
.btn-w { background:#fff; color:var(--dteal); }
.btn-w:hover { background:var(--lime); }

/* ---------- reveal ---------- */
.rv { opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.rv.in { opacity:1; transform:none; }
.d1 { transition-delay:.1s } .d2 { transition-delay:.2s } .d3 { transition-delay:.3s } .d4 { transition-delay:.4s }

/* ---------- hero ---------- */
.hero { position:relative; background:var(--gradlive); background-size:230% 230%; animation:gradShift 16s ease-in-out infinite alternate; color:#fff; overflow:hidden; }
.hero .device { position:absolute; right:-6%; top:-32%; height:165%; color:#fff; opacity:.10; will-change:transform; }
.hero .device svg, .devc svg { height:100%; width:auto; display:block; }
.hero-in { position:relative; padding-top:200px; padding-bottom:120px; max-width:900px; }
.hero .mono { color:var(--lime); margin-bottom:28px; }
.hero h1 { font-size:clamp(44px,6.4vw,84px); margin-bottom:28px; }
.hero p { font-size:18px; line-height:1.5; max-width:560px; margin-bottom:40px; color:rgba(255,255,255,.92); }
.hero .scrollhint { position:absolute; bottom:26px; left:var(--m); color:rgba(255,255,255,.85); display:flex; align-items:center; gap:10px; }
.hero .scrollhint i { display:block; width:1px; height:34px; background:rgba(255,255,255,.5); overflow:hidden; position:relative; }
.hero .scrollhint i::after { content:''; position:absolute; top:-40%; left:0; width:100%; height:40%; background:#fff; animation:drip 1.8s linear infinite; }
@keyframes drip { to { top:110%; } }

.stats { border-bottom:1px solid #E3E6E3; }
.stats-in { display:grid; grid-template-columns:repeat(4,1fr); }
.stat { padding:44px 28px 40px 28px; border-left:1px solid #E3E6E3; }
.stat:first-child { border-left:none; padding-left:0; }
.stat b { display:block; font-weight:300; font-size:clamp(40px,4.4vw,64px); line-height:1; margin-bottom:14px; font-variant-numeric:tabular-nums; }
.stat span { display:block; color:#3d423d; }

section { padding-top:110px; padding-bottom:110px; }
.eyebrow { color:var(--green); margin-bottom:24px; }
h2 { font-size:clamp(34px,4.2vw,58px); max-width:820px; }
.lede { margin-top:22px; font-size:17px; max-width:520px; color:#33382f; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:end; }

.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:64px; }
.card { background:var(--mist); padding:36px 32px 40px; min-height:280px; display:flex; flex-direction:column;
  transition:transform .45s var(--ease), background .45s ease; }
.card:hover { transform:translateY(-8px); background:var(--lime); }
.card.lit { background:var(--lime); }
.card .mono { color:var(--dteal); margin-bottom:auto; }
.card h3 { font-size:24px; margin:56px 0 16px; }
.card p { font-size:15px; color:#2e332e; }

.hall { position:relative; color:#fff; background:var(--gradlive); background-size:230% 230%; animation:gradShift 18s ease-in-out infinite alternate; overflow:hidden; }
.hall-in { display:flex; align-items:flex-end; justify-content:space-between; gap:48px; padding-top:96px; padding-bottom:64px; flex-wrap:wrap; }
.hall .mono { color:var(--lime); margin-bottom:16px; }
.hall b { display:block; font-weight:700; font-size:clamp(64px,8vw,130px); line-height:.95; }
.hall .sub { font-size:20px; font-weight:600; margin-top:10px; }
.hall table { border-collapse:collapse; font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.1em; color:rgba(255,255,255,.9); }
.hall td { padding:10px 0; border-top:1px solid rgba(255,255,255,.28); }
.hall td:first-child { padding-right:44px; color:var(--lime); text-transform:uppercase; }

.mtable { margin-top:64px; border-top:1px solid var(--ink); }
.mrow { display:grid; grid-template-columns:220px 150px 1fr; gap:24px; padding:22px 0; border-bottom:1px solid #E3E6E3; align-items:baseline; transition:background .3s ease, padding .3s ease; }
.mrow .name { font-weight:600; font-size:17px; }
.mrow.off .name, .mrow.off .why { color:#7e857e; }
.mrow .st { font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.17em; text-transform:uppercase; color:#9aa09a; }
.mrow.on { background:var(--lime); border-bottom:1px solid var(--green); padding-left:20px; padding-right:20px; margin:0 -20px; }
.mrow.on .st { color:var(--green); font-weight:500; }
.mrow .why { font-size:15px; color:#33382f; }

.mappanel { margin-top:24px; background:var(--mist); }
.mappanel svg { display:block; width:100%; height:auto; }
.mappanel .site { transform-box:fill-box; transform-origin:center; transform:scale(0); }
.mappanel.in .site { animation:pop .5s var(--ease) forwards, pulse 2.6s ease-in-out 1.2s infinite; }
.mappanel.in .site:nth-of-type(1){animation-delay:.2s,1.2s}.mappanel.in .site:nth-of-type(2){animation-delay:.32s,1.5s}.mappanel.in .site:nth-of-type(3){animation-delay:.44s,1.8s}.mappanel.in .site:nth-of-type(4){animation-delay:.56s,2.1s}.mappanel.in .site:nth-of-type(5){animation-delay:.68s,2.4s}.mappanel.in .site:nth-of-type(6){animation-delay:.8s,2.7s}
@keyframes pop { to { transform:scale(1); } }
.mappanel .sonar { transform-box:fill-box; transform-origin:center; animation:sonar 3s ease-out infinite; }
.mappanel .sonar.s2 { animation-delay:1.5s; }
@keyframes sonar { 0% { transform:scale(.25); opacity:.9; } 100% { transform:scale(1.6); opacity:0; } }
.mappanel .site:nth-of-type(2n) { animation-delay:.9s }
@keyframes pulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.45); } }
.mappanel .route { animation:dashmove 14s linear infinite; }
@keyframes dashmove { to { stroke-dashoffset:-200; } }
.mappanel .ring { animation:spin 40s linear infinite; transform-box:fill-box; transform-origin:center; }
@keyframes spin { to { transform:rotate(360deg); } }
.mapcap { display:flex; justify-content:space-between; gap:24px; padding:18px 24px; border-top:1px solid #DFE6DF; flex-wrap:wrap; }
.mapcap .mono { color:#454a45; }
.legend { display:flex; gap:26px; flex-wrap:wrap; }
.legend .mono { display:flex; align-items:center; gap:8px; color:#33382f; }
.sw { width:12px; height:12px; display:inline-block; }

#markets { overflow-x:clip; }
.duo { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:20px; }
.mcol { padding:36px 32px 40px; }
.mcol.th { color:#fff; position:relative; overflow:hidden;
  background:var(--deep) url(../img/market-th.webp) center/cover no-repeat; }
.mcol.th::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,40,11,.68), rgba(0,40,11,.88)); }
.mcol.th .inner { position:relative; }
.mcol.ph { color:#fff; position:relative; overflow:hidden; background:#0E4F48 url(../img/market-ph.webp) center/cover no-repeat; }
.mcol.ph::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,48,44,.74), rgba(8,48,44,.9)); }
.mcol.ph .inner2 { position:relative; }
.mcol.ph .sub { color:rgba(255,255,255,.92); }
.mcol.ph li { border-top:1px solid rgba(255,255,255,.3); color:#fff; }
.mcol.ph .mono { color:var(--lime); }
.mcol h3 { font-size:26px; margin:6px 0 8px; }
.mcol .sub { font-size:15px; color:#454a45; margin-bottom:26px; max-width:340px; }
.mcol.th .sub { color:rgba(255,255,255,.92); }
.mcol ul { list-style:none; }
.mcol li { font-size:15px; padding:13px 0; border-top:1px solid #DDE2DD; }
.mcol.th li { border-top:1px solid rgba(255,255,255,.3); color:#fff; }
.mcol .mono { color:var(--dteal); }
.mcol.th .mono { color:var(--bright); }

.cap { background:var(--ink); color:#fff; position:relative; overflow:hidden; }
.cap .device { position:absolute; right:-10%; top:-30%; height:175%; color:#fff; opacity:.055; will-change:transform; }
.cap-in { position:relative; }
.cap-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:64px; margin-bottom:70px; }
.cap-cell { border-left:2px solid var(--green); padding-left:26px; }
.cap-cell b { display:block; font-weight:300; font-size:clamp(44px,5vw,72px); line-height:1; margin-bottom:16px; font-variant-numeric:tabular-nums; }
.cap-cell .mono { color:var(--lime); line-height:1.9; }

.phasing { border-top:1px solid rgba(255,255,255,.16); padding-top:44px; margin-bottom:64px; }
.phasing > .mono { color:var(--lime); }
.ph-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; align-items:end; margin-top:34px; height:230px; }
.ph-col { display:flex; flex-direction:column; justify-content:flex-end; gap:5px; height:100%; }
.blk { flex:0 0 auto; height:40px; display:flex; align-items:center; padding-left:12px;
  font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.12em;
  transform:scaleY(0); transform-origin:bottom; transition:transform .6s var(--ease); }
.ph-grid.in .blk { transform:scaleY(1); }
.ph-col .yr { font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.17em; color:#fff; padding-top:14px; border-top:2px solid var(--green); margin-top:8px; }
.ph-col .yr small { display:block; color:#C9D8C6; font-size:10px; margin-top:6px; letter-spacing:.14em; }

.nda { display:flex; align-items:center; justify-content:space-between; gap:32px; border-top:1px solid rgba(255,255,255,.16); padding-top:36px; flex-wrap:wrap; }
.nda p { max-width:460px; color:rgba(255,255,255,.88); font-size:15px; }

.coop { position:relative; overflow:hidden; }
.coop .device { position:absolute; right:-13%; bottom:-58%; height:132%; color:var(--lime); z-index:0; }
.coop .wrap { position:relative; z-index:1; }
.ways { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:64px; }
.way { padding:40px 36px 44px; transition:transform .45s var(--ease); }
.way:hover { transform:translateY(-8px); }
.way.a { background:var(--lime); border:1px solid #fff; box-shadow:0 16px 44px rgba(0,20,6,.09); }
.way.b { background:var(--ink); color:#fff; position:relative; overflow:hidden; }
.way.b .inner { position:relative; }
.way.b .dev { position:absolute; right:-16%; top:-24%; height:145%; color:#fff; opacity:.055; }
.way .mono { color:var(--dteal); }
.way.b .mono { color:var(--bright); }
.way h3 { font-size:26px; margin:52px 0 18px; }
.way p { font-size:15px; color:#2e332e; max-width:400px; }
.way.b p { color:rgba(255,255,255,.9); }
.flow { display:flex; align-items:center; gap:10px; margin-top:28px; flex-wrap:wrap; }
.fchip { font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; padding:8px 13px; border:1px solid var(--dteal); color:var(--dteal); }
.fchip.fill { background:var(--dteal); color:var(--lime); }
.way.b .fchip { border-color:var(--bright); color:var(--bright); }
.way.b .fchip.fill { background:var(--green); border-color:var(--green); color:#fff; }
.farrow { color:var(--dteal); font-size:14px; }
.way.b .farrow { color:var(--bright); }

/* ticker */
.ticker { background:var(--ink); border-top:1px solid rgba(255,255,255,.1); overflow:hidden; }
.ticker .tk { display:flex; gap:0; width:max-content; animation:tick 36s linear infinite; }
.ticker:hover .tk { animation-play-state:paused; }
.tk span { font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:#C9D8C6; padding:16px 34px; white-space:nowrap; }
.tk span b { color:var(--bright); font-weight:500; }
@keyframes tick { to { transform:translateX(-50%); } }

.manifesto { position:relative; color:#fff; overflow:hidden; background:var(--deep); }
.manifesto .bg { position:absolute; inset:-14% 0; background:url(../img/dc-hall.webp) center/cover no-repeat; will-change:transform; }
.manifesto::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,35,10,.66), rgba(0,35,10,.18)); }
.manifesto-in { position:relative; z-index:2; padding-top:170px; padding-bottom:170px; }
.manifesto .mono { color:var(--lime); margin-bottom:26px; }
.manifesto h2 { color:#fff; font-size:clamp(40px,5.4vw,76px); max-width:760px; }

.contact { background:var(--gradlive); background-size:230% 230%; animation:gradShift 20s ease-in-out infinite alternate; color:#fff; position:relative; overflow:hidden; }
.contact .device { position:absolute; right:-8%; top:-20%; height:150%; color:#fff; opacity:.10; }
.contact-in { position:relative; display:grid; grid-template-columns:1.1fr .9fr; gap:80px; }
.contact h2 { color:#fff; }
.contact .lede { color:rgba(255,255,255,.9); }
.contact .mail { display:inline-block; margin-top:36px; color:#fff; font-weight:600; font-size:18px; text-decoration:none; border-bottom:2px solid var(--bright); padding-bottom:4px; }
.form { background:#fff; color:var(--ink); padding:40px 36px 44px; }
.form .mono { color:var(--dteal); margin-bottom:18px; display:block; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; }
.chip { font-family:'Inter'; font-size:13px; font-weight:600; padding:9px 16px; border:1px solid #DDE2DD; background:#fff; cursor:pointer; transition:all .25s ease; }
.chip:hover { border-color:var(--green); color:var(--dteal); }
.chip.sel { background:var(--green); border-color:var(--green); color:#fff; }
.field { margin-bottom:18px; position:relative; }
.field label { display:block; font-size:13px; color:#4c524c; margin-bottom:7px; }
.field input, .field textarea { width:100%; border:none; border-bottom:1px solid #C9CFC9; padding:8px 0 10px; font-family:'Inter'; font-size:15px; background:transparent; outline:none; resize:none; }
.field i { position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--green); transition:width .35s var(--ease); }
.field input:focus ~ i, .field textarea:focus ~ i { width:100%; }

footer { background:var(--ink); color:#fff; position:relative; overflow:hidden; }
footer .device { position:absolute; left:-5%; bottom:-45%; height:120%; color:#fff; opacity:.05; }
.foot-hero { position:relative; padding-top:120px; padding-bottom:100px; border-bottom:1px solid rgba(255,255,255,.14); }
.foot-hero h2 { font-size:clamp(36px,4.6vw,64px); max-width:900px; color:#fff; }
.foot-grid { position:relative; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; padding-top:56px; padding-bottom:56px; }
.foot-grid .lockup { color:#fff; height:26px; margin-bottom:18px; }
.foot-grid p { font-size:14px; color:rgba(255,255,255,.78); }
.foot-grid a { display:block; color:rgba(255,255,255,.92); text-decoration:none; font-size:14px; margin-bottom:12px; transition:color .25s ease; }
.foot-grid a:hover { color:var(--bright); }
.legal { position:relative; display:flex; justify-content:space-between; gap:24px; padding-top:26px; padding-bottom:34px; border-top:1px solid rgba(255,255,255,.14); flex-wrap:wrap; }
.legal span { font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.72); }

/* ---------- coop photo cluster ---------- */
.coop-cluster { position:relative; height:370px; }
.fwrap { position:absolute; will-change:transform; }
.coop-cluster .float { position:relative; width:100%; height:100%; }
.fwrap.w1 { left:2%; top:40px; width:180px; height:232px; z-index:1; }
.fwrap.w1 .float { --rot:-3deg; animation-duration:8s; }
.fwrap.w2 { left:27%; top:-8px; width:300px; height:222px; z-index:2; }
.fwrap.w2 .float { --rot:2deg; animation-duration:6.4s; animation-delay:.8s; }
.fwrap.w3 { left:59%; top:206px; width:212px; height:152px; z-index:3; }
.fwrap.w3 .float { --rot:1.6deg; animation-duration:9.4s; animation-delay:1.6s; }
/* ---------- scroll flourishes ---------- */
.aimg img { transform:scale(1.14); transition:transform 1.5s var(--ease); }
.rv.in.aimg img, .aimg.in img { transform:scale(1); }
.rv.rl { transform:translateX(-46px); }
.rv.rr { transform:translateX(46px); }
.rv.rl.in, .rv.rr.in { transform:none; }
@media (hover:hover) and (pointer:fine) {
  .cards .card:hover { transform:translateY(-8px) scale(1.03); }
  .ways .way:hover { transform:translateY(-8px) scale(1.02); }
  .way.a:hover { box-shadow:0 26px 60px rgba(0,20,6,.14); }
  .duo .mcol { transition:transform .45s var(--ease), box-shadow .45s ease; }
  .duo .mcol:hover { transform:translateY(-6px) scale(1.015); box-shadow:0 24px 56px rgba(0,20,6,.22); }
  .cap-grid .cap-cell { transition:transform .45s var(--ease); }
  .cap-grid .cap-cell:hover { transform:translateY(-6px); }
  .stats-in .stat { transition:transform .45s var(--ease); }
  .stats-in .stat:hover { transform:translateY(-5px); }
  .form { transition:transform .45s var(--ease), box-shadow .45s ease; }
  .form:hover { transform:translateY(-6px) scale(1.01); box-shadow:0 26px 64px rgba(0,20,6,.16); }
  .mappanel { transition:transform .45s var(--ease); }
  .mappanel:hover { transform:scale(1.006); }
}
@media (max-width:1180px) {
  .fwrap.w1 { width:150px; height:196px; }
  .fwrap.w2 { left:24%; width:260px; height:194px; }
  .fwrap.w3 { left:54%; top:180px; width:186px; height:134px; }
}

/* ---------- mobile menu ---------- */
.burger { display:none; background:none; border:none; cursor:pointer; padding:10px; margin-right:-10px; }
.burger span { display:block; width:24px; height:2px; background:#fff; transition:transform .35s var(--ease), opacity .25s ease, background .35s ease; }
.burger span + span { margin-top:6px; }
nav.scrolled .burger span { background:var(--ink); }
body.menu-open .burger span { background:#fff !important; }
body.menu-open .burger span:nth-child(1) { transform:translateY(8px) rotate(45deg); }
body.menu-open .burger span:nth-child(2) { opacity:0; }
body.menu-open .burger span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }
#mmenu { position:fixed; inset:0; z-index:99; visibility:hidden; background:var(--gradlive); background-size:230% 230%; animation:gradShift 16s ease-in-out infinite alternate; display:flex; flex-direction:column; justify-content:center; padding:0 var(--m); opacity:0; pointer-events:none; transition:opacity .35s ease, visibility 0s linear .35s; }
body.menu-open #mmenu { opacity:1; pointer-events:auto; visibility:visible; transition-delay:0s; }
#mmenu .mono { color:var(--lime); margin-bottom:20px; }
#mmenu a { color:#fff; text-decoration:none; font-size:clamp(30px,8vw,44px); font-weight:600; line-height:1.15; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.2); opacity:0; transform:translateY(16px); transition:opacity .45s var(--ease), transform .45s var(--ease); }
#mmenu a:last-of-type { border-bottom:none; }
body.menu-open #mmenu a { opacity:1; transform:none; }
body.menu-open #mmenu a:nth-of-type(1) { transition-delay:.08s; }
body.menu-open #mmenu a:nth-of-type(2) { transition-delay:.14s; }
body.menu-open #mmenu a:nth-of-type(3) { transition-delay:.2s; }
body.menu-open #mmenu a:nth-of-type(4) { transition-delay:.26s; }
#mmenu .mail2 { display:inline-block; margin-top:34px; color:var(--lime); font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.17em; text-transform:uppercase; text-decoration:none; opacity:0; transition:opacity .45s ease .34s; }
body.menu-open #mmenu .mail2 { opacity:1; }
body.menu-open { overflow:hidden; }
body.menu-open nav { background:transparent !important; box-shadow:none !important; }
body.menu-open nav .lockup { color:#fff !important; }

@media (max-width:1200px) {
  .nav-links { gap:22px; }
  .nav-links > a:not(.btn) { font-size:13px; }
  .nav-links .btn { padding:12px 18px; font-size:13px; }
}
@media (max-width:1080px) {
  .nav-links > a:not(.btn) { display:none; }
  .burger { display:block; }
}
@media (max-width:700px) {
  .nav-links > .btn { display:none; }
}
@media (max-width:960px) {
  .stats-in, .cards, .cap-grid, .ph-grid { grid-template-columns:1fr 1fr; height:auto; }
  .duo, .ways, .contact-in, .split { grid-template-columns:1fr; }
  .foot-grid { grid-template-columns:1fr 1fr; }
  .mrow { grid-template-columns:1fr; gap:6px; }
  .hero-in { padding-top:150px; }
  .coop-cluster { height:252px; margin-top:10px; }
  .fwrap.w1 { left:4%; top:28px; width:118px; height:156px; }
  .fwrap.w2 { left:25%; top:0; width:222px; height:164px; }
  .fwrap.w3 { left:57%; top:122px; width:152px; height:110px; }
  .ways { margin-top:36px; }
}
@media (max-width:640px) {
  .orb { width:320px; height:320px; }
  .tracer { opacity:.6; }
  .float { animation-name:bobS; }
  section { padding-top:76px; padding-bottom:76px; }
  .cards, .ph-grid, .stats-in { grid-template-columns:1fr 1fr; }
  .cards { grid-template-columns:1fr; }
  .coop-cluster { height:224px; }
  .fwrap.w1 { left:2%; top:22px; width:100px; height:134px; }
  .fwrap.w2 { left:22%; top:0; width:194px; height:142px; }
  .fwrap.w3 { left:56%; top:104px; width:132px; height:96px; }
  .card { min-height:0; }
  .card h3 { margin-top:34px; }
  .stats-in { grid-template-columns:1fr 1fr; }
  .stat { border-left:none; border-top:1px solid #E3E6E3; padding:24px 12px 22px 0; }
  .stat:nth-child(-n+2) { border-top:none; }
  .mrow.on { margin:0; padding:16px 14px; }
  .hall td:first-child { padding-right:18px; }
  .hall table { width:100%; }
  .hall b { font-size:clamp(56px,17vw,84px); }
  .cap-grid { grid-template-columns:1fr; gap:34px; margin-bottom:52px; }
  .manifesto-in { padding-top:110px; padding-bottom:110px; }
  .breather { height:250px; }
  .aimg img { min-height:210px; max-height:250px; }
  .form { padding:28px 20px 32px; }
  .contact-in { gap:44px; }
  .mapcap { padding:14px 16px; }
  .legal { flex-direction:column; gap:10px; }
  .tk span { padding:13px 22px; }
  .foot-hero { padding-top:84px; padding-bottom:70px; }
  .nav-links { gap:14px; }
  .btn { padding:11px 16px; font-size:13px; }
  .hero-in { padding-top:140px; padding-bottom:96px; }
  .ways, .duo { gap:14px; }
  .way, .mcol { padding:30px 22px 34px; }
  .mcol.ph .inner2 { padding-top:24px; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:.001s !important; transition-duration:.001s !important; }
  html { scroll-behavior:auto; }
}

/* ---------- static pages (privacy, terms) ---------- */
body.page nav { background:rgba(255,255,255,.96); box-shadow:0 1px 0 #E3E6E3; }
body.page nav .nav-in { height:66px; }
.page-hero { padding-top:150px; padding-bottom:52px; border-bottom:1px solid #E3E6E3; }
.page-hero .mono { color:var(--green); margin-bottom:22px; }
.page-hero h1 { font-size:clamp(36px,5vw,64px); }
.page-hero .updated { color:#7e857e; margin-top:22px; }
.page-body { padding-top:56px; padding-bottom:110px; }
.page-body > * { max-width:840px; }
.page-body h2 { font-size:22px; margin:40px 0 12px; }
.page-body p, .page-body li { font-size:16px; line-height:1.6; color:#33382f; margin-bottom:14px; }
.page-body ul { padding-left:22px; }
.page-body a { color:var(--dteal); }

/* ---------- error page ---------- */
body.err { background:var(--gradlive); background-size:230% 230%; animation:gradShift 16s ease-in-out infinite alternate; color:#fff; }
.err-wrap { position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden; }
.err-in { position:relative; padding-top:80px; padding-bottom:80px; max-width:860px; }
.err-in .lockup { height:32px; margin-bottom:64px; color:#fff; }
.err-in .mono { color:var(--lime); margin-bottom:24px; }
.err-in h1 { font-size:clamp(40px,6vw,84px); margin-bottom:24px; }
.err-in p { font-size:18px; line-height:1.5; max-width:560px; margin-bottom:36px; color:rgba(255,255,255,.92); }
.err-in .ctas { display:flex; gap:14px; flex-wrap:wrap; }
.btn-o { background:transparent; border:1px solid rgba(255,255,255,.65); color:#fff; }
.btn-o:hover { background:rgba(255,255,255,.14); }
.fmsg { display:none; font-size:13.5px; padding:12px 14px; margin-bottom:16px; }
.fmsg.err { display:block; background:#FBE3E0; color:#8A2A1E; }
.fmsg.okk { display:block; background:var(--lime); color:var(--deep); }
