:root{
  --ink:#16213A;--ink-soft:#4A5672;--paper:#FFFFFF;--mist:#EEF2F8;--line:#D6DDEA;--red:#D2232A;
  --display:"Bricolage Grotesque", system-ui, sans-serif;
  --body:"Instrument Sans", system-ui, sans-serif;
  --gutter:clamp(16px, 5vw, 64px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.65}
a{color:inherit}
a:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:4px}
.wrap{max-width:780px;margin:0 auto;padding:0 var(--gutter)}

.top{padding:24px 0;background:var(--ink);color:#fff;position:relative}
.top::after{content:"";position:absolute;left:0;bottom:0;width:72px;height:3px;background:var(--red)}
.top .wrap{max-width:1180px;display:flex;justify-content:space-between;align-items:center}
.top .logo{font-family:var(--display);font-weight:800;font-size:34px;letter-spacing:-.03em;line-height:1;text-decoration:none}
.top nav a{font-weight:500;text-decoration:none;margin-left:20px}
.top nav a:hover{text-decoration:underline;text-underline-offset:4px}

main{padding:clamp(40px,7vw,80px) 0 clamp(56px,8vw,96px)}
h1{font-family:var(--display);font-weight:800;font-size:clamp(2.2rem,6vw,3.4rem);line-height:1.05;letter-spacing:-.03em}
.meta{color:var(--ink-soft);margin-top:12px}
.intro{margin-top:28px;font-size:1.15rem;max-width:62ch}
h2{font-family:var(--display);font-weight:600;font-size:1.35rem;letter-spacing:-.01em;margin:44px 0 10px;padding-top:20px;border-top:1px solid var(--line)}
h3{font-family:var(--display);font-weight:600;font-size:1.1rem;margin:22px 0 6px}
p,ul,ol{max-width:68ch}
p + p{margin-top:12px}
ul,ol{padding-left:1.3em;margin-top:8px}
li{margin-top:6px}
ol.art{list-style:none;padding-left:0;counter-reset:lid}
ol.art > li{counter-increment:lid;padding-left:2.4em;position:relative}
ol.art > li::before{content:attr(data-n) "." counter(lid);position:absolute;left:0;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.box{background:var(--mist);border-radius:12px;padding:18px 20px;margin-top:20px}
.fill{background:#FFF3C4;padding:0 3px;border-radius:3px}

footer{background:var(--ink);color:#8E9AB5;font-size:.9rem;padding:28px 0 36px}
footer .wrap{max-width:1180px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
footer a{color:#C9D2E5;text-underline-offset:3px}

@media print{
  .top nav,footer{display:none}
  body{font-size:10.5pt}
  main{padding:0}
  h2{break-after:avoid}
}
