:root { color-scheme: light; }
html { scroll-behavior: smooth; }
* { box-sizing: border-box; }
body { -webkit-font-smoothing: antialiased; }
.nav-link { position: relative; }
.nav-link::after { content: ''; position: absolute; left: 0; bottom: -5px; width: 0; height: 2px; border-radius: 999px; background: #2563eb; transition: width .25s ease; }
.nav-link:hover::after, .nav-link.active::after { width: 100%; }
.page-grid { background-image: linear-gradient(rgba(37,99,235,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(37,99,235,.045) 1px, transparent 1px); background-size: 42px 42px; }
.legal-copy h2 { color: #0f172a; font-size: 1.25rem; font-weight: 750; letter-spacing: -.02em; margin: 2.25rem 0 .75rem; scroll-margin-top: 7rem; }
.legal-copy h2:first-child { margin-top: 0; }
.legal-copy p, .legal-copy li { color: #64748b; font-size: .96rem; line-height: 1.85; }
.legal-copy ul { list-style: none; margin: .75rem 0; padding: 0; }
.legal-copy li { position: relative; padding-left: 1.35rem; margin: .45rem 0; }
.legal-copy li::before { content: ''; position: absolute; left: 0; top: .75rem; width: .42rem; height: .42rem; border-radius: 50%; background: #3b82f6; }
.glass-card { background: rgba(255,255,255,.82); border: 1px solid rgba(255,255,255,.8); box-shadow: 0 24px 70px rgba(30,64,175,.09), 0 2px 12px rgba(15,23,42,.04); backdrop-filter: blur(18px); }
.toc-nav { position: relative; }
.toc-link { position: relative; transition: color .25s ease, background-color .25s ease, transform .25s ease; }
.toc-link:not(.is-active) { color: #64748b; background: transparent; font-weight: 400; }
.toc-link::before { content: ''; position: absolute; left: -1px; top: 50%; width: 3px; height: 0; border-radius: 999px; background: #2563eb; transform: translateY(-50%); transition: height .25s ease; }
.toc-link.is-active { color: #1d4ed8; background: #eff6ff; font-weight: 700; transform: translateX(4px); }
.toc-link.is-active::before { height: 24px; }
.toc-progress { position: absolute; left: -14px; top: 0; width: 2px; height: 100%; overflow: hidden; border-radius: 999px; background: #e2e8f0; }
.toc-progress span { display: block; width: 100%; height: var(--scroll-progress, 0%); border-radius: inherit; background: linear-gradient(#60a5fa,#2563eb); transition: height .12s linear; }
@media (max-width: 767px) { .toc-progress { display: none; } .toc-nav { display: flex; gap: .4rem; overflow-x: auto; padding-bottom: .5rem; scrollbar-width: thin; } .toc-link { flex: 0 0 auto; } .toc-link.is-active { transform: none; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition-duration: .01ms !important; } }
