*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none !important}
html{background:var(--ink);-webkit-text-size-adjust:100%;scrollbar-color:var(--blue) var(--ink)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{font-family:var(--f-body);font-size:clamp(1rem,1.05vw,1.125rem);line-height:1.55;color:var(--paper);background:transparent;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.is-loading{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
img,canvas,svg{display:block;max-width:100%}
ul{list-style:none}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
::selection{background:var(--amber);color:var(--ink)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mono{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9000;opacity:.05;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>")}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Skip link: first focusable element on every page, visible only on focus */
.skip{position:absolute;left:var(--gutter);top:-5rem;z-index:20000;background:var(--amber);color:var(--ink);padding:.7rem 1.1rem;font-weight:700;border-radius:0 0 6px 6px;transition:top .15s}
.skip:focus,.skip:focus-visible{top:0;outline:3px solid var(--paper);outline-offset:2px}
main:focus{outline:none}

/* Bewegung auf Wunsch reduzieren: Animationen laufen nur einmal sehr kurz, nichts wird mitgescrollt oder blinkt */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .marquee__track{transform:none!important}
}
