* { box-sizing: border-box; }
@property --menu-logo-wipe {
  syntax: "<percentage>";
  inherits: true;
  initial-value: 0%;
}
html { max-width: 100%; overflow-x: hidden; scroll-behavior: smooth; scroll-padding-top: 9rem; scrollbar-gutter: stable; }
body { max-width: 100%; margin: 0; overflow-x: hidden; background: var(--paper); color: var(--black); font: 400 1rem/1.55 var(--font-body); -webkit-font-smoothing: antialiased; }
@supports (overflow: clip) {
  html, body { overflow-x: clip; }
}
body.menu-open { overflow: hidden; }
html.menu-open, html.menu-open body { overflow: hidden; overscroll-behavior: none; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img, svg { display: block; max-width: 100%; }
main, main > section, article { min-width: 0; }
main p, main li, main a, .site-footer a, .footer-contact-item span { overflow-wrap: anywhere; }
h1, h2, h3, p { text-wrap: pretty; }
::selection { background: var(--acid); color: var(--black); }
:focus-visible { outline: 3px solid var(--acid); outline-offset: 4px; }
.skip-link { position: fixed; z-index: 999; left: 1rem; top: -100%; padding: .75rem 1rem; background: var(--paper); color: var(--black); }
.skip-link:focus { top: 1rem; outline-color: var(--black); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.eyebrow, .section-label { margin: 0; font-size: .68rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow::before, .section-label::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: .65rem; border-radius: 50%; background: currentColor; }
.display { margin: 0; font-family: var(--font-display); font-size: clamp(3.25rem, 7.6vw, 8.5rem); font-weight: 500; line-height: .89; letter-spacing: -.075em; }
.headline { margin: 0; font-family: var(--font-display); font-size: clamp(2.7rem, 5.4vw, 6rem); font-weight: 500; line-height: .94; letter-spacing: -.06em; }
.lead { max-width: 690px; font-size: clamp(1.05rem, 1.45vw, 1.3rem); color: var(--ink-muted); }
.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s var(--ease), transform .65s var(--ease); }
.js .reveal.visible { opacity: 1; transform: none; }
body::after { content: ""; position: fixed; z-index: 1000; inset: 0; background: var(--acid); pointer-events: none; transform-origin: top; animation: page-curtain .85s var(--ease) both; }
body.page-is-exiting::after { transform-origin: bottom; animation: page-exit .46s var(--ease) both; }
.scroll-progress { position: fixed; z-index: 250; top: 0; left: 0; width: 100%; height: 3px; transform: scaleX(0); transform-origin: left; background: var(--acid); pointer-events: none; }
@keyframes page-curtain { 0% { transform: scaleY(1); } 100% { transform: scaleY(0); } }
@keyframes page-exit { 0% { transform: scaleY(0); } 100% { transform: scaleY(1); } }
.noise { position: fixed; z-index: 200; inset: 0; pointer-events: none; opacity: .025; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
