:root {
  --navy:#0F2439; --navy2:#1A3550; --cream:#F2EFE8; --paper:#FCFAF6;
  --ink:#1A1D21; --soft:#5A6169; --gold:#9C8560; --line:#DDD6C8; --sky:#E6EEF4;
}
* { box-sizing: border-box; }
body {
  margin:0; font-family: Georgia, "Times New Roman", serif;
  background: var(--cream); color: var(--ink); line-height: 1.62; font-size: 19px;
}
nav, .cta, .top, .badge { font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
a { color: var(--navy); }
.wrap { max-width: 42rem; margin: 0 auto; padding: 1rem 1rem 3rem; }
.top {
  background: var(--navy); color:#fff; padding: 0.85rem 1rem;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  position: sticky; top:0; z-index:10;
}
.top a { color: #E8E4DC; text-decoration:none; font-weight:600; font-size:0.95rem; }
.top .brand { color: var(--gold); font-weight:800; letter-spacing:0.03em; text-decoration:none; }
.hero {
  background: var(--navy); color:#fff; border-radius: 16px; padding: 1.4rem 1.25rem;
  margin: 1rem 0 1.25rem; border-bottom: 3px solid var(--gold);
}
.hero .k { color: var(--gold); font-size: 0.78rem; font-weight:800; letter-spacing:0.05em; text-transform:uppercase; font-family: system-ui, sans-serif; }
.hero h1 { margin: 0.35rem 0; font-size: 1.7rem; line-height:1.22; }
.hero p { margin: 0.5rem 0 0; opacity:0.92; font-size:1.05rem; }
.card {
  background: var(--paper); border:1px solid var(--line); border-radius:14px;
  padding: 1.1rem 1.15rem; margin: 1rem 0;
}
h2 { color: var(--navy); font-size: 1.32rem; margin: 1.55rem 0 0.55rem; line-height:1.28; }
h3 { color: var(--navy2); font-size: 1.12rem; margin: 1.15rem 0 0.4rem; }
p, li { color: var(--ink); }
ul, ol { padding-left: 1.25rem; }
li { margin: 0.38rem 0; }
.cta {
  display:inline-block; background: var(--navy); color:#fff !important; text-decoration:none;
  font-weight:800; padding: 0.85rem 1.15rem; border-radius:12px; margin: 0.35rem 0.35rem 0.35rem 0;
}
.cta.sec { background:#fff; color:var(--navy) !important; border:2px solid var(--navy); }
.note { font-size:0.92rem; color:var(--soft); }
.quote {
  background: var(--sky); border-left: 4px solid var(--navy);
  padding: 0.85rem 1rem; border-radius: 0 10px 10px 0; margin: 0.9rem 0;
}
.footer {
  margin-top:2rem; padding-top:1rem; border-top:1px solid var(--line);
  font-size:0.88rem; color:var(--soft); text-align:center; line-height:1.45;
}
.toc a { display:block; padding:0.4rem 0; border-bottom:1px solid var(--line); text-decoration:none; font-weight:600; }
.toc a:last-child { border-bottom:0; }
.badge {
  display:inline-block; background: #EDE6D6; color: var(--navy); font-weight:800;
  font-size:0.78rem; padding:0.25rem 0.55rem; border-radius:999px; margin-bottom:0.5rem;
}
.related { font-size:1rem; }
.related a { display:block; padding:0.35rem 0; }
