/* Novaj Tech theme v6 (Nov 2026). Loads after each page's own styles.
   Brand: navy #162B4E, ink #111111, slate #2B2F36, white. Type: Inter, with Inter Display for headlines.
   One accent, amber #FFB454: it marks the main button on dark areas and anything that is "ready".
   To change the look of the whole site, edit this file and save it under a new name (v7),
   because files in /assets are cached for a year. */

@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')}
@font-face{font-family:'Inter Display';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-display-medium.woff) format('woff')}
@font-face{font-family:'Inter Display';font-style:normal;font-weight:600 700;font-display:swap;src:url(/assets/fonts/inter-display-semibold.woff) format('woff')}

/* ---------- Tokens ---------- */
:root{
  --font-display:'Inter 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-night:#0B1730;
  --nv-navy:#162B4E;
  --nv-navy-deep:#0B1730;
  --nv-dawn:#FFB454;
  --nv-dawn-hi:#FFC574;

  /* the old bright blue family, as 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-page:#FFFFFF;
  --nv-white:#FFFFFF;
  --nv-off-white:#F4F6FA;
  --nv-subtle:#F4F6FA;
  --nv-border:#E0E6EE;
  --nv-border-soft:#EAEEF4;
  --nv-border-strong:#CDD6E3;

  --nv-grad-brand:linear-gradient(140deg,#2E4C80,#162B4E);
  --nv-grad-text:linear-gradient(120deg,#FFFFFF,#C9D6EA);
  --nv-grad-cta:#162B4E;

  /* morning sky, used behind the top of every inner page */
  --nv-hero-light:
    radial-gradient(640px 400px at 91% 0%,rgba(255,180,84,.36),rgba(255,180,84,0) 66%),
    radial-gradient(1100px 620px at 64% -24%,rgba(169,188,219,.5),rgba(169,188,219,0) 62%),
    linear-gradient(180deg,#E8EEF8 0%,#F5F8FC 56%,#FFFFFF 100%);
  /* night sky, used behind dark page tops and bands */
  --nv-sky-bg:
    radial-gradient(1200px 560px at 82% 122%,rgba(255,180,84,.16),rgba(255,180,84,0) 60%),
    radial-gradient(1100px 720px at 80% -20%,rgba(46,76,128,.55),rgba(46,76,128,0) 60%),
    linear-gradient(180deg,#0B1730 0%,#12244A 62%,#162B4E 100%);

  --shadow-btn:0 10px 24px -14px rgba(11,23,48,.7);
  --shadow-card-hover:0 0 0 1px rgba(22,43,78,.14),0 22px 44px -28px rgba(11,23,48,.5);
  --ease:cubic-bezier(.2,.7,.2,1);
}

html{-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);letter-spacing:-.005em;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
::selection{background:#162B4E;color:#fff}

/* ---------- Type ---------- */
main h1{font-family:var(--font-display)!important;font-weight:600!important;font-size:clamp(38px,5vw,64px)!important;line-height:1.03!important;letter-spacing:-.035em!important;text-wrap:balance}
main h2[style*="clamp("]{font-family:var(--font-display)!important;font-weight:600!important;font-size:clamp(28px,3.5vw,44px)!important;line-height:1.07!important;letter-spacing:-.03em!important;text-wrap:balance}
main h2,main h3{font-family:var(--font-display);letter-spacing:-.018em}
main h3[style*="font-weight:700"]{font-weight:600!important}
main p{text-wrap:pretty}

/* ---------- Dark areas: header bar, footer and navy bands. 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:#FFB454;
}
[style*="background:var(--nv-blue)"]{background:var(--nv-navy)!important}
/* full-width navy bands read as evening: deep at the top, a little first light along the bottom edge */
main>section[style*="background:var(--nv-navy)"]{background:radial-gradient(1200px 440px at 50% 132%,rgba(255,180,84,.22),rgba(255,180,84,0) 64%),linear-gradient(180deg,#0E1D3A 0%,#162B4E 100%)!important}

/* Soft blurred color blobs behind sections are gone. The sky gradients above do that job. */
main>section>div[aria-hidden="true"]:first-child>div[style*="filter:blur"]{display:none!important}

/* ---------- Buttons: one system. Navy on light areas, amber on navy areas, outline for the second choice. ---------- */
.nv-b1,.nv-epic,.nv-b2{
  border-radius:999px!important;
  font-family:var(--font-body)!important;font-weight:600!important;letter-spacing:-.005em!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;-webkit-tap-highlight-color:transparent;
}
.nv-b1,.nv-epic{background-color:#162B4E!important;color:#fff!important;border:0!important;box-shadow:0 10px 22px -14px rgba(11,23,48,.75)!important}
.nv-b1:hover,.nv-epic:hover{background-color:#22407A!important;transform:translateY(-1px);box-shadow:0 16px 30px -16px rgba(11,23,48,.8)!important}
.nv-b1:active,.nv-epic:active,.nv-b2:active{transform:translateY(0) scale(.98)}
.nv-epic::after{display:none!important}
/* the arrow chip inside buttons is retired; the button is the whole target */
.nv-bi{display:none!important}
.nv-b1.nv-bc{padding:13px 24px!important;gap:0!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:#FFB454!important;color:#111111!important;box-shadow:0 12px 30px -16px rgba(255,180,84,.55)!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:#FFC574!important}

#nv-mobile-overlay .nv-b1{background-color:#FFB454!important;color:#111111!important;box-shadow:none!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:#C5CFDE!important;color:#162B4E!important}
.nv-b2.nv-b2l:hover{border-color:#162B4E!important;background-color:#fff!important}

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

/* ---------- Cards: flat, one hairline, no resting shadow. Linked cards answer on hover. ---------- */
.nv-card,.nv-epic-card,.nvp3,.nv-fig{transition:transform .3s var(--ease),box-shadow .3s ease,border-color .3s ease}
html .nv-card,html[data-cards] .nv-card,.nv-epic-card,.nvp3{border-radius:14px!important;border-color:var(--nv-border)!important;box-shadow:none!important}
main [data-float]:not(.nv-b1):not(.nv-b2){box-shadow:none!important}
a.nv-card:hover,a.nv-epic-card:hover,a.nvp3:hover{transform:translateY(-2px)!important;border-color:#162B4E!important;box-shadow:0 22px 44px -30px rgba(11,23,48,.55)!important}
.nv-epic-card::after{display:none!important}

/* Questions: plain rows with a hairline, no boxes. */
main details[style*="border:1px solid var(--nv-border)"]{background:transparent!important;border:0!important;border-top:1px solid var(--nv-border-strong)!important;border-radius:0!important;margin-bottom:0!important;padding-left:0!important;padding-right:0!important;box-shadow:none!important}
main details[style*="border:1px solid var(--nv-border)"]:last-of-type{border-bottom:1px solid var(--nv-border-strong)!important}
main details>summary{font-family:var(--font-display)}
main details>summary::-webkit-details-marker{display:none}

/* 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 short fade for every section that uses it. */
.nv-reveal{transition:opacity .6s var(--ease),transform .6s var(--ease)!important}
html.nv-js .nv-reveal:not(.in){transform:translateY(12px)!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}
}

/* ---------- Project pages: "On this page" card ---------- */
.nv-toc{background:#fff!important;border:1px solid var(--nv-border)!important;box-shadow:none!important}
.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)}

/* ---------- Header bar and menus (light) ---------- */
header > div > div[style*="rgba(12,18,33"]{background:rgba(255,255,255,.92)!important;border:1px solid rgba(22,43,78,.10)!important;box-shadow:0 14px 34px -22px rgba(11,23,48,.45)!important;-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px)}
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:#F4F6FA!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(11,23,48,.5)!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:#566070!important}
.nv-dd [style*="color:var(--nv-blue-light)"]{color:#2E4C80!important}
.nv-dd [style*="background:linear-gradient(155deg"]{background:#F4F6FA!important;border-color:rgba(22,43,78,.10)!important}
.nv-dd a:hover{background-color:#F4F6FA}
.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}
header .nv-ddchev path{stroke:#6B7A92!important}
header .nv-hasmenu:hover .nv-ddchev path,header .nv-hasmenu.nv-open .nv-ddchev path{stroke:#162B4E!important}
header .nv-ddchev{margin-left:1px;flex:none}

/* ---------- Footer: night, with the wordmark set large as the sign-off ---------- */
footer{background:var(--nv-night)!important}
footer:has(.nv-foot-mark){padding-bottom:26px!important}
.nv-foot-mark{margin:44px 0 0;pointer-events:none;user-select:none;opacity:.13;-webkit-mask-image:linear-gradient(180deg,#000 20%,rgba(0,0,0,.25) 100%);mask-image:linear-gradient(180deg,#000 20%,rgba(0,0,0,.25) 100%)}
.nv-foot-mark img{display:block;width:100%;height:auto}
@media(max-width:700px){.nv-foot-mark{margin-top:36px}}
