/* BASE — reset, typography, page frame (header/footer/container). Layout-level stuff only; reusable widgets live in components.css. */ *, *::before, *::after { box-sizing: border-box; } [hidden] { display: none !important; } html { -webkit-text-size-adjust: 100%; } body { margin: 0; font-family: var(--font-sans); font-size: var(--text-md); line-height: var(--leading-normal); background: var(--color-bg); color: var(--color-text); min-height: 100vh; } img { max-width: 100%; display: block; } a { color: inherit; text-decoration: none; } button { font: inherit; } h1, h2, h3 { margin: 0; line-height: var(--leading-tight); } p { margin: 0; } /* ---- page frame ---------------------------------------------------------- */ .container { max-width: var(--container-max); margin: 0 auto; padding-left: var(--container-pad); padding-right: var(--container-pad); } .page { padding-top: var(--space-5); padding-bottom: var(--space-8); } .site-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--color-border); background: var(--color-bg); background: color-mix(in srgb, var(--color-bg) 85%, transparent); backdrop-filter: blur(12px); } .site-header__inner { display: flex; align-items: center; gap: var(--space-4); height: var(--header-height); } .brand { font-size: var(--text-xl); font-weight: var(--font-weight-bold); letter-spacing: -0.02em; } .brand span { color: var(--color-accent); } .site-header__nav { font-size: var(--text-sm); font-weight: var(--font-weight-medium); color: var(--color-text-dim); padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); } .site-header__nav:hover { color: var(--color-text); background: var(--color-surface); } .site-header__spacer { flex: 1; } .site-footer { border-top: 1px solid var(--color-border); padding: var(--space-4) 0 var(--space-5); color: var(--color-text-faint); font-size: var(--text-xs); } .site-footer .container { display: flex; gap: var(--space-3); flex-wrap: wrap; } .site-footer a { color: var(--color-text-dim); } .site-footer a:hover { color: var(--color-text); }