/* GridLeaf site styles v30 */
:root{--vw:1vw;--vh:1vh}
:root{
  --green:#05A02D; --green-ink:#037A22; --green-deep:#025C1A;
  --charcoal:#232323; --ink:#1E2420; --muted:#55605A;
  --page:#F6F7F6; --panel:#E4E7E5; --white:#FFFFFF; --line:#D3D8D5;
  --mint:#B6E3C0; --sun:#E9B949;
  --font:"Poppins", "Helvetica Neue", Arial, sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--ink);font-family:var(--font);font-size:1.05rem;line-height:1.65}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--green-ink);text-underline-offset:.18em}
a:hover{color:var(--green-deep)}
:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--charcoal);color:#fff;padding:.5rem 1rem;z-index:20}
.skip:focus{left:1rem}

h1,h2,h3{line-height:1.12;margin:0 0 .55em;letter-spacing:-.01em}
h1{font-size:clamp(2.6rem,calc(6 * var(--vw)),4.6rem);font-weight:700;max-width:9.5em}
h2{font-size:clamp(1.7rem,calc(3.4 * var(--vw)),2.6rem);font-weight:700;max-width:12.5em}
h3{font-size:1.15rem;font-weight:600}
p{margin:0 0 1em;max-width:36em}
.lede{font-size:1.2rem;max-width:30em}
.small{font-size:.92rem;color:var(--muted)}
.brandword .leaf{color:var(--green)}

.wrap{width:100%;max-width:74rem;margin:0 auto;padding:0 clamp(1.1rem,calc(4 * var(--vw)),2.5rem)}
section{padding:clamp(3.5rem,calc(8 * var(--vw)),6rem) 0}
.alt{background:var(--white)}

/* header */
.site-header{position:sticky;top:0;z-index:10;background:var(--white);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.5rem}
.brand img{height:2.75rem;width:auto}
.nav nav{display:flex;align-items:center;gap:1.7rem;font-size:.98rem;font-weight:500}
.nav nav a{color:var(--ink);text-decoration:none}
.nav nav a:hover,.nav nav a[aria-current="page"]{color:var(--green-ink);text-decoration:underline;text-decoration-thickness:2px}
.nav-toggle{display:none;font:inherit;font-weight:500;background:none;border:1px solid var(--line);color:var(--ink);padding:.4rem .9rem;border-radius:6px;cursor:pointer}
@media (max-width:780px){
  .nav-toggle{display:block}
  .nav nav{display:none;position:absolute;left:0;right:0;top:72px;flex-direction:column;align-items:flex-start;gap:0;background:var(--white);border-bottom:1px solid var(--line);padding:.5rem clamp(1.1rem,calc(4 * var(--vw)),2.5rem) 1.2rem}
  .nav nav.open{display:flex}
  .nav nav a{padding:.6rem 0;width:100%}
  .nav nav .btn{width:auto;margin-top:.5rem}
}

/* buttons */
.btn{display:inline-block;font-family:var(--font);font-weight:600;font-size:1rem;text-decoration:none;background:var(--green);color:#fff;padding:.8rem 1.35rem;border-radius:8px;border:2px solid var(--green);cursor:pointer;line-height:1.3}
.btn:hover{background:var(--green-deep);border-color:var(--green-deep);color:#fff}
.btn-line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-line:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.dark .btn-line{color:#fff;border-color:#fff}
.dark .btn-line:hover{background:#fff;color:var(--charcoal)}
.nav nav .btn{color:#fff;padding:.55rem 1.05rem;text-decoration:none}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}

/* dark bands, datasheet style */
.dark{background:var(--charcoal);color:#fff;border-bottom:.75rem solid var(--green)}
.dark p{color:#D5DAD7}
.dark a:not(.btn){color:#8FDCA3}
.hero{padding:clamp(3rem,calc(7 * var(--vw)),5.5rem) 0}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,calc(5 * var(--vw)),4rem);align-items:center}
.hero .tag{font-size:1.35rem;font-weight:500;color:#fff;margin-bottom:1.2rem}
.hero-media{margin:0;justify-self:end;width:100%;max-width:22.5rem}
.hero-media video,.hero-media img{width:100%;border-radius:14px;aspect-ratio:9/16;object-fit:cover;background:#111}
.hero-media figcaption{font-size:.85rem;color:#B9C2BD;margin-top:.5rem}
.hero-render{background:#fff;border-radius:14px;padding:1rem}
.hero-render img{aspect-ratio:auto;object-fit:contain;border-radius:0;background:#fff}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.hero-media{justify-self:start;max-width:300px}}

/* summary + features */
.summary{font-size:clamp(1.25rem,calc(2.4 * var(--vw)),1.6rem);font-weight:500;max-width:25em;line-height:1.45}
.summary strong{font-weight:700}
.features{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:2.5rem;background:var(--panel);border-radius:10px;overflow:hidden}
.features div{padding:1.4rem 1.1rem;border-left:1px solid #fff}
.features div:first-child{border-left:0}
.features h3{font-size:1rem;margin:.6rem 0 .25rem}
.features p{font-size:.92rem;color:var(--muted);margin:0}
.features svg{width:2.1rem;height:2.1rem;stroke:var(--green);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:980px){.features{grid-template-columns:repeat(2,1fr)}.features div{border-left:0;border-top:1px solid #fff}}
@media (max-width:520px){.features{grid-template-columns:1fr}}

/* layouts */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,calc(5 * var(--vw)),4.5rem);align-items:center}
.split.top{align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.media-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.media-pair img,.media-pair video{border-radius:12px;width:100%;aspect-ratio:3/4;object-fit:cover}
.night video{border-radius:12px;width:100%;max-width:23.75rem;aspect-ratio:9/16;object-fit:cover;background:#111}
.cap{font-size:.88rem;color:var(--muted);margin-top:.5rem}

.plain-list{padding-left:1.2rem;margin:0 0 1em}
.plain-list li{margin-bottom:.55em;max-width:36em}
.fit-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;margin:2rem 0 0;padding:0;list-style:none}
.fit-list li{border-top:3px solid var(--green);padding-top:.9rem}
.fit-list p{margin:0;color:var(--muted);font-size:.98rem}
@media (max-width:800px){.fit-list{grid-template-columns:1fr}}

.steps{list-style:none;counter-reset:s;padding:0;margin:2rem 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem}
.steps li{counter-increment:s;background:var(--white);border-radius:10px;padding:1.3rem}
.steps li::before{content:counter(s);display:inline-grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--green);color:#fff;font-weight:700;margin-bottom:.8rem}
.steps p{margin:0;font-size:.95rem;color:var(--muted)}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

.chart-fig{margin:0;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:1.2rem 1.2rem .8rem}
.chart-fig svg{width:100%;height:auto;display:block}
.chart-fig figcaption{font-size:.88rem;color:var(--muted);margin-top:.5rem}
.legend{display:flex;gap:1.4rem;font-size:.9rem;font-weight:500;margin-bottom:.6rem}
.legend span::before{content:"";display:inline-block;width:18px;height:4px;border-radius:2px;vertical-align:middle;margin-right:.45rem;background:currentColor}
.legend .lw{color:var(--green)} .legend .ls{color:#C9971C}
.d-text{fill:var(--muted);font-family:var(--font);font-size:12px}
.d-thin{stroke:#9AA39E;fill:none;stroke-width:1}

/* spec tables, datasheet style */
.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start;margin-top:1.5rem}
.spec-col{display:grid;gap:2rem}
@media (max-width:860px){.spec-grid{grid-template-columns:1fr}}
.spec{width:100%;border-collapse:collapse;font-size:.98rem;background:var(--white)}
.spec caption{text-align:left;font-weight:700;font-size:1.25rem;margin-bottom:.7rem}
.spec th,.spec td{border:1.5px solid var(--charcoal);padding:.65rem .9rem;text-align:left}
.spec th{font-weight:600;width:50%}
.spec caption .cap-note{font-weight:400;font-size:.88rem;color:var(--muted);margin-left:.5rem}
.spec.wind th{background:var(--mint)}
.spec.solar th{background:var(--sun)}
.spec.more th{background:var(--panel)}
.curve{margin:0}
.curve img{width:100%;border:1.5px solid var(--charcoal);background:#f3f3f3}
.curve figcaption{font-size:.88rem;color:var(--muted);margin-top:.5rem}

/* band */
.band{background:var(--green);color:#fff}
.band h2{color:#fff}
.band p{color:#EAF7EE}
.band .btn{background:#fff;color:var(--green-deep);border-color:#fff}
.band .btn:hover{background:var(--charcoal);border-color:var(--charcoal);color:#fff}

/* team */
.founder{display:grid;grid-template-columns:18.75rem 1fr;gap:clamp(1.5rem,calc(4 * var(--vw)),3.5rem);align-items:start}
.founder img{border-radius:12px;aspect-ratio:4/5;object-fit:cover;width:100%}
.role{color:var(--green-ink);font-weight:600;margin:-.3em 0 1em}
@media (max-width:720px){.founder{grid-template-columns:1fr}.founder img{max-width:17.5rem}}
.subteams{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin-top:2rem}
.subteams div{background:var(--white);border-radius:10px;padding:1.2rem;border-top:4px solid var(--green)}
.subteams p{font-size:.95rem;color:var(--muted);margin:0}
@media (max-width:900px){.subteams{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.subteams{grid-template-columns:1fr}}
.programs{columns:2;column-gap:3rem;padding-left:1.2rem;margin:0}
.programs li{margin-bottom:.5em;break-inside:avoid}
@media (max-width:640px){.programs{columns:1}}

/* form */
.form{display:grid;gap:1.1rem;max-width:38.75rem;background:var(--white);padding:clamp(1.2rem,calc(3 * var(--vw)),2rem);border-radius:12px}
.form label{display:grid;gap:.35rem;font-weight:600;font-size:.95rem}
.form input,.form select,.form textarea{font:inherit;font-weight:400;color:var(--ink);background:var(--page);border:1px solid var(--line);border-radius:8px;padding:.7rem .8rem;width:100%}
.form textarea{min-height:10rem;resize:vertical}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media (max-width:560px){.form .row{grid-template-columns:1fr}}
.form-status{min-height:1.6em;font-weight:500;font-size:.98rem;margin:0}
.form-status.ok{color:var(--green-ink)} .form-status.err{color:#B3261E}

.legal h2{font-size:1.4rem;margin-top:2.2rem}

/* footer */
.site-footer{background:var(--charcoal);color:#D5DAD7;padding:3rem 0 2.2rem;font-size:.95rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
.site-footer h2{font-size:1rem;color:#fff;margin-bottom:.7rem}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.4rem}
.site-footer a{color:#fff}
.site-footer a:hover{color:#8FDCA3}
.foot-logo{height:3.25rem;width:auto;margin-bottom:.8rem;border-radius:8px}
.copy{margin-top:2.5rem;color:#9AA39E;font-size:.85rem}
@media (max-width:700px){.foot-grid{grid-template-columns:1fr}}

/* ===== v3: motion and personality ===== */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
.js .stagger > *{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.js .stagger.in > *{opacity:1;transform:none}
.js .stagger.in > *:nth-child(2){transition-delay:.08s}
.js .stagger.in > *:nth-child(3){transition-delay:.16s}
.js .stagger.in > *:nth-child(4){transition-delay:.24s}
.js .stagger.in > *:nth-child(5){transition-delay:.32s}

/* hero */
.hero-v3 h1{font-size:clamp(3rem,calc(8 * var(--vw)),6.2rem);line-height:.98;max-width:8em;margin-bottom:.35em}
.hero-v3 h1 .accent{color:var(--green)}
.cycler{font-size:clamp(1.3rem,calc(2.6 * var(--vw)),1.9rem);font-weight:600;color:#fff;margin:0 0 1.2rem;min-height:1.4em}
.cycler .word{display:inline-block;color:#8FDCA3;border-bottom:3px solid var(--green);transition:opacity .35s ease,transform .35s ease}
.cycler .word.out{opacity:0;transform:translateY(-.4em)}
.hero-v3 .hero-media{position:relative}
.hero-v3 .hero-media video{transform:rotate(2deg);box-shadow:0 24px 60px rgba(0,0,0,.45)}
.chip{position:absolute;background:#fff;color:var(--ink);font-weight:600;font-size:.92rem;padding:.5rem .8rem;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.3);white-space:nowrap;animation:bob 5s ease-in-out infinite}
.chip b{color:var(--green-ink)}
.chip.c1{left:-12%;top:14%}
.chip.c2{right:-8%;top:46%;animation-delay:-1.6s}
.chip.c3{left:-6%;bottom:12%;animation-delay:-3.2s}
@keyframes bob{50%{transform:translateY(-8px)}}
@media (max-width:860px){.chip.c1{left:0}.chip.c2{right:0}.chip.c3{left:0}}
.scroll-cue{display:inline-flex;align-items:center;gap:.5rem;margin-top:2.4rem;color:#B9C2BD;font-size:.9rem;text-decoration:none}
.scroll-cue span{display:block;width:2px;height:28px;background:linear-gradient(var(--green),transparent);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(.2);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}100%{transform:scaleY(.2);transform-origin:bottom}}

/* marquee */
.marquee{background:var(--green);color:#fff;overflow:hidden;padding:1rem 0;border-top:1px solid rgba(255,255,255,.2)}
.marquee-track{display:flex;width:max-content;animation:marquee 32s linear infinite}
.marquee-track span{font-weight:700;font-size:clamp(1.2rem,calc(2.4 * var(--vw)),1.8rem);letter-spacing:.02em;text-transform:uppercase;padding:0 1.6rem;display:flex;align-items:center;gap:1.6rem;white-space:nowrap}
.marquee-track span::after{content:"";width:22px;height:22px;background:url("/assets/logo-icon.png") center/contain no-repeat;border-radius:5px;filter:brightness(0) invert(1);opacity:.85}
@keyframes marquee{to{transform:translateX(-50%)}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.stat{border-left:.25rem solid var(--green);padding-left:1.1rem}
.stat .num{display:block;font-size:clamp(2.4rem,calc(5 * var(--vw)),3.8rem);font-weight:700;line-height:1;letter-spacing:-.02em}
.stat .num small{font-size:.45em;font-weight:600;margin-left:.15em;color:var(--green-ink)}
.stat .lbl{display:block;color:var(--muted);margin-top:.5rem;font-size:.98rem}
@media (max-width:800px){.stats{grid-template-columns:repeat(2,1fr);row-gap:2rem}}

/* big statement */
.statement{background:var(--charcoal);color:#fff;padding:clamp(4.5rem,calc(11 * var(--vw)),8.5rem) 0}
.statement h2{font-size:clamp(2.4rem,calc(6.4 * var(--vw)),5.4rem);line-height:1.02;max-width:11em;text-transform:uppercase;letter-spacing:-.01em;color:#fff}
.statement h2 em{font-style:normal;color:var(--green)}
.statement p{font-size:1.2rem;color:#D5DAD7;max-width:34em;margin-top:1.5rem}

/* chart draw */
.js .chart-fig polyline{stroke-dasharray:1200;stroke-dashoffset:1200;transition:stroke-dashoffset 2.2s ease}
.js .chart-fig.in polyline{stroke-dashoffset:0}
.js .chart-fig.in polyline + polyline{transition-delay:.5s}

/* photo hover */
.media-pair img{transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}
.media-pair img:hover{transform:translateY(-6px) rotate(-1deg);box-shadow:0 18px 40px rgba(0,0,0,.18)}
.media-pair img:nth-child(2){margin-top:2.5rem}
.media-pair img:nth-child(2):hover{transform:translateY(-6px) rotate(1deg)}

/* wind simulator */
.sim{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,calc(4 * var(--vw)),3.5rem);align-items:center;background:var(--charcoal);color:#fff;border-radius:16px;padding:clamp(1.5rem,calc(4 * var(--vw)),3rem);border-bottom:.6rem solid var(--green)}
.sim h2{color:#fff;margin-bottom:.3em}
.sim p{color:#D5DAD7}
.sim-rotor{width:clamp(160px,calc(22 * var(--vw)),240px);height:auto}
.sim-rotor .blades{transform-box:fill-box;transform-origin:center;animation:simspin linear infinite;animation-duration:var(--dur,0s);animation-play-state:var(--play,paused)}
@keyframes simspin{to{transform:rotate(-360deg)}}
.sim-read{display:flex;gap:2.5rem;flex-wrap:wrap;margin:1rem 0 1.2rem}
.sim-read div{min-width:7rem}
.sim-read .big{display:block;font-size:clamp(2.2rem,calc(4.5 * var(--vw)),3.2rem);font-weight:700;line-height:1}
.sim-read .big small{font-size:.45em;color:#8FDCA3;margin-left:.15em}
.sim-read .lbl{color:#B9C2BD;font-size:.9rem}
.sim input[type=range]{width:100%;accent-color:var(--green);height:2rem;cursor:pointer}
.sim-status{font-weight:600;min-height:1.5em;color:#8FDCA3;margin:.3rem 0 0}
.sim-status.warn{color:var(--sun)}
@media (max-width:700px){.sim{grid-template-columns:1fr;justify-items:center}.sim > div{width:100%}}

@media (prefers-reduced-motion:reduce){
  .js .reveal,.js .stagger > *{opacity:1;transform:none;transition:none}
  .marquee-track,.chip,.scroll-cue span{animation:none}
  .js .chart-fig polyline{stroke-dashoffset:0;transition:none}
}
.hero-v3{border-bottom:0}

/* ===== v4: full-screen home hero ===== */
.home .site-header{position:fixed;left:0;right:0;background:transparent;border-bottom-color:transparent;transition:background .35s,border-color .35s}
.home .site-header:not(.solid) .nav nav a:not(.btn){color:#fff}
.home .site-header:not(.solid) .nav-toggle{color:#fff;border-color:rgba(255,255,255,.4)}
.home .site-header.solid{background:var(--white);border-bottom-color:var(--line)}
@media (max-width:780px){.home .site-header:not(.solid) .nav nav{background:var(--charcoal)}}

.hero-full{position:relative;height:calc(100 * var(--vh));min-height:540px;overflow:hidden;color:#fff;isolation:isolate;
  background:linear-gradient(180deg,#0d1317 0%,#151d26 38%,#2a2638 70%,#4a3443 88%,#5e3e47 100%)}
.hero-full::before{content:"";position:absolute;inset:0;z-index:-2;opacity:.8;
  background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,transparent),radial-gradient(1px 1px at 27% 9%,#fff 50%,transparent),radial-gradient(1.5px 1.5px at 41% 23%,#fff 50%,transparent),radial-gradient(1px 1px at 55% 12%,#fff 50%,transparent),radial-gradient(1px 1px at 68% 28%,#fff 50%,transparent),radial-gradient(1.5px 1.5px at 79% 7%,#fff 50%,transparent),radial-gradient(1px 1px at 88% 21%,#fff 50%,transparent),radial-gradient(1px 1px at 6% 34%,#fff 50%,transparent),radial-gradient(1px 1px at 35% 38%,#fff 50%,transparent),radial-gradient(1px 1px at 94% 40%,#fff 50%,transparent);
  animation:twinkle 6s ease-in-out infinite alternate}
@keyframes twinkle{to{opacity:.35}}
.hero-full::after{content:"";position:absolute;left:-10%;right:-10%;bottom:calc(-30 * var(--vh));height:calc(70 * var(--vh));z-index:-2;background:radial-gradient(ellipse at 60% 40%,rgba(233,140,90,.35),rgba(233,140,90,0) 60%)}
.hero-wind{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.hero-wind path{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:140 1600;animation:flow linear infinite}
.hero-wind path.g{stroke:rgba(122,214,140,.55);stroke-width:2}
.hero-wind path.w{stroke:rgba(255,255,255,.22);stroke-width:1.4}
@keyframes flow{from{stroke-dashoffset:1740}to{stroke-dashoffset:0}}

.hero-full .hf-inner{position:relative;height:100%;width:100%;max-width:min(1500px,calc(94 * var(--vw)));margin:0 auto;padding:0 calc(3 * var(--vw))}
.hf-copy{position:absolute;left:calc(3 * var(--vw));top:50%;transform:translateY(-46%);width:min(calc(46 * var(--vw)),52rem)}
.hf-eyebrow{font-size:max(.75rem,min(calc(1.1 * var(--vw)),calc(1.8 * var(--vh))));letter-spacing:.32em;text-transform:uppercase;color:#C9D3CD;margin:0 0 calc(2.2 * var(--vh))}
.hf-title{font-family:"Oswald",var(--font);font-weight:600;text-transform:uppercase;line-height:.94;letter-spacing:.005em;font-size:min(calc(8.4 * var(--vw)),calc(13.5 * var(--vh)));margin:0 0 calc(2.4 * var(--vh));max-width:none}
.hf-title .accent{color:#6FE08A;display:block}
.hero-full .cycler{font-size:min(calc(2 * var(--vw)),calc(3.2 * var(--vh)));margin-bottom:calc(2 * var(--vh))}
.hf-lede{font-size:min(calc(1.35 * var(--vw)),calc(2.3 * var(--vh)));color:#D5DAD7;max-width:34em;margin:0}
.hero-full .actions{margin-top:calc(3.4 * var(--vh))}
.hero-full .btn{font-size:min(calc(1.15 * var(--vw)),calc(2 * var(--vh)));padding:calc(1.6 * var(--vh)) calc(2.4 * var(--vh))}
.hero-full .btn-line{color:#fff;border-color:#fff}
.hero-full .btn-line:hover{background:#fff;color:var(--charcoal)}

.hf-unit{position:absolute;left:47%;top:calc(11 * var(--vh));height:calc(80 * var(--vh));width:auto;max-width:none;filter:drop-shadow(0 30px 40px rgba(0,0,0,.55));animation:hover-unit 7s ease-in-out infinite;will-change:transform}
.hf-unit-wrap{position:absolute;inset:0;pointer-events:none;transition:transform .4s ease-out}
.hf-shadow{position:absolute;left:47%;top:calc(88 * var(--vh));width:calc(calc(80 * var(--vh)) * .704);height:calc(3.4 * var(--vh));border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.55),transparent 70%);animation:shadow 7s ease-in-out infinite}
@keyframes hover-unit{50%{transform:translateY(calc(-1.6 * var(--vh)))}}
@keyframes shadow{50%{transform:scale(.9);opacity:.75}}

.hf-card{position:absolute;right:calc(3 * var(--vw));bottom:calc(8 * var(--vh));width:min(calc(22 * var(--vw)),calc(40 * var(--vh)));background:rgba(255,255,255,.94);color:var(--ink);border-radius:calc(2 * var(--vh));padding:calc(1.4 * var(--vh));box-shadow:0 20px 50px rgba(0,0,0,.35);text-decoration:none;display:block;transition:transform .3s}
.hf-card:hover{transform:translateY(-4px);color:var(--ink)}
.hf-card video{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:calc(1.3 * var(--vh));background:#222}
.hf-card .hf-card-row{display:flex;justify-content:space-between;align-items:center;gap:calc(1 * var(--vh));padding:calc(1.2 * var(--vh)) calc(.6 * var(--vh)) calc(.2 * var(--vh))}
.hf-card b{display:block;font-size:min(calc(1.15 * var(--vw)),calc(2 * var(--vh)))}
.hf-card span.sub{display:block;font-size:min(calc(.95 * var(--vw)),calc(1.6 * var(--vh)));color:var(--muted)}
.hf-card .arrow{flex:none;width:calc(4.6 * var(--vh));height:calc(4.6 * var(--vh));border-radius:50%;background:var(--charcoal);color:#fff;display:grid;place-items:center;font-size:calc(2.2 * var(--vh))}

.hf-stats{position:absolute;left:calc(3 * var(--vw));bottom:calc(5 * var(--vh));display:flex;gap:calc(3.4 * var(--vw));margin:0;padding:0;list-style:none}
.hf-stats li{border-left:3px solid var(--green);padding-left:calc(1 * var(--vw))}
.hf-stats .num{display:block;font-family:"Oswald",var(--font);font-weight:600;font-size:min(calc(2.6 * var(--vw)),calc(4.4 * var(--vh)));line-height:1}
.hf-stats .num small{font-size:.5em;color:#8FDCA3;margin-left:.15em;font-family:var(--font)}
.hf-stats .lbl{font-size:min(calc(.9 * var(--vw)),calc(1.55 * var(--vh)));color:#B9C2BD}
.hf-down{position:absolute;left:50%;bottom:calc(3 * var(--vh));transform:translateX(-50%);width:calc(6 * var(--vh));height:calc(6 * var(--vh));border:1.5px solid rgba(255,255,255,.55);border-radius:50%;display:grid;place-items:center;color:#fff;text-decoration:none;font-size:calc(2.2 * var(--vh));animation:nudge 2.4s ease-in-out infinite}
.hf-down:hover{color:#fff;border-color:#fff}
@keyframes nudge{50%{transform:translate(-50%,calc(.8 * var(--vh)))}}

@media (max-width:860px){
  .hf-copy{left:calc(5 * var(--vw));right:calc(5 * var(--vw));width:auto;top:auto;bottom:calc(22 * var(--vh));transform:none}
  .hf-title{font-size:min(calc(15 * var(--vw)),calc(9 * var(--vh)))}
  .hero-full .cycler{font-size:1.1rem}
  .hf-lede{font-size:1rem}
  .hero-full .btn{font-size:.95rem;padding:.75rem 1.1rem}
  .hf-eyebrow{font-size:.72rem}
  .hf-unit{left:auto;right:calc(-14 * var(--vw));top:calc(12 * var(--vh));height:calc(56 * var(--vh));opacity:.45}
  .hf-shadow,.hf-card,.hf-down{display:none}
  .hf-stats{left:calc(5 * var(--vw));right:calc(5 * var(--vw));bottom:calc(4 * var(--vh));gap:calc(5 * var(--vw));flex-wrap:wrap}
  .hf-stats .num{font-size:1.5rem}.hf-stats .lbl{font-size:.75rem}.hf-stats li{padding-left:.6rem}
}
@media (max-width:860px) and (max-height:700px){.hf-lede{display:none}}

/* ===== v4: product page ===== */
.ph{position:relative;background:var(--charcoal);color:#fff;padding:clamp(3rem,calc(7 * var(--vw)),5rem) 0 0;overflow:visible;z-index:2}
.ph .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:start}
.ph h1{font-family:"Oswald",var(--font);text-transform:uppercase;font-weight:600;font-size:clamp(3rem,calc(6.5 * var(--vw)),5.6rem);line-height:.95;max-width:9em}
.ph h1 .accent{color:#6FE08A}
.ph .tag{font-size:1.3rem;font-weight:500;margin-bottom:1rem}
.ph p{color:#D5DAD7}
.ph .ph-copy{padding-bottom:clamp(3rem,calc(7 * var(--vw)),5.5rem)}
.ph .btn-line{color:#fff;border-color:#fff}
.ph .btn-line:hover{background:#fff;color:var(--charcoal)}
.ph-unit{position:relative;margin:-1rem 0 -16rem;justify-self:center;width:min(100%,460px)}
.ph-unit img{width:100%;filter:drop-shadow(0 40px 45px rgba(0,0,0,.45));animation:hover-unit 7s ease-in-out infinite}
.ph-stripe{height:.75rem;background:var(--green)}
.glance{padding-top:clamp(3rem,calc(6 * var(--vw)),4.5rem)}
.glance .stats{max-width:56%}
@media (max-width:860px){.ph .wrap{grid-template-columns:1fr}.ph-unit{margin:0 auto -8rem;width:min(80%,360px)}.glance{padding-top:10rem}.glance .stats{max-width:none}}

.curve-panel{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(1.5rem,calc(4 * var(--vw)),3rem);align-items:center;background:var(--charcoal);color:#fff;border-radius:16px;padding:clamp(1.5rem,calc(4 * var(--vw)),3rem);border-bottom:.6rem solid var(--green)}
.curve-panel h2{color:#fff}
.curve-panel p{color:#D5DAD7}
.pc svg{width:100%;height:auto;display:block;overflow:visible}
.pc .grid line{stroke:rgba(255,255,255,.12);stroke-width:1}
.pc .axis text{fill:#9AA39E;font-family:var(--font);font-size:12px}
.pc .axis .t{fill:#B9C2BD;font-size:12px;font-weight:500}
.pc .curve{fill:none;stroke:#6FE08A;stroke-width:3.5;stroke-linejoin:round}
.pc .area{fill:url(#pcfill)}
.pc .brake{fill:rgba(233,185,73,.10)}
.pc .brake-t{fill:#E9B949;font-family:var(--font);font-size:11px;font-weight:600}
.pc .rated{stroke:rgba(255,255,255,.35);stroke-dasharray:4 5}
.pc .rated-t{fill:#B9C2BD;font-family:var(--font);font-size:11px}
.pc .guide{stroke:rgba(255,255,255,.5);stroke-dasharray:3 4}
.pc .dot{fill:#fff;stroke:var(--green);stroke-width:4}
.pc input[type=range]{width:100%;accent-color:var(--green);margin-top:.6rem;cursor:pointer}
.js .pc .curve{stroke-dasharray:1400;stroke-dashoffset:1400;transition:stroke-dashoffset 2s ease}
.js .pc.in .curve{stroke-dashoffset:0}
.cp-read{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:center;margin:1.2rem 0 .4rem}
.cp-read .sim-rotor{width:5.75rem}
.cp-read .big{display:block;font-family:"Oswald",var(--font);font-weight:600;font-size:clamp(2.2rem,calc(4 * var(--vw)),3rem);line-height:1}
.cp-read .big small{font-family:var(--font);font-size:.42em;color:#8FDCA3;margin-left:.15em}
.cp-read .lbl{color:#B9C2BD;font-size:.88rem}
@media (max-width:900px){.curve-panel{grid-template-columns:1fr}}

.specs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:2rem}
.spec-card{background:var(--white);border-radius:14px;padding:1.6rem 1.7rem 1rem;box-shadow:0 1px 0 var(--line)}
.spec-card h3{display:flex;align-items:center;gap:.7rem;font-size:1.2rem;margin-bottom:.6rem}
.spec-card h3::before{content:"";width:12px;height:12px;border-radius:3px;background:var(--green)}
.spec-card.solar h3::before{background:var(--sun)}
.spec-card.dims h3::before{background:var(--charcoal)}
.spec-card.elec h3::before{background:#6FA8C7}
.spec-card dl{margin:0}
.spec-card dl div{display:flex;justify-content:space-between;gap:1.5rem;padding:.7rem 0;border-top:1px solid var(--line)}
.spec-card dt{color:var(--muted);font-size:.95rem}
.spec-card dd{margin:0;font-weight:600;text-align:right}
.spec-card dd small{display:block;font-weight:400;color:var(--muted);font-size:.82rem}
.spec-card .note{font-size:.82rem;color:var(--muted);margin:.2rem 0 .6rem}
@media (max-width:820px){.specs-grid{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
  .hero-wind path,.hf-unit,.hf-shadow,.hf-down,.hero-full::before,.ph-unit img{animation:none}
  .js .pc .curve{stroke-dashoffset:0;transition:none}
}
/* v4 layout fixes */
.hf-copy{top:calc(13 * var(--vh));bottom:calc(4.5 * var(--vh));transform:none;width:calc(44 * var(--vw));display:flex;flex-direction:column}
.hf-main{margin:auto 0}
.hf-title{font-size:min(calc(7.4 * var(--vw)),calc(12 * var(--vh)))}
.hf-stats{position:static;margin-top:calc(3 * var(--vh))}
.hf-unit{left:51%;height:calc(76 * var(--vh));top:calc(13 * var(--vh))}
.hf-shadow{left:51%;top:calc(87 * var(--vh));width:calc(calc(76 * var(--vh)) * .704)}
@media (max-width:1200px){.hf-down{display:none}}
@media (max-width:860px){
  .hf-copy{left:calc(5 * var(--vw));right:calc(5 * var(--vw));width:auto;top:calc(11 * var(--vh));bottom:calc(3 * var(--vh))}
  .hf-stats{position:static}
  .hf-unit{left:auto;right:calc(-16 * var(--vw));top:calc(10 * var(--vh));height:calc(58 * var(--vh))}
}
.hf-card{width:min(calc(19 * var(--vw)),calc(34 * var(--vh)));bottom:calc(6 * var(--vh))}
.hf-card video{aspect-ratio:16/11}
.hf-unit{left:49%}.hf-shadow{left:49%}
/* hero scales with the window, so zooming out keeps the same composition */
.hero-full .hf-inner{max-width:none;padding:0}
.hf-copy{left:calc(6 * var(--vw));width:calc(42 * var(--vw))}
.hf-card{right:calc(5 * var(--vw))}
.home .site-header .wrap{max-width:none;padding:0 calc(6 * var(--vw))}

@media (max-width:860px){.hf-copy{left:calc(5 * var(--vw));width:auto}}
.ph-unit{align-self:end;margin:0 0 -10rem;width:min(100%,32.5rem)}
@media (max-width:860px){.ph-unit{align-self:auto;margin:0 auto -7rem;width:min(78%,360px)}.glance{padding-top:9rem}}

/* ===== v5: whole site scales with the window ===== */
html{font-size:max(15px,calc(1.4 * var(--vw)))}
@media (max-width:780px){html{font-size:16px}}

/* ===== v5: landscape scene behind the unit ===== */
.scene{position:absolute;inset:0;z-index:-1;pointer-events:none}
.scene .layer{position:absolute;left:calc(-2 * var(--vw));width:calc(104 * var(--vw));transition:transform .5s ease-out}
.scene .far{bottom:calc(9 * var(--vh));height:calc(34 * var(--vh))}
.scene .mid{bottom:0;height:calc(24 * var(--vh))}
.scene .near{bottom:0;height:calc(16 * var(--vh))}
.scene .tw{animation:twinkle 3s ease-in-out infinite alternate}
.hero-full{background:linear-gradient(180deg,#0b1016 0%,#141b26 34%,#29263a 58%,#56384a 74%,#8a5150 84%,#2a2a3d 100%)}
.hero-full::after{bottom:calc(-12 * var(--vh));height:calc(60 * var(--vh));background:radial-gradient(ellipse at 62% 38%,rgba(255,150,100,.38),rgba(255,150,100,0) 62%)}
.hero-wind{z-index:-1}
.hf-unit{animation:none;left:calc(calc(64 * var(--vw)) - calc(20.9 * var(--vh)));top:calc(12 * var(--vh));height:calc(76 * var(--vh));filter:drop-shadow(0 0 calc(1.5 * var(--vh)) rgba(255,170,130,.18)) drop-shadow(0 calc(2 * var(--vh)) calc(2 * var(--vh)) rgba(0,0,0,.5))}
.hf-shadow{animation:none;left:calc(calc(64 * var(--vw)) - calc(24 * var(--vh)));top:calc(84.5 * var(--vh));width:calc(52 * var(--vh));height:calc(6 * var(--vh));background:radial-gradient(ellipse,rgba(0,0,0,.75),transparent 70%)}
.hf-unit-wrap,.scene .layer{will-change:transform}
@media (max-width:860px){
  .hf-unit{left:auto;right:calc(-10 * var(--vw));top:auto;bottom:calc(12 * var(--vh));height:calc(54 * var(--vh));opacity:.4}
  .scene .far{bottom:calc(8 * var(--vh));height:calc(24 * var(--vh))}.scene .mid{height:calc(16 * var(--vh))}.scene .near{height:calc(11 * var(--vh))}
}
@media (prefers-reduced-motion:reduce){.scene .tw{animation:none}.scene .layer{transition:none}}
.hf-unit{left:calc(calc(60 * var(--vw)) - calc(15.9 * var(--vh)));top:calc(30 * var(--vh));height:calc(58 * var(--vh));filter:brightness(.86) saturate(.95) drop-shadow(0 0 calc(1.2 * var(--vh)) rgba(255,170,130,.22)) drop-shadow(0 calc(1.5 * var(--vh)) calc(1.5 * var(--vh)) rgba(0,0,0,.5))}
.hf-shadow{left:calc(calc(60 * var(--vw)) - calc(16 * var(--vh)));top:calc(85.6 * var(--vh));width:calc(42 * var(--vh));height:calc(4.5 * var(--vh))}
@media (max-width:860px){.hf-unit{left:auto;right:calc(-6 * var(--vw));top:auto;bottom:calc(12 * var(--vh));height:calc(46 * var(--vh));opacity:.4}}
@media (max-width:860px){.hf-unit,.hf-shadow{display:none}}

/* ===== v8: zoom-friendly fluid layout =====
   Text is part fixed, part window-based: zoom in/out still works like any site,
   but zooming out shrinks text less and every container stays full width. */
.home .site-header .wrap{padding:0 calc(6 * var(--vw))}
/* hero: type in rem so it responds to zoom like the rest of the page */
.hf-copy{width:min(calc(44 * var(--vw)),48rem)}
.hf-eyebrow{font-size:.8rem;margin-bottom:1.2rem}
.hf-title{font-size:min(5.6rem,calc(12 * var(--vh)),calc(7 * var(--vw)));margin-bottom:1.2rem}
.hero-full .cycler{font-size:1.45rem;margin-bottom:1rem}
.hf-lede{font-size:1.1rem}
.hero-full .actions{margin-top:1.8rem}
.hero-full .btn{font-size:1rem;padding:.85rem 1.4rem}
.hf-stats{margin-top:2rem;gap:2.4rem}
.hf-stats li{padding-left:.8rem}
.hf-stats .num{font-size:2.3rem}
.hf-stats .lbl{font-size:.85rem}
.hf-card{width:min(19rem,calc(24 * var(--vw)));border-radius:1rem;padding:.75rem}
.hf-card video{border-radius:.7rem}
.hf-card .hf-card-row{padding:.7rem .3rem .1rem;gap:.6rem}
.hf-card b{font-size:1rem}.hf-card span.sub{font-size:.82rem}
.hf-card .arrow{width:2.6rem;height:2.6rem;font-size:1.2rem}
@media (max-width:860px){.hf-copy{width:auto}.hf-title{font-size:min(3.4rem,calc(12 * var(--vw)))}.hf-stats{gap:1.2rem}.hf-stats .num{font-size:1.5rem}}
.hf-card{width:min(17rem,calc(22 * var(--vw)))}
.hf-unit{left:calc(calc(57 * var(--vw)) - calc(15.9 * var(--vh)))}
.hf-shadow{left:calc(calc(57 * var(--vw)) - calc(16 * var(--vh)))}
@media (max-width:860px){.hf-unit{left:auto}}

/* ===== v11: content sized up to fill the screen ===== */
.wrap{max-width:none;padding:0 calc(6 * var(--vw))}
@media (max-width:780px){.wrap{padding:0 1.1rem}}
/* hero must always fit one screen: cap type by screen height too */
.hf-copy{width:min(calc(46 * var(--vw)),52rem)}
.hf-eyebrow{font-size:min(.8rem,calc(1.6 * var(--vh)));margin-bottom:min(1.2rem,calc(2 * var(--vh)))}
.hf-title{font-size:min(5.6rem,calc(11 * var(--vh)),calc(7 * var(--vw)));margin-bottom:min(1.2rem,calc(2 * var(--vh)))}
.hero-full .cycler{font-size:min(1.45rem,calc(3 * var(--vh)));margin-bottom:min(1rem,calc(1.8 * var(--vh)))}
.hf-lede{font-size:min(1.1rem,calc(2.3 * var(--vh)))}
.hero-full .actions{margin-top:min(1.8rem,calc(3 * var(--vh)))}
.hero-full .btn{font-size:min(1rem,calc(2.1 * var(--vh)));padding:min(.85rem,calc(1.6 * var(--vh))) min(1.4rem,calc(2.8 * var(--vh)))}
.hf-stats{margin-top:min(2rem,calc(3 * var(--vh)))}
.hf-stats .num{font-size:min(2.3rem,calc(4.6 * var(--vh)))}
.hf-stats .lbl{font-size:min(.85rem,calc(1.7 * var(--vh)))}
.hf-card{width:min(17rem,calc(22 * var(--vw)),calc(36 * var(--vh)))}
@media (max-width:860px){.hf-copy{width:auto}}
.hf-copy{width:min(calc(42 * var(--vw)),52rem)}
.hf-unit{left:calc(59 * var(--vw) - 14.3 * var(--vh));top:calc(36 * var(--vh));height:calc(52 * var(--vh))}
.hf-shadow{left:calc(59 * var(--vw) - 14 * var(--vh));width:calc(37 * var(--vh))}
@media (max-width:860px){.hf-copy{width:auto}}
.chart-fig .d-text{font-size:17px}
.pc .axis text{font-size:15px}.pc .axis .t{font-size:15px}.pc .brake-t,.pc .rated-t{font-size:13px}

/* ===== v12: subpages a step smaller than the landing page ===== */
html{font-size:max(15px,calc(1.2 * var(--vw)))}
html:has(body.home){font-size:max(15px,calc(1.4 * var(--vw)))}
@media (max-width:780px){html,html:has(body.home){font-size:16px}}
.dark.hero{padding:2.6rem 0 2.4rem}
.dark.hero h1{font-size:3rem;max-width:none;margin-bottom:.35em}
.dark.hero .lede{font-size:1.1rem;max-width:44em}
.ph{padding-top:2.6rem}
.ph h1{font-size:3.6rem}
.ph .ph-copy{padding-bottom:2.6rem}
section{padding:4rem 0}
.hero-full{padding:0}
@media (max-width:780px){.dark.hero h1{font-size:2.2rem}.ph h1{font-size:2.6rem}section{padding:3rem 0}}
.ph-unit{width:min(100%,22rem);margin-bottom:-7rem}
.glance{padding-top:3rem}
@media (max-width:860px){.ph-unit{width:min(70%,18rem);margin:0 auto -6rem}.glance{padding-top:8rem}}

/* ===== v14: value prop, use cases, about, team, feasibility tool ===== */
.statement .wrap > .reveal{max-width:52rem}
.pains{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:3rem}
.pains div{border-top:3px solid var(--green);padding-top:1rem}
.pains h3{color:#fff;font-size:1.05rem;margin-bottom:.3em}
.pains p{font-size:.98rem;color:#B9C2BD;margin:0}
@media (max-width:760px){.pains{grid-template-columns:1fr}}

.usecases{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;list-style:none;padding:0;margin:2.2rem 0 0}
.usecases li{background:var(--white);border-radius:.9rem;padding:1.3rem 1.3rem 1.1rem;border-top:4px solid var(--green)}
.usecases h3{font-size:1.05rem;margin-bottom:.35em}
.usecases p{margin:0;color:var(--muted);font-size:.95rem}
@media (max-width:960px){.usecases{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.usecases{grid-template-columns:1fr}}

.mission{background:var(--green);color:#fff;text-align:center}
.mission .wrap > *{margin-left:auto;margin-right:auto}
.mission-kicker{font-size:.85rem;letter-spacing:.3em;text-transform:uppercase;color:#D9F3E0;margin-bottom:1rem}
.mission h2{color:#fff;max-width:18em;font-size:clamp(1.9rem,4vw,3rem)}
.mission .lede{color:#EAF7EE;max-width:40em}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2rem}
.values div{background:var(--white);border-radius:.9rem;padding:1.5rem;border-top:4px solid var(--green)}
.values h3{margin-bottom:.4em}
.values p{margin:0;color:var(--muted);font-size:.98rem}
@media (max-width:860px){.values{grid-template-columns:1fr}}

.logos{display:flex;flex-wrap:wrap;gap:1.2rem;list-style:none;padding:0;margin:1.5rem 0 0}
.logos li{flex:1 1 11rem;background:var(--white);border-radius:.9rem;padding:1.4rem 1.6rem;display:grid;place-items:center;min-height:6.5rem}
.logos img{max-height:3.6rem;width:auto;max-width:100%;filter:grayscale(1);opacity:.75;transition:filter .3s,opacity .3s}
.logos li:hover img{filter:none;opacity:1}

.awards{list-style:none;padding:0;margin:0}
.awards li{padding:.45rem 0 .45rem 1.1rem;border-left:3px solid var(--green);margin-bottom:.4rem;font-size:.95rem}
.founder h3{margin-top:1.6rem}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1.2rem;margin-top:1.6rem}
.people div{background:var(--white);border-radius:.9rem;padding:1.3rem 1.4rem;border-left:4px solid var(--green)}
.people h3{margin-bottom:.2em}
.people .role{margin:0;font-size:.92rem}
.subteams .rd{border-top-color:var(--charcoal)}

.tradeoff{margin-top:2rem;overflow-x:auto}
.tradeoff table{width:100%;border-collapse:collapse;background:var(--white);border-radius:.9rem;overflow:hidden;font-size:.95rem}
.tradeoff th,.tradeoff td{padding:.9rem 1rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.tradeoff thead th{background:var(--charcoal);color:#fff;font-weight:600;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase}
.tradeoff tbody th{font-weight:600;white-space:nowrap}
.tradeoff td{color:var(--muted)}
.tradeoff tr.us th,.tradeoff tr.us td{background:#EAF7EE;color:var(--ink);font-weight:600}
.tradeoff tr.us th{color:var(--green-ink)}

/* feasibility tool */
.feas{background:var(--charcoal);color:#fff;border-radius:1rem;padding:clamp(1.5rem,4vw,3rem);border-bottom:.6rem solid var(--green);display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}
.feas h2{color:#fff}
.feas p{color:#D5DAD7}
.feas-head{grid-column:1}
.feas-form{display:grid;gap:1rem;grid-column:2}
.feas-form label{display:grid;gap:.35rem;font-weight:600;font-size:.95rem}
.feas-form input,.feas-form select{font:inherit;font-weight:400;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:.5rem;padding:.75rem .85rem;width:100%}
.feas-actions{display:flex;gap:.8rem;flex-wrap:wrap}
.feas .btn-line{color:#fff;border-color:#fff}
.feas .btn-line:hover{background:#fff;color:var(--charcoal)}
.feas .form-status.err{color:#F2B8B5}
.feas-out{grid-column:1 / -1;border-top:1px solid rgba(255,255,255,.15);padding-top:1.6rem;display:grid;grid-template-columns:1fr 1fr;gap:1.6rem 2.5rem}
.feas-verdict{grid-column:1 / -1;display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;align-items:center}
.feas-badge{display:inline-block;padding:.35rem .8rem;border-radius:999px;font-weight:700;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;background:#6FE08A;color:var(--charcoal)}
.feas-badge.fair{background:var(--sun)}
.feas-badge.low{background:#9AA39E}
.feas-verdict h3{margin:0;color:#fff;font-size:1.3rem}
.feas-verdict p{grid-column:2;margin:0;font-size:.95rem}
.feas-nums{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem 1.5rem;align-content:start}
.feas-nums .big{display:block;font-family:"Oswald",var(--font);font-weight:600;font-size:2.2rem;line-height:1}
.feas-nums .big small{font-family:var(--font);font-size:.42em;color:#8FDCA3;margin-left:.2em}
.feas-nums .lbl{color:#B9C2BD;font-size:.85rem}
.feas-chart svg{width:100%;height:auto;display:block}
.feas-chart .bw{fill:#6FE08A}.feas-chart .bs{fill:var(--sun)}
.feas-chart text{fill:#B9C2BD;font-family:var(--font);font-size:12px}
.feas-out .small{grid-column:1 / -1;color:#9AA39E}
.feas-out .actions{grid-column:1 / -1;margin-top:0}
@media (max-width:860px){.feas{grid-template-columns:1fr}.feas-head,.feas-form{grid-column:1}.feas-out{grid-template-columns:1fr}.feas-nums{grid-template-columns:repeat(2,1fr)}}
.feas-out[hidden]{display:none}

/* ===== v15: cost comparison chart ===== */
.lcoe h2{max-width:none;margin-bottom:2.4rem}
.lc-chart{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;align-items:start}
.lc-track{height:16rem;display:flex;align-items:flex-end;border-bottom:2px solid rgba(255,255,255,.35);margin-bottom:1.1rem}
.lc-bar{position:relative;width:100%;height:calc(var(--h) * 100%);background:#4A524E;border-radius:.5rem .5rem 0 0;transform-origin:bottom;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.lc-col.us .lc-bar{background:var(--green)}
.lc-val{position:absolute;left:0;right:0;bottom:100%;margin-bottom:.4rem;text-align:center;font-family:"Oswald",var(--font);font-weight:600;font-size:2rem;color:#fff;line-height:1}
.lc-val small{font-family:var(--font);font-size:.42em;color:#B9C2BD;margin-left:.15em;font-weight:500}
.lc-col.us .lc-val{color:#6FE08A}
.lc-scale{position:absolute;left:0;right:0;bottom:0;height:calc(var(--s) * 100%);border-top:2px dashed rgba(255,255,255,.85);background:rgba(255,255,255,.12)}
.lc-scale em{position:absolute;right:.5rem;top:.35rem;font-style:normal;font-size:.78rem;font-weight:600;color:#fff;white-space:nowrap}
.lc-col h3{color:#fff;font-size:1.05rem;margin-bottom:.5rem}
.lc-col.us h3{color:#6FE08A}
.lc-col ul{list-style:none;padding:0;margin:0}
.lc-col li{position:relative;padding-left:1.3rem;margin-bottom:.4rem;font-size:.95rem;color:#B9C2BD;line-height:1.45}
.lc-col li::before{content:"✕";position:absolute;left:0;top:0;color:#E58A7B;font-weight:700;font-size:.85rem}
.lc-col.us li{color:#fff}
.lc-col.us li::before{content:"✓";color:#6FE08A}
.lc-line{margin-top:2.4rem;max-width:44em;color:#D5DAD7;font-size:1.1rem}
.lc-note{margin-top:1.2rem;color:#9AA39E;font-size:.88rem}
.lc-note summary{cursor:pointer;color:#B9C2BD;font-weight:500}
.lc-note p{color:#9AA39E;font-size:.88rem;margin:.6rem 0 0;max-width:52em}
.js .lc-chart .lc-bar{transform:scaleY(0)}
.js .lc-chart.in .lc-bar{transform:none}
.js .lc-chart.in .lc-col:nth-child(2) .lc-bar{transition-delay:.12s}
.js .lc-chart.in .lc-col:nth-child(3) .lc-bar{transition-delay:.24s}
.js .lc-chart.in .lc-col:nth-child(4) .lc-bar{transition-delay:.36s}
@media (max-width:860px){.lc-chart{grid-template-columns:repeat(2,1fr);row-gap:2.4rem}.lc-track{height:11rem}.lc-val{font-size:1.5rem}}
@media (prefers-reduced-motion:reduce){.js .lc-chart .lc-bar{transform:none;transition:none}}

/* ===== v16 ===== */
.lc-col li.pro{color:#fff}
.lc-col li.pro::before{content:"✓";color:#6FE08A}
.dn-chart{margin-top:2.5rem;padding:1.6rem 1.8rem 1.1rem}
.dn-chart svg text{font-family:var(--font)}
.dn-chart .pt{font-size:18px}
.dn-chart .ax{font-size:14px}
.js .dn-chart path.lw,.js .dn-chart path.ls{stroke-dasharray:1400;stroke-dashoffset:1400;transition:stroke-dashoffset 2.2s ease}
.js .dn-chart.in path.lw,.js .dn-chart.in path.ls{stroke-dashoffset:0}
.js .dn-chart.in path.lw{transition-delay:.5s}
@media (prefers-reduced-motion:reduce){.js .dn-chart path.lw,.js .dn-chart path.ls{stroke-dashoffset:0;transition:none}}
.lcoe h2{margin-bottom:4.2rem}
/* v17 */
.night-crop video{aspect-ratio:4/5;object-fit:cover;object-position:50% 8%;max-width:26rem}
.dn-chart .lg{font-family:var(--font)}
/* v18: green Leaf everywhere, tuned per background */
.brandword{white-space:nowrap}
.brandword .leaf{color:var(--green)}
.dark .brandword .leaf,.statement .brandword .leaf,.site-footer .brandword .leaf,.ph .brandword .leaf,.feas .brandword .leaf,.curve-panel .brandword .leaf,.hero-full .brandword .leaf,.home .site-header:not(.solid) .brandword .leaf{color:#6FE08A}
.band .brandword .leaf,.mission .brandword .leaf{color:var(--charcoal)}
.btn .brandword .leaf{color:inherit}
.brandword{font-weight:700}
.nav nav .brandword{font-weight:inherit}

/* ===== v21: product page ===== */
.ph h1 br{display:block}
.feas-head p + p{margin-top:-.2rem;font-size:.95rem;color:#B9C2BD}
.feas-money{display:grid;gap:1rem;align-content:start}
.feas-lcoe .big{display:block;font-family:"Oswald",var(--font);font-weight:600;font-size:2.6rem;line-height:1;color:#6FE08A}
.feas-lcoe .big small{font-family:var(--font);font-size:.4em;color:#8FDCA3;margin-left:.15em}
.feas-lcoe .lbl{color:#B9C2BD;font-size:.85rem}
.feas-save .lbl{margin:0 0 .4rem;color:#B9C2BD;font-size:.85rem}
.feas-save ul{list-style:none;padding:0;margin:0}
.feas-save li{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;border-top:1px solid rgba(255,255,255,.12);font-size:.95rem}
.feas-save b{color:#fff}
.feas-nosave{margin:0;font-size:.95rem}
.feas-out{grid-template-columns:1fr 1fr}
.feas-out .feas-chart{grid-column:1 / -1}
.feas-save[hidden],.feas-nosave[hidden]{display:none}

.cmpgrid{margin-top:2rem;background:var(--white);border-radius:1rem;padding:1rem 1.4rem;overflow-x:auto}
.cg-row{display:grid;grid-template-columns:minmax(11rem,1.6fr) repeat(4,minmax(5.5rem,1fr));align-items:center;border-top:1px solid var(--line)}
.cg-row:first-child{border-top:0}
.cg-row > span{padding:.75rem .5rem;text-align:center}
.cg-row > span:first-child{text-align:left;font-weight:600}
.cg-head > span{font-weight:700;font-size:.95rem;line-height:1.2;padding-bottom:1rem}
.cg-row > span.us{background:#EEF8F0}
.cg-head > span.us{color:var(--green-ink);border-radius:.8rem .8rem 0 0}
.cg-row:last-child > span.us{border-radius:0 0 .8rem .8rem}
.cg{display:inline-grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;color:#fff;font-style:normal;font-weight:700;font-size:1.05rem}
.cg.g{background:var(--green)}.cg.y{background:#E3A82B}.cg.r{background:#D9534F}
.cg-legend{display:flex;gap:1.4rem;margin-top:1rem;color:var(--muted);font-size:.9rem;align-items:center}
.cg-legend .cg{width:1.4rem;height:1.4rem;font-size:.75rem;margin-right:.4rem;vertical-align:middle}
@media (max-width:700px){.cmpgrid{padding:.6rem .5rem}.cg-row{grid-template-columns:8.5rem repeat(4,3.6rem)}.cg-head > span{font-size:.72rem}.cg{width:1.7rem;height:1.7rem;font-size:.85rem}}
/* v23: about */
.dark.hero .src{font-size:.82rem;color:#9AA39E;margin-top:.6rem}
.dark.hero .src a{color:#B9C2BD}
.split .q{font-size:1.15rem;font-weight:600}

/* v24: opportunity grid on About */
.opp-split{display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem 3.5rem;align-items:center}
.opp-split .lede{max-width:none}
.opp{margin:0}
.opp-grid{display:grid;grid-template-columns:repeat(45,1fr);gap:2px}
.opp-grid i{display:block;aspect-ratio:1;border-radius:1px;background:rgba(255,255,255,.08)}
.opp.in .opp-grid i{animation:oppOn .5s ease forwards;animation-delay:var(--d)}
.opp-grid i.built{background:#fff;box-shadow:0 0 0 2px #fff,0 0 10px 3px rgba(255,255,255,.6)}
.opp.in .opp-grid i.built{animation:oppPulse 2s ease-in-out infinite;animation-delay:2.4s}
@keyframes oppOn{to{background:#2E8B45}}
@keyframes oppPulse{50%{box-shadow:0 0 0 2px #fff,0 0 16px 6px rgba(255,255,255,.85)}}
.opp-key{margin-top:1.1rem;display:grid;gap:.45rem}
.opp-key p{margin:0;font-size:.92rem;color:#D5DAD7;display:flex;gap:.6rem;align-items:baseline}
.opp-key b{color:#fff}
.sw{flex:none;display:inline-block;width:.8rem;height:.8rem;border-radius:2px;transform:translateY(.1rem)}
.sw.pot{background:#2E8B45}.sw.built{background:#fff;box-shadow:0 0 6px 1px rgba(255,255,255,.7)}
.opp-src{grid-column:1 / -1;margin-top:0}
@media (max-width:860px){.opp-split{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.opp .opp-grid i{animation:none!important;background:#2E8B45}.opp .opp-grid i.built{background:#fff}}
.opp-key p{display:block;padding-left:1.4rem;position:relative}
.opp-key .sw{position:absolute;left:0;top:.35rem;transform:none}
.opp-grid{grid-template-columns:repeat(60,1fr);gap:1.5px}
.opp-hero{padding:3rem 0 3.2rem}
.opp-split{align-items:center;gap:2rem 3rem}
.opp-hero .src{margin-top:1.2rem;max-width:40em}
/* v26: pinned photo on About */
.split:has(.pin-photo){align-items:start}
.pin-photo{position:sticky;top:calc(4.5rem + 2rem);align-self:start}
@media (max-width:860px){.pin-photo{position:static}}

/* v27: team page */
.team-hero{padding:2.4rem 0 2rem}
.team-hero h1{margin:0}
.founder .pitch{margin:2rem 0 0}
.founder .pitch img{border-radius:.75rem;width:100%;aspect-ratio:4/3;object-fit:cover}
.people{grid-template-columns:repeat(4,1fr)}
.people p{font-size:.95rem;color:var(--muted);margin:.4rem 0 0}
.people .role{color:var(--green-ink);font-weight:600;font-size:.9rem;margin-top:.15rem}
.people .school{font-size:.85rem;font-style:italic;margin-top:.8rem}
@media (max-width:1000px){.people{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.people{grid-template-columns:1fr}}
.adv{list-style:none;padding:0;margin:2rem 0 1rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.adv li{display:flex;align-items:center;gap:.9rem;background:var(--white);border-radius:.9rem;padding:1.1rem 1.2rem;font-weight:600;border-left:4px solid var(--green)}
.adv svg{flex:none;width:2rem;height:2rem;stroke:var(--green);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:860px){.adv{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.adv{grid-template-columns:1fr}}
.logos li img[src*="tvcog"]{max-height:4.2rem}
/* v28 */
.founder-side img{border-radius:12px;aspect-ratio:4/5;object-fit:cover;width:100%}
.founder-side h3{margin:1.4rem 0 .6rem;font-size:1rem}
.founder-side .awards li{font-size:.88rem}
.founder .pitch{margin-top:1.4rem}
@media (max-width:720px){.founder-side img{max-width:17.5rem}}
.founder .pitch{max-width:30rem;margin:1.4rem auto 0}.founder .pitch figcaption{text-align:center}
/* v29: wide pitch photo on Team */
.pitch-band{padding-top:0}
.pitch-wide{margin:0}
.pitch-wide img{width:100%;border-radius:1rem;aspect-ratio:16/9;object-fit:cover}
.pitch-wide figcaption{margin-top:.6rem}
/* v30: careers */
.tracks{grid-template-columns:repeat(5,1fr)}
@media (max-width:1100px){.tracks{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.tracks{grid-template-columns:1fr}}
.disciplines{margin-top:1.6rem;font-size:.95rem;color:var(--muted);max-width:none}
.disciplines b{color:var(--ink)}
