/* Homepage: hero art, carousel controls, strip, proof section */
.hero-art{display:none}
.hero-art svg{display:block;width:100%;height:auto;overflow:visible}
.hero-art text{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
@media(min-width:1100px){
  .hero-slide{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:48px;align-items:center}
  .hero .hero-slide h1,.hero .hero-slide h2{font-size:clamp(3.2rem,5.1vw,5.3rem)}
  .hero-art{display:block}
}
/* animations only while the slide is showing */
.hero-art .pulse{transform-box:fill-box;transform-origin:center;animation:hx-pulse 2.8s ease-out infinite;animation-play-state:paused}
.hero-art .pulse.d2{animation-delay:.9s}.hero-art .pulse.d3{animation-delay:1.8s}
.hero-art .flow{stroke-dasharray:8 8;animation:hx-flow 1.1s linear infinite;animation-play-state:paused}
.hero-art .sweep{transform-box:fill-box;transform-origin:left center;animation:hx-sweep 10s cubic-bezier(.45,.05,.3,1) infinite;animation-play-state:paused}
.hero-art .blink{animation:hx-blink 1.6s ease-in-out infinite;animation-play-state:paused}
.hero-art .appear{opacity:0;animation:hx-appear 10s ease infinite;animation-play-state:paused}
.hero-art .appear.a2{animation-delay:.25s}.hero-art .appear.a3{animation-delay:.5s}.hero-art .appear.a4{animation-delay:.75s}
.hero-slide.is-active .hero-art *{animation-play-state:running}
@keyframes hx-pulse{0%{transform:scale(.55);opacity:.85}100%{transform:scale(1.35);opacity:0}}
@keyframes hx-flow{to{stroke-dashoffset:-16}}
@keyframes hx-sweep{0%,8%{transform:scaleX(0)}55%,100%{transform:scaleX(1)}}
@keyframes hx-blink{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes hx-appear{0%,30%{opacity:0;transform:translateY(6px)}42%,100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.hero-art *{animation:none!important}.hero-art .appear{opacity:1}.hero-art .sweep{transform:none}}
/* carousel controls */
.hero-controls{display:flex;align-items:center;gap:14px;margin-top:38px}
.hero-dots{display:flex;gap:8px}
.hero-dots button{width:34px;height:6px;padding:0;border:0;border-radius:6px;background:#2a4158;cursor:pointer;transition:background .3s,width .3s}
.hero-dots button[aria-current="true"]{width:54px;background:linear-gradient(90deg,#2495ff,#6be7f2)}
.hero-dots button:focus-visible,.hero-pause:focus-visible{outline:2px solid #6be7f2;outline-offset:3px}
.hero-pause{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid #2c4a68;border-radius:999px;background:#0a1624;color:#b7c9d8;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}
.hero-pause svg{width:12px;height:12px}
/* strip */
.signal-grid.why{grid-template-columns:1fr repeat(4,1fr)}
.signal-grid.why span{display:flex;align-items:center;justify-content:center;gap:9px;font-size:.92rem}
.signal-grid.why span svg{flex:0 0 18px;width:18px;height:18px;color:#6be7f2}
@media(max-width:980px){.signal-grid.why{grid-template-columns:1fr 1fr}.signal-grid.why span{justify-content:flex-start}}
/* proof section */
.home-proof{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:52px;align-items:center}
.home-proof h2{color:#fff}
.home-proof>div>p{color:#b7c9d8;font-size:1.08rem}
.home-commit{display:grid;gap:16px;margin:26px 0 30px;padding:0;list-style:none}
.home-commit li{display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:start}
.home-commit li>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#12324f;color:#6be7f2}
.home-commit li>span svg{width:20px;height:20px}
.home-commit b{display:block;color:#fff;font-size:1.02rem}
.home-commit p{margin:2px 0 0;color:#9fb4c6;font-size:.94rem}
@media(max-width:980px){.home-proof{grid-template-columns:1fr;gap:30px}}
/* Technical drawings: drafting font for labels (class "mono"). */
.bx-diagram svg .mono text,.hero-art svg .mono text,.bx-diagram svg text.mono,.hero-art svg text.mono{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}
