/* Base layer: minimal resets + the handful of utility classes the system relies on.
   Everything visual comes from tokens. */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--colors-canvas);color:var(--colors-body);font-family:var(--font-body);font-size:var(--body-md-size);line-height:var(--body-md-lh);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
img{display:block;max-width:100%}
a{color:var(--colors-ink);text-decoration:none;text-underline-offset:.22em;text-decoration-thickness:1px;transition:color var(--duration-fast) var(--easing-standard)}
a:hover{color:var(--colors-primary);text-decoration:underline}
:focus-visible{outline:2px solid var(--colors-focus);outline-offset:3px;border-radius:var(--radius-xs)}
::selection{background:var(--colors-accent-soft);color:var(--colors-ink)}

/* type utilities */
.sc-display-mega{font-family:var(--display-mega-font);font-size:var(--display-mega-size);font-weight:var(--display-mega-weight);line-height:var(--display-mega-lh);letter-spacing:var(--display-mega-ls);color:var(--colors-ink);font-stretch:112%}
.sc-display-xl{font-family:var(--display-xl-font);font-size:var(--display-xl-size);font-weight:var(--display-xl-weight);line-height:var(--display-xl-lh);letter-spacing:var(--display-xl-ls);color:var(--colors-ink)}
.sc-display-lg{font-family:var(--display-lg-font);font-size:var(--display-lg-size);font-weight:var(--display-lg-weight);line-height:var(--display-lg-lh);letter-spacing:var(--display-lg-ls);color:var(--colors-ink)}
.sc-display-md{font-family:var(--display-md-font);font-size:var(--display-md-size);font-weight:var(--display-md-weight);line-height:var(--display-md-lh);letter-spacing:var(--display-md-ls);color:var(--colors-ink)}
.sc-display-sm{font-family:var(--display-sm-font);font-size:var(--display-sm-size);font-weight:var(--display-sm-weight);line-height:var(--display-sm-lh);letter-spacing:var(--display-sm-ls);color:var(--colors-ink)}
.sc-title-xl{font-family:var(--title-xl-font);font-size:var(--title-xl-size);font-weight:var(--title-xl-weight);line-height:var(--title-xl-lh);letter-spacing:var(--title-xl-ls);color:var(--colors-ink)}
.sc-title-lg{font-family:var(--title-lg-font);font-size:var(--title-lg-size);font-weight:var(--title-lg-weight);line-height:var(--title-lg-lh);letter-spacing:var(--title-lg-ls);color:var(--colors-ink)}
.sc-title-md{font-family:var(--title-md-font);font-size:var(--title-md-size);font-weight:var(--title-md-weight);line-height:var(--title-md-lh);letter-spacing:var(--title-md-ls);color:var(--colors-ink)}
.sc-title-sm{font-family:var(--title-sm-font);font-size:var(--title-sm-size);font-weight:var(--title-sm-weight);line-height:var(--title-sm-lh);letter-spacing:var(--title-sm-ls);color:var(--colors-ink)}
.sc-body-lg{font-family:var(--body-lg-font);font-size:var(--body-lg-size);line-height:var(--body-lg-lh);letter-spacing:var(--body-lg-ls);color:var(--colors-body)}
.sc-body-md{font-family:var(--body-md-font);font-size:var(--body-md-size);line-height:var(--body-md-lh);color:var(--colors-body)}
.sc-body-sm{font-family:var(--body-sm-font);font-size:var(--body-sm-size);line-height:var(--body-sm-lh);color:var(--colors-body)}
.sc-caption{font-family:var(--caption-font);font-size:var(--caption-size);font-weight:var(--caption-weight);line-height:var(--caption-lh);letter-spacing:var(--caption-ls);color:var(--colors-muted)}
.sc-eyebrow{font-family:var(--eyebrow-font);font-size:var(--eyebrow-size);font-weight:var(--eyebrow-weight);line-height:var(--eyebrow-lh);letter-spacing:var(--eyebrow-ls);text-transform:uppercase;color:var(--colors-muted)}
.sc-price{font-family:var(--price-font);font-size:var(--price-size);font-weight:var(--price-weight);letter-spacing:var(--price-ls);color:var(--menu-price-color)}

/* layout utilities */
.sc-container{width:100%;max-width:var(--layout-max);margin-inline:auto;padding-inline:var(--layout-margin)}
.sc-section{padding-block:var(--spacing-section)}
.sc-grid{display:grid;grid-template-columns:repeat(var(--grid-columns-desktop),minmax(0,1fr));gap:var(--grid-gutter)}
@media (max-width:1024px){.sc-grid{grid-template-columns:repeat(var(--grid-columns-tablet),minmax(0,1fr))}}
@media (max-width:640px){.sc-grid{grid-template-columns:repeat(var(--grid-columns-mobile),minmax(0,1fr));gap:var(--grid-gutter-mobile)}}
.sc-bleed{width:100vw;margin-left:calc(50% - 50vw)}
.sc-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}
@keyframes sc-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes sc-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.sc-rise{animation:sc-rise var(--duration-slow) var(--easing-emphasized) both}
