*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
--primary:#3a5a8c;--primary-dark:#2c4569;--primary-light:#4d6fa0;
--secondary:#c0c8d4;--secondary-light:#e8ecf1;
--bg:#f5f7fa;--white:#ffffff;
--text:#1a2332;--text-light:#5a6a7e;
--success:#2d8a4e;--warning:#c9a227;--danger:#c0392b;
--radius:8px;--shadow:0 2px 8px rgba(0,0,0,0.08);
}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.65;min-height:100vh}
.container{max-width:800px;margin:0 auto;padding:16px}
.top{text-align:center;padding:18px 0 6px}
.brand{color:var(--primary);font-weight:700;font-size:1.35rem;text-decoration:none;letter-spacing:-0.01em}
.site-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;padding:10px 0 4px;font-size:0.9rem}
.site-nav a{color:var(--primary);text-decoration:none;font-weight:600}
.site-nav a:hover,.site-nav a[aria-current="page"]{text-decoration:underline}
.crumb{font-size:0.85rem;color:var(--text-light);margin:14px 0 8px}
.crumb a{color:var(--primary);font-weight:600;text-decoration:none}
.crumb a:hover{text-decoration:underline}
.prose{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 22px 30px;margin-bottom:8px}
.prose h1{font-size:1.7rem;line-height:1.25;color:var(--primary);font-weight:700;margin-bottom:8px}
.prose .updated,.prose .dek{color:var(--text-light);font-size:0.95rem;margin-bottom:16px}
.prose h2{font-size:1.22rem;color:var(--primary-dark);font-weight:700;margin:26px 0 8px;line-height:1.3}
.prose h3{font-size:1.05rem;color:var(--primary-dark);font-weight:600;margin:18px 0 6px}
.prose p{margin-bottom:12px}
.prose ul,.prose ol{margin:0 0 14px 1.25rem}
.prose li{margin-bottom:6px}
.prose a{color:var(--primary-dark)}
.prose a:hover{text-decoration:underline}
.prose table{width:100%;border-collapse:collapse;font-size:0.9rem;margin:8px 0 16px}
.prose th{background:var(--secondary-light);text-align:left;padding:8px 10px;font-weight:600}
.prose td{padding:7px 10px;border-bottom:1px solid var(--secondary-light);vertical-align:top}
.prose caption{text-align:left;font-size:0.85rem;color:var(--text-light);caption-side:bottom;padding-top:6px}
.worked{background:var(--secondary-light);border-radius:var(--radius);padding:14px 14px 4px;margin:12px 0 16px}
.worked h3{margin-top:0}
.prose .toc{list-style:none;margin:0 0 8px;padding:0}
.prose .toc li{border-top:1px solid var(--secondary-light);padding:12px 0}
.prose .toc a{font-weight:700;font-size:1.05rem;text-decoration:none}
.prose .toc a:hover{text-decoration:underline}
.prose .toc span{display:block;color:var(--text-light);margin-top:2px}
.site-footer{text-align:center;padding:24px 0 12px;margin-top:24px;border-top:1px solid var(--secondary);color:var(--text-light);font-size:0.82rem}
.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 12px;margin-bottom:8px}
.site-footer nav a{color:var(--primary);text-decoration:none;font-weight:600}
.site-footer nav a:hover{text-decoration:underline}
.miss{text-align:center;padding:48px 0 24px}
.miss .code{font-size:3rem;font-weight:700;color:var(--primary);margin-bottom:8px}
.miss h1{font-size:1.4rem;color:var(--primary-dark);margin-bottom:10px}
.miss p{color:var(--text-light);margin-bottom:18px}
.miss .btn{display:inline-block;background:var(--primary);color:#fff;text-decoration:none;font-weight:600;padding:10px 18px;border-radius:var(--radius)}
.miss .btn:hover{background:var(--primary-dark)}
@media(max-width:520px){
.prose{padding:20px 14px 24px}
.prose h1{font-size:1.42rem}
.prose table{display:block;overflow-x:auto;font-size:0.82rem}
.prose th,.prose td{padding:6px}
}
