*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-canvas);color:var(--text-primary);font-family:var(--font-body);font-size:var(--type-body);line-height:var(--leading-body);font-weight:var(--weight-body);letter-spacing:var(--tracking-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--selection-bg);color:var(--color-espresso)}
a{color:inherit;text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}
a:hover{color:var(--color-burgundy)}
img{display:block;max-width:100%}
button{font:inherit;color:inherit}
:focus-visible{outline:1px solid var(--focus-ring);outline-offset:3px}
h1,h2,h3,h4,p{margin:0}

/* Type utilities */
.an-display-massive,.an-display-xl,.an-display-lg,.an-display-md,.an-heading-xl,.an-heading-lg,.an-heading-md{font-family:var(--font-display);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);text-wrap:balance}
.an-display-massive{font-size:var(--type-display-massive);line-height:var(--leading-display)}
.an-display-xl{font-size:var(--type-display-xl);line-height:var(--leading-display)}
.an-display-lg{font-size:var(--type-display-lg);line-height:1}
.an-display-md{font-size:var(--type-display-md);line-height:1.04}
.an-heading-xl{font-size:var(--type-heading-xl);line-height:var(--leading-heading)}
.an-heading-lg{font-size:var(--type-heading-lg);line-height:var(--leading-heading)}
.an-heading-md{font-size:var(--type-heading-md);line-height:1.2;font-weight:var(--weight-display-regular)}
.an-body-lg{font-size:var(--type-body-lg);line-height:1.65;font-weight:var(--weight-body-light)}
.an-body{font-size:var(--type-body);line-height:var(--leading-body)}
.an-body-sm{font-size:var(--type-body-sm);line-height:1.6}
.an-caption{font-size:var(--type-caption);line-height:1.5;color:var(--text-muted)}
.an-eyebrow{font-family:var(--font-body);font-size:var(--type-eyebrow);font-weight:var(--weight-medium);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;line-height:1.4}
.an-italic{font-style:italic}
.an-pretty{text-wrap:pretty}

/* Layout utilities */
.an-container{width:100%;max-width:var(--grid-max);margin:0 auto;padding-left:var(--grid-margin);padding-right:var(--grid-margin)}
.an-grid{display:grid;grid-template-columns:repeat(var(--grid-columns),minmax(0,1fr));column-gap:var(--grid-gutter)}
.an-rule{border:0;border-top:1px solid var(--border-hairline);margin:0}
.an-rule--gold{border-top-color:var(--border-gold)}
.an-rule--dark{border-top-color:var(--border-dark)}
.an-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Motion primitives */
@keyframes an-fade-up{from{opacity:0;transform:translateY(var(--reveal-distance))}to{opacity:1;transform:none}}
@keyframes an-fade{from{opacity:0}to{opacity:1}}
@keyframes an-mask-up{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes an-mask-right{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes an-line-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes an-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes an-progress{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
