/* base.css — v2: reset, typography, layout primitives, reveal, a11y */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px)}
html,body{margin:0;padding:0}
body{background:var(--paper);color:var(--ink-700);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body.locked{overflow:hidden}
img{max-width:100%;display:block}
a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:rgba(0,121,158,.4);transition:color var(--duration-fast) var(--ease-out),text-decoration-color var(--duration-fast) var(--ease-out)}
a:hover{color:var(--link-hover);text-decoration-color:currentColor}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
input{font:inherit}
::selection{background:var(--blue-100);color:var(--ink-900)}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink-900);margin:0;font-weight:500}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:-60px;left:16px;z-index:calc(var(--z-sheet) + 10);background:var(--paper);color:var(--link);font-weight:700;font-size:var(--text-sm);padding:10px 16px;border:var(--border-strong);transition:top var(--duration-fast) var(--ease-out)}
.skip-link:focus{top:12px}
.progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--blue-500-ramp);z-index:var(--z-progress)}
.wrap{max-width:var(--wrap-max);margin:0 auto;padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
.wrap-wide{max-width:var(--wrap-wide);margin:0 auto;padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
.section{padding:var(--section-pad-y) 0;border-top:var(--border-hairline)}
.section-tint{background:var(--grey-100)}
.kicker{font-size:var(--text-xs);font-weight:800;letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--ink-500);margin-bottom:var(--space-4)}
.kicker .kicker-num,.kicker-num{color:var(--blue-600-link)}
.section h2,.section-title{font-size:var(--display-2);line-height:var(--leading-display);letter-spacing:var(--tracking-display);max-width:22em}
.section h2 em,.section-title em{font-style:italic;color:var(--blue-500-ramp)}
.lede{font-size:var(--text-md);font-weight:400;line-height:var(--leading-snug);color:var(--ink-500);max-width:var(--prose-max);margin-top:var(--space-4)}
.reveal{opacity:0;transform:translateY(var(--reveal-y));transition:opacity var(--duration-med) var(--ease-out),transform var(--duration-med) var(--ease-out)}
.reveal.in,body.static .reveal{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}
}
