/* SMACSS · Base: elements, reset, readable defaults. */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  background: url("../assets/grain.svg");
  opacity: 0.055;
  mix-blend-mode: soft-light;
  pointer-events: none;
  z-index: 5;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 30px;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 1rem/1.75 var(--font);
  overflow-wrap: break-word;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    radial-gradient(ellipse at 75% 5%, var(--page-glow), transparent 55%),
    radial-gradient(ellipse at 0 55%, var(--page-haze), transparent 55%);
}
::selection {
  background: var(--accent);
  color: var(--bg);
}
a {
  color: inherit;
  text-underline-offset: 5px;
}
button,
input {
  font: inherit;
  color: inherit;
}
button {
  cursor: pointer;
}
button,
a,
input,
summary {
  -webkit-tap-highlight-color: transparent;
}
button {
  background: none;
  border: 0;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
summary:focus-visible,
canvas:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 5px;
}
button:disabled {
  cursor: wait;
  opacity: 0.65;
}
h1,
h2,
h3,
p,
figure {
  margin: 0;
}
h1,
h2 {
  font-family: var(--serif);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -0.035em;
}
h3 {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.35;
}
h1 {
  font-size: clamp(3.8rem, 7.8vw, 7.4rem);
}
h2 {
  font-size: clamp(2.8rem, 5vw, 4.7rem);
}
em {
  color: var(--accent);
  font-weight: 400;
}
p {
  max-width: 68ch;
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
svg {
  max-width: 100%;
}
button,
summary {
  touch-action: manipulation;
}
hr {
  border: 0;
  border-top: 1px solid var(--line);
}
[hidden] {
  display: none !important;
}
summary {
  cursor: pointer;
}
dialog {
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  width: min(720px, 92vw);
  padding: 45px;
  max-height: 88dvh;
  overflow: auto;
}
dialog::backdrop {
  background: var(--backdrop);
  backdrop-filter: blur(8px);
}
