:root {
  /* Palette */
  --deep:       #0c1f16;
  --forest:     #163424;
  --sage:       #2a5c3f;
  --sage-lt:    #3d7a56;
  --gold:       #c9a84c;
  --gold-lt:    #dfc07a;
  --gold-dim:   #f7f0dd;
  --cream:      #f5f0e8;
  --paper:      #faf8f4;
  --white:      #ffffff;
  --ink:        #1a1a1a;
  --ink-mid:    #3c3c3c;
  --ink-light:  #6a6a6a;
  --rule:       #ddd8cc;
  --rule-lt:    #eceae3;
  --red:        #8b1a1a;
  --red-dim:    #fdf0f0;
  --green-dim:  #eaf3ed;
  --amber:      #7a4f0c;
  --amber-dim:  #fef5e2;
  --serif:  'Big Caslon','Book Antiqua','Palatino Linotype','Palatino',Georgia,serif;
  --sans:   -apple-system,BlinkMacSystemFont,'Helvetica Neue',Helvetica,Arial,sans-serif;
  --mono:   'Courier New',Courier,monospace;
  --sh-sm:  0 1px 4px rgba(12,31,22,.08);
  --sh-md:  0 4px 20px rgba(12,31,22,.10);
  --sh-lg:  0 8px 40px rgba(12,31,22,.14);
}

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family: var(--sans);
  background: var(--cream);
  color: var(--ink);
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

.mt2        { margin-top: 2px; }
.sr-only    { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.loading-pulse { animation: pulse 1.2s ease-in-out infinite; }

@keyframes pulse { 0%,100%{opacity:.4} 50%{opacity:1} }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
