/* ============================================================
   ORBIT VISION — mission-control design system
   Direction: industrial aerospace console. Near-black space base,
   single phosphor-mint accent, mono data labels, orbit motifs.
   ============================================================ */

:root{
  --bg:        #05090F;
  --bg-2:      #080E17;
  --panel:     #0A111C;
  --panel-2:   #0D1522;
  --line:      rgba(214,232,244,.10);
  --line-2:    rgba(214,232,244,.18);
  --ink:       #EAF2F9;
  --muted:     #92A3B4;
  --accent:    #45F0C0;
  --accent-dk: #0B2E24;
  --accent-ink:#052018;
  --danger:    #F0637A;
  --font-d:    "Space Grotesk", "IBM Plex Sans Arabic", sans-serif;
  --font-m:    "IBM Plex Mono", monospace;
  --fs-hero:   clamp(2.1rem, 5.6vw, 4.6rem);
  --fs-h2:     clamp(1.6rem, 3.2vw, 2.6rem);
  --fs-h3:     clamp(1.05rem, 1.6vw, 1.3rem);
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2.5rem; --s5:4rem; --s6:6.5rem;
  --ease-out:  cubic-bezier(.16,1,.3,1);
  --t-fast:150ms; --t-mid:320ms; --t-slow:700ms;
  --shadow-1: 0 2px 8px rgba(0,0,0,.35);
  --shadow-2: 0 8px 32px rgba(0,0,0,.45);
  --shadow-3: 0 24px 64px rgba(0,0,0,.55);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-d); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
/* fine grain over everything */
body::after{
  content:""; position:fixed; inset:0; z-index:120; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
h1,h2,h3,h4,p,dl,dd,figure{margin:0}
h1,h2,h3{line-height:1.08; letter-spacing:-.02em; font-weight:700}
ul,ol{margin:0; padding:0; list-style:none}
button{font:inherit; cursor:pointer}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px}
::selection{background:var(--accent); color:var(--accent-ink)}
.muted{color:var(--muted)}
.accent{color:var(--accent)}
.wrap{width:min(1200px, 100% - 3rem); margin-inline:auto}

[dir="rtl"] body{font-family:"IBM Plex Sans Arabic", sans-serif}
[dir="rtl"] h1,[dir="rtl"] h2,[dir="rtl"] h3{letter-spacing:0}
[dir="rtl"] .hero__title,[dir="rtl"] .brand__name,[dir="rtl"] .btn{letter-spacing:0}
/* keep numeric counters LTR inside RTL layout so prefix/suffix stay ordered */
[dir="rtl"] .hero__metrics dt,[dir="rtl"] .stats dt,[dir="rtl"] .float b{direction:ltr;unicode-bidi:isolate}

/* ---------- status bar ---------- */
.statusbar{
  position:relative; z-index:60; background:var(--bg-2);
  border-bottom:1px solid var(--line);
  font-family:var(--font-m); font-size:.68rem; letter-spacing:.08em; color:var(--muted);
}
.statusbar__in{display:flex; gap:1.5rem; padding-block:.45rem; overflow:hidden}
.statusbar__cell{display:inline-flex; align-items:center; gap:.5rem; white-space:nowrap}
.statusbar__cell--right{margin-inline-start:auto; display:none}
@media(min-width:760px){.statusbar__cell--right{display:inline-flex}}
.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:pulse 2.4s infinite}
@keyframes pulse{50%{opacity:.35}}

/* ---------- header ---------- */
.hdr{
  position:sticky; top:0; z-index:80;
  background:color-mix(in srgb, var(--bg) 82%, transparent);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:background var(--t-mid);
}
.hdr__in{display:flex; align-items:center; gap:2rem; min-height:66px}
.brand{display:inline-flex; align-items:center; gap:.7rem; color:var(--ink)}
.brand__mark{height:38px; width:auto; display:block}
.brand__text{display:flex; flex-direction:column; line-height:1.15}
.brand__name{font-weight:700; letter-spacing:.14em; font-size:.95rem}
.brand__sub{font-family:var(--font-m); font-size:.58rem; letter-spacing:.18em; color:var(--muted)}
.nav{display:none; gap:1.8rem; margin-inline-start:auto}
@media(min-width:980px){.nav{display:flex}}
.nav__link{
  font-family:var(--font-m); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); padding-block:.4rem; position:relative; transition:color var(--t-fast);
}
.nav__link::after{
  content:""; position:absolute; inset-inline:0; bottom:0; height:1px;
  background:var(--accent); transform:scaleX(0); transform-origin:inline-start;
  transition:transform var(--t-mid) var(--ease-out);
}
.nav__link:hover{color:var(--ink)}
.nav__link:hover::after{transform:scaleX(1)}
.hdr__actions{display:flex; align-items:center; gap:.9rem; margin-inline-start:auto}
@media(min-width:980px){.hdr__actions{margin-inline-start:0}}

.lang{display:inline-flex; align-items:center; gap:.35rem; background:none; border:1px solid var(--line-2); padding:.35rem .6rem; color:var(--muted)}
.lang__opt{font-family:var(--font-m); font-size:.7rem; letter-spacing:.08em; padding:.1rem .15rem}
.lang__opt.is-on{color:var(--accent)}
.lang__sep{color:var(--line-2)}
.lang:hover{border-color:var(--accent); color:var(--ink)}

.burger{display:inline-flex; width:44px;height:44px; align-items:center; justify-content:center; background:none; border:1px solid var(--line-2)}
@media(min-width:980px){.burger{display:none}}
.burger span,.burger span::before,.burger span::after{
  content:""; display:block; width:18px; height:1.6px; background:var(--ink); position:relative; transition:transform var(--t-fast), opacity var(--t-fast);
}
.burger span::before{position:absolute; top:-6px}
.burger span::after{position:absolute; top:6px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}

/* mobile nav */
.mnav{
  position:fixed; inset:0; z-index:70; background:var(--bg); padding:6.5rem 1.5rem 2rem;
  display:flex; flex-direction:column; justify-content:space-between;
}
.mnav[hidden]{display:none}
.mnav nav{display:flex; flex-direction:column}
.mnav nav a{
  display:flex; gap:1rem; align-items:baseline; padding:1rem 0; font-size:1.4rem; font-weight:500;
  border-bottom:1px solid var(--line);
}
.mnav nav a span:first-child{font-family:var(--font-m); font-size:.7rem; color:var(--accent)}
.mnav__foot{font-family:var(--font-m); font-size:.72rem; color:var(--muted)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  font-family:var(--font-m); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
  padding:.9rem 1.6rem; border:1px solid var(--line-2); color:var(--ink);
  position:relative; transition:all var(--t-mid) var(--ease-out); white-space:nowrap;
}
.btn--sm{padding:.55rem 1rem; font-size:.66rem}
.btn--solid{background:var(--accent); border-color:var(--accent); color:var(--accent-ink)}
.btn--solid:hover{background:var(--ink); border-color:var(--ink); box-shadow:0 0 24px color-mix(in srgb, var(--accent) 45%, transparent)}
.btn--line:hover{border-color:var(--accent); color:var(--accent)}
.btn--block{width:100%}

/* ---------- hero ---------- */
@keyframes spin{to{transform:rotate(360deg)}}
.hero{position:relative; min-height:min(92svh, 900px); display:flex; align-items:flex-end; overflow:hidden}
.hero__bg{position:absolute; inset:0}
.hero__bg>img{width:100%; height:100%; object-fit:cover; animation:heroDrift 26s var(--ease-out) both}
@keyframes heroDrift{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(5,9,15,.72) 0%, rgba(5,9,15,.25) 42%, rgba(5,9,15,.94) 100%),
    linear-gradient(100deg, rgba(5,9,15,.85) 0%, rgba(5,9,15,.15) 60%);
}
.hero__grid{
  position:absolute; inset:0; opacity:.5;
  background-image:linear-gradient(rgba(214,232,244,.05) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(214,232,244,.05) 1px, transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(180deg, transparent 0%, #000 30%, transparent 90%);
}
.hero__orbits{position:absolute; top:50%; inset-inline-end:-18%; width:min(760px,70vw); transform:translateY(-58%); opacity:.6}
.hero__orbits ellipse{fill:none; stroke:rgba(214,232,244,.22); stroke-width:1; stroke-dasharray:3 7}
.hero__orbits .o1{animation:spin 60s linear infinite; transform-origin:450px 450px}
.hero__orbits .o2{animation:spin 42s linear infinite reverse; transform-origin:450px 450px}
.hero__orbits .o3{animation:spin 28s linear infinite; transform-origin:450px 450px}
.hero__orbits .sat{fill:var(--accent)}
.hero__orbits .s1{animation:sat1 60s linear infinite}
.hero__orbits .s2{animation:sat2 42s linear infinite reverse}
.hero__orbits .s3{animation:sat3 28s linear infinite}
@keyframes sat1{from{transform:translate(880px,450px) rotate(0) translate(-430px,0)}to{transform:translate(880px,450px) rotate(360deg) translate(-430px,0)}}
@keyframes sat2{from{transform:translate(780px,450px) rotate(0) translate(-330px,0)}to{transform:translate(780px,450px) rotate(-360deg) translate(-330px,0)}}
@keyframes sat3{from{transform:translate(670px,450px) rotate(0) translate(-220px,0)}to{transform:translate(670px,450px) rotate(360deg) translate(-220px,0)}}

.hero__in{position:relative; z-index:2; padding-block:clamp(5rem,12vh,9rem) var(--s5)}
.hero__kicker{
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:var(--font-m); font-size:.68rem; letter-spacing:.16em; color:var(--accent);
  border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);
  background:color-mix(in srgb, var(--accent-dk) 55%, transparent);
  padding:.5rem .9rem; margin-bottom:var(--s3);
}
.tick{width:8px;height:8px;background:var(--accent);animation:pulse 2.4s infinite}
.hero__title{
  font-size:var(--fs-hero); text-transform:uppercase; letter-spacing:-.025em;
  display:flex; flex-direction:column; max-width:14em;
}
.hero__title>.accent{
  color:var(--accent);
  text-shadow:0 0 32px color-mix(in srgb, var(--accent) 35%, transparent);
}
.hero__desc{max-width:56ch; margin-top:var(--s3); color:#C4D2DE; font-size:clamp(.95rem,1.4vw,1.1rem)}
.hero__cta{display:flex; flex-wrap:wrap; gap:1rem; margin-top:var(--s4)}
.hero__metrics{
  display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin-top:var(--s5);
  background:var(--line); border:1px solid var(--line);
}
@media(min-width:860px){.hero__metrics{grid-template-columns:repeat(4,1fr)}}
.hero__metrics>div{background:color-mix(in srgb, var(--bg) 72%, transparent); backdrop-filter:blur(6px); padding:1.1rem 1.3rem}
.hero__metrics dt{font-size:clamp(1.6rem,3vw,2.3rem); font-weight:700; color:var(--accent); font-variant-numeric:tabular-nums; letter-spacing:-.02em}
.hero__metrics dd{font-family:var(--font-m); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:.2rem}

/* ---------- ticker ---------- */
.ticker{border-block:1px solid var(--line); background:var(--bg-2); overflow:hidden; position:relative; z-index:3}
.ticker__track{display:flex; width:max-content; gap:0; animation:marquee 42s linear infinite; padding-block:.85rem}
.ticker__track>span{
  display:inline-flex; align-items:center; gap:.6rem; padding-inline:1.8rem;
  font-family:var(--font-m); font-size:.72rem; letter-spacing:.08em; color:var(--muted); white-space:nowrap;
  border-inline-end:1px solid var(--line);
}
.ticker__track b{color:var(--ink); font-weight:500; letter-spacing:.12em}
.ticker__track b::before{content:"▸ "; color:var(--accent)}
@keyframes marquee{to{transform:translateX(-50%)}}
[dir="rtl"] .ticker__track{animation-direction:reverse}

/* ---------- sections ---------- */
.sec{padding-block:var(--s6); position:relative}
.sec--alt{background:var(--bg-2); border-block:1px solid var(--line)}
.sechead{max-width:56rem; margin-bottom:var(--s5)}
.kick{
  display:flex; align-items:center; gap:.8rem; font-family:var(--font-m);
  font-size:.7rem; letter-spacing:.18em; color:var(--accent); margin-bottom:1.1rem; text-transform:uppercase;
}
.kick span:first-child{color:var(--muted)}
.kick::after{content:""; height:1px; flex:0 0 3.5rem; background:var(--line-2)}
.sechead h2{font-size:var(--fs-h2); text-transform:uppercase; letter-spacing:-.02em}
.sechead .muted{margin-top:1rem; max-width:64ch}

/* ---------- split (company) ---------- */
.split{display:grid; gap:var(--s5)}
@media(min-width:940px){.split{grid-template-columns:1.05fr .95fr; align-items:stretch}}
.split__text{display:flex; flex-direction:column; align-items:flex-start}
.split__text .values{width:100%}
.lead{font-size:clamp(1.05rem,1.8vw,1.3rem); line-height:1.5; color:var(--ink)}
.split .lead{margin-bottom:1rem}
.values{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:var(--s4)}
.value{background:var(--bg); padding:1.2rem}
.sec--alt .value{background:var(--bg-2)}
.value h4{font-size:.95rem; margin-bottom:.35rem}
.value h4::before{content:"— "; color:var(--accent)}
.value p{font-size:.85rem; color:var(--muted)}

.split__media{position:relative; display:flex; flex-direction:column; gap:.8rem}
.split__extra{margin-top:var(--s4); width:100%}
.split__extra img{width:100%; height:min(56vw, 430px); object-fit:cover; border:1px solid var(--line-2); display:block}
.stackfig{display:contents}
.stackfig img{width:100%; height:min(56vw, 430px); object-fit:cover; border:1px solid var(--line-2); display:block}
@media(min-width:940px){
  .split__extra{flex:1 1 auto; display:flex; min-height:240px; margin-top:auto; padding-top:var(--s4)}
  .split__extra img{height:auto; flex:1 1 auto; min-height:240px}
  .stackfig img{flex:1 1 0; height:auto; min-height:0}
}
.float{
  position:absolute; bottom:-1.2rem; inset-inline-start:-1rem;
  background:var(--accent); color:var(--accent-ink); padding:.9rem 1.2rem;
  display:flex; flex-direction:column; box-shadow:var(--shadow-2);
}
.float b{font-size:1.5rem; font-weight:700; line-height:1}
.float span{font-family:var(--font-m); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; margin-top:.2rem}

/* stats band */
.stats{
  display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line); margin-top:var(--s5);
}
@media(min-width:860px){.stats{grid-template-columns:repeat(4,1fr)}}
.stats>div{background:var(--bg); padding:1.4rem 1.5rem}
.sec--alt .stats>div{background:var(--bg-2)}
.stats dt{font-size:clamp(1.7rem,3.4vw,2.5rem); font-weight:700; letter-spacing:-.02em; font-variant-numeric:tabular-nums}
.stats dt i{font-style:normal; font-size:1rem; color:var(--accent); margin-inline-start:.25rem}
.stats dd{font-family:var(--font-m); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:.3rem}

/* ---------- services ---------- */
.svc3{display:grid; gap:1px; background:var(--line); border:1px solid var(--line)}
@media(min-width:900px){.svc3{grid-template-columns:repeat(3,1fr)}}
.svc{background:var(--bg-2); padding:2rem 1.8rem; position:relative; transition:background var(--t-mid)}
.svc:hover{background:var(--panel-2)}
.svc::before{
  content:""; position:absolute; top:0; inset-inline:0; height:2px;
  background:var(--accent); transform:scaleX(0); transform-origin:inline-start;
  transition:transform var(--t-mid) var(--ease-out);
}
.svc:hover::before{transform:scaleX(1)}
.svc__num{font-family:var(--font-m); font-size:.72rem; color:var(--accent); letter-spacing:.2em; margin-bottom:1.4rem}
.svc h3{font-size:var(--fs-h3); text-transform:uppercase; letter-spacing:-.01em; margin-bottom:.8rem; min-height:2.4em}
.svc p{font-size:.9rem; color:var(--muted)}
.svc ul{margin-top:1.4rem; border-top:1px solid var(--line); padding-top:1.1rem}
.svc li{
  font-size:.82rem; color:#B9C7D4; padding-block:.42rem;
  padding-inline-start:1.2rem; position:relative;
}
.svc li::before{content:"+"; position:absolute; inset-inline-start:0; color:var(--accent); font-family:var(--font-m)}

/* ---------- mission cards ---------- */
.mgrid{display:grid; grid-template-columns:1fr; gap:1.2rem}
@media(min-width:640px){.mgrid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.mgrid{grid-template-columns:repeat(4,1fr)}}
.mcard{
  position:relative; border:1px solid var(--line-2); background:var(--panel);
  overflow:hidden; display:flex; flex-direction:column; min-height:300px;
  transition:transform var(--t-mid) var(--ease-out), border-color var(--t-mid);
}
.mcard:hover{transform:translateY(-4px); border-color:var(--accent)}
.mcard img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.42; transition:opacity var(--t-mid), transform 6s var(--ease-out)}
.mcard:hover img{opacity:.6; transform:scale(1.05)}
.mcard::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(5,9,15,.1) 30%, rgba(5,9,15,.92) 100%)}
.mcard__tag{
  position:relative; z-index:2; align-self:flex-start; margin:1rem 0 0 1rem;
  font-family:var(--font-m); font-size:.6rem; letter-spacing:.2em; color:var(--accent);
  border:1px solid color-mix(in srgb, var(--accent) 45%, transparent); padding:.25rem .5rem;
  background:color-mix(in srgb, var(--bg) 65%, transparent);
}
[dir="rtl"] .mcard__tag{margin:1rem 1rem 0 0}
.mcard__body{position:relative; z-index:2; margin-top:auto; padding:1.2rem}
.mcard__body h3{font-size:1rem; line-height:1.3; margin-bottom:.5rem}
.mcard__body p{font-size:.8rem; color:#AEBDCB}

/* ---------- closed loop ---------- */
.loop{display:grid; gap:1rem}
@media(min-width:900px){.loop{grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; align-items:stretch}}
.loop__step{background:var(--bg); border:1px solid var(--line-2); padding:1.5rem 1.4rem; position:relative}
.sec--alt .loop__step{background:var(--bg-2)}
.loop__step::before{content:""; position:absolute; top:10px; inset-inline-start:10px; width:7px; height:7px; background:var(--accent)}
.loop__idx{font-family:var(--font-m); font-size:.64rem; letter-spacing:.22em; color:var(--accent); display:block; margin-bottom:.9rem}
.loop__step h3{font-size:1rem; text-transform:uppercase; margin-bottom:.5rem}
.loop__step p{font-size:.82rem; color:var(--muted)}
.loop__arrow{display:none; align-self:center; color:var(--accent); font-size:1.4rem; font-family:var(--font-m)}
@media(min-width:900px){.loop__arrow{display:block}}
[dir="rtl"] .loop__arrow{transform:scaleX(-1)}

/* ---------- manufacturing ---------- */
.mfg{display:grid; gap:var(--s4)}
@media(min-width:940px){.mfg{grid-template-columns:1.1fr .9fr; align-items:start}}
.mfg ol{counter-reset:step; border-top:1px solid var(--line-2)}
.mfg li{
  display:flex; align-items:center; gap:1.2rem; padding:1rem .6rem;
  border-bottom:1px solid var(--line); transition:background var(--t-fast);
}
.mfg li:hover{background:var(--panel)}
.mfg li span{font-family:var(--font-m); font-size:.64rem; letter-spacing:.16em; color:var(--accent); flex:0 0 4.2rem}
.mfg li b{font-weight:500; font-size:.98rem}
.mfg__media img{width:100%; height:clamp(300px, 36vw, 470px); object-fit:cover; border:1px solid var(--line-2); display:block}

/* ---------- news ---------- */
.ngrid{display:grid; gap:1.2rem; grid-template-columns:1fr}
@media(min-width:700px){.ngrid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.ngrid{grid-template-columns:repeat(3,1fr)}}
.ncard{border:1px solid var(--line-2); background:var(--bg); display:flex; flex-direction:column; overflow:hidden; transition:border-color var(--t-mid)}
.sec--alt .ncard{background:var(--bg-2)}
.ncard:hover{border-color:var(--accent)}
.ncard img{height:clamp(150px, 15vw, 200px); width:100%; object-fit:cover; filter:saturate(.85); transition:filter var(--t-mid)}
.ncard:hover img{filter:saturate(1.05)}
.ncard>div{padding:1.1rem 1.2rem 1.4rem}
.ncard time{font-family:var(--font-m); font-size:.62rem; letter-spacing:.16em; color:var(--accent); display:block; margin-bottom:.5rem}
.ncard h3{font-size:.95rem; line-height:1.4}
.ncard--lead{grid-column:1/-1; flex-direction:row}
.ncard--lead img{width:52%; min-height:240px; height:auto}
@media(min-width:700px){
  .ncard--lead{grid-column:span 2}
}
@media(min-width:1024px){.ncard--lead{grid-column:1/-1}}
.ncard--lead>div{flex:1; display:flex; flex-direction:column; justify-content:center}
.ncard--lead h3{font-size:clamp(1.1rem,2vw,1.5rem)}

/* ---------- contact ---------- */
.sec--contact{background:var(--bg-2); border-top:1px solid var(--line)}
.contact{display:grid; gap:var(--s4)}
@media(min-width:940px){.contact{grid-template-columns:.9fr 1.1fr}}
.contact__info{display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); align-self:start}
.cline{background:var(--bg-2); padding:1.1rem 1.3rem; display:flex; flex-direction:column; gap:.25rem}
.cline span{font-family:var(--font-m); font-size:.62rem; letter-spacing:.18em; color:var(--muted)}
.cline b{font-weight:500}
.cline a:hover{color:var(--accent)}
.coords{
  background:var(--bg-2); padding:1.4rem 1.3rem; display:flex; flex-wrap:wrap; gap:.55rem 1rem;
  font-family:var(--font-m); font-size:.64rem; letter-spacing:.12em;
}
.coords__geo{color:var(--accent)}
.coords__label{
  color:var(--muted); flex-basis:100%; display:flex; align-items:center; gap:.6rem;
}
.coords__label::before{content:""; width:1.6rem; height:1px; background:var(--line-2); flex:0 0 auto}

.cform{display:flex; flex-direction:column; gap:1.1rem}
.crow{display:grid; gap:1.1rem}
@media(min-width:640px){.crow{grid-template-columns:1fr 1fr}}
.cform label{display:flex; flex-direction:column; gap:.45rem; position:relative}
.cform label>span{font-family:var(--font-m); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.cform input,.cform select,.cform textarea{
  background:var(--bg); border:1px solid var(--line-2); color:var(--ink);
  font:inherit; font-size:.92rem; padding:.8rem .9rem; width:100%;
  transition:border-color var(--t-fast);
}
[dir="rtl"] .cform input,[dir="rtl"] .cform textarea{text-align:right}
[dir="rtl"] .cform select option{background:var(--bg)}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none; border-color:var(--accent)}
.cform textarea{resize:vertical}
.cform em{font-style:normal; font-family:var(--font-m); font-size:.66rem; color:var(--danger); min-height:0; display:none}
.cform .invalid input,.cform .invalid select,.cform .invalid textarea{border-color:var(--danger)}
.cform .invalid em{display:block}
.consent{flex-direction:row !important; align-items:flex-start; gap:.7rem !important}
.consent input{width:1.05rem; height:1.05rem; margin-top:.2rem; accent-color:var(--accent); flex:0 0 auto}
.consent span{font-family:var(--font-d) !important; font-size:.8rem !important; letter-spacing:0 !important; text-transform:none !important; color:#B9C7D4 !important}
.cform__status{font-family:var(--font-m); font-size:.72rem; letter-spacing:.06em; min-height:1.2em}
.cform__status.ok{color:var(--accent)}
.cform__status.err{color:var(--danger)}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line); background:var(--bg); padding-block:var(--s4)}
.foot__in{display:grid; gap:var(--s3)}
@media(min-width:860px){.foot__in{grid-template-columns:1.2fr auto; align-items:start}}
.foot__navcol{display:flex; flex-direction:column; gap:1.2rem}
@media(min-width:860px){.foot__navcol{align-items:flex-end}}
.foot__brand{font-weight:700; letter-spacing:.16em; margin-bottom:.4rem}
.foot nav{display:flex; flex-wrap:wrap; gap:1rem 1.5rem}
.foot nav a{font-family:var(--font-m); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted)}
.foot nav a:hover{color:var(--accent)}
.foot__meta{font-family:var(--font-m); font-size:.66rem; color:var(--muted)}

/* ---------- reveal ---------- */
.reveal,.reveal-1,.reveal-2,.reveal-3,.reveal-4,.reveal-5,.reveal-6,.reveal-7{
  opacity:0; transform:translateY(22px);
  transition:opacity var(--t-slow) var(--ease-out), transform var(--t-slow) var(--ease-out);
}
.reveal-2{transition-delay:80ms}.reveal-3{transition-delay:160ms}.reveal-4{transition-delay:240ms}
.reveal-5{transition-delay:340ms}.reveal-6{transition-delay:440ms}.reveal-7{transition-delay:560ms}
.in{opacity:1; transform:none}
.no-anim .reveal,.no-anim .reveal-1,.no-anim .reveal-2,.no-anim .reveal-3,.no-anim .reveal-4,
.no-anim .reveal-5,.no-anim .reveal-6,.no-anim .reveal-7{opacity:1; transform:none; transition:none}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important}
  .reveal,.reveal-1,.reveal-2,.reveal-3,.reveal-4,.reveal-5,.reveal-6,.reveal-7{opacity:1; transform:none}
}

/* ---------- small screens ---------- */
@media(max-width:520px){
  :root{--fs-hero:clamp(1.7rem,8vw,2.4rem); --s6:4.2rem}
  .hero__metrics>div{padding:.85rem 1rem}
  .hero__orbits{inset-inline-end:-55%; opacity:.4}
  .float{position:static; margin-top:.8rem; flex-direction:row; align-items:baseline; gap:.6rem}
  .ncard--lead{flex-direction:column}
  .ncard--lead img{width:100%}
}
