
:root {
  --ink: #172033;
  --muted: #5f6b7a;
  --navy: #17365d;
  --blue: #245a8d;
  --blue-soft: #eaf2f8;
  --line: #d9e1e8;
  --paper: #ffffff;
  --canvas: #f5f7fa;
  --shadow: 0 12px 30px rgba(23,54,93,.08);
  --radius: 14px;
  --content: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--canvas);
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}
a { color: #174f82; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: #0d355a; }
img { max-width: 100%; height: auto; }
.content-image { display:block; max-width:min(100%, 900px); margin: 1.25rem auto; border-radius: 12px; box-shadow: var(--shadow); }
.skip-link { position:absolute!important; left:-9999px!important; }
.skip-link:focus { left:1rem!important; top:1rem!important; z-index:9999; padding:.65rem .9rem; background:#fff; border:2px solid var(--navy); }
.site-header { position: sticky; top:0; z-index:1000; background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); backdrop-filter: blur(10px); }
.site-header-inner { max-width: var(--content); margin:auto; min-height:72px; padding:0 24px; display:flex; align-items:center; gap:28px; }
.site-name { margin-right:auto; color:var(--navy); font-family: "Segoe UI", Arial, sans-serif; font-size:1.02rem; font-weight:700; letter-spacing:.01em; text-decoration:none; white-space:nowrap; }
.primary-nav ul { display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0; }
.primary-nav a { display:block; padding:.7rem .72rem; border-radius:8px; color:#334155; font-family:"Segoe UI", Arial, sans-serif; font-size:.9rem; font-weight:600; text-decoration:none; }
.primary-nav a:hover { background:var(--blue-soft); color:var(--navy); }
.primary-nav a.active { background:var(--navy); color:#fff; }
.nav-toggle { display:none; border:1px solid var(--line); background:#fff; color:var(--navy); border-radius:8px; padding:.55rem .8rem; font:600 .9rem "Segoe UI",Arial,sans-serif; }
.site-main { min-height:calc(100vh - 72px); }
.site-hero { margin:0!important; padding:0!important; background:linear-gradient(135deg,#edf4f9 0%,#fff 55%,#eef3f7 100%)!important; border-bottom:1px solid var(--line); }
.site-hero .container { max-width:var(--content)!important; margin:auto!important; padding:54px 24px 48px!important; }
.site-hero .row { display:block!important; margin:0!important; }
.site-hero [class*="col-"] { width:auto!important; max-width:none!important; padding:0!important; }
.site-hero h1 { margin:0!important; max-width:950px; color:var(--navy)!important; font-family:Georgia,"Times New Roman",serif!important; font-size:clamp(2.05rem,4vw,3.55rem)!important; line-height:1.08!important; letter-spacing:-.025em; font-weight:700!important; }
.section-margin, .site-main > p, .site-main > table, .site-main > h2, .site-main > ol, .site-main > ul, .site-main > div:not(.site-header) { max-width:var(--content); margin-left:auto!important; margin-right:auto!important; }
.section-margin { margin-top:0!important; padding:42px 24px 64px!important; }
.section-margin > .container, .section-margin .container { max-width:100%!important; padding:0!important; }
.section-intro { padding-bottom:24px!important; }
.site-main > p, .site-main > h2, .site-main > ol, .site-main > ul { padding-left:24px; padding-right:24px; }
h2,h3,h4 { color:var(--navy); font-family:"Segoe UI", Arial, sans-serif; line-height:1.25; }
h2 { margin-top:2rem; font-size:1.65rem; }
h3 { margin-top:1.6rem; font-size:1.25rem; }
p { margin:.8rem 0 1rem; }
li { margin:.34rem 0; }
strong,b { color:#15263a; }
hr { border:0; border-top:1px solid var(--line); margin:2rem 0; }
.layout-table { width:100%!important; max-width:100%!important; border-collapse:separate!important; border-spacing:16px!important; table-layout:auto; }
.layout-table > tbody > tr > td, .layout-table > tr > td { vertical-align:top!important; padding:22px!important; background:var(--paper); border:1px solid var(--line)!important; border-radius:12px; box-shadow:0 5px 18px rgba(23,54,93,.04); }
.data-table { width:100%!important; border-collapse:collapse!important; margin:1.4rem 0!important; background:#fff; border:1px solid var(--line)!important; box-shadow:0 5px 18px rgba(23,54,93,.04); }
.data-table th, .data-table td { border:1px solid var(--line)!important; padding:18px 20px!important; vertical-align:top!important; text-align:left; }
.data-table th { width:22%; color:var(--navy); background:#f2f6f9; font-family:"Segoe UI",Arial,sans-serif; font-size:1rem; }
.data-table tr:nth-child(even) td { background:#fbfcfd; }
.page-research .data-table { width:100%!important; }
.page-research .data-table th { min-width:190px; }
.page-cv .section-intro { text-align:left!important; }
.page-cv .style21 { color:var(--navy); font:700 2rem "Segoe UI",Arial,sans-serif; }
.page-cv .style26 { color:var(--navy); font:700 1.45rem "Segoe UI",Arial,sans-serif; border-bottom:1px solid var(--line); padding-bottom:.45rem; }
.page-contact .layout-table { max-width:760px!important; margin:1rem auto!important; }
.page-contact .layout-table td { font-size:1.08rem; }
.page-books .section-intro { text-align:left!important; }
.page-books .layout-table { border-spacing:12px!important; }
.page-books .layout-table td { text-align:center; }
.page-books .layout-table img { border-radius:5px; box-shadow:0 4px 12px rgba(0,0,0,.14); transition:transform .18s ease, box-shadow .18s ease; }
.page-books .layout-table a:hover img { transform:translateY(-3px); box-shadow:0 8px 20px rgba(0,0,0,.17); }
.page-errata .data-table th { width:170px; }
.page-errata .section-margin { max-width:1040px; }
.page-litigation .layout-table .layout-table { border-spacing:0!important; }
.page-litigation .layout-table .layout-table td { border:0!important; box-shadow:none!important; padding:0!important; }
.page-superposition { background:#f4f7fa!important; color:var(--ink)!important; }
.page-superposition .site-hero { display:block!important; }
.page-superposition .page { max-width:var(--content)!important; }
.page-superposition .badge { color:var(--navy)!important; background:#eaf2f8!important; border-color:#ccd9e4!important; }
.page-superposition .intro { color:#526172!important; }
.page-superposition .card { box-shadow:var(--shadow)!important; }
.page-superposition .site-main > .page { padding-left:24px!important; padding-right:24px!important; }
.page-home .site-main > p { max-width:1050px; }
.page-home .main-image-container { max-width:var(--content)!important; padding:0 24px 64px; }
.page-home .main-image { max-height:560px; width:100%; object-fit:cover; object-position:center; border-radius:14px; box-shadow:var(--shadow); }
.lab-landing { max-width:var(--content); margin:auto; padding:46px 24px 72px; }
.page-hypersonics-landing { background:var(--canvas); }
.page-hypersonics-landing .wrap { background:linear-gradient(135deg,#edf4f9,#fff); border:1px solid var(--line); border-radius:14px; padding:32px; box-shadow:var(--shadow); margin-bottom:24px; }
.page-hypersonics-landing .eyebrow { color:var(--blue); font:700 .82rem "Segoe UI",Arial,sans-serif; text-transform:uppercase; letter-spacing:.08em; }
.page-hypersonics-landing h1 { color:var(--navy); margin:.4rem 0 .6rem; font-size:clamp(2rem,4vw,3rem); }
.page-hypersonics-landing .auto-style1 { max-width:none!important; margin:.65rem 0!important; padding:0!important; }
.page-hypersonics-landing .auto-style1 a { display:block; background:#fff; border:1px solid var(--line); border-radius:10px; padding:14px 18px; text-decoration:none; font:600 1rem "Segoe UI",Arial,sans-serif; box-shadow:0 3px 12px rgba(23,54,93,.04); }
.page-hypersonics-landing .auto-style1 a:hover { border-color:#afc2d2; background:#fafdff; }
@media (max-width: 900px) {
  body { font-size:16px; }
  .site-header-inner { min-height:64px; flex-wrap:wrap; padding:10px 18px; }
  .nav-toggle { display:block; }
  .primary-nav { display:none; width:100%; }
  .primary-nav.open { display:block; }
  .primary-nav ul { flex-direction:column; align-items:stretch; padding:8px 0 4px; }
  .primary-nav a { padding:.68rem .75rem; }
  .site-hero .container { padding:38px 20px 34px!important; }
  .section-margin { padding:30px 18px 48px!important; }
  .layout-table, .layout-table tbody, .layout-table tr, .layout-table td { display:block!important; width:100%!important; }
  .layout-table { border-spacing:0!important; }
  .layout-table td { margin-bottom:14px; }
  .data-table { display:block; overflow-x:auto; white-space:normal; }
  .page-books .layout-table, .page-books .layout-table tbody, .page-books .layout-table tr { display:table!important; width:100%!important; overflow-x:auto; }
  .page-books .layout-table td { display:table-cell!important; min-width:125px; }
}
@media (max-width: 560px) {
  .site-name { font-size:.91rem; white-space:normal; }
  .data-table th, .data-table td { padding:13px 14px!important; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior:auto!important; transition:none!important; animation-duration:.01ms!important; animation-iteration-count:1!important; } }
