*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 16px/1.55 var(--sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; letter-spacing: -0.02em; line-height: .95; margin: 0; }
.serif { font-family: var(--serif); font-weight: 400; }
.label { font: 500 11px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
a { color: inherit; text-underline-offset: 3px; }
img { max-width: 100%; display: block; }
/* Page-level horizontal clip: a testimonial flicked off the deck leaves the viewport without widening the page.
   clip (not hidden) makes no scroll container, so sticky and fixed children are unaffected. */
main { overflow-x: clip; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 6px; }
.skip-link { position: absolute; left: 12px; top: -64px; z-index: 100; padding: 10px 14px; background: var(--ink); color: #fff; border-radius: 8px; text-decoration: none; }
.skip-link:focus { top: 12px; }
.icon { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.5; }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.grain { position: relative; isolation: isolate; }
.grain::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: .08; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); z-index: 1; }
