/* Design project "Haven Foundations" → components/base.css, verbatim. Resets, type defaults, interaction defaults. Tokens only, no raw values. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);font-weight:var(--weight-regular);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
[data-theme]{background:var(--bg-canvas);color:var(--text-primary)}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
h1,h2,h3{font-family:var(--font-heading);font-weight:var(--weight-semibold);color:inherit;text-wrap:pretty}
h1{font-size:var(--text-h1);line-height:var(--leading-h1);letter-spacing:var(--tracking-h1)}
h2{font-size:var(--text-h2);line-height:var(--leading-h2)}
h3{font-size:var(--text-h3);line-height:var(--leading-h3)}
a{color:var(--action-text);text-decoration:none}
a:hover{color:var(--action-primary-hover);text-decoration:underline;text-underline-offset:3px}
button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
::selection{background:var(--selection-bg);color:var(--selection-text)}

/* type utilities — the scale as classes */
.t-display{font-family:var(--font-heading);font-size:var(--text-display);line-height:var(--leading-display);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);text-wrap:pretty}
.t-h1{font-family:var(--font-heading);font-size:var(--text-h1);line-height:var(--leading-h1);font-weight:var(--weight-h1);letter-spacing:var(--tracking-h1)}
.t-h2{font-family:var(--font-heading);font-size:var(--text-h2);line-height:var(--leading-h2);font-weight:var(--weight-h2)}
.t-h3{font-family:var(--font-heading);font-size:var(--text-h3);line-height:var(--leading-h3);font-weight:var(--weight-h3)}
.t-body-lg{font-size:var(--text-body-lg);line-height:var(--leading-body-lg);font-weight:var(--weight-body-lg)}
.t-body{font-size:var(--text-body);line-height:var(--leading-body);font-weight:var(--weight-body)}
.t-caption{font-size:var(--text-caption);line-height:var(--leading-caption);font-weight:var(--weight-caption)}
.kicker{font-size:var(--text-ui-xs);line-height:16px;font-weight:var(--weight-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
.secondary{color:var(--text-secondary)}
.muted{color:var(--text-muted)}

.container{max-width:var(--content-max);margin-left:auto;margin-right:auto;padding-left:var(--space-5);padding-right:var(--space-5)}
.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}

/* imagery — practice stills are washed so they sit back into the warm page */
.still{filter:saturate(.85) contrast(.95) brightness(1.03)}

@keyframes hv-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0ms!important;transition-duration:0ms!important}}
