/* Novaj Tech brand theme (Oct 2026). Loads after each page's own styles.
   Brand: navy #162B4E, ink #111111, slate #2B2F36, white. Type: Inter. */

@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-regular.woff) format('woff')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-medium.woff) format('woff')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/inter-semibold.woff) format('woff')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/inter-bold.woff) format('woff')}

:root{
  --font-display:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'Inter',system-ui,sans-serif;

  --nv-ink:#111111;
  --nv-body:#2B2F36;
  --nv-navy:#162B4E;
  --nv-navy-deep:#11213D;

  /* the old bright blue family, now navy tones */
  --nv-blue:#2E4C80;
  --nv-blue-deep:#162B4E;
  --nv-sky:#8EA6CC;
  --nv-blue-light:#A9BCDB;
  --nv-blue-tint:#EEF2F8;
  --nv-violet:#2E4C80;
  --nv-violet-light:#A9BCDB;
  --nv-mint:#8EA6CC;
  --nv-mint-light:#A9BCDB;

  --nv-grad-brand:linear-gradient(140deg,#2E4C80,#162B4E);
  --nv-grad-text:linear-gradient(120deg,#FFFFFF,#C9D6EA);
  --nv-grad-cta:#162B4E;
  --nv-sky-bg:radial-gradient(1100px 720px at 80% -20%,rgba(46,76,128,.55) 0%,rgba(46,76,128,0) 60%),linear-gradient(180deg,#172D52 0%,#162B4E 55%,#132542 100%);

  --shadow-btn:0 10px 24px -14px rgba(17,33,61,.7);
  --shadow-card-hover:0 0 0 1px rgba(22,43,78,.10),0 22px 44px -24px rgba(17,33,61,.45);
  --ease:cubic-bezier(.2,.7,.2,1);
}

body{font-family:var(--font-body);letter-spacing:-.005em}
h1,h2,h3{letter-spacing:-.02em}
::selection{background:#162B4E;color:#fff}

/* Dark areas: header bar, footer and navy sections. Accents turn light so they read on navy. */
footer,
[style*="background:var(--nv-sky-bg)"],
[style*="background:var(--nv-navy"],
[style*="background:var(--nv-blue)"],
[style*="background:linear-gradient(120deg,rgba(12,18,33"]{
  --nv-blue:#C9D6EA;
  --nv-blue-deep:#E3E9F3;
  --nv-sky:#A9BCDB;
  --nv-grad-cta:#FFFFFF;
}
[style*="background:var(--nv-blue)"]{background:var(--nv-navy)!important}

/* One button system for the whole site.
   Primary: navy on light areas, white on navy areas. Secondary: outline. Same motion everywhere. */
.nv-b1,.nv-epic,.nv-b2{
  border-radius:999px!important;
  transition:transform .25s var(--ease),background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .25s ease!important;
  background-image:none!important;
}
.nv-b1,.nv-epic{background-color:#162B4E!important;color:#fff!important;border:0!important;box-shadow:0 10px 22px -14px rgba(17,33,61,.75)!important}
.nv-b1:hover,.nv-epic:hover{background-color:#20396B!important;transform:translateY(-1px);box-shadow:0 14px 28px -14px rgba(17,33,61,.8)!important}
.nv-b1:active,.nv-epic:active,.nv-b2:active{transform:translateY(0) scale(.98)}
.nv-epic::after{display:none!important}
.nv-b1 .nv-bi{transition:background-color .2s ease,color .2s ease}
.nv-b1:hover .nv-bi{background:#fff!important;color:#162B4E!important}

footer .nv-b1,
[style*="background:var(--nv-sky-bg)"] .nv-b1,[style*="background:var(--nv-sky-bg)"] .nv-epic,
[style*="background:var(--nv-navy"] .nv-b1,[style*="background:var(--nv-navy"] .nv-epic,
[style*="background:var(--nv-blue)"] .nv-b1,[style*="background:var(--nv-blue)"] .nv-epic{
  background-color:#fff!important;color:#162B4E!important;box-shadow:0 10px 26px -16px rgba(0,0,0,.6)!important}
footer .nv-b1:hover,
[style*="background:var(--nv-sky-bg)"] .nv-b1:hover,[style*="background:var(--nv-sky-bg)"] .nv-epic:hover,
[style*="background:var(--nv-navy"] .nv-b1:hover,[style*="background:var(--nv-navy"] .nv-epic:hover,
[style*="background:var(--nv-blue)"] .nv-b1:hover,[style*="background:var(--nv-blue)"] .nv-epic:hover{background-color:#E6ECF5!important}
footer .nv-b1 .nv-bi,
[style*="background:var(--nv-sky-bg)"] .nv-b1 .nv-bi,[style*="background:var(--nv-navy"] .nv-b1 .nv-bi,[style*="background:var(--nv-blue)"] .nv-b1 .nv-bi{background:#162B4E!important;color:#fff!important}

.nv-b2{background-color:transparent!important;border:1px solid rgba(255,255,255,.38)!important;color:#fff!important;box-shadow:none!important}
.nv-b2:hover{background-color:rgba(255,255,255,.10)!important;border-color:rgba(255,255,255,.7)!important;transform:translateY(-1px)}
.nv-b2.nv-b2l{background-color:#fff!important;border-color:#C9D3E2!important;color:#162B4E!important}
.nv-b2.nv-b2l:hover{border-color:#162B4E!important}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #2E4C80;outline-offset:3px}
footer a:focus-visible,[style*="background:var(--nv-sky-bg)"] a:focus-visible,[style*="background:var(--nv-navy"] a:focus-visible{outline-color:#fff}

/* Cards: one calm hover everywhere. */
.nv-card,.nv-epic-card,.nvp3,.nv-fig{transition:transform .3s var(--ease),box-shadow .3s ease,border-color .3s ease}
a.nv-card:hover,.nv-epic-card:hover,a.nvp3:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover)!important;border-color:rgba(22,43,78,.22)!important}
.nv-epic-card::after{display:none!important}

/* Photos: slow, small zoom on hover inside their frame. */
.nv-fig{overflow:hidden}
.nv-fig img{transition:transform .8s var(--ease)}
.nv-fig:hover img{transform:scale(1.03)}

/* Scroll reveal: one gentle fade-up for every section that uses it. */
.nv-reveal{transition:opacity .7s var(--ease),transform .7s var(--ease)!important}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
  .nv-fig:hover img,a.nv-card:hover,.nv-epic-card:hover,a.nvp3:hover,.nv-b1:hover,.nv-b2:hover{transform:none!important}
}

/* Light hero (Oct 10): softer first screen, navy text. */
:root{--nv-hero-light:radial-gradient(900px 520px at 85% -10%,rgba(46,76,128,.10),rgba(46,76,128,0) 60%),linear-gradient(180deg,#EEF2F8 0%,#F6F8FB 60%,#FFFFFF 100%)}

/* Project pages: "On this page" card on the light hero. */
.nv-toc{background:#fff!important;border:1px solid var(--nv-border)!important;box-shadow:0 12px 30px -24px rgba(17,33,61,.45)}
.nv-toc-label{color:var(--nv-blue)!important}
.nv-toc-list{border-left-color:rgba(22,43,78,.18)!important}
.nv-toc-list a{color:var(--nv-ink)!important}
.nv-toc-list a::before{background:#2E4C80!important;box-shadow:0 0 0 3px rgba(46,76,128,.15)!important}
.nv-toc-list a:hover{color:#2E4C80!important}
.nv-toc-list a .nv-toc-beat,.nv-toc-list a:hover .nv-toc-beat{color:var(--nv-slate)!important}
.nv-toc-list a span,.nv-toc-num{color:var(--nv-slate)}

/* Light header bar and menus (Oct 10). */
header > div > div[style*="rgba(12,18,33"]{background:rgba(255,255,255,.88)!important;border:1px solid rgba(22,43,78,.10)!important;box-shadow:0 12px 32px -20px rgba(17,33,61,.35)!important}
header .nv-nav > .nv-hasmenu > a,header .nv-nav > a,header a[href^="tel:"].nv-link-u{color:#162B4E!important}
header .nv-b2{background-color:transparent!important;border:1px solid rgba(22,43,78,.28)!important;color:#162B4E!important}
header .nv-b2:hover{border-color:#162B4E!important;background-color:#F3F6FA!important}
header .nv-sm-only,header .nv-burger{background:#fff!important;border:1px solid rgba(22,43,78,.18)!important;color:#162B4E!important}
.nv-dd{background:#fff!important;border:1px solid rgba(22,43,78,.10)!important;box-shadow:0 28px 60px -28px rgba(17,33,61,.45)!important}
.nv-dd [style*="color:#fff"],.nv-dd [style*="color:#EAF0F8"]{color:#111111!important}
.nv-dd [style*="color:#8C9DB8"],.nv-dd [style*="color:#AEBBD1"],.nv-dd [style*="color:#66768F"],.nv-dd [style*="color:#C7D2E2"]{color:#5B6573!important}
.nv-dd [style*="color:var(--nv-blue-light)"]{color:#2E4C80!important}
.nv-dd [style*="background:linear-gradient(155deg"]{background:#F3F6FA!important;border-color:rgba(22,43,78,.10)!important}
.nv-dd a:hover{background-color:#F3F6FA}
.nv-dd [style*="border-top:1px solid rgba(255"],.nv-dd [style*="border-bottom:1px solid rgba(255"],.nv-dd [style*="border-left:1px solid rgba(255"]{border-color:rgba(22,43,78,.10)!important}

