
/* HydroMX. LIGHT / BRAND theme. Palette from the HydroMX logo:
   heavy red wordmark + blue wave + flame orange, on white.
   Temperature map = their logo: BLUE = cool intake, RED = rejected heat.
   House rules: no template hero (live sim), no stock gradients (color=temperature),
   nothing moves without a reason. */
:root{
  --paper:#FFFFFF;--paper2:#F4F7FA;--paper3:#EEF3F7;
  --ink:#0C2233;--ink-soft:#4A6274;
  --blue:#0F77B4;--blue-br:#1BA4E0;--blue-deep:#0A4E77;
  --red:#C93415;--red-hot:#E4321A;--orange:#F6850D;
  --line:rgba(12,34,51,.12);--line-strong:rgba(12,34,51,.22);
  --maxw:1240px;--ease:cubic-bezier(.22,.61,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
body{background:var(--paper);color:var(--ink);font-family:'JetBrains Mono','Space Grotesk',ui-monospace,monospace;font-size:14px;line-height:1.6;letter-spacing:-.01em;overflow-x:hidden;-webkit-font-smoothing:antialiased}
::selection{background:var(--red);color:#fff}
.display{font-family:'Archivo Expanded','Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:-.01em;line-height:.92;font-weight:800}
.mono{font-family:'JetBrains Mono',monospace;letter-spacing:.02em}

/* The Loop rail: signature closed circuit. JOB: makes "closed-loop" literal */
.loop-rail{position:fixed;left:max(24px,calc((100vw - var(--maxw))/2 - 40px));top:0;bottom:0;width:2px;z-index:5;pointer-events:none}
.loop-rail .track{position:absolute;inset:0;background:var(--line)}
.loop-rail .fill{position:absolute;left:0;top:0;width:100%;height:0%;background:linear-gradient(180deg,var(--blue),var(--orange) 55%,var(--red));box-shadow:0 0 14px rgba(201,52,21,.35)}
.loop-rail .cell{position:absolute;left:-4px;width:10px;height:10px;border-radius:50%;background:var(--red);box-shadow:0 0 14px 3px rgba(228,50,26,.7);top:0%}
@media (max-width:820px){.loop-rail{display:none}}

nav{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:18px max(24px,5vw);transition:background .4s var(--ease),box-shadow .4s var(--ease)}
nav.solid{background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);box-shadow:0 4px 24px rgba(12,34,51,.06)}
.brand{display:flex;align-items:center;gap:11px;font-family:'Archivo Expanded';font-weight:800;letter-spacing:.02em;font-size:1.05rem;color:#fff;transition:color .4s}
.brand .drop{width:16px;height:20px;position:relative}
.brand .drop::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,var(--orange),var(--red));border-radius:50% 50% 50% 50%/60% 60% 40% 40%}
.brand b{color:#fff;transition:color .4s}
nav.solid .brand{color:var(--red)}nav.solid .brand b{color:var(--ink)}
.navlinks{display:flex;gap:30px;align-items:center}
.navlinks a{color:rgba(255,255,255,.75);text-decoration:none;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;font-weight:500;transition:color .25s}
.navlinks a:hover{color:#fff}
nav.solid .navlinks a{color:var(--ink-soft)}nav.solid .navlinks a:hover{color:var(--red)}
.navcta{border:1.5px solid rgba(255,255,255,.6);color:#fff!important;padding:9px 18px;border-radius:3px;transition:all .25s!important;font-weight:600}
.navcta:hover{background:#fff;color:var(--ink)!important}
nav.solid .navcta{border-color:var(--red);color:var(--red)!important}
nav.solid .navcta:hover{background:var(--red);color:#fff!important}
@media(max-width:820px){.navlinks a:not(.navcta){display:none}}

section{position:relative;padding:clamp(90px,14vh,180px) max(24px,5vw)}
.wrap{max-width:var(--maxw);margin:0 auto}
.eyebrow{font-family:'JetBrains Mono';font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--blue);display:flex;align-items:center;gap:12px;margin-bottom:26px;font-weight:500}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--red)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}.reveal.d3{transition-delay:.3s}.reveal.d4{transition-delay:.4s}

/* ---------- Cinematic section transitions ----------
   JOB: each section arrives like a film cut. As a section enters, a curtain
   of its own color sweeps up and off, revealing the content behind it, while
   the content itself lifts and settles. Real motion, not a static gradient. */
.cinematic{position:relative;isolation:isolate}
.cinematic > .wrap{position:relative;z-index:2;opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}
html.js .cinematic:not(.enter) > .wrap{opacity:0;transform:translateY(18px)}
.cinematic.enter > .wrap{opacity:1;transform:none}
/* animated sweep veil: sits BEHIND content (z-index 1), starts full, wipes away on enter, then pointer-none and gone */
.cinematic::before{content:none!important;display:none!important}
/* veil removed */
/* veil removed */
#problem{--sweep:rgba(10,78,119,.5)}
#fluid-sec{--sweep:rgba(15,119,180,.28)}
#loop-sec{--sweep:rgba(201,52,21,.42)}
#proof{--sweep:rgba(15,119,180,.28)}
#money{--sweep:rgba(15,119,180,.5)}
#return{--sweep:rgba(10,78,119,.5)}
@media (prefers-reduced-motion:reduce){
  .cinematic > .wrap{opacity:1;transform:none}
  .cinematic::after{display:none}
}

#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-top:120px;overflow:hidden;background:#020509}
#fluidwrap{position:absolute;inset:0;z-index:0}
#fluid,#fluid2{position:absolute;inset:0;width:100%;height:100%}
#fluid2{mix-blend-mode:screen;opacity:.9}
/* JOB: darken lower-left so the headline reads in light over the fluid, no flat overlay */
#hero .veil{position:absolute;inset:0;z-index:1;background:
  radial-gradient(130% 100% at 80% 15%, rgba(228,50,26,.24), transparent 52%),
  radial-gradient(120% 110% at 10% 95%, rgba(2,5,9,.94), transparent 58%),
  linear-gradient(180deg, rgba(2,5,9,.45) 0%, transparent 28%, transparent 58%, rgba(2,5,9,.85) 100%)}
#hero .wrap{position:relative;z-index:2}
.hero-h{font-size:clamp(2.9rem,8.5vw,7.4rem);max-width:16ch;color:#fff;text-shadow:0 2px 40px rgba(5,11,20,.5)}
.hero-h .word{display:inline-block;opacity:0;transform:translateY(40px) rotate(2deg);animation:heroword .9s var(--ease) forwards}
@keyframes heroword{to{opacity:1;transform:none}}
.hero-h .hot{color:var(--red)}
.hero-sub{margin-top:32px;max-width:54ch;font-size:1.02rem;color:rgba(255,255,255,.82);opacity:0;animation:fadeup 1s var(--ease) 1s forwards}
@keyframes fadeup{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.hero-cta{margin-top:40px;display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:fadeup 1s var(--ease) 1.2s forwards}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 28px;border-radius:3px;text-decoration:none;font-weight:600;font-size:.95rem;letter-spacing:.02em;transition:all .3s var(--ease)}
.btn-primary{background:var(--red);color:#fff;box-shadow:0 8px 30px rgba(228,50,26,.35)}
.btn-primary:hover{background:var(--red-hot);transform:translateY(-2px);box-shadow:0 14px 40px rgba(228,50,26,.5)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.5);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.hero-readout{position:absolute;right:max(24px,5vw);bottom:52px;z-index:2;text-align:right;font-family:'JetBrains Mono';font-size:.74rem;color:rgba(255,255,255,.55);line-height:1.9;opacity:0;animation:fadeup 1s 1.4s forwards}
.hero-readout b{color:var(--blue-br);font-weight:500}.hero-readout .hb{color:#FF8A5C}
@media(max-width:820px){.hero-readout{display:none}}
.scrollcue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:2;font-family:'JetBrains Mono';font-size:.68rem;letter-spacing:.2em;color:rgba(255,255,255,.6);text-transform:uppercase;opacity:0;animation:fadeup 1s 1.6s forwards}
.scrollcue span{display:block;width:2px;height:34px;background:linear-gradient(#FF8A5C,transparent);margin:10px auto 0;animation:cuedrop 1.8s var(--ease) infinite}
@keyframes cuedrop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

#problem{background:linear-gradient(180deg,#0A4E77,#0A4E77);color:#EAF3FA}
.problem-h{font-size:clamp(2rem,5vw,4rem);max-width:18ch;color:#fff}
#problem .eyebrow{color:#8FD0F5}#problem .eyebrow::before{background:#fff}
#problem .stat{border-top:2px solid rgba(255,255,255,.25)}
#problem .stat .n{color:#fff}#problem .stat .n small{color:#FF8A5C}
#problem .stat .l{color:rgba(234,243,250,.7)}
.heatword{color:var(--red);position:relative;display:inline-block}
.heatword::after{content:"";position:absolute;inset:-2px -4px;background:radial-gradient(circle,rgba(228,50,26,.18),transparent 70%);filter:blur(8px);animation:shimmer 3s ease-in-out infinite;z-index:-1}
@keyframes shimmer{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:70px}
@media(max-width:760px){.stat-row{grid-template-columns:1fr;gap:44px}}
.stat{border-top:2px solid var(--line-strong);padding-top:22px}
.stat .n{font-family:'Archivo Expanded';font-weight:800;font-size:clamp(2.6rem,5vw,3.6rem);color:var(--ink);line-height:1}
.stat .n small{color:var(--red)}
.stat .l{font-family:'JetBrains Mono';font-size:.76rem;color:var(--ink-soft);margin-top:12px;letter-spacing:.02em;line-height:1.6}

#fluid-sec{background:var(--paper2)}
.mech{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}
@media(max-width:900px){.mech{grid-template-columns:1fr;gap:40px}}
.mech h2{font-size:clamp(2rem,4.4vw,3.4rem);max-width:14ch;margin-bottom:26px;color:var(--ink)}
.mech p{color:var(--ink-soft);max-width:46ch;margin-bottom:20px;letter-spacing:-.005em;font-size:1.05rem;line-height:1.6}
.mech .tag{font-family:'JetBrains Mono';font-size:.85rem;color:var(--red);letter-spacing:.06em;font-weight:500}
.mechcanvas{position:relative;aspect-ratio:1/1;border:1px solid rgba(12,34,51,.18);border-radius:10px;overflow:hidden;background:#060D16;box-shadow:0 30px 70px rgba(12,34,51,.18),inset 0 0 80px rgba(0,0,0,.5)}
#particles{position:absolute;inset:0;width:100%;height:100%}
.mechlabel{position:absolute;bottom:14px;left:16px;font-family:'JetBrains Mono';font-size:.66rem;color:rgba(255,255,255,.55);letter-spacing:.04em;z-index:2}
.mechlabel b{color:#FF8A5C}
.mechscale{position:absolute;top:14px;right:16px;font-family:'JetBrains Mono';font-size:.6rem;color:rgba(255,255,255,.4);letter-spacing:.12em;z-index:2} #fluid-sec .mechcanvas{position:absolute!important;top:0;right:0;bottom:0;left:42%;aspect-ratio:auto!important;background:none!important;border:none!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important;display:block!important;padding:0!important;z-index:1} #fluid-sec .mech{display:block!important;position:relative;min-height:560px} #fluid-sec .mech>div:first-child{position:relative;z-index:5;max-width:500px} #fluid-sec .mech h2{font-size:clamp(2.2rem,4.4vw,3.6rem)!important;max-width:13ch;margin-bottom:20px} #fluid-sec .mech p{max-width:40ch} #fluid-sec .mechcanvas::before{content:"";position:absolute;inset:-8% -4%;background:radial-gradient(ellipse at 50% 45%,rgba(27,164,224,.13),transparent 62%);pointer-events:none} #fluid-sec .mechcanvas>div:nth-child(1){display:none!important} #fluid-sec .mechcanvas>div:nth-child(4){display:none!important} #fluid-sec .mechcanvas>div:nth-child(2){position:absolute!important;inset:0} #fluid-sec .mechcanvas>div:nth-child(2) span{width:7px;height:7px;background:var(--blue-br)!important;box-shadow:0 0 10px 2px rgba(27,164,224,.55);opacity:.6;z-index:1;animation:fcDrift linear infinite} #fluid-sec .mechcanvas>div:nth-child(2) span:nth-of-type(1){top:26%!important;left:46%!important;animation-duration:9s} #fluid-sec .mechcanvas>div:nth-child(2) span:nth-of-type(2){top:62%!important;left:72%!important;animation-duration:11s;animation-delay:-3s} #fluid-sec .mechcanvas>div:nth-child(2) span:nth-of-type(3){top:16%!important;left:26%!important;animation-duration:8s;animation-delay:-1.5s} #fluid-sec .mechcanvas>div:nth-child(2) span:nth-of-type(4){top:72%!important;left:30%!important;animation-duration:13s;animation-delay:-5s} #fluid-sec .mechcanvas>div:nth-child(2) span:nth-of-type(5){top:34%!important;left:78%!important;animation-duration:10s;animation-delay:-2s} #fluid-sec .mechcanvas>div:nth-child(2) span:nth-of-type(6){top:90%!important;left:58%!important;animation-duration:12s;animation-delay:-6s} #fluid-sec .mechcanvas>div:nth-child(2) span:nth-of-type(7){top:50%!important;left:12%!important;animation-duration:9.5s;animation-delay:-4s} #fluid-sec .mechcanvas>div:nth-child(3){display:block!important;position:absolute!important;inset:0!important;padding:0!important;border:none!important;grid-template-columns:none!important;height:100%} #fluid-sec .mechcanvas>div:nth-child(3)>div{position:absolute!important;z-index:3;transform:translate(-50%,-50%)!important;text-align:center;opacity:1!important} #fluid-sec .mechcanvas>div:nth-child(3)>div>div:first-child{color:var(--ink)!important;line-height:.86;font-weight:800} #fluid-sec .mechcanvas>div:nth-child(3)>div>div:last-child{font-family:'JetBrains Mono';letter-spacing:.06em;color:var(--ink-soft)!important;margin-top:8px;font-size:.62rem!important;font-weight:500;white-space:nowrap} #fluid-sec .mechcanvas>div:nth-child(3)>div:not(.hero37)::before{content:"";position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:9px;height:9px;border-radius:50%;background:var(--blue-br);box-shadow:0 0 12px 2px rgba(27,164,224,.6)} #fluid-sec .mechcanvas .hero37{top:48%!important;left:22%!important} #fluid-sec .mechcanvas .hero37>div:first-child{font-size:clamp(4.4rem,9vw,7rem)!important;color:var(--blue-deep)!important;-webkit-text-fill-color:var(--blue-deep)!important;background:none!important;letter-spacing:-.02em;line-height:.82!important} #fluid-sec .mechcanvas .hero37>div:last-child{font-size:.72rem!important;color:var(--blue)!important;font-weight:600} #fluid-sec .mechcanvas>div:nth-child(3)>div:nth-child(2){top:26%!important;left:64%!important} #fluid-sec .mechcanvas>div:nth-child(3)>div:nth-child(2)>div:first-child{font-size:2.3rem!important;color:var(--blue-deep)!important} #fluid-sec .mechcanvas>div:nth-child(3)>div:nth-child(3){top:52%!important;left:86%!important} #fluid-sec .mechcanvas>div:nth-child(3)>div:nth-child(3)>div:first-child{font-size:1.7rem!important;color:var(--ink)!important} #fluid-sec .mechcanvas>div:nth-child(3)>div:nth-child(4){top:84%!important;left:58%!important} #fluid-sec .mechcanvas>div:nth-child(3)>div:nth-child(4)>div:first-child{font-size:1.9rem!important;color:var(--blue-deep)!important} #fluid-sec .mechcanvas .flownet{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible} @keyframes fcDrift{0%{transform:translate(0,0)}25%{transform:translate(10px,-14px)}50%{transform:translate(-8px,-22px)}75%{transform:translate(-12px,-8px)}100%{transform:translate(0,0)}} @media(prefers-reduced-motion:reduce){#fluid-sec .mechcanvas>div:nth-child(2) span{animation:none!important} #fluid-sec .mechcanvas .flownet line animate{display:none}} @media(max-width:900px){#fluid-sec .mech{min-height:0}#fluid-sec .mechcanvas{position:static!important;left:auto;margin-top:30px;min-height:420px}#fluid-sec .mech>div:first-child{max-width:none}}

#loop-sec{background:linear-gradient(180deg,#A82810,#7A1608);color:#FCE9E3}
.loop-h{font-size:clamp(2rem,4.6vw,3.6rem);max-width:16ch;margin-bottom:16px;color:#fff}
#loop-sec .eyebrow{color:#FFC7B4}#loop-sec .eyebrow::before{background:#fff}
.loop-lead{max-width:50ch;color:rgba(252,233,227,.85);margin-bottom:56px}
.loop-lead b{color:#fff}
.loopstage{position:relative;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(10,15,22,.55);padding:34px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.35)}
#circuit{width:100%;height:auto;display:block}
.circuit-cap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-top:26px;font-family:'JetBrains Mono';font-size:.74rem;color:rgba(252,233,227,.8)}
.circuit-cap b{color:#fff}.circuit-cap .c{color:#8FD0F5}.circuit-cap .h{color:#FFD0B0}

#proof{background:var(--paper2)}
.proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
@media(max-width:900px){.proof-grid{grid-template-columns:1fr;gap:34px}}
.proofcard{border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 20px 50px rgba(12,34,51,.08)}
.proofviz{aspect-ratio:16/10;position:relative;background:radial-gradient(circle at 30% 20%,#EAF1F7,#DCE7EF);overflow:hidden}
#serverviz{position:absolute;inset:0;width:100%;height:100%}
.proofcard .meta{padding:22px 26px;border-top:1px solid var(--line)}
.proofcard .meta .k{font-family:'JetBrains Mono';font-size:.7rem;color:var(--blue);letter-spacing:.1em;text-transform:uppercase}
.proofcard .meta h4{font-family:'Archivo Expanded';font-weight:700;font-size:1.15rem;margin:8px 0 4px;text-transform:uppercase;letter-spacing:.01em;color:var(--ink)}
.proofcard .meta .mono{color:var(--ink-soft)}
.proof-copy h2{font-size:clamp(1.9rem,4vw,3rem);max-width:15ch;margin-bottom:24px;color:var(--ink)}
.proof-copy>p{color:var(--ink-soft)}
.proof-copy blockquote{border-left:3px solid var(--red);padding-left:22px;margin:26px 0;color:var(--ink);font-size:1.05rem;font-style:italic}
.proof-copy cite{display:block;margin-top:14px;font-style:normal;font-family:'JetBrains Mono';font-size:.76rem;color:var(--ink-soft)}
.spec-row{display:flex;gap:34px;flex-wrap:wrap;margin-top:30px}
.spec .sn{font-family:'Archivo Expanded';font-weight:800;font-size:2rem;color:var(--blue)}
.spec .sl{font-family:'JetBrains Mono';font-size:.7rem;color:var(--ink-soft);margin-top:4px}

/* MONEY: the ONE dark section. JOB: deliberate inversion so investor numbers hit hardest */
#money{background:linear-gradient(180deg,#0F77B4,#0A4E77);color:#fff}
#money .eyebrow{color:#5FB5E8}#money .eyebrow::before{background:var(--red-hot)}
.money-h{font-size:clamp(2.2rem,5.5vw,4.4rem);max-width:14ch;color:#fff}
.bigcounters{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:64px;border:1px solid rgba(255,255,255,.14);border-radius:8px;overflow:hidden;background:rgba(255,255,255,.14)}
@media(max-width:760px){.bigcounters{grid-template-columns:1fr}}
.bc{background:var(--ink);padding:44px 34px;position:relative;overflow:hidden}
.bc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red-hot);transform:scaleY(0);transform-origin:top;transition:transform .8s var(--ease)}
.bc.in::before{transform:scaleY(1)}
.bc .num{font-family:'Archivo Expanded';font-weight:800;font-size:clamp(3rem,6.5vw,4.6rem);line-height:1;color:#fff}
.bc .num small{color:var(--red-hot)}
.bc .cap{font-family:'JetBrains Mono';font-size:.78rem;color:rgba(255,255,255,.6);margin-top:16px;letter-spacing:.02em;line-height:1.6}
.money-foot{margin-top:44px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.pill{border:1px solid rgba(255,255,255,.22);border-radius:100px;padding:8px 16px;color:rgba(255,255,255,.8);font-family:'JetBrains Mono';font-size:.74rem}

#return{background:linear-gradient(180deg,#0A4E77,#0A4E77);text-align:center;overflow:hidden;position:relative;color:#EAF3FA}
#cooling{position:absolute;inset:0;z-index:0;opacity:.5;mix-blend-mode:screen}
#return .wrap{position:relative;z-index:2}#return .eyebrow{justify-content:center;color:#8FD0F5}
#return .eyebrow::before{background:#fff}
.return-h{font-size:clamp(2.4rem,6vw,5.2rem);max-width:16ch;margin:0 auto 28px;color:#fff}
.return-sub{max-width:50ch;margin:0 auto 40px;color:rgba(234,243,250,.82);font-size:1rem}
footer{padding:60px max(24px,5vw) 46px;border-top:1px solid var(--line);background:var(--paper2)}
.foot-grid{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:30px;align-items:flex-start}
.foot-grid .fbrand{font-family:'Archivo Expanded';font-weight:800;font-size:1.4rem;color:var(--red)}
.foot-grid .fbrand span{color:var(--blue)}
.foot-grid p{color:var(--ink-soft);font-size:.82rem;max-width:34ch;margin-top:14px;font-family:'JetBrains Mono'}
.foot-links{display:flex;gap:50px;flex-wrap:wrap}
.foot-col b{font-family:'JetBrains Mono';font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);display:block;margin-bottom:14px}
.foot-col a{display:block;color:var(--ink-soft);text-decoration:none;font-size:.88rem;margin-bottom:9px;transition:color .2s}
.foot-col a:hover{color:var(--red)}
.legal{max-width:var(--maxw);margin:40px auto 0;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-family:'JetBrains Mono';font-size:.7rem;color:var(--ink-soft)}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}.hero-h .word{opacity:1;transform:none}
  .hero-sub,.hero-cta,.hero-readout,.scrollcue{opacity:1}
}

/* ===== interactive cooling-race simulator (fluid-sec) ===== */
#coolsim{background:linear-gradient(165deg,#0A2C46,#071B2B)}
#coolsim #coolcv{position:absolute;inset:0;width:100%;height:100%;display:block}
.cs-hud{position:absolute;inset:0;padding:20px 22px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;font-family:'JetBrains Mono',monospace}
.cs-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.cs-tag{color:#F6850D;font-size:.7rem;letter-spacing:.14em;font-weight:600}
.cs-sub{color:rgba(234,243,250,.5);font-size:.62rem;letter-spacing:.1em;text-align:right}
.cs-readout{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}
.cs-metric{display:flex;flex-direction:column;gap:2px}
.cs-lab{color:rgba(234,243,250,.5);font-size:.58rem;letter-spacing:.12em}
.cs-val{color:#EAF3FA;font-size:1.05rem;font-weight:700;letter-spacing:-.01em}
.cs-val.cs-w{color:#7FB8DC}
.cs-adv .cs-val{color:#F6850D}
.cs-ctrl{pointer-events:auto;display:flex;flex-direction:column;gap:7px}
.cs-ctrl-lab{color:#EAF3FA;font-size:.66rem;letter-spacing:.1em;font-weight:600;display:flex;gap:8px}
.cs-ctrl-lab span{color:#1BA4E0}
#cs-load{-webkit-appearance:none;appearance:none;width:100%;max-width:340px;height:5px;border-radius:5px;background:rgba(255,255,255,.16);outline:none;cursor:ew-resize}
#cs-load::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#F6850D;border:2px solid #fff;cursor:ew-resize;box-shadow:0 2px 8px rgba(0,0,0,.4)}
#cs-load::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#F6850D;border:2px solid #fff;cursor:ew-resize}
.cs-hint{color:rgba(234,243,250,.4);font-size:.58rem;letter-spacing:.06em}
@media (max-width:560px){.cs-val{font-size:.9rem}.cs-readout{gap:10px}}
/* ===== multi-page nav logo + active state ===== */
.brand{display:flex;align-items:center;text-decoration:none;gap:0}
.brand-logo{height:46px;width:auto;display:block;transition:filter .3s var(--ease)}
/* logo sits over dark hero by default: give it a soft backing so it's legible; on solid nav it's on light bg */
nav:not(.solid) .brand-logo{filter:drop-shadow(0 1px 6px rgba(0,0,0,.45))}
.navlinks a[aria-current="page"]{color:var(--red)}
nav.solid .navlinks a[aria-current="page"]{color:var(--red)}
.navcta[aria-current="page"]{outline:2px solid rgba(255,255,255,.4)}
.fbrand-link{display:inline-block;margin-bottom:14px}
.fbrand-logo{height:40px;width:auto;display:block}
/* page hero (non-home) spacing so content clears the fixed nav */
.page-top{padding-top:132px}

/* ===== multi-page content sections ===== */
.sec-light{background:var(--paper);color:var(--ink)}
.sec-tint{background:var(--paper2);color:var(--ink)}
section.sec-light,section.sec-tint{padding:100px 32px}
.eb-line{width:32px;height:1px;background:var(--red);display:inline-block}
.sec-h{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.03;letter-spacing:-.02em;max-width:16ch;margin-bottom:22px;color:var(--ink)}
.page-h1{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:clamp(2.4rem,6vw,4.6rem);line-height:1;letter-spacing:-.03em;max-width:15ch;margin-bottom:24px;color:var(--ink)}
.sec-lead{font-size:clamp(1.02rem,1.6vw,1.22rem);line-height:1.55;color:var(--ink-soft);max-width:60ch;margin-bottom:34px}
.spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.spec-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:26px 24px;display:flex;flex-direction:column;gap:12px;box-shadow:0 18px 44px rgba(12,34,51,.06);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.spec-card:hover{transform:translateY(-4px);box-shadow:0 26px 60px rgba(12,34,51,.12)}
.spec-n{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:2rem;color:var(--blue);letter-spacing:-.02em}
.spec-l{color:var(--ink-soft);font-size:.94rem;line-height:1.5}
.app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:8px}
.app-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:26px 24px;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.app-card:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(12,34,51,.1)}
.app-card b{font-family:'Space Grotesk',sans-serif;font-size:1.12rem;color:var(--ink);display:block;margin-bottom:8px}
.app-card p{color:var(--ink-soft);font-size:.94rem;line-height:1.5}
.cert-list{list-style:none;padding:0;margin:8px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.cert-list li{position:relative;padding:16px 18px 16px 42px;background:var(--paper);border:1px solid var(--line);border-radius:12px;color:var(--ink);font-size:.96rem}
.cert-list li::before{content:"";position:absolute;left:16px;top:50%;transform:translateY(-50%);width:12px;height:12px;border-radius:50%;background:var(--blue)}
.contact-wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:start}
.contact-meta{display:flex;gap:34px;flex-wrap:wrap;margin-top:10px}
.contact-meta b{display:block;font-family:'JetBrains Mono';font-size:.7rem;letter-spacing:.14em;color:var(--ink-soft);margin-bottom:6px;text-transform:uppercase}
.contact-meta a{color:var(--blue);text-decoration:none;font-weight:600}
.contact-meta a:hover{text-decoration:underline}
.contact-form{display:flex;flex-direction:column;gap:16px;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:0 20px 50px rgba(12,34,51,.07)}
.contact-form label{display:flex;flex-direction:column;gap:7px;font-family:'JetBrains Mono';font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.contact-form input,.contact-form textarea{font-family:'Space Grotesk',sans-serif;font-size:1rem;color:var(--ink);background:var(--paper2);border:1px solid var(--line);border-radius:9px;padding:12px 14px;outline:none;transition:border-color .3s}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--blue)}
.contact-form .btn{margin-top:6px;align-self:flex-start}
@media (max-width:820px){.contact-wrap{grid-template-columns:1fr;gap:34px}}

/* ===== light-top pages: nav must be readable over light bg regardless of scroll ===== */
body.lite nav .navlinks a{color:var(--ink-soft)}
body.lite nav .navlinks a:hover{color:var(--ink)}
body.lite nav .navlinks a[aria-current="page"]{color:var(--red)}
body.lite nav .brand-logo{filter:none}
body.lite nav .navcta{color:#fff;background:var(--red);border-color:var(--red)}
body.lite nav{background:rgba(255,255,255,.9);backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--line)}


/* --- FIX: disable sweep-veil overlay on solid sections (no grey box) --- */
#return::before,#problem::before{display:none !important;content:none !important}
#return>.wrap,#problem>.wrap{opacity:1 !important;transform:none !important}
html.js #return:not(.enter)>.wrap,html.js #problem:not(.enter)>.wrap{opacity:1 !important;transform:none !important}

/* --- FIX: remove legacy grey sweep-veil on ALL sections --- */
.cinematic::before,.cinematic::after{display:none !important;content:none !important;opacity:0 !important}
.cinematic>.wrap{opacity:1 !important}
html.js .cinematic:not(.enter)>.wrap{opacity:0;transform:translateY(40px)}
.cinematic.enter>.wrap{opacity:1 !important;transform:none !important}
/* --- Unseen-style nanofluid slide-in section transition --- */
html.js .cinematic:not(.enter)>.wrap>*{opacity:0;transform:translateY(54px);filter:blur(6px)}
html.js .cinematic>.wrap>*{transition:opacity .9s var(--ease),transform 1s var(--ease),filter .9s var(--ease)}
html.js .cinematic.enter>.wrap>*{opacity:1;transform:none;filter:none}
html.js .cinematic.enter>.wrap>*:nth-child(2){transition-delay:.08s}
html.js .cinematic.enter>.wrap>*:nth-child(3){transition-delay:.16s}
html.js .cinematic.enter>.wrap>*:nth-child(4){transition-delay:.24s}
html.js .cinematic.enter>.wrap>*:nth-child(5){transition-delay:.32s}
.cinematic .liquid-edge{position:absolute;left:0;right:0;top:0;height:3px;z-index:6;pointer-events:none;background:linear-gradient(90deg,transparent,var(--blue-br,#1BA4E0),var(--blue,#0F77B4),transparent);transform:scaleX(0);transform-origin:left center;opacity:0;transition:transform 1.1s var(--ease),opacity .6s ease}
.cinematic.enter .liquid-edge{transform:scaleX(1);opacity:.9}

/* ---- even-grid responsive fallback ---- */
@media (max-width:820px){.spec-grid{grid-template-columns:repeat(2,1fr)}.app-grid{grid-template-columns:1fr}}
/* ---- interactive cooling sim controls (scientific) ---- */
.csim-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:stretch;margin-top:14px}
@media (max-width:900px){.csim-wrap{grid-template-columns:1fr}}
.csim-controls{display:flex;flex-direction:column;gap:22px}
.csim-ctl label{display:flex;justify-content:space-between;font:600 12px/1 var(--mono,'JetBrains Mono',monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);opacity:.8;margin-bottom:8px}
.csim-ctl label .cs-val{color:var(--blue);opacity:1}
.csim-ctl input[type=range]{width:100%;accent-color:var(--blue)}
.csim-readouts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.csim-read{background:rgba(15,119,180,.06);border:1px solid rgba(15,119,180,.18);border-radius:12px;padding:14px 16px;transition:border-color .3s}
.csim-read .k{font:600 10px/1 var(--mono,monospace);letter-spacing:.1em;text-transform:uppercase;opacity:.6;color:var(--ink)}
.csim-read .v{font:800 24px/1.1 var(--display,'Archivo Expanded',sans-serif);color:var(--ink);margin-top:6px}
.csim-read .v small{font-size:13px;font-weight:600;opacity:.6;margin-left:2px}
.csim-read.win{border-color:rgba(15,119,180,.4)} .csim-read.win .v{color:var(--blue)}
.csim-read.warn{border-color:rgba(201,52,21,.4)} .csim-read.warn .v{color:var(--red)}
.csim-stage{position:relative;border-radius:16px;overflow:hidden;background:#08131d;min-height:360px}
.csim-stage canvas{display:block;width:100%;height:100%}
.csim-regime{position:absolute;left:14px;top:14px;font:700 11px/1 var(--mono,monospace);letter-spacing:.12em;text-transform:uppercase;padding:7px 11px;border-radius:8px;background:rgba(0,0,0,.4);color:#cfe8fb;backdrop-filter:blur(4px)}
.csim-regime.turb{color:#ffd7c9}

/* ---- cooling sim full-width breakout ---- */
#fluid-sec .mech{display:grid}
#coolsim.mechcanvas{width:100%;margin-top:28px}
#coolsim .csim-wrap{grid-template-columns:.85fr 1.15fr}
@media (max-width:900px){#coolsim .csim-wrap{grid-template-columns:1fr}}


/* ============ FIXES: cooling-sim readability + even grids ============ */
.csim-regime{
  left:16px; top:16px;
  background:rgba(6,17,26,.82);
  border:1px solid rgba(120,180,230,.35);
  color:#dff0ff;
  box-shadow:0 4px 18px rgba(0,0,0,.35);
  z-index:3;
}
.csim-regime.turb{ border-color:rgba(255,150,70,.5); color:#ffe2c4; }
.csim-stage{ box-shadow:inset 0 0 0 1px rgba(120,180,230,.14); }
.csim-stage::before{
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  border-radius:16px; box-shadow:inset 0 0 40px rgba(6,17,26,.55);
}
.csim-read .v{ font-size:22px; line-height:1.15; }
.csim-read .v small{ display:block; margin-top:4px; opacity:.7; font-size:11px; line-height:1.3; letter-spacing:.02em; }
.csim-read.win{ border-color:rgba(255,150,70,.55); background:rgba(255,150,70,.08); }
.cert-list{ grid-template-columns:repeat(4,1fr); }
@media (max-width:1100px){ .cert-list{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .cert-list{ grid-template-columns:1fr; } }
