:root{--bg: #fbfaf8;--surface: #ffffff;--surface-2: #f4f2ee;--border: #e2ded7;--border-strong: #c9c3b8;--text: #1c1a17;--text-muted: #5d574e;--text-faint: #857e73;--accent: #1f6f5c;--accent-soft: #e6f2ee;--accent-text: #14503f;--warn: #8a5a12;--warn-soft: #fdf3e2;--info-soft: #eef2f8;--info-text: #2f4a72;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 2px rgba(28, 26, 23, .05), 0 4px 12px rgba(28, 26, 23, .04);--maxw: 1080px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #14150f;--surface: #1c1e17;--surface-2: #23261e;--border: #33372c;--border-strong: #4a4f40;--text: #f0eee7;--text-muted: #b3b0a5;--text-faint: #8d8a80;--accent: #7fc9b0;--accent-soft: #1d3830;--accent-text: #a8ded0;--warn: #e0b878;--warn-soft: #362a16;--info-soft: #1e2836;--info-text: #a9c4e8;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 12px rgba(0, 0, 0, .3)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--accent-text);text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:2px}a:hover{text-decoration-color:currentColor}h1,h2,h3{line-height:1.2;letter-spacing:-.015em;margin:0 0 .4em}h1{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.3rem)}h2{font-size:1.22rem}h3{font-size:1rem}p{margin:0 0 1em}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}.stack>*+*{margin-top:var(--gap, 1rem)}.site-header{border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20}.site-header .wrap{display:flex;align-items:center;gap:20px;height:58px}.brand{font-weight:650;letter-spacing:-.02em;color:var(--text);text-decoration:none;margin-right:auto}.brand span{color:var(--accent)}.site-header nav{display:flex;gap:18px;font-size:.9rem}.site-header nav a{color:var(--text-muted);text-decoration:none}.site-header nav a:hover{color:var(--text)}.site-footer .footer-links{margin-bottom:0}.site-footer{margin-top:56px;border-top:1px solid var(--border);padding:28px 0 48px;color:var(--text-faint);font-size:.85rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:18px 20px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:.74rem;font-weight:600;letter-spacing:.01em;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap}.badge.accent{background:var(--accent-soft);color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.badge.info{background:var(--info-soft);color:var(--info-text);border-color:color-mix(in srgb,var(--info-text) 25%,transparent)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint);font-size:.85rem}.prov{font-size:.78rem;color:var(--text-faint)}.prov a{color:inherit}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data th,table.data td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:top}table.data th{font-weight:600;color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}table.data tr:last-child td{border-bottom:none}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.embed{position:relative;width:100%;aspect-ratio:16 / 10;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2);border:1px solid var(--border)}.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.embed-placeholder{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:20px;color:var(--text-faint);font-size:.85rem}.grid{display:grid;gap:14px}@media(min-width:640px){.grid.cols-2{grid-template-columns:1fr 1fr}}@media(min-width:900px){.grid.cols-3{grid-template-columns:repeat(3,1fr)}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}:where(a,button,input,select,summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
