body { min-width: 320px; min-height: 100vh; background: var(--cream); color: var(--ink); font-family: var(--font-sans); font-size: 15px; line-height: 1.5; }
body::before { content: ''; position: fixed; inset: 0; pointer-events: none; opacity: .025; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); z-index: 1000; }
h1, h2, h3, h4 { color: var(--ink); line-height: 1.15; letter-spacing: -.025em; }
h1 { font-size: clamp(1.3rem, 2vw, 1.75rem); }
h2 { font-family: var(--font-display); font-size: clamp(1.8rem, 3vw, 2.7rem); font-weight: 500; }
h3 { font-size: 1.05rem; }
h4 { font-size: .98rem; }
p { color: var(--muted); }
a { color: var(--tomato-dark); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid color-mix(in srgb, var(--gold), transparent 30%); outline-offset: 2px; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 1200; padding: 10px 14px; background: var(--charcoal); color: #fff; border-radius: 8px; transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.eyebrow { display: block; margin-bottom: 6px; color: var(--tomato); font-size: .69rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.icon { width: 20px; height: 20px; flex: 0 0 auto; }
.muted, small { color: var(--muted); }
.text-success { color: var(--olive); }
.text-warning { color: #9a7316; }
.align-right { text-align: right; }
