*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-offset, 105px); background: var(--bg); }
body { margin: 0; background: var(--bg); color: var(--ink); font: 1rem/1.7 var(--font); text-rendering: optimizeLegibility; }
h1,h2,h3,h4,p,figure { margin: 0; }
h1,h2,h3,h4 { line-height: 1.08; }
h1,h2 { font-family: var(--font-display); font-weight: 500; text-wrap: balance; }
h1 { font-size: clamp(3.2rem, 7.2vw, 6.9rem); letter-spacing: -.055em; }
h2 { font-size: clamp(2.6rem, 5.2vw, 5rem); letter-spacing: -.045em; }
h3 { font-size: clamp(1.25rem, 2vw, 1.55rem); letter-spacing: -.025em; }
a { color: inherit; text-underline-offset: 4px; }
button { font: inherit; cursor: pointer; }
img { display: block; max-width: 100%; }
button,a,summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 5px; }
[hidden] { display: none !important; }
.container { width: min(var(--container), calc(100% - 96px)); margin-inline: auto; }
.section { padding-block: clamp(78px, 9vw, 132px); }
.eyebrow { display: flex; align-items: center; gap: 11px; margin-bottom: 22px; color: var(--accent); font-size: .76rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.heading-soft { display: block; color: var(--muted); }
.section-kicker { margin-top: 16px; color: var(--accent); font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.section-heading { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(260px,.7fr); align-items: end; gap: 56px; margin-bottom: 52px; }
.section-heading > p { color: var(--muted); font-size: 1.04rem; }
.skip-link { position: fixed; top: -100px; left: 15px; z-index: 200; padding: 12px 20px; background: var(--surface); border: 1px solid var(--line); }
.skip-link:focus { top: 12px; }
[data-reveal] { opacity: 1; transform: none; }
.js-motion [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .68s cubic-bezier(.2,.7,.2,1), transform .68s cubic-bezier(.2,.7,.2,1); transition-delay: var(--reveal-delay, 0ms); }
.js-motion [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
@media (max-width: 760px) {
  .container { width: calc(100% - 36px); }
  .section { padding-block: 72px; }
  .section-heading { grid-template-columns: 1fr; align-items: start; gap: 22px; margin-bottom: 34px; }
  .eyebrow { font-size: .72rem; letter-spacing: .12em; margin-bottom: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation: none !important; transition: none !important; }
  .js-motion [data-reveal] { opacity: 1; transform: none; }
}
