/* Portfolio Design System — Base element + utility styles built only on tokens. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
a{color:var(--color-ink);text-decoration-color:var(--color-line)}
a:hover{color:var(--color-accent)}
.display-xl{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-display-xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);margin:0}
.display-l{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-display-l);line-height:var(--leading-snug);letter-spacing:var(--tracking-display);margin:0}
.h1{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-h1);line-height:var(--leading-snug);letter-spacing:var(--tracking-heading);margin:0}
.h2{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-h2);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);margin:0}
.body-l{font-size:var(--text-body-l);line-height:1.5}
.body{font-size:var(--text-body)}
.small{font-size:var(--text-small);color:var(--color-muted)}
.muted{color:var(--color-muted)}
.accent{color:var(--color-accent)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--space-6)}
.section{padding:var(--space-16) 0;border-top:var(--border-hair)}
.section:first-of-type{border-top:none}
