:root{--ink:#111;--navy:#12263f;--mute:#555;--line:#e3e3e3;--bg:#fff;--accent:#087766;--vivid:#087766;--rgb:8,119,102;--w:1120px;--hero-wash:radial-gradient(55% 45% at 50% 62%,rgba(var(--rgb),.13),transparent 70%),radial-gradient(60% 40% at 0% 0%,rgba(18,38,63,.09),transparent 70%),linear-gradient(180deg,#f2f6fa,#fff 85%);--home-wash:radial-gradient(45% 70% at 78% 50%,rgba(var(--rgb),.14),transparent 72%),radial-gradient(50% 60% at 0% 50%,rgba(18,38,63,.05),transparent 70%),linear-gradient(180deg,#fff,#f2f6fa 50%,#fff)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,ul,ol{margin:0;padding:0}
ul,ol{list-style:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.trap{position:absolute;left:-9999px}

.top{display:flex;align-items:center;height:72px;padding:0 max(24px,calc((100% - var(--w))/2));border-bottom:1px solid var(--line);background:var(--bg)}
.btn{display:inline-block;padding:.8em 1.8em;border:0;border-radius:999px;background:var(--accent);color:#fff;font-family:inherit;font-weight:600;font-size:1rem;line-height:1;text-decoration:none;cursor:pointer}
.btn-sm{padding:.65em 1.4em;font-size:.9rem}
.top .desc{margin-left:16px;padding-left:16px;border-left:1px solid var(--line);color:var(--mute);font-size:.8rem;line-height:1.25;white-space:nowrap}
.top .btn{margin-left:auto}
.btn:hover{filter:brightness(1.1)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

section{padding:96px max(24px,calc((100% - var(--w))/2))}
h2{font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.12;letter-spacing:-.02em;font-weight:700;color:var(--navy)}
h3{font-size:1.125rem;font-weight:650;color:var(--navy)}

/* hero: split layout, sky and ground */
.hero{display:grid;padding:0;overflow:hidden;text-align:left;background:
  radial-gradient(38% 55% at 66% 14%,rgba(var(--rgb),.15),transparent 70%),
  radial-gradient(60% 45% at 0% 0%,rgba(18,38,63,.09),transparent 70%),
  linear-gradient(180deg,#f2f6fa,#fff 100%)}
.hero>*{grid-area:1/1}
.hero-text{align-self:center;z-index:1;box-sizing:content-box;padding:0 max(24px,calc((100% - var(--w))/2));max-width:480px}
.hero h1{font-size:clamp(2.4rem,4.4vw,3.6rem);line-height:1.05;letter-spacing:-.03em;font-weight:800;margin-bottom:.4em;color:var(--navy)}
.hero h1 span{color:var(--accent)}
.sub{max-width:19em;color:var(--mute);font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.45}
.stage{width:100%}
.stage svg{display:block;width:100%;height:auto}
.cue{position:relative;width:210px;margin:44px 0 0 29px}
.cue::before{content:"";position:absolute;left:-8%;right:-8%;bottom:-14px;height:34px;background:radial-gradient(closest-side,rgba(18,38,63,.28),transparent);filter:blur(2px)}
.cue::after{content:"";position:absolute;inset:-34% -14% -40%;border:1.5px solid rgba(var(--rgb),.35);border-radius:50%}
.cue img{position:relative;z-index:1;width:100%;height:auto}
.orbit{fill:none;stroke:url(#of);stroke-width:1.6;stroke-dasharray:3 7;stroke-linecap:round;opacity:.7}
.earth{fill:url(#eg)}
.horizon{fill:none;stroke:var(--navy);stroke-width:1.5;opacity:.5}
.sat rect{fill:#fff;stroke:var(--navy);stroke-width:2;stroke-linejoin:round}
.shadow{fill:rgba(18,38,63,.14)}
.water{fill:none;stroke:var(--vivid);stroke-width:1.5;stroke-linecap:round;opacity:.45}
.m{fill:#fff;stroke:var(--navy);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.m .t{fill:var(--vivid);stroke:none}
.m .w{fill:none;stroke:var(--vivid);opacity:.5}
.links path{fill:none;stroke:var(--vivid);stroke-width:1.5;stroke-dasharray:3 9;stroke-linecap:round;animation:flow 6s linear infinite}
.ring{fill:none;stroke:var(--vivid);stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center;animation:pulse 8s ease-out infinite}
.r2{animation-delay:2.7s}.r3{animation-delay:5.3s}
@keyframes flow{to{stroke-dashoffset:-48}}
@keyframes pulse{0%{transform:scale(.3);opacity:.45}100%{transform:scale(1);opacity:0}}

.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.feats p{color:var(--mute);margin-top:.4em}
.feats li{background:rgba(var(--rgb),.06);border-radius:14px;padding:24px}
.ico{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;margin-bottom:16px}
.ico svg{width:24px;height:24px;fill:none;stroke:var(--accent);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.homeroom{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:64px;background:var(--home-wash)}
.homeroom h2{margin-bottom:.4em}
.hr-sub{color:var(--mute);font-size:1.0625rem;line-height:1.45;margin-bottom:1.6em}
.hr-art{width:100%;height:auto}
.panel{fill:#fff;stroke:var(--navy);stroke-width:2}
.hub{fill:none;stroke:var(--vivid);stroke-width:2}
.tick{fill:none;stroke:var(--vivid);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.port{fill:#fff;stroke:var(--navy);stroke-width:2}
.hr-art .t{fill:var(--vivid);stroke:none}

.apps h2{margin-bottom:1em}
.apps-row{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;padding-top:24px}
.apps-row li{display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center;font-size:1.0625rem;font-weight:600;color:var(--navy)}
.apps-row svg{width:64px;height:64px;fill:none;stroke:var(--vivid);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.apps-row circle[r="2"]{fill:var(--vivid);stroke:none}

.contact{display:grid;grid-template-columns:1fr 1fr;gap:48px;background:#f6f8fa}
.mail{display:inline-block;margin-top:1em;color:var(--accent);font-weight:600}
form{display:grid;gap:16px}
label{display:grid;gap:6px;font-size:.9rem;color:var(--mute)}
input,textarea{width:100%;padding:.75em .9em;border:1px solid #cfcfcf;border-radius:10px;background:#fff;color:var(--ink);font:inherit}
form .btn{justify-self:start}

.foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;padding:28px max(24px,calc((100% - var(--w))/2));border-top:1px solid var(--line);font-size:.9rem}
.foot span{color:var(--mute)}
.foot small{margin-left:auto;color:var(--mute);font-size:inherit}

/* how: own band */
.how{background:#F5F7FA;border-top:1px solid #dde4ec;border-bottom:1px solid #dde4ec;padding-top:120px}
.how>h2{margin-bottom:64px}
.how .feats li{background:#fff;border:1px solid #e1e7ee}
.how .ico{background:rgba(var(--rgb),.1)}


.duo{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:40px;margin:0 0 72px}
.duo-img{width:100%;height:auto}
.steps{display:grid;gap:44px;padding-left:24px}
.steps li{position:relative;display:grid;grid-template-columns:52px 1fr;gap:22px;align-items:start}
.steps .ico{position:relative;z-index:1;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fff;border:1px solid #cfe2de;margin:0}
.steps .ico svg{width:26px;height:26px;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.steps li:not(:last-child)::after{content:"";position:absolute;left:25.25px;top:58px;height:calc(100% + 44px - 64px);width:1.5px;background:linear-gradient(180deg,rgba(var(--rgb),.55),rgba(var(--rgb),.3))}
.steps div{padding-top:4px}
.steps h3{font-size:1.25rem}
.steps p{color:var(--mute);margin-top:.25em;max-width:20em}
@media (max-width:820px){
  .duo{grid-template-columns:1fr;gap:32px;margin-bottom:48px}
  .duo-img{width:min(460px,100%);margin:0 auto}
  .steps{gap:36px;padding-left:0}
  .steps li:not(:last-child)::after{height:calc(100% + 36px - 64px)}

  .how{padding-top:80px}
  .how>h2{margin-bottom:32px}
  @keyframes flowy{to{background-position:0 -36px}}
  .top .desc{display:none}
  section{padding:64px 24px}
  .hero{display:block;padding:36px 24px 0}
  .hero>*{grid-area:auto}
  .hero-text{max-width:none;padding:0}
  .hero h1{font-size:clamp(2.2rem,9.5vw,3rem)}
  .sub{max-width:none;font-size:1.05rem}
  .cue{width:150px;margin:48px 0 0 21px}
  .stage{aspect-ratio:1000/660;margin:8px -24px 0;width:calc(100% + 48px)}
  .stage svg{height:100%}
  .feats,.contact,.homeroom{grid-template-columns:1fr;gap:32px}
          .feats{gap:16px}
  .apps-row{display:flex;flex-wrap:wrap;justify-content:center;gap:36px 0;padding-top:8px}
  .apps-row li{width:33.333%;padding:0;gap:16px;font-size:.9rem;white-space:nowrap}
  .apps-row svg{width:56px;height:56px}
  .foot small{margin-left:0;width:100%}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .links path,.ring{animation:none}
  .ring{opacity:.18;transform:scale(.6)}
}
