body { font-family: 'Inter', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
.icon { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.icon-sm { width: 1rem; height: 1rem; }
.icon-lg { width: 1.5rem; height: 1.5rem; }
.icon-xl { width: 2.25rem; height: 2.25rem; }
.gold-rule { height: 2px; width: 3rem; background: linear-gradient(90deg, #E3B23C, rgba(227,178,60,0)); border-radius: 2px; }

details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
details[open] .chev { transform: rotate(180deg); }

dialog::backdrop { background: rgba(7, 42, 102, 0.85); backdrop-filter: blur(4px); }

/* Visually impaired mode */
html.vi { font-size: 125%; }
html.vi body { filter: grayscale(1) contrast(1.15); }
html.vi body, html.vi p, html.vi li, html.vi span { letter-spacing: 0.02em; line-height: 1.75; }
html.vi a { text-decoration: underline; text-underline-offset: 3px; }
html.vi .shadow-soft, html.vi .shadow-lift { box-shadow: 0 0 0 2px #0F172A !important; }
html.vi .vi-hide { display: none !important; }
html.vi :focus-visible { outline: 4px solid #000 !important; outline-offset: 3px; }
html.vi .reveal { opacity: 1 !important; transform: none !important; }

.reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }
