
:root { color-scheme:light; --ink:#172d40; --muted:#486072; --line:#d6e1e7; --gold:#f4be4f; }
* { box-sizing:border-box; }
body { margin:0; font:17px/1.65 "Segoe UI",system-ui,sans-serif; color:var(--ink); background:#f5f8fa; }
a { color:#075c92; text-underline-offset:3px; overflow-wrap:anywhere; }
a:hover { color:#8a5100; } :focus-visible { outline:3px solid #bc7000; outline-offset:3px; }
header { background:#102b40; color:white; padding:16px 24px; display:flex; align-items:center; gap:14px; }
header img { width:52px; height:52px; object-fit:contain; }
header strong { font-size:23px; } header small { display:block; color:#d2dee6; }
header a { color:white; } .languages { margin-left:auto; white-space:nowrap; }
.layout { display:grid; grid-template-columns:270px minmax(0,1fr); align-items:start; }
nav { position:sticky; top:0; max-height:100vh; overflow-y:auto; padding:18px; border-right:1px solid var(--line); background:#eaf0f4; }
nav a { display:block; padding:5px 10px; text-decoration:none; border-radius:5px; font-size:15px; }
nav a[aria-current=page] { background:#193f5b; color:white; font-weight:650; }
nav button { width:100%; margin-bottom:12px; text-align:left; }
body.folded .layout { grid-template-columns:86px minmax(0,1fr); }
body.folded nav a,body.folded nav .nav-title { display:none; }
main { padding:28px 38px 64px; max-width:1260px; min-width:0; }
h1 { font-size:clamp(30px,3.5vw,48px); line-height:1.17; letter-spacing:-.025em; margin:12px 0 24px; }
h2 { font-size:24px; line-height:1.3; margin:36px 0 12px; }
h3 { font-size:19px; } p,ul,ol,dl { max-width:88ch; } li { margin:7px 0; }
dt { font-weight:700; margin-top:15px; } dd { margin-left:0; }
.eyebrow { color:#5d6f7b; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; }
.lead { font-size:21px; color:#385367; max-width:68ch; }
.hero { display:grid; grid-template-columns:minmax(0,1fr) 180px; gap:30px; align-items:center; }
.hero img { width:180px; height:180px; object-fit:contain; }
.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin:26px 0; }
.card { background:white; border:1px solid var(--line); border-radius:10px; padding:20px; }
.card h2,.card h3 { margin-top:0; } .card p { margin-bottom:0; }
.notice { border-left:5px solid #b77716; padding:14px 18px; background:#fff5dc; border-radius:3px; }
.button,button { display:inline-block; border:1px solid #205776; border-radius:6px; background:#174764; color:white; padding:10px 16px; font:inherit; cursor:pointer; text-decoration:none; }
.button:hover,button:hover { background:#0b324d; color:white; }
.secondary { background:white; color:#174764; }
input[type=search] { padding:12px; border:1px solid #70899a; border-radius:6px; width:min(100%,650px); font:inherit; }
code { overflow-wrap:anywhere; font-size:.9em; background:#e8eef2; padding:1px 4px; }
pre { white-space:pre-wrap; overflow-wrap:anywhere; padding:18px; background:#e8eef2; border-radius:7px; }
footer { border-top:1px solid var(--line); padding:24px; font-size:14px; color:var(--muted); }
.chapter-end { border-top:1px solid var(--line); padding-top:20px; margin-top:40px; }
.search-results { padding-left:24px; } .search-results p { font-size:15px; margin-top:2px; }
@media(max-width:800px) {
 .layout { display:block; } nav { position:relative; max-height:none; border-right:0; }
 nav a { display:none; } nav.open a { display:block; }
 body.folded .layout { display:block; } body.folded nav.open a { display:block; }
 main { padding:24px 18px 42px; } header { padding:14px 18px; }
 .hero { grid-template-columns:1fr; } .hero img { display:none; }
 .languages { font-size:14px; } header strong { font-size:20px; }
}
@media print { nav,.languages,.search-box,.button { display:none; } .layout { display:block; } main { padding:0; max-width:none; } body { background:white; } }
