/* ============================================================
   DotRyT — shared design system
   ============================================================ */
:root{
  --base:#05070D; --panel:#0A0F18; --panel-2:#0E1420; --line:#1A2233;
  --brand:#35C9F0; --brand-dim:#1C6E85;      /* DotRyT / GovCon cyan */
  --amber:#2E7CF6; --amber-glow:#66A3FF;      /* DefenseRyT royal blue */
  --steel:#B8C4D6;                            /* DefenseRyT silver */
  --text:#EAF0F7; --muted:#8794AB; --muted-2:#586579;
  --good:#48D597;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--base);color:var(--text);font-family:'Inter',system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.mono{font-family:'IBM Plex Mono',monospace}
.display{font-family:'Archivo',sans-serif}
.wrap{max-width:1200px;margin:0 auto;padding:0 30px}

.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--brand);display:inline-flex;align-items:center;gap:12px}
.eyebrow.amber{color:var(--amber)}
.eyebrow::before{content:"";width:24px;height:1px;background:currentColor;opacity:.6}

/* ---------------- NAV ---------------- */
nav.site{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
nav.site.scrolled{background:rgba(5,7,13,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{font-family:'Archivo',sans-serif;font-weight:800;font-size:21px;letter-spacing:.01em;display:inline-flex;align-items:center;gap:9px}
.brand .mark{width:11px;height:11px;border-radius:50%;background:var(--brand);box-shadow:0 0 12px var(--brand);flex:none}
.brand .mark-img{height:34px;width:auto;display:block;flex:none;filter:drop-shadow(0 0 8px rgba(53,201,240,.4))}
.brand-logo{height:44px;width:auto;display:block;filter:drop-shadow(0 0 10px rgba(46,124,246,.3))}
nav.site .brand-logo{height:42px}
footer.site .brand-logo{height:46px}
.brand b{color:var(--brand)}
.nav-links{display:flex;gap:17px;align-items:center}
.nav-links a{font-size:13.5px;color:var(--muted);transition:color .2s;white-space:nowrap}
.nav-links a:hover,.nav-links a.active{color:var(--text)}
.nav-btn{font-family:'IBM Plex Mono',monospace;font-size:13px;border:1px solid var(--brand-dim);color:var(--brand);padding:9px 16px;border-radius:2px;transition:all .2s;white-space:nowrap}
.nav-btn:hover{background:var(--brand);color:var(--base);border-color:var(--brand)}
.nav-drop{position:relative}
.nav-drop-t{background:none;border:none;font-family:inherit;font-size:13.5px;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:color .2s;white-space:nowrap;padding:0}
.nav-drop-t:hover,.nav-drop-t.active{color:var(--text)}
.nav-drop-t .car{font-size:10px;transition:transform .2s}
.nav-drop:hover .nav-drop-t .car{transform:rotate(180deg)}
.nav-drop-menu{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:10px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px;min-width:210px;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.nav-drop-menu::before{content:"";position:absolute;top:-12px;left:0;right:0;height:14px}
.nav-drop:hover .nav-drop-menu{display:block}
.nav-drop-menu a{display:block;padding:10px 12px;color:var(--muted);font-size:14px;border-radius:6px;white-space:nowrap}
.nav-drop-menu a:hover,.nav-drop-menu a.active{background:rgba(53,201,240,.1);color:var(--text)}
.nav-toggle{display:none;background:none;border:none;color:var(--text);font-size:24px;cursor:pointer}

/* ---------------- BUTTONS ---------------- */
.btn{font-family:'Archivo',sans-serif;font-weight:700;font-size:15px;padding:14px 26px;border-radius:3px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:9px}
.btn-brand{background:var(--brand);color:#032430;border:1px solid var(--brand)}
.btn-brand:hover{background:#5fd8f7;transform:translateY(-2px);box-shadow:0 10px 30px rgba(53,201,240,.22)}
.btn-amber{background:var(--amber);color:#fff;border:1px solid var(--amber)}
.btn-amber:hover{background:var(--amber-glow);transform:translateY(-2px);box-shadow:0 10px 30px rgba(46,124,246,.28)}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand)}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

/* ---------------- GENERIC HERO (interior pages) ---------------- */
.page-hero{position:relative;padding:170px 0 90px;overflow:hidden;border-bottom:1px solid var(--line)}
.page-hero::after{content:"";position:absolute;inset:0;z-index:0;background:
  radial-gradient(80% 120% at 85% 0%, rgba(53,201,240,.10), transparent 60%),
  linear-gradient(180deg, transparent, var(--base))}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{font-family:'Archivo',sans-serif;font-weight:900;font-size:clamp(40px,6.5vw,80px);line-height:.98;letter-spacing:-.02em;margin:24px 0 24px;max-width:16ch}
.page-hero h1 .hl{color:var(--brand)}
.page-hero h1 .am{color:var(--amber)}
.page-hero p.lede{font-size:clamp(17px,2vw,21px);color:var(--muted);max-width:60ch;margin-bottom:34px}
.page-hero p.lede b{color:var(--text);font-weight:500}

/* ---------------- SECTIONS ---------------- */
section.block{padding:104px 0;position:relative}
section.block.alt{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-head{max-width:62ch;margin-bottom:48px}
.sec-head h2{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(30px,4.4vw,50px);line-height:1.04;letter-spacing:-.015em;margin:16px 0 18px}
.sec-head h2 .hl{color:var(--brand)} .sec-head h2 .am{color:var(--amber)}
.sec-head p{color:var(--muted);font-size:17px}

/* feature list */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.feat{border:1px solid var(--line);border-radius:5px;padding:30px 28px;background:var(--panel);transition:border-color .25s,transform .25s}
.feat:hover{border-color:var(--brand-dim);transform:translateY(-3px)}
.feat .ic{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;color:var(--muted-2);margin-bottom:18px}
.feat h3{font-family:'Archivo',sans-serif;font-weight:700;font-size:20px;margin-bottom:10px}
.feat h3 .s{color:var(--brand)}
.feat p{font-size:14.5px;color:var(--muted)}

/* checklist */
.checks{display:grid;grid-template-columns:1fr 1fr;gap:14px 34px;margin-top:8px}
.check{display:flex;gap:12px;font-size:15.5px;color:var(--muted);padding:10px 0;border-top:1px solid var(--line)}
.check .m{color:var(--brand);flex:none;font-family:'IBM Plex Mono',monospace}
.check b{color:var(--text);font-weight:500}

/* stat row */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:10px}
.stat{border:1px solid var(--line);border-radius:5px;padding:26px 22px;background:var(--panel)}
.stat .n{font-family:'Archivo',sans-serif;font-weight:900;font-size:clamp(30px,4vw,44px);color:var(--brand);line-height:1}
.stat .l{font-size:13.5px;color:var(--muted);margin-top:8px}

/* CTA band */
.cta-band{border-top:1px solid var(--line);background:linear-gradient(180deg,var(--panel),var(--base))}
.cta-inner{text-align:center;padding:110px 0}
.cta-inner h2{font-family:'Archivo',sans-serif;font-weight:900;font-size:clamp(30px,5vw,58px);line-height:1;letter-spacing:-.02em;max-width:20ch;margin:20px auto 22px}
.cta-inner h2 .hl{color:var(--brand)} .cta-inner h2 .am{color:var(--amber)}
.cta-inner p{color:var(--muted);font-size:18px;max-width:52ch;margin:0 auto 34px}
.cta-inner .btn-row{justify-content:center}

/* press strip */
.press{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel)}
.press-inner{display:flex;flex-wrap:wrap;align-items:center;gap:16px 36px;padding:22px 0}
.press .lbl{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2)}
.press a{font-family:'Archivo',sans-serif;font-weight:600;font-size:15px;color:var(--muted);transition:color .2s}
.press a:hover{color:var(--text)}
.press .feat{font-family:'Archivo',sans-serif;font-weight:600;font-size:15px;color:var(--muted);cursor:default}

/* ---------------- FOOTER ---------------- */
footer.site{border-top:1px solid var(--line);padding:56px 0 40px;background:var(--panel)}
.foot-top{display:flex;justify-content:space-between;gap:44px;flex-wrap:wrap;margin-bottom:36px}
.foot-brand{max-width:34ch}
.foot-brand .brand{margin-bottom:14px}
.foot-brand p{font-size:14px;color:var(--muted-2)}
.foot-cols{display:flex;gap:54px;flex-wrap:wrap}
.foot-col h4{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin-bottom:14px}
.foot-col a{display:block;font-size:14px;color:var(--muted);padding:5px 0;transition:color .2s}
.foot-col a:hover{color:var(--brand)}
.foot-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--muted-2)}
.foot-bottom a{color:var(--muted)}.foot-bottom a:hover{color:var(--brand)}

/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

@media(max-width:1160px){ .nav-links{display:none} .nav-toggle{display:block} }
@media(max-width:860px){
  .feat-grid{grid-template-columns:1fr}
  .checks{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  section.block{padding:70px 0}
  .page-hero{padding:130px 0 66px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
