/* BIOH2VAP — editorial / scientific. Self-hosted fonts, no external requests. */
@font-face{font-family:"Piazzolla";src:url(../fonts/piazzolla-greek-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0370-03FF,U+1F00-1FFF}
@font-face{font-family:"Piazzolla";src:url(../fonts/piazzolla-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Piazzolla";src:url(../fonts/piazzolla-greek-wght-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap;unicode-range:U+0370-03FF,U+1F00-1FFF}
@font-face{font-family:"Piazzolla";src:url(../fonts/piazzolla-latin-wght-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Commissioner";src:url(../fonts/commissioner-greek-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0370-03FF,U+1F00-1FFF}
@font-face{font-family:"Commissioner";src:url(../fonts/commissioner-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains Mono";src:url(../fonts/jetbrains-mono-greek-wght-normal.woff2) format("woff2");font-weight:100 800;font-display:swap;unicode-range:U+0370-03FF,U+1F00-1FFF}
@font-face{font-family:"JetBrains Mono";src:url(../fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2");font-weight:100 800;font-display:swap}

:root{
  --paper:#f1ede1; --paper-2:#e7e1cf; --ink:#20261a; --ink-2:#4b5339; --rule:#c9c1a8;
  --olive:#1c2114; --olive-2:#2a3120; --olive-3:#3a4229;
  --leaf:#3ab65b; --leaf-ink:#1d6630; --navy:#1f3a5f;
  --h2:#5fd9ee; --h2-ink:#0b6577; --cream:#ece8d9;
  --serif:"Piazzolla",Georgia,"Times New Roman",serif;
  --sans:"Commissioner",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --pad:clamp(1.1rem,4vw,4rem); --max:1320px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.65 var(--sans);font-feature-settings:"kern","liga";
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .13 0 0 0 0 .15 0 0 0 0 .1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--leaf-ink)}
:focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:2px}
.chain :focus-visible,.foot :focus-visible{outline-color:var(--h2)}
.mono{font-family:var(--mono);font-size:.78rem;letter-spacing:.02em}
sub{font-size:.62em;vertical-align:-.25em;line-height:0}
em{font-style:italic}
.skip{position:absolute;left:1rem;top:-4rem;z-index:100;background:var(--olive);color:#fff;padding:.7rem 1rem;border-radius:4px}
.skip:focus{top:1rem}

/* ESPA band — always visible above the fold */
.espa-band{background:#fff;border-bottom:1px solid var(--rule);display:flex;justify-content:center;padding:.5rem var(--pad)}
.espa-band img{width:min(760px,100%);height:auto}

/* masthead */
.mast{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.5rem;padding:.6rem var(--pad);
  background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.brand img{width:96px;height:auto}
.nav ol{list-style:none;margin:0;padding:0;display:flex;gap:1.6rem;justify-content:center;flex-wrap:wrap}
.nav a{font:500 .74rem var(--sans);text-transform:uppercase;letter-spacing:.14em;text-decoration:none;color:var(--ink-2);padding:.3rem 0;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.lang{margin:0;font:400 .74rem var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--ink-2)}
.lang a{text-decoration:none;color:var(--ink-2)}
.lang a:hover{color:var(--ink);text-decoration:underline}
.lang [aria-current]{color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px}
.lang .sep{color:var(--rule)}
@media (max-width:980px){
  .mast{grid-template-columns:auto auto;row-gap:.3rem}
  .brand img{width:78px}
  .nav{grid-column:1/-1;grid-row:2;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1*var(--pad));padding:0 var(--pad)}
  .nav ol{flex-wrap:nowrap;justify-content:flex-start;gap:1.1rem;white-space:nowrap}
  .lang{justify-self:end}
}

/* hero */
.hero{max-width:var(--max);margin:0 auto;padding:clamp(2rem,6vw,5.5rem) var(--pad) 2rem;display:grid;grid-template-columns:1.25fr .9fr;gap:2rem 3rem;align-items:center}
.kicker{color:var(--leaf-ink);text-transform:uppercase;letter-spacing:.12em;margin:0 0 1.2rem}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;margin:0}
h1{font-size:clamp(2.9rem,7.6vw,7rem);line-height:.95;font-weight:330;letter-spacing:-.025em}
h1 em,h2 em{font-weight:300;color:var(--leaf-ink)}
.lead{font-size:clamp(1.05rem,1.6vw,1.3rem);max-width:38em;color:var(--ink-2);margin:1.6rem 0 2rem}
.cta{display:inline-flex;gap:1.2rem;align-items:baseline;font:italic 380 1.35rem var(--serif);text-decoration:none;color:var(--ink);padding:.2rem 0 .45rem;border-bottom:1px solid var(--ink);min-width:min(22rem,100%);justify-content:space-between}
.cta .arr{font:400 1rem var(--mono);transition:transform .3s}
.cta:hover{color:var(--leaf-ink);border-bottom-color:var(--leaf-ink)}
.cta:hover .arr{transform:translateY(3px)}
.specimen{margin:0;position:relative}
.specimen svg{width:100%;max-width:440px;margin:auto}
.orbit ellipse{fill:none;stroke:var(--ink);stroke-width:1;stroke-dasharray:2 6;opacity:.55}
.orbit circle{fill:var(--h2-ink)}
.o1{transform-origin:210px 210px;animation:spin 38s linear infinite}
.o2{transform-origin:210px 210px;animation:spin 52s linear infinite reverse}
.o3{transform-origin:210px 210px;animation:spin 64s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.h2glyph{font:italic 300 190px var(--serif);fill:var(--olive)}
.specimen figcaption{display:flex;justify-content:center;gap:1.2rem;flex-wrap:wrap;color:var(--ink-2)}
.specimen b{font-weight:600;color:var(--ink)} .specimen b.c{color:var(--h2-ink)} .specimen b.g{color:var(--leaf-ink)}
.hero-meta{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);margin:2.5rem 0 0;border-top:1px solid var(--ink);}
.hero-meta div{padding:1rem 1rem 0 0;border-right:1px solid var(--rule)}
.hero-meta div+div{padding-left:1rem}
.hero-meta div:last-child{border-right:0}
.hero-meta dt{color:var(--ink-2);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem}
.hero-meta dd{margin:.3rem 0 0;font-size:.85rem;color:var(--ink)}
@media (max-width:860px){.hero{grid-template-columns:1fr}.specimen{max-width:300px;justify-self:center}.hero-meta{grid-template-columns:1fr}.hero-meta div{border-right:0;border-bottom:1px solid var(--rule);padding:.8rem 0!important}}

/* sections */
.sec{max-width:var(--max);margin:0 auto;padding:clamp(3.5rem,8vw,7rem) var(--pad)}
.sec-head{display:grid;grid-template-columns:5.5rem 1fr;align-items:baseline;gap:1rem;border-top:1px solid var(--ink);padding-top:1.1rem;margin-bottom:clamp(2rem,4vw,3.5rem)}
.sec-head .no{color:var(--leaf-ink)}
.sec-head h2{font-size:clamp(2.1rem,4.8vw,4.1rem);line-height:1.02;font-weight:340}
.sec-lead{grid-column:2;max-width:36em;color:var(--ink-2);margin:.8rem 0 0}
@media (max-width:640px){.sec-head{grid-template-columns:1fr;gap:.3rem}.sec-lead{grid-column:1}}

.project-grid{display:grid;grid-template-columns:1fr 340px;gap:clamp(2rem,5vw,5rem);padding-left:6.5rem}
@media (max-width:980px){.project-grid{grid-template-columns:1fr;padding-left:0}}
.prose p{max-width:36em;margin:0 0 1.2rem}
.dropcap::first-letter{font:400 4.6em/.8 var(--serif);float:left;margin:.08em .1em 0 0;color:var(--leaf-ink)}
.pull{margin:2.2rem 0;padding:0 0 0 1.4rem;border-left:3px solid var(--leaf)}
.pull p{font:italic 340 clamp(1.4rem,2.6vw,2rem)/1.25 var(--serif);color:var(--ink);margin:0}
.ledger{align-self:start;position:sticky;top:calc(var(--mast-h,5rem) + 1.5rem);padding:.9rem 0 1rem;border-top:3px double var(--ink);border-bottom:1px solid var(--ink)}
.ledger h3{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;margin:0 0 .8rem;color:var(--ink-2)}
.ledger dl{margin:0}
.ledger dl div{display:grid;grid-template-columns:8.5rem 1fr;gap:.8rem;padding:.5rem 0;border-bottom:1px solid var(--rule)}
.ledger dl div:last-child{border-bottom:0}
.ledger dt{font:400 .7rem/1.5 var(--mono);letter-spacing:.04em;color:var(--ink-2);padding-top:.15rem}
.ledger dd{margin:0;font-size:.95rem}
.tbd{font-family:var(--mono);font-size:.78rem!important;color:#7a4a00}
.tbd::before{content:"[ ";} .tbd::after{content:" ]"}
.fund-note{margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--ink)}
.fund-note p{font-size:.9rem;margin:0}

/* value chain — dark olive, continuous flow */
.chain{background:var(--olive);color:var(--cream);padding:clamp(3.5rem,8vw,7rem) var(--pad)}
.chain>*{max-width:var(--max);margin-left:auto;margin-right:auto}
.sec-head.inv{border-top-color:var(--cream)}
.sec-head.inv .no{color:var(--h2)}
.sec-head.inv h2 em{color:#8fdc9e}
.chain .sec-lead{color:#c9c6b4}
.chain-grid{display:grid;grid-template-columns:minmax(280px,1fr) 1fr;gap:clamp(1.5rem,5vw,5rem)}
.chain-fig{position:sticky;top:calc(var(--mast-h,5rem) + 1rem);height:calc(100vh - 8rem);align-self:start;display:flex;align-items:center;justify-content:center}
.chain-fig svg{height:100%;width:auto;max-height:860px;overflow:visible}
.track{fill:none;stroke:var(--olive-3);stroke-width:3}
.flow{fill:none;stroke:url(#flow);stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:var(--off,1)}
.flow.soil{stroke:#8fdc9e}
.node circle{fill:var(--olive-2);stroke:var(--olive-3);stroke-width:2;transition:stroke .4s,fill .4s}
.node .ic *{fill:none;stroke:#8d9070;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s}
.node .ic .fillc{fill:#8d9070}
.node .ic .fillh{fill:none}
.node .lbl{font:500 15px var(--mono);fill:#a9a68f;transition:fill .4s}
.node .lbl.f{font-size:13px;fill:#a3a088}
.node.on circle{stroke:#8fdc9e;fill:#26301a}
.node.on .ic *{stroke:#e9f5d8} .node.on .ic .fillc{fill:#e9f5d8}
.node.on .lbl{fill:#f2efe0}
.node.h2.on circle{stroke:var(--h2);fill:#11302f}
.node.h2.on .ic .fillh{fill:var(--h2);stroke:var(--h2)}
.node.h2.on .lbl.f{fill:var(--h2)}
.particles circle{fill:var(--h2)}
.steps{list-style:none;margin:0;padding:0}
.step{min-height:62vh;display:flex;flex-direction:column;justify-content:center;padding:2rem 0;color:#a9a690;transition:color .5s}
.step.on{color:var(--cream)}
.step h3{transition:color .5s}
.step .k{color:#8fdc9e;text-transform:uppercase;letter-spacing:.12em;margin:0 0 .7rem}
.step.h2 .k,.step.h2 .f{color:var(--h2)}
.step h3{font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.08;font-weight:340;margin-bottom:1rem}
.step h3 .f{font-size:.85rem;color:#c9c6b4;vertical-align:super;margin-left:.35rem;white-space:nowrap;letter-spacing:.04em}
.step p{max-width:30em;margin:0;color:inherit}
@media (max-width:860px){
  .chain-grid{grid-template-columns:1fr}
  .chain-fig{top:var(--mast-h,7.2rem);height:40vh;z-index:2;background:var(--olive);padding:.4rem 0;border-bottom:1px solid var(--olive-3)}
  .step{min-height:55vh}
}
@media (prefers-reduced-motion:reduce){.flow{--off:0!important}.step{color:var(--cream)}.o1,.o2,.o3{animation:none}}

/* pilot */
.pilot-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
@media (max-width:900px){.pilot-grid{grid-template-columns:1fr}}
.map-wrap{margin:0}
.map{width:100%;height:auto}
.map .land path{fill:#d8d1b8;stroke:var(--ink);stroke-width:1.1;stroke-linejoin:round}
.map .grat line{stroke:var(--ink-2);stroke-width:.6;stroke-dasharray:3 5;opacity:.5}
.map .grat text,.map .sea text{font:400 12px var(--mono);fill:var(--ink-2)}
.map .sea text{font:italic 400 17px var(--serif);letter-spacing:.2em}
.map .town circle{fill:var(--ink)} .map .town text{font:500 13px var(--mono);fill:var(--ink)}
.map .pin .dot{fill:var(--h2-ink);stroke:#fff;stroke-width:2}
.map .pin line{stroke:var(--ink);stroke-width:1}
.map .pin text{font:600 18px var(--serif);fill:var(--ink)}
.map .pin text.co{font:400 12px var(--mono);fill:var(--ink-2)}
.map .pulse{fill:none;stroke:var(--h2-ink);stroke-width:2;transform-origin:0 0;animation:pulse 2.8s ease-out infinite}
.map .pulse.p2{animation-delay:1.4s}
@keyframes pulse{0%{transform:scale(.7);opacity:.9}100%{transform:scale(3.4);opacity:0}}
@media (prefers-reduced-motion:reduce){.map .pulse{animation:none;opacity:.4}}
.prose .big{font:340 clamp(1.3rem,2.2vw,1.75rem)/1.3 var(--serif)}
.slots{display:grid;grid-template-columns:1.6fr 1fr;gap:1.5rem;margin-top:3.5rem}
@media (max-width:700px){.slots{grid-template-columns:1fr}}
.slot{margin:0}
.slot-frame{aspect-ratio:16/10;border:1.5px dashed var(--ink-2);display:flex;align-items:flex-start;justify-content:flex-start;padding:1rem;
  background:repeating-linear-gradient(-45deg,transparent 0 11px,rgba(32,38,26,.07) 11px 12px),var(--paper-2)}
.slot:not(.wide) .slot-frame{aspect-ratio:4/5}
@media (max-width:700px){.slot:not(.wide) .slot-frame{aspect-ratio:16/10}}
.slot-frame span{background:var(--ink);color:var(--paper);padding:.2rem .5rem;text-transform:uppercase;letter-spacing:.1em;font-size:.66rem}
.slot figcaption{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:.6rem;font-size:.85rem;border-bottom:1px solid var(--rule);padding-bottom:.5rem}
.slot figcaption span{color:#7a4a00;font-family:var(--mono);font-size:.72rem}

/* products ledger */
.ledger-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.ledger-rows li{display:grid;grid-template-columns:minmax(120px,220px) minmax(180px,1fr) 1.4fr;gap:1.5rem;align-items:center;padding:clamp(1.4rem,3vw,2.4rem) 0;border-bottom:1px solid var(--ink)}
.ledger-rows .sym{font-size:clamp(2.6rem,6vw,4.8rem);font-weight:300;line-height:1;color:var(--ink);letter-spacing:-.04em}
.ledger-rows .h2 .sym{color:var(--h2-ink)}
.ledger-rows .soil .sym svg{width:clamp(70px,9vw,120px);fill:none;stroke:var(--leaf-ink);stroke-width:2.2;stroke-linecap:round}
.ledger-rows h3{font-size:clamp(1.6rem,3vw,2.5rem);font-weight:340}
.ledger-rows p{margin:0;color:var(--ink-2);max-width:32em}
@media (max-width:760px){.ledger-rows li{grid-template-columns:1fr;gap:.5rem}}

/* impact */
.impact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem)}
@media (max-width:860px){.impact-grid{grid-template-columns:1fr}}
.impacts{list-style:none;margin:0;padding:0}
.impacts li{display:grid;grid-template-columns:4.5rem 1fr;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--rule)}
.impacts span{color:var(--leaf-ink);font-size:.95rem;padding-top:.35rem}
.impacts p{margin:0;font:340 clamp(1.2rem,2vw,1.5rem)/1.3 var(--serif)}
.axes h3{font-size:1.5rem;font-weight:400}
.axes .note{color:var(--ink-2);margin:.3rem 0 1rem}
.axes ol{margin:0 0 2rem;padding:0;list-style:none;counter-reset:ax}
.axes li{counter-increment:ax;display:grid;grid-template-columns:2.5rem 1fr;padding:.6rem 0;border-bottom:1px dashed var(--rule)}
.axes li::before{content:"Α" counter(ax);font:500 .75rem var(--mono);color:var(--leaf-ink);padding-top:.25rem}
html[lang=en] .axes li::before{content:"L" counter(ax)}
.axes .res{margin-top:1rem}

/* partners */
.partner-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.partner-list li{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;padding:1.6rem 0;border-bottom:1px solid var(--ink)}
.partner-list .n{color:var(--leaf-ink);padding-top:.7rem}
.partner-list h3{font-size:clamp(1.5rem,3.4vw,3rem);line-height:1.08;font-weight:330}
.partner-list .s{color:var(--ink-2);margin:.4rem 0 0;text-transform:uppercase;letter-spacing:.12em}
.partner-list .d{margin:.6rem 0 0;color:var(--ink-2);max-width:36em}
@media (max-width:640px){.partner-list li{grid-template-columns:2.5rem 1fr}}

/* news */
.news-list{padding-left:6.5rem}
@media (max-width:640px){.news-list{padding-left:0}}
.news-list .empty{border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);padding:1.2rem 0;max-width:40em;color:var(--ink-2);margin:0;font:italic 360 1.15rem/1.4 var(--serif)}
.post{border-bottom:1px solid var(--rule);padding:1.4rem 0}
.post .meta{color:var(--ink-2);margin:0 0 .4rem}
.post h3{font-size:1.6rem}
.post-fund{font-size:.8rem;color:var(--ink-2);border-left:2px solid var(--leaf);padding-left:.7rem;margin-top:1rem}

/* contact */
.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:0;padding-left:6.5rem}
@media (max-width:980px){.contact-grid{grid-template-columns:1fr 1fr;padding-left:0}}
@media (max-width:520px){.contact-grid{grid-template-columns:1fr}}
.contact-grid dt{text-transform:uppercase;letter-spacing:.12em;color:var(--leaf-ink);margin-bottom:.4rem}
.contact-grid dd{margin:0;font:360 1.2rem/1.35 var(--serif)}

/* footer */
.foot{background:var(--olive);color:var(--cream);padding:0 0 2rem}
.foot-espa{background:#fff;color:var(--ink);padding:1.5rem var(--pad);text-align:center}
.foot-espa img{width:min(900px,100%);height:auto;margin:0 auto}
.foot-espa p{max-width:56em;margin:1rem auto 0;font-size:.9rem}
.foot-row{max-width:var(--max);margin:0 auto;padding:2rem var(--pad) 0;display:grid;grid-template-columns:auto 1fr;gap:1rem 2rem;color:#c9c6b4}
.foot-row ul{list-style:none;margin:0;padding:0;display:flex;gap:1.2rem;flex-wrap:wrap;justify-content:flex-end}
.foot-row a{color:var(--cream)}
.foot-row a:hover{color:var(--h2)}
.foot-row p{margin:0}
@media (max-width:700px){.foot-row{grid-template-columns:1fr}.foot-row ul{justify-content:flex-start}}
