/* NorthSky AERO — shared site styles
   Tokens, layout primitives, and reusable components.
   Page-specific styles still live inline per page where needed. */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  --bg:#0A0E1A;
  --bg-2:#0F1420;
  --surface:#131826;
  --surface-2:#1A2030;
  --surface-3:#222A3E;
  --border:rgba(255,255,255,.07);
  --border-2:rgba(255,255,255,.14);
  --text:#E8EDF5;
  --text-2:#B0B8CC;
  --muted:#6E7891;
  --dim:#3E4860;
  --accent:#00E5FF;
  --accent-soft:rgba(0,229,255,.14);
  --accent-line:rgba(0,229,255,.4);
  --amber:#FFB547;
  --amber-soft:rgba(255,181,71,.14);
  --green:#4ADE80;
  --green-soft:rgba(74,222,128,.14);
  --red:#FF6B6B;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Geist',-apple-system,system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --maxw:1280px;
}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:400;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
::selection{background:var(--accent);color:#001218}

/* utilities */
.mono{font-family:var(--mono);font-feature-settings:"tnum","ss01";letter-spacing:.02em}
.serif{font-family:var(--serif);font-optical-sizing:auto}
.label{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.label-accent{color:var(--accent)}
.chip{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);border:1px solid var(--border);padding:5px 9px;border-radius:2px;white-space:nowrap;display:inline-block}
.chip--accent{color:var(--accent);border-color:var(--accent-line)}
.chip--amber{color:var(--amber);border-color:rgba(255,181,71,.4)}
.chip--green{color:var(--green);border-color:rgba(74,222,128,.4)}
.chip--muted{color:var(--muted);border-color:var(--border)}

/* stage badges — product maturity */
.stage{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:4px 9px;border-radius:2px;border:1px solid;display:inline-block;vertical-align:middle}
.stage--live{color:var(--green);border-color:rgba(74,222,128,.5);background:rgba(74,222,128,.08)}
.stage--deploy{color:#7DEEFF;border-color:rgba(125,238,255,.5);background:rgba(125,238,255,.08)}
.stage--pilot{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}
.stage--roadmap{color:var(--amber);border-color:rgba(255,181,71,.4);background:var(--amber-soft)}
.stage--early{color:var(--muted);border-color:var(--border-2)}

/* inline capability stage chip — for use inside text rows / matrix cells */
.cap-stage{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;padding:3px 7px;border-radius:2px;border:1px solid;display:inline-block;vertical-align:middle;white-space:nowrap}
.cap-stage--live{color:var(--green);border-color:rgba(74,222,128,.5);background:rgba(74,222,128,.08)}
.cap-stage--deploy{color:#7DEEFF;border-color:rgba(125,238,255,.5);background:rgba(125,238,255,.08)}
.cap-stage--pilot{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}
.cap-stage--roadmap{color:var(--amber);border-color:rgba(255,181,71,.4);background:var(--amber-soft)}
.cap-stage--none{color:var(--muted);border-color:var(--border)}

/* capability matrix — for modules.html (capability families × products) */
.capability-matrix{border:1px solid var(--border);overflow:hidden;margin-top:32px}
.capability-matrix table{width:100%;border-collapse:collapse;font-size:13px}
.capability-matrix th,.capability-matrix td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:middle}
.capability-matrix th:last-child,.capability-matrix td:last-child{border-right:0}
.capability-matrix tr:last-child td{border-bottom:0}
.capability-matrix thead th{background:#0B1020;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}
.capability-matrix td:first-child{font-family:var(--serif);font-size:15px;font-weight:500;color:var(--text);letter-spacing:-.005em}
.capability-matrix td:first-child small{display:block;font-family:var(--sans);font-weight:400;color:var(--text-2);font-size:12.5px;margin-top:2px;letter-spacing:0}
.capability-matrix td.dash{color:var(--muted);font-family:var(--mono);font-size:14px;text-align:center}
@media (max-width:800px){.capability-matrix{overflow-x:auto}.capability-matrix table{min-width:720px}}

/* zone card — for solutions.html (one platform, six zones) */
.zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-top:40px}
@media (max-width:1000px){.zone-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.zone-grid{grid-template-columns:1fr}}
.zone-card{background:var(--bg);padding:32px 28px;display:flex;flex-direction:column;gap:14px;min-height:340px}
.zone-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.zone-card__num{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--accent)}
.zone-card__title{font-family:var(--serif);font-size:24px;font-weight:500;letter-spacing:-.015em;line-height:1.15}
.zone-card__title em{font-style:italic;color:var(--accent)}
.zone-card__problem{color:var(--text-2);font-size:14px;line-height:1.55}
.zone-card__problem b{color:var(--text);font-weight:500}
.zone-card__caps{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:11.5px;color:var(--text-2);line-height:1.5}
.zone-card__caps span{padding-left:14px;position:relative}
.zone-card__caps span::before{content:'◆';position:absolute;left:0;color:var(--accent);font-size:8px;top:3px}
.zone-card__products{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:auto;padding-top:8px;border-top:1px dashed rgba(255,255,255,.06)}
.zone-card__products b{color:var(--text);font-weight:500}
.zone-card__roadmap{font-size:12.5px;color:var(--text-2);line-height:1.5;font-style:italic}

/* status bar */
.statusbar{position:relative;z-index:100;background:#070A12;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:11px;letter-spacing:.10em;color:var(--text-2)}
.statusbar__inner{max-width:var(--maxw);margin:0 auto;padding:9px 28px;display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.statusbar__live{display:flex;align-items:center;gap:9px;color:var(--text)}
.statusbar__dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(74,222,128,.7);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.6)}70%{box-shadow:0 0 0 8px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
.statusbar__ticker{flex:1;overflow:hidden;white-space:nowrap;mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%)}
.ticker-track{display:inline-block;white-space:nowrap;animation:ticker 80s linear infinite;padding-left:100%}
.ticker-track span{padding:0 24px;color:var(--text-2)}
.ticker-track i{color:var(--accent);font-style:normal;margin-right:6px}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-100%)}}
.statusbar__zulu{display:flex;gap:14px;align-items:center}
.statusbar__zulu strong{color:var(--text);font-weight:500}

/* navigation */
.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);background:rgba(10,14,26,.78);border-bottom:1px solid var(--border)}
.nav__inner{max-width:var(--maxw);margin:0 auto;padding:18px 28px;display:flex;align-items:center;gap:48px}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand__mark{width:32px;height:32px;position:relative}
.brand__mark svg{width:100%;height:100%}
.brand__name{font-family:var(--serif);font-weight:500;font-size:20px;letter-spacing:-.01em;font-feature-settings:"ss01"}
.brand__name em{font-style:italic;color:var(--accent);font-weight:400}
.brand__name sup{font-family:var(--mono);font-size:9px;letter-spacing:.18em;color:var(--muted);margin-left:6px;vertical-align:middle;position:relative;top:-2px;font-weight:500;text-transform:uppercase}
.nav__links{display:flex;gap:30px;font-size:14px;color:var(--text-2)}
.nav__links a{transition:color .2s;position:relative;padding:6px 0}
.nav__links a:hover{color:var(--text)}
.nav__links a.active{color:var(--text)}
.nav__links a.active::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:1px;background:var(--accent)}
.nav__cta{margin-left:auto;display:flex;gap:12px;align-items:center}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:11px 18px;font-size:13.5px;font-weight:500;letter-spacing:.005em;border-radius:2px;transition:all .25s cubic-bezier(.4,0,.2,1);white-space:nowrap}
.btn--ghost{color:var(--text-2);border:1px solid var(--border-2)}
.btn--ghost:hover{color:var(--text);border-color:var(--text-2)}
.btn--primary{background:var(--accent);color:#001218;font-weight:600;position:relative;overflow:hidden}
.btn--primary:hover{box-shadow:0 0 32px rgba(0,229,255,.35)}
.btn--text{color:var(--text-2);padding:11px 4px}
.btn--text:hover{color:var(--accent)}
.btn .arrow{transition:transform .25s}
.btn:hover .arrow{transform:translateX(3px)}
@media (max-width:900px){.nav__links{display:none}.statusbar__ticker{display:none}}

/* page hero */
.page-hero{position:relative;padding:80px 28px 90px;border-bottom:1px solid var(--border);overflow:hidden}
.page-hero__inner{max-width:var(--maxw);margin:0 auto;position:relative;z-index:2}
.page-hero__crumb{display:flex;align-items:center;gap:14px;margin-bottom:32px;font-family:var(--mono);font-size:11px;letter-spacing:.20em;text-transform:uppercase;color:var(--muted)}
.page-hero__crumb .line{flex:0 0 56px;height:1px;background:linear-gradient(90deg,var(--accent),transparent)}
.page-hero__crumb strong{color:var(--text);font-weight:500}
.page-hero__crumb a{transition:color .2s}.page-hero__crumb a:hover{color:var(--accent)}
.page-hero__title{font-family:var(--serif);font-weight:300;font-size:clamp(40px,6.5vw,86px);line-height:.98;letter-spacing:-.03em;color:var(--text);margin-bottom:28px;font-feature-settings:"ss01";max-width:18ch}
.page-hero__title em{font-style:italic;color:var(--accent)}
.page-hero__lead{font-size:19px;line-height:1.55;color:var(--text-2);max-width:640px}
.page-hero__lead b{color:var(--text);font-weight:500}

/* section heads */
.section-head{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:32px;margin-bottom:56px}
.section-head__title{font-family:var(--serif);font-weight:300;font-size:clamp(32px,4vw,54px);line-height:1.05;letter-spacing:-.022em;max-width:760px}
.section-head__title em{font-style:italic;color:var(--accent)}
.section-head__meta{display:flex;flex-direction:column;gap:8px;text-align:right;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);max-width:280px}
.section-head__meta strong{color:var(--text);font-weight:500}

/* generic section */
.section{padding:100px 28px;border-bottom:1px solid var(--border)}
.section--alt{background:#070A12}
.section__inner{max-width:var(--maxw);margin:0 auto}

/* cards */
.card{border:1px solid var(--border);background:var(--surface);padding:32px;transition:border-color .25s, background .25s}
.card:hover{border-color:var(--border-2);background:var(--surface-2)}
.card__eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.card__title{font-family:var(--serif);font-size:24px;font-weight:500;letter-spacing:-.015em;line-height:1.15;margin-bottom:12px}
.card__title em{font-style:italic;color:var(--accent)}
.card__text{font-size:14.5px;line-height:1.6;color:var(--text-2)}

/* CTA band */
.cta-band{padding:110px 28px;text-align:center;border-bottom:1px solid var(--border);position:relative;overflow:hidden}
.cta-band h2{font-family:var(--serif);font-weight:300;font-size:clamp(36px,5vw,68px);line-height:1.02;letter-spacing:-.03em;margin-bottom:24px}
.cta-band h2 em{font-style:italic;color:var(--accent)}
.cta-band p{color:var(--text-2);font-size:17px;max-width:560px;margin:0 auto 32px;line-height:1.55}
.cta-band__buttons{display:inline-flex;gap:14px;flex-wrap:wrap;justify-content:center}

/* footer */
footer{padding:60px 28px 36px;background:#050810}
.footer__inner{max-width:var(--maxw);margin:0 auto}
.footer__top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid var(--border)}
@media (max-width:1100px){.footer__top{grid-template-columns:1.5fr 1fr 1fr;gap:40px}}
@media (max-width:800px){.footer__top{grid-template-columns:1fr 1fr;gap:32px}}
@media (max-width:500px){.footer__top{grid-template-columns:1fr}}
.footer__brand{max-width:340px}
.footer__tag{color:var(--text-2);font-size:13.5px;margin-top:16px;line-height:1.6}
.footer__col h5{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;font-weight:500}
.footer__col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer__col li a{color:var(--text-2);font-size:13.5px;transition:color .2s}
.footer__col li a:hover{color:var(--accent)}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;padding-top:32px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;color:var(--muted)}
.footer__bottom .compliance{display:flex;gap:10px;flex-wrap:wrap}
.footer__bottom .compliance span{border:1px solid var(--border);padding:5px 9px;border-radius:2px}

/* reveal animations */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.65,0,.35,1),transform .8s cubic-bezier(.65,0,.35,1)}
.reveal.in{opacity:1;transform:translateY(0)}
.stagger > *{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.65,0,.35,1),transform .7s cubic-bezier(.65,0,.35,1)}
.stagger.in > *{opacity:1;transform:translateY(0)}
.stagger.in > *:nth-child(1){transition-delay:0s}
.stagger.in > *:nth-child(2){transition-delay:.06s}
.stagger.in > *:nth-child(3){transition-delay:.12s}
.stagger.in > *:nth-child(4){transition-delay:.18s}
.stagger.in > *:nth-child(5){transition-delay:.24s}
.stagger.in > *:nth-child(6){transition-delay:.3s}
.stagger.in > *:nth-child(7){transition-delay:.36s}
.stagger.in > *:nth-child(8){transition-delay:.42s}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
