html { scroll-behavior: smooth; }
main { max-width: 820px; }
article, #practice { scroll-margin-top: 24px; border-top: 1px solid #2c3c54; margin-top: 64px; padding-top: 24px; }
h3 { margin-top: 28px; line-height: 1.4; }
.contents { display: grid; gap: 10px; }
.demo-link { display: inline-block; padding: 12px 18px; border: 1px solid #8be5d6; border-radius: 8px; font-weight: 650; }
pre { padding: 20px; overflow-x: auto; background: #11182a; border: 1px solid #2c3c54; border-radius: 12px; font-size: .88rem; line-height: 1.7; }
code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
p code, li code { overflow-wrap: anywhere; color: #e4eaff; }
.source-note { font-size: .92rem; }
.table-scroll { overflow-x: auto; margin: 24px 0; }
table { border-collapse: collapse; width: 100%; text-align: left; font-size: .92rem; }
caption { text-align: left; font-weight: 650; margin-bottom: 12px; }
th, td { padding: 12px; border-bottom: 1px solid #2c3c54; }
td { color: #b9c3da; }
details { padding: 16px 0; border-bottom: 1px solid #2c3c54; }
summary { cursor: pointer; color: #8be5d6; }
:focus-visible { outline: 2px solid #8be5d6; outline-offset: 4px; }
.skip-link { position: absolute; left: 20px; top: -100px; padding: 12px; background: #11182a; }
.skip-link:focus { top: 8px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media (max-width: 600px) { pre { padding: 12px; } th, td { padding: 8px; } }
