/* Transilvania Quantum — shared shell theme.
   Design tokens + the site shell (nav, footer, buttons). Loaded by every page.
   Page-specific modules (hero, forms, timelines, etc.) live in each page. */

:root {
  --navy-900:#0A1521; --navy-800:#0E1B2E; --navy-700:#1A2E47;
  --accent:#5B8DB8; --accent-600:#2A5F8F; --accent-300:#7EA8CC;
  --slate-200:#A8BCD1; --slate-400:#8FA6BF; --slate-700:#5A6B7D; --slate-500:#6E7B8A;
  --cloud-200:#E4E8ED; --cloud-400:#CBD6E2; --cloud-50:#F5F7F9; --white:#FFFFFF;
  --purple:#6B5B95;
  --font-heading:'Source Serif 4',Georgia,'Times New Roman',serif;
  --font-body:'Source Sans 3',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'JetBrains Mono','SF Mono',Menlo,monospace;
  --measure:34rem; --pad-x:clamp(20px,5vw,64px);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--font-body);color:var(--navy-700);background:var(--white);line-height:1.65;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600;line-height:1.2;letter-spacing:-0.01em;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1120px;margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x);}
.eyebrow{font-size:0.72rem;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent-600);}
.on-dark .eyebrow,.eyebrow.on-dark{color:var(--accent);}
.mono{font-family:var(--font-mono);font-size:0.85em;}

.btn{font-family:var(--font-body);font-size:0.92rem;font-weight:500;padding:11px 22px;border-radius:4px;display:inline-block;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s,color .15s;}
.btn-primary{background:var(--accent);color:var(--navy-900);}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--accent-300);}
.btn-ghost{background:transparent;color:var(--accent);border-color:rgba(91,141,184,0.4);}
.btn-ghost:hover,.btn-ghost:focus-visible{border-color:var(--accent);color:var(--accent-300);}
.btn-ghost-light{background:transparent;color:var(--accent-600);border-color:var(--cloud-400);}
.btn-ghost-light:hover,.btn-ghost-light:focus-visible{border-color:var(--accent-600);}

/* NAV */
.nav{background:var(--navy-800);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(255,255,255,0.06);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand img{height:30px;width:auto;display:block;}
.brand-name{font-family:var(--font-heading);font-weight:500;font-size:1.02rem;color:var(--white);}
.nav-right{display:flex;align-items:center;gap:28px;}
.nav-links{display:flex;gap:26px;}
.nav-links a{font-size:0.9rem;color:var(--slate-200);transition:color .15s;padding-bottom:3px;border-bottom:2px solid transparent;}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--white);}
.nav-links a.current{color:var(--white);border-bottom-color:var(--accent);}

/* SECONDARY NAV (Post-Quantum track) — a slimmer, quieter row beneath the
   primary bar. Deeper navy + smaller, muted type so the hierarchy is clear.
   The sub-links are right-anchored (like the primary nav) and offset by an
   invisible mirror of the primary items, so "Overview" lands under the first
   primary item ("Post-Quantum"). */
.subnav{background:var(--navy-900);border-bottom:1px solid rgba(255,255,255,0.06);}
.subnav-inner{display:flex;justify-content:flex-end;}
.subnav-align{position:relative;display:flex;align-items:center;}
.subnav-mirror{display:inline-flex;gap:26px;height:44px;align-items:center;visibility:hidden;font-size:0.9rem;pointer-events:none;}
.subnav-links{position:absolute;left:0;top:0;height:100%;display:flex;align-items:center;gap:26px;}
.subnav-links a{font-size:0.82rem;color:var(--slate-400);white-space:nowrap;padding-bottom:2px;border-bottom:2px solid transparent;transition:color .15s;}
.subnav-links a:hover,.subnav-links a:focus-visible{color:var(--slate-200);}
.subnav-links a.current{color:var(--white);border-bottom-color:var(--accent);}
@media (max-width:820px){
  /* Primary items collapse into the hamburger, so alignment is moot — just
     flow the sub-links from the left. */
  .subnav-inner{justify-content:flex-start;}
  .subnav-mirror{display:none;}
  .subnav-links{position:static;height:44px;overflow-x:auto;}
}

.nav-toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,0.18);border-radius:4px;width:40px;height:38px;cursor:pointer;padding:0;align-items:center;justify-content:center;}
.nav-toggle:hover{border-color:rgba(255,255,255,0.4);}
.nav-toggle span,.nav-toggle span:before,.nav-toggle span:after{content:"";display:block;width:18px;height:2px;background:var(--white);position:relative;transition:transform .2s ease,opacity .2s ease;}
.nav-toggle span:before{position:absolute;top:-6px;}
.nav-toggle span:after{position:absolute;top:6px;}
.nav[data-open="true"] .nav-toggle span{background:transparent;}
.nav[data-open="true"] .nav-toggle span:before{transform:translateY(6px) rotate(45deg);}
.nav[data-open="true"] .nav-toggle span:after{transform:translateY(-6px) rotate(-45deg);}
.mobile-menu{display:none;background:var(--navy-800);border-top:1px solid rgba(255,255,255,0.08);padding:8px var(--pad-x) 20px;}
.mobile-menu a{display:block;padding:14px 0;font-size:1rem;color:var(--slate-200);border-bottom:1px solid rgba(255,255,255,0.06);}
.mobile-menu a:last-of-type{border-bottom:none;}
.mobile-menu .btn{margin-top:16px;width:100%;text-align:center;}

/* Generic section primitives (shared by most pages) */
.section{padding:clamp(52px,7vw,84px) 0;}
.section.alt{background:var(--cloud-50);}
.section.dark{background:var(--navy-900);color:var(--white);}
.section-head{margin-bottom:36px;}
.section-head .eyebrow{display:block;margin-bottom:12px;}
.section-head h2{font-size:clamp(1.5rem,2.6vw,1.95rem);max-width:24ch;}
.section.dark .section-head h2{color:var(--white);}
.section-head p{color:var(--slate-700);max-width:var(--measure);margin-top:12px;}
.section.dark .section-head p{color:var(--slate-200);}
.prose p{color:var(--slate-700);margin-bottom:16px;max-width:var(--measure);}
.prose p:last-child{margin-bottom:0;}
.prose strong{color:var(--navy-700);font-weight:600;}

/* FOOTER */
.footer{background:var(--navy-900);color:var(--slate-400);padding:44px 0 36px;border-top:1px solid rgba(255,255,255,0.08);}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:flex-start;}
.footer .brand img{height:34px;}
.footer .fn{font-family:var(--font-heading);color:var(--white);font-size:0.98rem;}
.footer .fs{font-size:0.82rem;color:var(--slate-500);margin-top:4px;}
.footer-cols{display:flex;gap:56px;flex-wrap:wrap;}
.footer-col h5{font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--slate-500);margin-bottom:12px;font-weight:500;font-family:var(--font-body);}
.footer-col a{display:block;font-size:0.88rem;color:var(--slate-200);padding:4px 0;}
.footer-col a:hover{color:var(--white);}
.footer-legal{width:100%;margin-top:32px;padding-top:20px;border-top:1px solid rgba(255,255,255,0.08);font-size:0.78rem;color:var(--slate-500);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;}

a:focus-visible,.btn:focus-visible,button:focus-visible{outline:2px solid var(--accent-300);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
@media (max-width:820px){
  .nav-links{display:none;}
  .nav-right>.btn-primary{display:none;}
  .nav-toggle{display:inline-flex;}
  .nav[data-open="true"] .mobile-menu{display:block;}
}
