/* Reset + element defaults */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body { margin: 0; min-height: 100vh; min-height: 100dvh; color: var(--ink); background: var(--white); font: 400 1rem/1.65 var(--font-body); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
body.no-scroll { overflow: hidden; }
img, svg, video, iframe { max-width: 100%; }
img, svg.art { display: block; }
h1, h2, h3, h4 { margin: 0 0 .5em; font-family: var(--font-head); line-height: 1.08; letter-spacing: -.03em; font-weight: 700; }
h1 { font-size: var(--fs-h1); } h2 { font-size: var(--fs-h2); } h3 { font-size: var(--fs-h3); letter-spacing: -.02em; }
h1 em, h2 em { font-style: normal; color: var(--yellow); }
p { margin: 0 0 1em; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
address { font-style: normal; }
table { border-collapse: collapse; width: 100%; }
::selection { background: var(--yellow); color: var(--teal-ddd); }
:focus-visible { outline: 3px solid var(--yellow); outline-offset: 2px; border-radius: 4px; }
.sec-cream :focus-visible, .sec :focus-visible { outline-color: var(--teal); }
[hidden] { display: none !important; }
.i { width: 1em; height: 1em; flex: none; vertical-align: -.125em; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.skip-link { position: fixed; z-index: 3000; left: 12px; top: -60px; padding: 10px 16px; background: var(--yellow); color: var(--teal-ddd); font-weight: 700; border-radius: 8px; transition: top .2s; }
.skip-link:focus { top: 12px; }
kbd { font: 600 .72rem var(--font-body); padding: 1px 6px; border: 1px solid currentColor; border-radius: 5px; opacity: .7; }
.muted { color: var(--muted); } .mt { margin-top: 1.4rem; } .w-100 { width: 100%; }
.center-text { text-align: center; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}
