/* ─── DD2K — Typography ──────────────────────────────────────────── */
@font-face{font-family:'Neue Haas Grotesk Display';src:url('fonts/NeueHaasDisplayRoman.ttf') format('truetype');font-weight:400}
@font-face{font-family:'Neue Haas Grotesk Display';src:url('fonts/NeueHaasDisplayBold.ttf') format('truetype');font-weight:700}
@font-face{font-family:'Neue Haas Grotesk Text';src:url('fonts/NeueHaasGrotText-55Roman-Trial.otf') format('opentype');font-weight:400}
@font-face{font-family:'Neue Haas Grotesk Text';src:url('fonts/NeueHaasGrotText-75Bold-Trial.otf') format('opentype');font-weight:700}
@font-face{font-family:'Linux Biolinum Keyboard O';src:url('fonts/LinBiolinum_K.otf') format('opentype');font-weight:400}
@font-face{font-family:'Linux Biolinum O';src:url('fonts/LinBiolinum_R.otf') format('opentype');font-weight:400}
@font-face{font-family:'Linux Biolinum O';src:url('fonts/LinBiolinum_RB.otf') format('opentype');font-weight:700}
@font-face{font-family:'Linux Biolinum O';src:url('fonts/LinBiolinum_RI.otf') format('opentype');font-weight:400;font-style:italic}
@font-face{font-family:'Linux Libertine O';src:url('fonts/LinLibertine_R.otf') format('opentype');font-weight:400}
@font-face{font-family:'Linux Libertine O';src:url('fonts/LinLibertine_RB.otf') format('opentype');font-weight:700}
@font-face{font-family:'Linux Libertine O';src:url('fonts/LinLibertine_RI.otf') format('opentype');font-weight:400;font-style:italic}
@font-face{font-family:'Linux Libertine O';src:url('fonts/LinLibertine_RBI.otf') format('opentype');font-weight:700;font-style:italic}
@font-face{font-family:'Sprat';src:url('fonts/Sprat_Variable.ttf') format('truetype');font-weight:100 900}

/* ─── Defaults ──────────────────────────────────────────────────────── */
/*  Fallback values — overridden by bootstrapStyle() from site.json     */
/*  Grid/colors vars are set from index block, included here as fallback */
:root{
  --fonts-logo:'Sprat',sans-serif;
  --fonts-display:'Neue Haas Grotesk Display','Helvetica Neue',sans-serif;
  --fonts-body:'Neue Haas Grotesk Text','Helvetica Neue',sans-serif;
  --fonts-accent:'Linux Libertine O','Georgia','Times New Roman',serif;
  --sizes-logo:clamp(4rem,2vw,16rem);
  --shadow-logo:drop-shadow(.1rem .1rem .1rem rgba(0,255,0,.95));
  --colors-pageBg:#e1e1e1;
  --colors-pageText:#111;
  --colors-gridLine:#000;
  --colors-gridCell:#d8d8d8;
  --colors-gridSpacer:#cdcdcd;
  --grid-cellLineWidth:2px;
  --grid-spacerInset:inset 0 0 10px rgba(0,0,0,.5);
  --grid-hoverScale:1.08;
  --blend-header:difference;
  --blend-textBlock:difference;
  --blend-marquee:difference;
  --motion-marqueeSpeed:30s;
  --motion-marqueePadding:120vw
}

/* ─── DD2K marquee (scroll animation container) ────────────────────── */
/*  Typography comes from .text-* rules (marquee is a text block).      */
.marquee{
  position:fixed;top:50%;left:0;right:0;z-index:40;
  overflow:hidden;white-space:nowrap;mix-blend-mode:var(--blend-marquee,difference);
  pointer-events:none;transform:translateY(-50%);
  will-change:transform;isolation:isolate
}
.marquee span{
  display:inline-block;font-weight:700;
  animation:marquee var(--motion-marqueeSpeed,30s) linear infinite;
  padding-right:var(--motion-marqueePadding,120vw);
  will-change:transform
}
@keyframes marquee{0%{transform:translateX(100vw)}100%{transform:translateX(-100%)}}
