/* ──────────────────────────────────────────────────────────
   Code IT v1.1 — shared theme + interaction styles
   ────────────────────────────────────────────────────────── */
:root{
  --brand-50:#f0f7fc; --brand-100:#dcedf8; --brand-200:#b5daf0;
  --brand-400:#56b4e5; --brand-500:#4596cd; --brand-600:#3375ba;
  --brand-700:#285f9e; --brand-800:#1d4978; --brand-900:#153960; --brand-950:#0e2748;
  --page-tint:#eef2f8;
  --ink-900:#0f172a; --ink-700:#334155; --ink-600:#475569; --ink-500:#64748b;
  --ink-400:#94a3b8; --ink-300:#cbd5e1; --ink-200:#e2e8f0; --ink-100:#f1f5f9;
  --accent:#d4ff3a; --accent-2:#ff7a59; --green:#7ec47a;
}
html,body{font-family:'Geist','Inter',ui-sans-serif,system-ui,sans-serif; color:var(--ink-900); background:#fff; -webkit-font-smoothing:antialiased;}
.mono{font-family:'Geist Mono', ui-monospace, monospace;}
.serif{font-family:'Instrument Serif', ui-serif, Georgia, serif;}

.bg-brand-gradient{background-image:linear-gradient(135deg,#153960 0%,#3375ba 50%,#56b4e5 100%);}
.bg-page-tint{background-color:var(--page-tint);}
.bg-dot-grid{background-image:radial-gradient(circle at 1px 1px, rgb(148 163 184 / 0.25) 1px, transparent 0); background-size:24px 24px;}
.text-brand-700{color:var(--brand-700);} .text-brand-900{color:var(--brand-900);} .text-brand-400{color:var(--brand-400);}
.version-tag{position:fixed; top:12px; left:12px; z-index:100; background:rgba(15,23,42,0.92); color:#fff; font-family:'Geist Mono', monospace; font-size:11px; letter-spacing:.06em; padding:6px 10px; border-radius:6px;}

/* scroll progress strip */
#scrollProgress{position:fixed; left:0; right:0; top:80px; height:2px; z-index:50; pointer-events:none;}
#scrollProgress > i{display:block; height:100%; width:0%; background:linear-gradient(90deg,#153960,#3375ba,#56b4e5);}

/* magnetic nav */
.nav-cap{position:relative; display:inline-flex; align-items:center; gap:2px; padding:4px; border-radius:12px;}
.nav-cap > a, .nav-cap > .svc-wrap > a{position:relative; z-index:1; padding:8px 14px; border-radius:8px; font-size:14px; font-weight:600; color:var(--ink-700); transition:color .25s; display:inline-flex; align-items:center; gap:4px;}
.nav-cap > a::after, .nav-cap > .svc-wrap > a::after{content:""; position:absolute; left:14px; right:14px; bottom:6px; height:2px; border-radius:9999px; background:linear-gradient(90deg,var(--brand-600),var(--brand-400)); transform:scaleX(0); transform-origin:left center; transition:transform .2s ease-out;}
.nav-cap > a:hover, .nav-cap > .svc-wrap > a:hover{color:var(--brand-700);}
.nav-cap > a:hover::after, .nav-cap > .svc-wrap > a:hover::after{transform:scaleX(1);}
.nav-cap > a.active, .nav-cap > .svc-wrap > a.active{color:#fff;}
.nav-cap > a.active::after, .nav-cap > .svc-wrap > a.active::after{display:none;}
.nav-cap .ind{position:absolute; top:4px; bottom:4px; left:4px; border-radius:8px; background:linear-gradient(135deg,#153960,#3375ba); transition:transform .35s cubic-bezier(.2,.7,.2,1), width .35s cubic-bezier(.2,.7,.2,1); width:60px; z-index:0;}
.nav-cap .svc-wrap{position:relative; display:inline-flex; align-items:center; padding-bottom:8px; margin-bottom:-8px;}
.nav-cap .svc-wrap > a .chev{transition:transform .25s; opacity:.6;}
.nav-cap .svc-wrap:hover > a .chev{transform:rotate(180deg); opacity:1;}

/* mega menu */
.mega{
  position:absolute; left:50%; top:100%; margin-left:-380px; margin-top:4px;
  width:760px; max-width:88vw;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s, visibility .2s;
  background:#fff; border:1px solid rgb(15 23 42 / .08); border-radius:18px; overflow:hidden;
  box-shadow:0 30px 60px -30px rgb(15 57 96 / .35), 0 0 0 1px rgb(255 255 255 / .04) inset;
  z-index:60;
}
/* invisible bridge so cursor can travel from "Services" link to menu */
.mega::before{
  content:""; position:absolute; left:0; right:0; top:-24px; height:24px;
}
.nav-cap .svc-wrap:hover .mega,
.nav-cap .svc-wrap:focus-within .mega,
.nav-cap .svc-wrap.is-open .mega,
.mega:hover{ opacity:1; visibility:visible; pointer-events:auto;}
.mega-grid{display:grid; grid-template-columns:1fr 1fr; gap:0;}
.mega-col{padding:18px 20px; border-right:1px solid rgb(15 23 42 / .06); border-bottom:1px solid rgb(15 23 42 / .06);}
.mega-col:nth-child(2n){border-right:0;}
.mega-col:nth-last-child(-n+2){border-bottom:0;}
.mega-col .cat{display:flex; align-items:center; gap:8px; font-family:'Geist Mono',monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--brand-900);}
.mega-col .cat .ico{display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:8px; background:#eaf3fb; color:var(--brand-900);}
.mega-col ul{margin-top:10px; display:flex; flex-direction:column; gap:1px;}
.mega-col li > a{display:block; padding:7px 10px; border-radius:8px; font-size:13.5px; font-weight:500; color:var(--ink-700); transition:background .2s, color .2s; line-height:1.3;}
.mega-col li > a:hover{background:#eaf3fb; color:var(--brand-900);}
.mega-foot{background:#f7f9fc; padding:12px 22px; display:flex; align-items:center; justify-content:space-between; border-top:1px solid rgb(15 23 42 / .04);}
.mega-foot a{font-family:'Geist Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--brand-900); font-weight:600; display:inline-flex; align-items:center; gap:6px;}
.mega-foot a .a{transition:transform .25s;}
.mega-foot a:hover .a{transform:translateX(4px);}
.mega-foot .ct{font-family:'Geist Mono',monospace; font-size:11px; color:var(--ink-500);}
@media (max-width:900px){.mega{width:90vw;}}

/* word reveal */
.word-reveal{overflow:hidden;}
.word-reveal .w{display:inline-block; overflow:hidden; vertical-align:bottom;}
.word-reveal .w > b{display:inline-block; transform:translateY(110%); font-weight:inherit;}
.word-reveal.go .w > b{animation:rise .85s cubic-bezier(.2,.7,.2,1) forwards;}
.word-reveal.go .w:nth-child(1) > b{animation-delay:.05s}
.word-reveal.go .w:nth-child(2) > b{animation-delay:.13s}
.word-reveal.go .w:nth-child(3) > b{animation-delay:.21s}
.word-reveal.go .w:nth-child(4) > b{animation-delay:.29s}
.word-reveal.go .w:nth-child(5) > b{animation-delay:.37s}
.word-reveal.go .w:nth-child(6) > b{animation-delay:.45s}
.word-reveal.go .w:nth-child(7) > b{animation-delay:.53s}
@keyframes rise{to{transform:translateY(0)}}

/* pulse/blink */
.status-pulse{display:inline-block;width:8px;height:8px;border-radius:999px;background:#7ec47a;box-shadow:0 0 0 0 rgba(126,196,122,.6);animation:halo 2.4s ease-out infinite;}
@keyframes halo{0%{box-shadow:0 0 0 0 rgba(126,196,122,.6);}100%{box-shadow:0 0 0 14px rgba(126,196,122,0);}}
.dot-blink{display:inline-block;width:7px;height:7px;border-radius:999px;animation:blink 1.6s ease-in-out infinite;}
@keyframes blink{0%,100%{opacity:.35;transform:scale(.85);}50%{opacity:1;transform:scale(1);}}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .7s ease-out, transform .7s ease-out;}
[data-reveal].in{opacity:1;transform:translateY(0);}
[data-reveal-stagger] > *{opacity:0;transform:translateY(20px);transition:opacity .6s ease-out, transform .6s ease-out;}
[data-reveal-stagger].in > *{opacity:1;transform:translateY(0);}
[data-reveal-stagger].in > *:nth-child(1){transition-delay:0ms}
[data-reveal-stagger].in > *:nth-child(2){transition-delay:60ms}
[data-reveal-stagger].in > *:nth-child(3){transition-delay:120ms}
[data-reveal-stagger].in > *:nth-child(4){transition-delay:180ms}
[data-reveal-stagger].in > *:nth-child(5){transition-delay:240ms}
[data-reveal-stagger].in > *:nth-child(6){transition-delay:300ms}
[data-reveal-stagger].in > *:nth-child(7){transition-delay:360ms}
[data-reveal-stagger].in > *:nth-child(8){transition-delay:420ms}
[data-reveal-stagger].in > *:nth-child(9){transition-delay:480ms}
[data-reveal-stagger].in > *:nth-child(10){transition-delay:540ms}
[data-reveal-stagger].in > *:nth-child(11){transition-delay:600ms}
[data-reveal-stagger].in > *:nth-child(12){transition-delay:660ms}

/* svc card chrome */
.svc{position:relative;background:#fff;border:1px solid rgb(15 23 42 / .08);border-radius:18px;padding:24px;transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s, border-color .35s;overflow:hidden;display:block;}
.svc::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--brand-900),var(--brand-600),var(--brand-400));transform:scaleX(0);transform-origin:left center;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.svc:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgb(15 57 96 / .35);border-color:rgb(86 180 229 / .55);}
.svc:hover::after{transform:scaleX(1);}
.svc .ico{width:42px;height:42px;border-radius:12px;background:#eaf3fb;display:flex;align-items:center;justify-content:center;color:var(--brand-900);transition:all .4s cubic-bezier(.2,.7,.2,1);}
.svc:hover .ico{background:linear-gradient(135deg,var(--brand-900),var(--brand-400));color:#fff;transform:rotate(-8deg) scale(1.12);}
.svc .ico svg{transition:transform .4s cubic-bezier(.2,.7,.2,1);}
.svc:hover .ico svg{transform:scale(1.1);}
.svc.flagship{background:linear-gradient(135deg,#f0f7fc 0%, #fff 60%);}
.svc .arrow{display:inline-flex;align-items:center;gap:6px;font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-900);}
.svc .arrow .a{transition:transform .25s;}
.svc:hover .arrow .a{transform:translateX(5px);}

/* spotlight cards (clients) */
.spot{position:relative;overflow:hidden;border-radius:14px;border:1px solid rgb(15 23 42 / .08);background:#fff;padding:18px 16px;transition:border-color .3s;}
.spot::before{content:"";position:absolute;inset:-1px;background:radial-gradient(220px 220px at var(--mx,50%) var(--my,50%), rgba(86,180,229,.22), transparent 60%);pointer-events:none;opacity:0;transition:opacity .25s;}
.spot:hover::before{opacity:1;}
.spot:hover{border-color:rgb(86 180 229 / .45);}

/* console */
.console-wrap{position:relative;border-radius:20px;overflow:hidden;background:#0b0d11;color:#e7eaf0;box-shadow:0 30px 60px -30px rgb(15 18 22 / .35),0 0 0 1px rgb(255 255 255 / .04) inset;}
.console-grid-bg{position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:32px 32px;opacity:.5;}
.scanline{position:absolute;inset:0;background:radial-gradient(120% 60% at 50% 0%, rgba(86,180,229,.18), transparent 60%);pointer-events:none;}

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  [data-reveal], [data-reveal-stagger] > * { opacity:1 !important; transform:none !important; }
  .word-reveal .w > b{ transform:none !important; }
}
