/* Studio 95 — Base layer
   Light reset + brand defaults + typographic helper classes. Ships to consumers. */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:var(--body-size);
  line-height:var(--body-leading);
  font-weight:var(--body-weight);
  color:var(--color-text);
  background:var(--color-bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-feature-settings:'kern' 1,'liga' 1,'calt' 1;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,h6,p,figure,blockquote{margin:0}
img,svg,video{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}

::selection{background:color-mix(in oklab,var(--espresso-500) 26%,transparent);color:var(--espresso-900)}

a{color:var(--color-link);text-decoration:underline;text-underline-offset:0.18em;text-decoration-thickness:from-font;text-decoration-color:color-mix(in oklab,var(--color-link) 45%,transparent);transition:var(--transition-color)}
a:hover{color:var(--color-link-hover);text-decoration-color:currentColor}

:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-xs)}

hr{border:0;border-top:1px solid var(--color-divider);margin:var(--space-8) 0}

/* ---------- Type helpers ---------- */
.s95-display{font-family:var(--font-display);font-size:var(--display-size);line-height:var(--display-leading);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);color:var(--color-heading);text-wrap:balance}
.s95-h1{font-family:var(--font-display);font-size:var(--h1-size);line-height:var(--h1-leading);font-weight:var(--h1-weight);letter-spacing:var(--h1-tracking);color:var(--color-heading);text-wrap:balance}
.s95-h2{font-size:var(--h2-size);line-height:var(--h2-leading);font-weight:var(--h2-weight);letter-spacing:var(--h2-tracking);color:var(--color-heading);text-wrap:balance}
.s95-h3{font-size:var(--h3-size);line-height:var(--h3-leading);font-weight:var(--h3-weight);letter-spacing:var(--h3-tracking);color:var(--color-heading)}
.s95-h4{font-size:var(--h4-size);line-height:var(--h4-leading);font-weight:var(--h4-weight);letter-spacing:var(--h4-tracking);color:var(--color-heading)}
.s95-lead{font-size:var(--lead-size);line-height:var(--lead-leading);font-weight:var(--lead-weight);color:var(--color-text-muted);text-wrap:pretty}
.s95-body{font-size:var(--body-size);line-height:var(--body-leading);text-wrap:pretty}
.s95-small{font-size:var(--small-size);line-height:var(--small-leading);color:var(--color-text-muted)}
.s95-label{font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--color-text-subtle)}
.s95-eyebrow{font-size:var(--label-size);font-weight:var(--weight-semibold);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--color-brand)}

/* ---------- Layout helpers ---------- */
.s95-container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--gutter)}
.s95-container-narrow{width:100%;max-width:var(--container-narrow);margin-inline:auto;padding-inline:var(--gutter)}
.s95-measure{max-width:var(--content-measure)}
.s95-hairline{border:0;border-top:1px solid var(--color-divider)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.001ms!important;animation-iteration-count:1!important;transition-duration:0.001ms!important;scroll-behavior:auto!important}
}
