/* Reset */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:var(--fs-base);
  line-height:1.6;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{max-width:100%;display:block}
img{height:auto}
a{color:inherit;text-decoration:none;transition:color var(--dur) var(--ease)}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--font-serif);font-weight:600;line-height:1.15;margin:0 0 var(--sp-4);letter-spacing:-.01em}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3)}
p{margin:0 0 var(--sp-4)}

/* Utilities */
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--sp-5)}
@media (min-width:768px){.container{padding:0 var(--sp-6)}}
@media (min-width:1024px){.container{padding:0 var(--sp-8)}}

.section{padding:var(--sp-10) 0}
@media (min-width:768px){.section{padding:var(--sp-12) 0}}
@media (min-width:1024px){.section{padding:var(--sp-16) 0}}

.section-head{max-width:720px;margin-bottom:var(--sp-8)}
.kicker{
  display:inline-block;
  font-family:var(--font-sans);
  font-size:var(--fs-xs);
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent-dark);
  font-weight:600;
  margin-bottom:var(--sp-3);
  position:relative;
  padding-left:36px;
}
.kicker::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:26px;height:1.5px;background:var(--accent);
}
.section-head h2{margin-bottom:var(--sp-3)}
.section-head p{color:var(--gray-700);font-size:var(--fs-lg);margin:0}

.text-serif{font-family:var(--font-serif)}
.text-gold{color:var(--accent-dark)}
.text-muted{color:var(--gray-500)}

/* Reveal animations */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* Safety */
::-moz-selection{background:var(--accent);color:var(--primary-darker)}
::selection{background:var(--accent);color:var(--primary-darker)}
.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}
