/* ==========================================================================
   Base - resets, typography, layout utilities
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  background:var(--am-bone);
  color:var(--am-text-dark);
  font-family:var(--am-sans);
  font-size:var(--fs-body);
  line-height:1.65;
  font-feature-settings:"cv05","ss03","tnum" 1;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img,svg,video,canvas{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:none}

h1,h2,h3,h4{font-family:var(--am-serif);font-weight:600;margin:0 0 .4em;letter-spacing:-.01em}
h1{font-size:var(--fs-h1);line-height:1.12}
h2{font-size:var(--fs-h2);line-height:1.18}
h3{font-size:var(--fs-h3);line-height:1.3}
p{margin:0 0 1em;max-width:68ch}

/* Display headings use the optical size axis */
.am-display{
  font-family:var(--am-serif);
  font-size:var(--fs-display);
  line-height:1.04;
  font-weight:600;
  letter-spacing:-.02em;
  max-width:16ch;
  font-variation-settings:"opsz" 96,"SOFT" 0,"WONK" 0;
}
h1,h2{font-variation-settings:"opsz" 24}

.am-lead{font-size:var(--fs-lead);line-height:1.5;max-width:56ch;color:inherit}

/* Layout */
.am-wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.am-wrap-text{max-width:var(--maxw-text);margin-inline:auto;padding-inline:var(--gutter)}
.am-section{padding-block:var(--section-y)}
.am-ink{background:var(--am-ink);color:var(--am-text-light)}
.am-ink-deep{background:var(--am-ink-deep);color:var(--am-text-light)}
.am-bone{background:var(--am-bone);color:var(--am-text-dark)}
.am-bone-warm{background:var(--am-bone-warm);color:var(--am-text-dark)}
.am-sand{background:var(--am-sand);color:var(--am-text-dark)}
.am-ink .am-lead,.am-ink-deep .am-lead{color:var(--am-text-dim)}

/* Eyebrow label */
.am-eyebrow{
  display:inline-flex;align-items:center;gap:.75rem;
  font-family:var(--am-sans);
  font-size:var(--fs-eyebrow);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--am-ember);
  margin:0 0 var(--sp-3);
}
.am-eyebrow::before{content:"";width:24px;height:1px;background:var(--am-ember);display:inline-block}
@media (max-width:767px){.am-eyebrow::before{width:16px}}

/* Rules */
.am-rule{height:1px;background:var(--am-line-dark);border:0;transform-origin:left center}
.am-ink .am-rule,.am-ink-deep .am-rule{background:var(--am-line-light)}

/* Grain overlay hook (applied over photography) */
.am-grain{position:relative}
.am-grain::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Accessibility */
.am-skip-link{
  position:absolute;left:-9999px;top:0;z-index:1000;
  background:var(--am-ember);color:var(--am-bone);
  padding:.75rem 1.25rem;font-weight:600;
}
.am-skip-link:focus{left:1rem;top:1rem}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--am-ember);outline-offset:3px;
}
.am-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}

/* No body text below 16px on mobile (prevents iOS input zoom too) */
@media (max-width:767px){
  body,input,select,textarea,button{font-size:max(16px,1rem)}
}
