@font-face{font-family:'Montserrat';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/montserrat-400-800-normal.woff2) format('woff2')}
@font-face{font-family:'Lato';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/lato-400-normal.woff2) format('woff2')}
@font-face{font-family:'Lato';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/lato-700-normal.woff2) format('woff2')}

:root{
  --navy:#14306B;
  --navy-dark:#0E2350;
  --gold:#C39A47;
  --gold-dark:#A47F33;
  --red:#B8341C;
  --text:#222B3F;
  --muted:#5B6478;
  --band:#F4F5F8;
  --border:#DDE1E9;
  --heading:'Montserrat','Segoe UI',Helvetica,Arial,sans-serif;
  --body:'Lato','Segoe UI',Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.25,.7,.3,1);
  --wrap:min(1120px,90vw);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--text);font-family:var(--body);font-size:1.0625rem;line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
[hidden]{display:none!important}
h1,h2,h3{font-family:var(--heading);color:var(--navy);line-height:1.2;margin:0}
p{margin:0 0 1rem}

.wrap{width:var(--wrap);margin-inline:auto}

.site-header{border-bottom:1px solid var(--border)}
.site-header .wrap{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.4rem 0 2.2rem}
.site-header img{width:min(440px,78vw);animation:fade-up .9s var(--ease) both}
.coming-soon{margin-top:1.9rem;padding-top:1.7rem;border-top:1px solid var(--border);width:min(640px,100%);display:flex;flex-direction:column;align-items:center;animation:fade-up .9s .2s var(--ease) both}
.cs-badge{display:inline-block;font-family:var(--heading);font-weight:700;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dark);background:#FBF6EA;border:1px solid #E7D7AE;border-radius:3px;padding:.38rem .85rem;margin-bottom:.9rem}
.cs-title{font-family:var(--heading);font-weight:600;font-size:clamp(1.25rem,2.4vw,1.6rem);line-height:1.3;color:var(--navy);margin:0 0 .45rem}
.cs-text{font-size:1rem;color:var(--muted);max-width:40em;margin:0;text-wrap:balance}

.hero{padding:clamp(3rem,6vw,5rem) 0}
.hero h1{font-size:clamp(1.9rem,3.6vw,2.9rem);font-weight:700;letter-spacing:-.01em;margin-bottom:1.1rem;max-width:16em}
.hero .lede{font-size:1.15rem;color:var(--muted);margin-bottom:1.6rem;max-width:40em}
.hero-actions{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}
.text-link{font-family:var(--heading);font-weight:600;font-size:.95rem;text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:2px;transition:color .25s,border-color .25s}
.text-link:hover{color:var(--gold-dark);border-color:var(--navy)}
.hero-text>*{animation:fade-up .8s var(--ease) both}
.hero-text>:nth-child(1){animation-delay:.25s}
.hero-text>:nth-child(2){animation-delay:.35s}
.hero-text>:nth-child(3){animation-delay:.45s}

.btn{display:inline-block;font-family:var(--heading);font-weight:600;font-size:.95rem;line-height:1.2;padding:.9rem 1.6rem;border-radius:4px;border:1px solid var(--navy);background:var(--navy);color:#fff;text-decoration:none;cursor:pointer;transition:background .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}
.btn:hover,.btn:focus-visible{background:var(--navy-dark);transform:translateY(-1px);box-shadow:0 6px 16px rgba(20,48,107,.22);outline:none}
.btn:disabled{opacity:.65;cursor:wait;transform:none;box-shadow:none}

.circuit{margin:clamp(2.4rem,5vw,3.4rem) auto 0;max-width:940px;padding:clamp(1.4rem,3vw,2.4rem) clamp(1rem,3vw,2.4rem) 1.2rem;border:1px solid var(--border);border-radius:6px;background:#fff;animation:fade-up .9s .5s var(--ease) both}
.dia{width:100%;height:auto;overflow:visible;display:block;margin-inline:auto}
.dia-wide{max-width:900px}
.dia-tall{display:none;max-width:340px}
.circuit figcaption{font-size:1rem;color:var(--muted);text-align:center;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}
.c-node{fill:#fff;stroke:var(--navy);stroke-width:1.5}
.c-icon{fill:none;stroke:var(--navy);stroke-width:2.2;stroke-linecap:round}
.c-dot{fill:var(--navy)}
.c-wire{fill:none;stroke:var(--navy);stroke-width:1.2;opacity:.3}
.c-flow{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:5 13;stroke-linecap:round;animation:flow 1.1s linear infinite}
.c-pulse{fill:var(--red);offset-path:path("M143 95 L340 95");animation:travel 7s var(--ease) infinite}
.c-pulse-v{fill:var(--red);offset-path:path("M170 150 L170 232");animation:travel 7s var(--ease) infinite}
.c-blade,.c-blade-v{stroke:var(--navy);stroke-width:3.5;stroke-linecap:round;transform-box:view-box;animation:blade 7s var(--ease) infinite}
.c-blade{transform-origin:392px 112px}
.c-blade-v{transform-origin:90px 304px}
.c-out{animation:dim 7s linear infinite}
.c-ring{fill:none;stroke:var(--red);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:ring 7s ease-out infinite}
.c-label{font-family:var(--body);font-size:19px;fill:var(--muted);text-anchor:middle}
.c-title{font-family:var(--heading);font-size:17px;font-weight:600;fill:var(--navy);text-anchor:middle}
.dia-tall .c-label{font-size:20px}
.dia-tall .c-title{font-size:18px}

.about{background:var(--band);padding:clamp(3rem,6vw,5rem) 0}
.about .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(2rem,5vw,4.5rem)}
h2{font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:700;margin-bottom:1.1rem}
.about p{font-size:1.08rem}
.facts{background:#fff;border:1px solid var(--border);border-top:4px solid var(--gold);border-radius:6px;padding:1.6rem 1.7rem;align-self:start}
.facts h3{font-size:1.05rem;font-weight:700;margin-bottom:1rem}
.facts ul{list-style:none;margin:0;padding:0}
.facts li{position:relative;padding:.55rem 0 .55rem 1.4rem;border-top:1px solid var(--border);font-size:.98rem}
.facts li:first-child{border-top:0}
.facts li::before{content:"";position:absolute;left:0;top:1.05rem;width:8px;height:8px;background:var(--navy)}
.facts strong{font-weight:700;color:var(--navy)}

.how{padding:clamp(3rem,6vw,5rem) 0}
.how .lead{color:var(--muted);max-width:44em;font-size:1.08rem}
.steps{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2rem,4vw,3.5rem)}
.step{display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:1.5rem 0;border-top:1px solid var(--border)}
.step .n{width:2.2rem;height:2.2rem;border-radius:50%;background:var(--navy);color:#fff;font-family:var(--heading);font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:background .3s}
.step:hover .n{background:var(--gold-dark)}
.step h3{font-size:1.12rem;font-weight:700;margin:.35rem 0 .45rem}
.step p{margin:0;color:var(--muted);font-size:.98rem}

.eoi{background:var(--band);padding:clamp(3rem,6vw,5rem) 0;border-top:1px solid var(--border)}
.eoi .wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.eoi .intro p{color:var(--muted)}
.eoi .intro strong{color:var(--text)}
form{background:#fff;border:1px solid var(--border);border-radius:6px;padding:clamp(1.4rem,3vw,2.2rem);display:grid;grid-template-columns:1fr 1fr;gap:1.3rem 1.4rem}
.field{display:flex;flex-direction:column;gap:.4rem}
.field.full{grid-column:1/-1}
label{font-family:var(--heading);font-weight:600;font-size:.86rem;color:var(--navy)}
.req{color:var(--red)}
input,select,textarea{width:100%;font:inherit;font-size:1rem;color:var(--text);background:#fff;border:1px solid #B9C0CE;border-radius:4px;padding:.7rem .85rem;outline:none;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(20,48,107,.15)}
input::placeholder,textarea::placeholder{color:#8B93A5}
select{appearance:none;-webkit-appearance:none;padding-right:2.4rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2314306B' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;cursor:pointer}
textarea{min-height:130px;resize:vertical}
.field.invalid input{border-color:var(--red);box-shadow:0 0 0 3px rgba(184,52,28,.15)}
.form-status{grid-column:1/-1;margin:0;font-size:.95rem;color:var(--navy)}
.form-status:empty{display:none}
.form-status[data-state="error"]{color:var(--red)}
.actions{grid-column:1/-1;display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-top:.3rem}
.form-note{font-size:.88rem;color:var(--muted);margin:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;margin:0}
.success{background:#fff;border:1px solid var(--border);border-left:4px solid var(--gold);border-radius:6px;padding:1.8rem 2rem}
.success h3{font-size:1.4rem;margin-bottom:.6rem}
.success p{margin:0;color:var(--muted)}

.site-footer{background:var(--navy);color:rgba(255,255,255,.8);padding:2.4rem 0;font-size:.92rem}
.site-footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem}
.site-footer .brand{display:flex;align-items:center;gap:.8rem;color:#fff}
.site-footer .brand img{width:26px}
.site-footer .brand strong{font-family:var(--heading);font-weight:700;display:block;font-size:1rem}
.site-footer .brand span{font-size:.85rem;color:rgba(255,255,255,.7)}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline}

.simple{padding:clamp(3rem,8vw,6rem) 0;max-width:40em}
.simple h1{font-size:clamp(1.8rem,3.4vw,2.6rem);margin-bottom:1rem}
.simple p{color:var(--muted);margin-bottom:1.8rem}

.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .reveal.is-visible{opacity:1;transform:none}
.js .stagger>*{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.js .stagger.is-visible>*{opacity:1;transform:none}
.js .stagger.is-visible>:nth-child(2){transition-delay:.1s}
.js .stagger.is-visible>:nth-child(3){transition-delay:.2s}
.js .stagger.is-visible>:nth-child(4){transition-delay:.3s}
.js .stagger.is-visible>:nth-child(5){transition-delay:.4s}
.js .stagger.is-visible>:nth-child(6){transition-delay:.5s}

@keyframes fade-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes flow{to{stroke-dashoffset:-18}}
@keyframes travel{0%{offset-distance:0%;opacity:0}5%{opacity:1}36%{offset-distance:100%;opacity:1}40%{offset-distance:100%;opacity:0}100%{offset-distance:100%;opacity:0}}
@keyframes blade{0%,40%{transform:rotate(0)}47%,88%{transform:rotate(-26deg)}95%,100%{transform:rotate(0)}}
@keyframes dim{0%,42%{opacity:1}48%,88%{opacity:.18}95%,100%{opacity:1}}
@keyframes ring{0%{transform:scale(1);opacity:.75}18%{transform:scale(1.55);opacity:0}18.1%{transform:scale(1);opacity:.75}36%{transform:scale(1.55);opacity:0}100%{transform:scale(1.55);opacity:0}}

@media (max-width:820px){
  .dia-wide{display:none}
  .dia-tall{display:block}
}
@media (max-width:880px){
  .about .wrap,.eoi .wrap{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  form{grid-template-columns:1fr}
  .site-footer .wrap{flex-direction:column;align-items:flex-start}
}
@media (max-width:520px){
  .circuit{padding:1.2rem .8rem .9rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal,.js .stagger>*{opacity:1;transform:none}
}
