/* ── Base layer: resets and global defaults consuming projects inherit ── */
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body {
  margin:0; background:var(--surface-page); color:var(--text-primary);
  font:var(--type-body); font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
::selection { background:var(--selection-bg); color:var(--selection-fg); }
h1,h2,h3,h4 { font-family:var(--font-display); font-weight:var(--weight-semibold); letter-spacing:var(--track-heading); line-height:var(--leading-heading); margin:0 0 var(--space-3); text-wrap:balance; }
h1 { font-size:var(--text-d2); letter-spacing:var(--track-display); line-height:var(--leading-display); }
h2 { font-size:var(--text-h1); }
h3 { font-size:var(--text-h2); }
h4 { font-size:var(--text-h4); }
p { margin:0 0 var(--space-4); text-wrap:pretty; }
small { font-size:var(--text-caption); color:var(--text-secondary); }
code,kbd,samp,pre { font-family:var(--font-mono); font-size:0.9em; }
a { color:var(--text-link); text-decoration:none; background-image:linear-gradient(var(--accent),var(--accent)); background-size:100% 2px; background-position:0 100%; background-repeat:no-repeat; padding-bottom:1px; transition:color var(--dur-fast) var(--ease-out), background-size var(--dur-2) var(--ease-out-quint); }
a:hover { color:var(--text-link-hover); background-size:100% 100%; background-image:linear-gradient(color-mix(in oklab, var(--accent) 24%, transparent),color-mix(in oklab, var(--accent) 24%, transparent)); }
a:active { color:var(--accent-ink); }
:focus-visible { outline:2px solid var(--focus-ring); outline-offset:2px; border-radius:var(--radius-xs); }
hr { border:0; border-top:var(--hairline) solid var(--border-hairline); margin:var(--space-7) 0; }
[hidden] { display:none !important; }
