/* ==== tokens.css ==== */
/* GENERATED by tools/build-tokens.mjs from src/tokens.json. Do not edit. */
@font-face {
  font-family: "Architects Daughter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/architects-daughter-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Architects Daughter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/architects-daughter-latin-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/atkinson-hyperlegible-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/atkinson-hyperlegible-latin-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/atkinson-hyperlegible-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../assets/fonts/atkinson-hyperlegible-latin-ext-700-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/atkinson-hyperlegible-latin-400-italic.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../assets/fonts/atkinson-hyperlegible-latin-ext-400-italic.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

:root {
  --wp--preset--color--cream: #F2EFE2;
  --wp--preset--color--ink: #0A0A0A;
  --wp--preset--color--orange: #EB6630;
  --wp--preset--color--white: #FFFFFF;
  --wp--preset--font-family--display: "Architects Daughter", "Comic Neue", cursive;
  --wp--preset--font-family--body: "Atkinson Hyperlegible", system-ui, sans-serif;
  --wp--preset--font-size--small: 0.9375rem;
  --wp--preset--font-size--body: clamp(1.0625rem, 1.02rem + 0.2vw, 1.125rem);
  --wp--preset--font-size--medium: clamp(1.125rem, 1.05rem + 0.4vw, 1.3125rem);
  --wp--preset--font-size--large: clamp(1.375rem, 1.2rem + 0.9vw, 1.75rem);
  --wp--preset--font-size--x-large: clamp(1.75rem, 1.4rem + 1.8vw, 2.75rem);
  --wp--preset--font-size--xx-large: clamp(1.875rem, 1.3rem + 3.2vw, 4.25rem);
  --wp--preset--font-size--huge: clamp(3rem, 2rem + 5vw, 6.5rem);
  --wp--preset--spacing--10: 0.25rem;
  --wp--preset--spacing--20: 0.5rem;
  --wp--preset--spacing--30: 1rem;
  --wp--preset--spacing--40: clamp(1.25rem, 1rem + 1vw, 1.75rem);
  --wp--preset--spacing--50: clamp(1.75rem, 1.2rem + 2.2vw, 3rem);
  --wp--preset--spacing--60: clamp(2.5rem, 1.6rem + 3.6vw, 5rem);
  --wp--preset--spacing--70: clamp(3.5rem, 2rem + 6vw, 8rem);
  --wp--custom--line-height-body: 1.55;
  --wp--custom--line-height-display: 1.15;
  --wp--custom--letter-spacing-display: 0.06em;
  --wp--custom--border-width: 3px;
  --wp--custom--radius-pill: 999px;
  --wp--custom--shadow-stamp: 4px 4px 0 var(--wp--preset--color--ink);
  --wp--custom--content-width: 42rem;
  --wp--custom--wide-width: 78rem;
  --wp--custom--gutter: clamp(1rem, 0.5rem + 2.5vw, 2.5rem);
}

/* ==== base.css ==== */
/* Base: reset, typography, focus, accessibility helpers.
   Short aliases for the WP preset variables keep the component CSS readable. */
:root {
  --cream: var(--wp--preset--color--cream);
  --ink: var(--wp--preset--color--ink);
  --orange: var(--wp--preset--color--orange);
  --white: var(--wp--preset--color--white);
  --font-display: var(--wp--preset--font-family--display);
  --font-body: var(--wp--preset--font-family--body);
  --gutter: var(--wp--custom--gutter);
  --bw: var(--wp--custom--border-width);
  /* "hand-drawn" uneven corners for tiles, buttons and boxes */
  --rough: 255px 18px 225px 18px / 18px 225px 18px 255px;
  --rough-2: 18px 225px 18px 255px / 255px 18px 225px 18px;
  --focus: var(--ink);
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html.menu-open { overflow: hidden; }

body {
  min-height: 100vh;
  background-color: var(--cream);
  background-image: url("../assets/textures/grain.png");
  color: var(--ink);
  font-family: var(--font-body);
  font-size: var(--wp--preset--font-size--body);
  line-height: var(--wp--custom--line-height-body);
  overflow-x: clip;
}

img, svg, picture { display: block; max-width: 100%; }
img { height: auto; }
button { font: inherit; color: inherit; }
ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }

h1, h2, h3, h4,
.display {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: var(--wp--custom--line-height-display);
  letter-spacing: var(--wp--custom--letter-spacing-display);
  text-transform: uppercase;
  text-wrap: balance;
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 10 5 5;
  overflow-wrap: break-word;
}
h1 { font-size: var(--wp--preset--font-size--xx-large); }
h2 { font-size: var(--wp--preset--font-size--x-large); }
h3 { font-size: var(--wp--preset--font-size--large); }

p { max-width: 68ch; text-wrap: pretty; }
p + p { margin-top: 1em; }
strong { font-weight: 700; }

a { color: inherit; text-decoration-thickness: 0.08em; text-underline-offset: 0.18em; }
a:hover { text-decoration-thickness: 0.16em; }

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
  border-radius: 4px;
}
/* dark surfaces flip the focus colour to orange (6.5:1 on ink) */
.is-dark, .stuck-section--ink, .stuck-next, .stuck-footer__dark { --focus: var(--orange); }

main:focus { outline: none; }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

.stuck-skip {
  position: absolute;
  left: var(--gutter);
  top: 0.5rem;
  z-index: 100;
  padding: 0.6rem 1rem;
  background: var(--ink);
  color: var(--cream);
  font-family: var(--font-display);
  text-transform: uppercase;
  transform: translateY(-200%);
}
.stuck-skip:focus { transform: none; --focus: var(--orange); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

/* ==== layout.css ==== */
/* Layout primitives: wraps, sections, bands. */
.stuck-wrap {
  width: min(100% - 2 * var(--gutter), var(--wp--custom--content-width));
  margin-inline: auto;
}
.stuck-wrap--wide { width: min(100% - 2 * var(--gutter), var(--wp--custom--wide-width)); }

.stuck-section {
  position: relative;
  padding-block: var(--wp--preset--spacing--60);
  isolation: isolate;
}
.stuck-section--ink {
  background: var(--ink);
  color: var(--cream);
}

/* Full-width orange band separating major blocks (draft top bar / section bands) */
.stuck-band {
  position: relative;
  height: clamp(3.5rem, 2rem + 6vw, 8rem);
  background: var(--orange);
}
.stuck-band--thin { height: 0.75rem; }

/* Decorative shape layers: always aria-hidden, behind content */
.stuck-shapes, [class$="__shapes"] {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;
}
[class$="__shapes"] img { width: 100%; height: 100%; object-fit: cover; }

/* review copies only (MOCKUP_BANNER=true) */
.stuck-draft-banner {
  max-width: none;
  margin: 0;
  padding: 0.35rem var(--gutter);
  background: var(--ink);
  color: var(--cream);
  font-size: var(--wp--preset--font-size--small);
  text-align: center;
}

/* ==== components.css ==== */
/* Components: buttons, tiles, language switch, header, mobile menu, footer, media, chips, pending. */

/* ------------------------------------------------------------ buttons (F3) */
.stuck-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55em;
  min-height: 3rem;
  padding: 0.55em 1.35em 0.5em;
  border: var(--bw) solid var(--ink);
  border-radius: var(--rough);
  font-family: var(--font-display);
  font-size: var(--wp--preset--font-size--medium);
  line-height: 1.15;
  letter-spacing: var(--wp--custom--letter-spacing-display);
  text-transform: uppercase;
  text-decoration: none;
  text-align: center;
  cursor: pointer;
}
.stuck-button__icon { width: 1.3em; height: 1.3em; flex: none; }
.stuck-button--primary { background: var(--orange); color: var(--ink); }
.stuck-button--secondary { background: transparent; color: var(--ink); }
.stuck-button--secondary-light { background: transparent; color: var(--cream); border-color: var(--cream); }
.stuck-button:hover { text-decoration: none; }
@media (prefers-reduced-motion: no-preference) {
  .stuck-button { transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s; }
}
.stuck-button--primary:hover,
.stuck-button--secondary:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--ink); }
.stuck-button--secondary:hover { background: var(--ink); color: var(--cream); }
.stuck-button--secondary-light:hover { background: var(--cream); color: var(--ink); transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--orange); }
.stuck-button:active { transform: translate(1px, 1px); box-shadow: none; }

/* ------------------------------------------------------------ icon tiles (F3) */
.stuck-tiles { display: grid; gap: 0.75rem; }
.stuck-tile {
  --tilt: 0deg;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 44px;
  height: 100%;
  padding: 0.65rem 0.6rem 0.55rem;
  background: var(--cream);
  color: var(--ink);
  border: var(--bw) solid var(--ink);
  border-radius: var(--rough);
  box-shadow: 4px 4px 0 var(--ink);
  text-decoration: none;
  transform: rotate(var(--tilt));
}
.stuck-tiles__item:nth-child(2n) .stuck-tile { border-radius: var(--rough-2); }
.stuck-tile__icon {
  width: auto;
  height: clamp(2.6rem, 2rem + 2.5vw, 4.25rem);
  max-width: 100%;
  object-fit: contain;
}
.stuck-tile { container-type: inline-size; }
.stuck-tile__label {
  min-width: 0;
  font-family: var(--font-display);
  font-size: 1.125rem;
  line-height: 1.1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
  /* words never break inside: "Veranstaltungen" and "Awareness-Konzept" must stay readable (feedback 22 Oct).
     Only the real hyphen in "Awareness-Konzept" may break the line. */
  hyphens: manual;
  -webkit-hyphens: manual;
  overflow-wrap: normal;
  word-break: keep-all; /* in Safari this also blocks the break at the hyphen, hence the <wbr> after it */
}
/* if a label is ever wider than its tile (large text settings), it overflows to the right, never over the icon */
.stuck-tile { justify-content: safe center; }
.stuck-tile[aria-current] { background: var(--orange); }
.stuck-tile:hover { text-decoration: none; }
@media (prefers-reduced-motion: no-preference) {
  .stuck-tile { transition: transform 0.15s ease, box-shadow 0.15s ease; }
  .stuck-tile:hover { transform: rotate(calc(var(--tilt) * -1)) translate(-2px, -3px); box-shadow: 7px 7px 0 var(--ink); }
  .stuck-tile:active { transform: translate(1px, 1px); box-shadow: 1px 1px 0 var(--ink); }
}
.stuck-tiles__item:nth-child(1) .stuck-tile { --tilt: -2deg; }
.stuck-tiles__item:nth-child(2) .stuck-tile { --tilt: 1.5deg; }
.stuck-tiles__item:nth-child(3) .stuck-tile { --tilt: -1deg; }
.stuck-tiles__item:nth-child(4) .stuck-tile { --tilt: 2deg; }
.stuck-tiles__item:nth-child(5) .stuck-tile { --tilt: -2.5deg; }
.stuck-tiles__item:nth-child(6) .stuck-tile { --tilt: 1deg; }
.stuck-tiles__item:nth-child(7) .stuck-tile { --tilt: -1.5deg; }

/* ------------------------------------------------------------ language switch (F1) */
.stuck-lang__list { display: flex; align-items: center; list-style: none; padding: 0; gap: 0; }
.stuck-lang__item { display: flex; align-items: center; }
.stuck-lang__item + .stuck-lang__item::before { content: "·"; padding-inline: 0.15em; font-weight: 700; }
.stuck-lang__link, .stuck-lang__current {
  display: inline-grid;
  place-items: center;
  min-width: 44px;
  min-height: 44px;
  padding-inline: 0.3em;
  font-family: var(--font-display);
  font-size: 1.25rem;
  letter-spacing: 0.06em;
}
.stuck-lang__current abbr { text-decoration: none; }
.stuck-lang__current { position: relative; }
.stuck-lang__current::after {
  content: "";
  position: absolute;
  inset: 0.35rem 0.1rem;
  border: 2px solid currentColor;
  border-radius: var(--rough);
}
.stuck-lang__link { text-decoration: underline; text-decoration-thickness: 2px; }

/* ------------------------------------------------------------ inner-page header */
.stuck-header {
  position: relative;
  z-index: 10;
  background: var(--ink);
  color: var(--cream);
  --focus: var(--orange);
}
.stuck-header__bar {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: min(100% - 2 * var(--gutter), var(--wp--custom--wide-width));
  margin-inline: auto;
  padding-block: 0.5rem;
}
.stuck-header__logo { flex: none; display: block; padding: 0.25rem; margin-right: auto; }
.stuck-header__logo img { width: clamp(5.5rem, 4rem + 4vw, 7.5rem); height: auto; }
.stuck-header__nav { display: none; }
.stuck-header__list { display: flex; flex-wrap: wrap; gap: 0.15rem 1.1rem; justify-content: center; }
.stuck-header__link {
  position: relative;
  display: inline-block;
  padding: 0.6rem 0.1rem;
  font-family: var(--font-display);
  font-size: 1.125rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
}
.stuck-header__link:hover,
.stuck-header__link[aria-current] { text-decoration: none; }
.stuck-header__link::after {
  content: "";
  position: absolute;
  left: -4%; right: -4%; bottom: 0.3rem;
  height: 0.5em;
  background: currentColor;
  -webkit-mask: var(--squiggle) no-repeat center / 100% 100%;
  mask: var(--squiggle) no-repeat center / 100% 100%;
  opacity: 0;
}
.stuck-header__link:hover::after { opacity: 0.45; }
.stuck-header__link[aria-current]::after { opacity: 1; }
.stuck-header__menu-button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.35rem 0.9rem;
  background: var(--cream);
  color: var(--ink);
  border: 0;
  border-radius: var(--rough);
  font-family: var(--font-display);
  font-size: 1.125rem;
  text-transform: uppercase;
  cursor: pointer;
}
.stuck-burger { display: grid; gap: 4px; width: 22px; }
.stuck-burger span { height: 3px; background: currentColor; border-radius: 2px; }
.stuck-burger span:nth-child(2) { width: 80%; }
@media (max-width: 24em) {
  .stuck-header__bar { gap: 0.5rem; }
  .stuck-header__menu-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (min-width: 64em) {
  .stuck-header__nav { display: block; flex: 1; }
  .stuck-header__menu-button { display: none; }
  .stuck-header__logo { margin-right: 0; }
}

/* ------------------------------------------------------------ mobile menu overlay */
.stuck-menu {
  position: fixed;
  inset: 0;
  z-index: 50;
  overflow-y: auto;
  padding: 0.75rem var(--gutter) 2rem;
  background: var(--cream) url("../assets/textures/grain.png");
}
.stuck-menu[hidden] { display: none; }
.stuck-menu__top { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1.25rem; }
.stuck-menu__logo { margin-right: auto; }
.stuck-menu__logo img { width: 6.5rem; }
.stuck-menu__close {
  display: inline-flex; align-items: center; gap: 0.4rem;
  min-height: 44px; padding: 0.3rem 0.8rem;
  background: var(--ink); color: var(--cream);
  border: 0; border-radius: var(--rough);
  font-family: var(--font-display); font-size: 1.125rem; text-transform: uppercase; cursor: pointer;
}
.stuck-menu__x { font-size: 1.6rem; line-height: 1; }
.stuck-menu__close-label { white-space: nowrap; }
@media (max-width: 24em) { .stuck-menu__close-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } }
.stuck-menu__legal { display: flex; gap: 1.5rem; justify-content: center; margin-top: 1.75rem; }
.stuck-menu__legal a { display: inline-block; padding-block: 0.6rem; }
.stuck-tiles--menu { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 0.9rem; }
.stuck-tiles--menu .stuck-tile { min-height: 7rem; }
/* "Veranstaltungen" is the longest label: it gets a double-width tile (feedback 22 Oct: German did not fit) */
.stuck-tiles--menu .stuck-tiles__item--events { grid-column: span 2; }

/* ------------------------------------------------------------ footer (ink on orange) */
.stuck-footer {
  background: var(--orange);
  color: var(--ink);
  border-top: var(--bw) solid var(--ink);
}
.stuck-footer__inner {
  display: grid;
  gap: 1.75rem;
  width: min(100% - 2 * var(--gutter), var(--wp--custom--wide-width));
  margin-inline: auto;
  padding-block: 2.25rem 1.75rem;
}
.stuck-footer__brand { display: flex; gap: 1rem; align-items: flex-start; }
.stuck-footer__pictogram { width: 4.25rem; height: auto; flex: none; color: var(--ink); }
.stuck-footer__address { font-size: var(--wp--preset--font-size--small); line-height: 1.6; }
.stuck-footer__name { font-size: 1rem; }
.stuck-footer__social ul { display: flex; gap: 0.75rem; }
.stuck-social {
  display: grid; place-items: center;
  width: 48px; height: 48px;
  border-radius: 12px;
  color: var(--ink);
}
.stuck-social svg { width: 34px; height: 34px; }
.stuck-social:hover { background: var(--ink); color: var(--orange); }
.stuck-social:hover svg path[fill^="var"] { fill: var(--ink); }
.stuck-footer__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.5rem; }
.stuck-footer__legal { display: flex; flex-wrap: wrap; align-items: center; gap: 0 1.25rem; }
.stuck-footer__legal a, .stuck-footer__top { display: inline-block; padding-block: 0.6rem; }
.stuck-footer__top { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.05em; font-size: 1.125rem; }
.stuck-footer__pending { grid-column: 1 / -1; font-size: var(--wp--preset--font-size--small); }
@media (min-width: 48em) {
  .stuck-footer__inner { grid-template-columns: 1.4fr auto; align-items: start; }
  .stuck-footer__social { justify-self: end; }
  .stuck-footer__meta { grid-column: 1 / -1; justify-content: space-between; border-top: 2px solid var(--ink); padding-top: 1rem; }
}

/* ------------------------------------------------------------ media + placeholder badge */
.stuck-media { position: relative; margin: 0; }
.stuck-media img {
  width: 100%;
  aspect-ratio: var(--ratio, 4 / 5);
  object-fit: cover;
  object-position: var(--focal, 50% 50%);
}
.stuck-media--frame {
  padding: clamp(0.6rem, 0.4rem + 0.8vw, 1rem);
  background: var(--orange);
  border-radius: 3px 9px 4px 11px;
}
.stuck-media__badge {
  position: absolute;
  top: 1.4rem;
  left: 1.4rem;
  padding: 0.15rem 0.5rem;
  background: var(--cream);
  color: var(--ink);
  border: 2px dashed var(--ink);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.hide-pending .stuck-media__badge { display: none; }

/* ------------------------------------------------------------ chips */
.stuck-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.stuck-chip {
  padding: 0.15rem 0.65rem;
  border: 2px solid currentColor;
  border-radius: var(--rough);
  font-size: var(--wp--preset--font-size--small);
  font-weight: 700;
}

/* ------------------------------------------------------------ pending placeholder */
.pending {
  display: inline-block;
  padding: 0.1em 0.5em;
  border: 2px dashed currentColor;
  border-radius: 4px;
  font-family: var(--font-body);
  font-size: 0.9em;
  font-style: italic;
  text-transform: none;
  letter-spacing: 0;
}
.pending__label { font-style: normal; font-weight: 700; }
.stuck-section--ink .pending, .is-dark .pending { border-color: var(--orange); }
.hide-pending .pending { display: none; }

/* ------------------------------------------------------------ next-up banner (F5) */
.stuck-next {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 1rem 0.55rem 0.6rem;
  background: var(--ink);
  color: var(--cream);
  border: var(--bw) solid var(--ink);
  border-radius: var(--rough-2);
  box-shadow: 4px 4px 0 var(--orange);
  text-decoration: none;
}
.stuck-next__icon { width: 2.6rem; height: auto; flex: none; }
.stuck-next__text { line-height: 1.3; }
.stuck-next__label {
  display: block;
  color: var(--orange);
  font-family: var(--font-display);
  font-size: 1.125rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.stuck-next__title { font-weight: 700; }
.stuck-next__arrow { margin-left: auto; font-size: 1.5rem; }
.stuck-next:hover { text-decoration: none; }
.stuck-next:hover .stuck-next__title { text-decoration: underline; }
@media (prefers-reduced-motion: no-preference) {
  .stuck-next { transition: transform 0.12s ease; }
  .stuck-next:hover { transform: translate(-2px, -2px); }
}

/* ------------------------------------------------------------ event card (F7) */
.stuck-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr));
  gap: clamp(1.75rem, 1rem + 2vw, 2.75rem) clamp(1.25rem, 0.8rem + 1.5vw, 2rem);
}
.stuck-event-card { position: relative; display: flex; flex-direction: column; gap: 1rem; height: 100%; }
.stuck-event-card__media { --poster-tilt: -2deg; transform: rotate(var(--poster-tilt)); }
.stuck-cards > li:nth-child(3n + 2) .stuck-event-card__media { --poster-tilt: 1.5deg; }
.stuck-cards > li:nth-child(3n) .stuck-event-card__media { --poster-tilt: -0.75deg; }
.stuck-event-card__body { display: grid; gap: 0.55rem; align-content: start; }
.stuck-event-card__title { font-size: var(--wp--preset--font-size--large); }
.stuck-event-card__link { text-decoration: none; }
.stuck-event-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.stuck-event-card__link:focus-visible { outline: none; }
.stuck-event-card:has(.stuck-event-card__link:focus-visible) { outline: 3px solid var(--focus); outline-offset: 6px; border-radius: 6px; }
.stuck-event-card__when { display: grid; font-weight: 700; }
.stuck-event-card__time { font-weight: 400; }
.stuck-event-card__more { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.05em; font-size: 1.125rem; }
.stuck-event-card:hover .stuck-event-card__title { text-decoration: underline; text-decoration-thickness: 0.08em; }
.stuck-event-card:hover .stuck-event-card__more-text { text-decoration: underline; }
@media (prefers-reduced-motion: no-preference) {
  /* every poster wiggles on hover, the same as in the archive cloud (feedback 1 Nov) */
  .stuck-event-card:hover .stuck-event-card__media { animation: stuck-poster-wiggle 0.6s ease-in-out; transform: rotate(0deg) translateY(-4px); }
}
/* phones: compact cards, poster left, text right */
@media (max-width: 39.99em) {
  .stuck-event-card { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); align-items: start; gap: 0.9rem; }
  .stuck-event-card__media .stuck-media--frame { padding: 0.45rem; }
  .stuck-event-card__media .stuck-media__badge { top: 0.7rem; left: 0.7rem; font-size: 0.75rem; padding: 0 0.3rem; }
  .stuck-event-card__title { font-size: 1.375rem; }
}
.stuck-empty { font-size: var(--wp--preset--font-size--medium); }

/* ==== patterns.css ==== */
/* Patterns: one block per future WordPress block pattern / template part. */

/* ============================================================ hero (Home, F2–F5) */
.stuck-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  min-height: 100svh;
  padding: 0.5rem var(--gutter) 0.75rem;
  overflow: hidden;
}
.stuck-hero__shapes img { object-position: 50% 50%; }
.stuck-hero__top { display: flex; justify-content: flex-end; padding-top: 0.25rem; }
.stuck-hero__top .stuck-lang {
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: var(--rough);
  padding-inline: 0.25rem;
}
.stuck-hero__grid { flex: 1; display: flex; flex-direction: column; }
.stuck-hero__title { margin: 0; }
.stuck-hero__logo { width: 100%; height: auto; }
.stuck-hero__intro {
  background: var(--cream);
  border-radius: var(--rough-2);
  padding: 0.35rem 0.75rem;
  text-align: center;
}
.stuck-hero__name { margin-inline: auto; font-size: var(--wp--preset--font-size--small); font-weight: 700; }
.stuck-hero__claim {
  margin: 0.15rem auto 0;
  font-family: var(--font-display);
  font-size: var(--wp--preset--font-size--medium);
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.stuck-hero__actions { display: flex; flex-direction: column; gap: 0.75rem; align-items: stretch; }
.stuck-hero__legal {
  display: flex;
  justify-content: flex-end;
  gap: 1rem;
  font-size: var(--wp--preset--font-size--small);
}
.stuck-hero__legal a {
  display: inline-block;
  padding: 0.45rem 0.6rem;
  background: var(--cream);
  border-radius: var(--rough);
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* --- phones and tablets: logo, text, next-up, tiles (2 cols), Instagram */
@media (max-width: 63.99em) {
  .stuck-hero__shapes img { width: 180%; height: 100%; max-width: none; margin-left: -40%; opacity: 1; }
  .stuck-hero__grid { gap: 0.9rem; }
  .stuck-hero__center, .stuck-hero__actions { display: contents; }
  .stuck-hero__title { order: 1; width: min(62%, 17rem); margin: 0.25rem auto 0; }
  .stuck-hero__intro { order: 2; }
  .stuck-next { order: 3; }
  .stuck-hero__nav { order: 4; }
  .stuck-hero__insta { order: 5; }
  .stuck-tiles--hero { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; }
  .stuck-tiles--hero .stuck-tile { flex-direction: row; justify-content: flex-start; gap: 0.4rem; padding: 0.4rem 0.45rem; min-height: 3.6rem; }
  .stuck-tiles--hero .stuck-tile__icon { height: 2rem; width: 2rem; flex: none; }
  .stuck-tiles--hero .stuck-tile__label { text-align: left; letter-spacing: 0; hyphenate-limit-chars: 8 5 5; }
  .stuck-tiles--hero .stuck-tiles__item:last-child { grid-column: 1 / -1; justify-self: center; width: calc(50% - 0.35rem); }
  .stuck-hero__legal { justify-content: center; margin-top: 0.5rem; }
}
@media (min-width: 40em) and (max-width: 63.99em) {
  .stuck-tiles--hero { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .stuck-tiles--hero .stuck-tile { flex-direction: column; justify-content: center; min-height: 6.5rem; }
  .stuck-tiles--hero .stuck-tile__label { text-align: center; }
  .stuck-tiles--hero .stuck-tiles__item:last-child { grid-column: auto; width: auto; }
  .stuck-hero__intro, .stuck-next, .stuck-hero__insta { width: min(100%, 34rem); margin-inline: auto; }
}

/* --- desktop: logo centre stage, tiles scattered left/right (menu order runs down the left, then the right) */
@media (min-width: 64em) {
  .stuck-hero { padding-inline: clamp(1.5rem, 3vw, 3.5rem); }
  .stuck-hero__grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: repeat(4, minmax(7.5rem, 1fr));
    column-gap: 1rem;
    padding-block: 0.5rem 1rem;
  }
  .stuck-hero__center {
    grid-column: 5 / 9;
    grid-row: 1 / -1;
    align-self: center;
    z-index: 2;
    display: grid;
    gap: 1rem;
    justify-items: center;
  }
  .stuck-hero__title { width: min(100%, 27rem); }
  .stuck-hero__intro { max-width: 30rem; }
  .stuck-hero__actions { width: min(100%, 26rem); }
  .stuck-hero__insta { align-self: center; }
  .stuck-hero__nav,
  .stuck-tiles--hero {
    grid-column: 1 / -1;
    grid-row: 1 / -1;
    display: grid;
    grid-template-columns: subgrid;
    grid-template-rows: subgrid;
    pointer-events: none;
  }
  .stuck-tiles--hero { gap: 0; }
  .stuck-tiles--hero .stuck-tiles__item { pointer-events: auto; align-self: center; justify-self: center; width: clamp(12.75rem, 14.5vw, 14rem); }
  .stuck-tiles--hero .stuck-tile__label { letter-spacing: 0.02em; }
  .stuck-tiles--hero .stuck-tile { min-height: clamp(8rem, 10vw, 10.5rem); }
  .stuck-tiles__item--home      { grid-column: 1 / 3;  grid-row: 1; }
  .stuck-tiles__item--club      { grid-column: 3 / 5;  grid-row: 1 / 3; }
  .stuck-tiles__item--team      { grid-column: 1 / 3;  grid-row: 2 / 4; }
  .stuck-tiles__item--join      { grid-column: 3 / 5;  grid-row: 3 / 5; }
  .stuck-tiles__item--events    { grid-column: 10 / 12; grid-row: 1; }
  .stuck-tiles__item--awareness { grid-column: 11 / 13; grid-row: 2 / 4; }
  .stuck-tiles__item--mixcloud  { grid-column: 9 / 11; grid-row: 3 / 5; }
  .stuck-hero__legal { position: absolute; right: clamp(1.5rem, 3vw, 3.5rem); bottom: 0.75rem; }
}

/* the hero lists Home too (aria-current), but it should not look like a call to action there */
.stuck-tiles--hero .stuck-tile[aria-current] { background: var(--cream); }

/* ============================================================ upcoming events strip */
.stuck-strip { overflow: hidden; }
.stuck-strip__head { display: flex; align-items: center; gap: 1rem; margin-bottom: var(--wp--preset--spacing--50); }
.stuck-strip__star { width: clamp(2.75rem, 1.5rem + 5vw, 6rem); height: auto; filter: invert(1); flex: none; }
@media (max-width: 39.99em) {
  .stuck-strip__head { flex-direction: column; align-items: flex-start; }
}
.stuck-strip__intro { margin-top: 0.4rem; font-size: var(--wp--preset--font-size--medium); }
.stuck-strip__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: var(--wp--preset--spacing--50); }

/* ============================================================ about: what we do / fact box / goals */
.stuck-about { display: grid; isolation: isolate; }
.stuck-about__what {
  position: relative;
  display: grid;
  gap: var(--wp--preset--spacing--50);
  padding: var(--wp--preset--spacing--60) var(--gutter);
}
.stuck-about__heading { font-size: var(--wp--preset--font-size--xx-large); margin-bottom: 0.6em; }
.stuck-about__doodle { position: absolute; height: auto; pointer-events: none; }
.stuck-about__doodle--handstand { width: clamp(4.5rem, 3rem + 6vw, 8.5rem); right: var(--gutter); top: 1rem; }
.stuck-about__goals {
  position: relative;
  padding: var(--wp--preset--spacing--60) var(--gutter);
  background: var(--ink);
  color: var(--cream);
  --focus: var(--orange);
}
.stuck-about__goals-inner { max-width: 36rem; }
.stuck-about__heading--goals { display: flex; align-items: center; gap: 0.5em; font-size: var(--wp--preset--font-size--x-large); }
.stuck-sparkle { width: 1.2em; height: 1.2em; flex: none; }
.stuck-about__circled {
  margin-top: 1.4rem;
  font-family: var(--font-display);
  font-size: var(--wp--preset--font-size--x-large);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.stuck-about__doodle--heads { width: clamp(5rem, 3rem + 8vw, 10rem); right: var(--gutter); bottom: 1.5rem; filter: invert(1); opacity: 0.9; }
@media (max-width: 47.99em) {
  .stuck-about__text { padding-right: 4.5rem; }
  .stuck-about__doodle--heads { position: static; margin: 1.5rem 0 0 auto; }
}
@media (min-width: 64em) {
  .stuck-about { grid-template-columns: 1.15fr 1fr; }
  .stuck-about__what { grid-template-columns: 1fr; padding-left: max(var(--gutter), (100vw - var(--wp--custom--wide-width)) / 2); padding-right: var(--wp--preset--spacing--60); }
  .stuck-about__goals {
    display: flex; flex-direction: column; justify-content: center;
    padding-right: max(var(--gutter), (100vw - var(--wp--custom--wide-width)) / 2);
    padding-left: var(--wp--preset--spacing--60);
    border-radius: 42% 0 0 18% / 30% 0 0 22%;
  }
  .stuck-about__doodle--handstand { right: var(--wp--preset--spacing--60); }
}

/* fact box (2.3a) */
.stuck-facts {
  max-width: 34rem;
  padding: 1.25rem 1.4rem;
  background: var(--cream);
  border: var(--bw) solid var(--ink);
  border-radius: var(--rough-2);
  box-shadow: 6px 6px 0 var(--orange);
}
.stuck-facts__title { font-size: var(--wp--preset--font-size--large); margin-bottom: 0.75rem; }
.stuck-facts__list { display: grid; gap: 0.7rem; }
.stuck-facts__item { display: flex; gap: 0.8rem; align-items: center; line-height: 1.35; }
.stuck-facts__icon { width: 2.25rem; height: 2.25rem; object-fit: contain; flex: none; }

/* ============================================================ partners + guests */
.stuck-pg { position: relative; padding-bottom: var(--wp--preset--spacing--60); }
.stuck-pg__band { overflow: visible; }
.stuck-pg__arch { position: absolute; left: 8%; bottom: 0; width: clamp(7rem, 4rem + 14vw, 17rem); }
.stuck-pg__bunny { position: absolute; right: 9%; top: 18%; width: clamp(4.5rem, 2.5rem + 7vw, 9rem); z-index: 1; }
.stuck-pg__cols { display: grid; gap: var(--wp--preset--spacing--50); padding-top: var(--wp--preset--spacing--60); }
.stuck-pg__heading { font-size: var(--wp--preset--font-size--x-large); margin-bottom: 0.7em; }
.stuck-pg__dance { width: clamp(6rem, 4rem + 8vw, 11rem); justify-self: center; }
@media (max-width: 47.99em) {
  .stuck-pg__cols { padding-top: calc(var(--wp--preset--spacing--60) + 4rem); }
}
@media (min-width: 48em) {
  .stuck-pg__cols { grid-template-columns: 1fr auto 1fr; align-items: start; column-gap: var(--wp--preset--spacing--60); }
  .stuck-pg__dance { align-self: end; }
  .stuck-pg__col:last-of-type { padding-top: clamp(4rem, 2rem + 8vw, 11rem); }
}

/* ============================================================ 404 */
.stuck-notfound { text-align: center; }
.stuck-notfound .stuck-wrap { display: grid; justify-items: center; gap: 1.25rem; }
.stuck-notfound__stairs { width: clamp(8rem, 5rem + 12vw, 14rem); }
.stuck-notfound__title { font-size: var(--wp--preset--font-size--huge); }

/* "Veranstaltungen" never breaks inside the word (feedback 22 Oct):
   phones/tablets give it a double-width tile (rows come out even: 2+2+2+2 / 4+4);
   on desktop the label scales with its tile (it needs about 11.8 em). */
.stuck-tiles__item { min-width: 0; }
.stuck-tile { width: 100%; }
@media (max-width: 63.99em) {
  .stuck-tiles--hero .stuck-tiles__item--events { grid-column: span 2; }
  .stuck-tiles--hero .stuck-tiles__item:last-child { grid-column: auto; justify-self: stretch; width: auto; }
  .stuck-tiles--hero .stuck-tiles__item--events .stuck-tile { justify-content: center; }
}
@media (min-width: 64em) {
  .stuck-tiles--hero .stuck-tile { padding-inline: 0.4rem; }
  .stuck-tiles--hero .stuck-tiles__item--events .stuck-tile__label { font-size: min(1.125rem, 8.3cqi); letter-spacing: 0; }
}

/* ==== pages.css ==== */
/* Inner-page patterns. */

/* ============================================================ page intro (title band) */
.stuck-intro { position: relative; }
.stuck-intro--dark { background: var(--ink); color: var(--cream); }
.stuck-intro__inner {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 0.5rem + 2vw, 2.25rem);
  padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
}
.stuck-intro__icon { width: clamp(4rem, 2.5rem + 6vw, 8rem); height: auto; flex: none; }
.stuck-intro--dark .stuck-intro__icon { filter: invert(1); }
.stuck-intro__title { font-size: var(--wp--preset--font-size--xx-large); }
.stuck-intro__lead { margin-top: 0.6rem; }
@media (max-width: 39.99em) {
  .stuck-intro__inner { flex-direction: column; align-items: flex-start; }
}

/* generic panels (solid background so text never straddles a shape edge) */
.stuck-panel {
  position: relative;
  padding: clamp(1.1rem, 0.8rem + 1.2vw, 1.75rem);
  background: var(--cream);
  border: var(--bw) solid var(--ink);
  border-radius: var(--rough-2);
}
.stuck-panel--orange { background: var(--orange); }
.stuck-placeholder-box {
  display: grid;
  place-items: center;
  min-height: 8rem;
  padding: 1.25rem;
  border: 3px dashed currentColor;
  border-radius: 8px;
  text-align: center;
}
.stuck-section--ink .stuck-placeholder-box, .is-dark .stuck-placeholder-box { border-color: var(--orange); }
.stuck-placeholder-box--large { min-height: 22rem; margin-top: 2rem; }
.stuck-placeholder-box .pending { border: 0; font-size: 1.05rem; }
.stuck-button--small { min-height: 2.75rem; font-size: 1.125rem; padding-block: 0.4em; }

/* ============================================================ events page */
.stuck-events-page__upcoming { padding-top: var(--wp--preset--spacing--30); }
.stuck-events-page__jump {
  min-height: 44px;
  font-family: var(--font-display);
  font-size: var(--wp--preset--font-size--medium);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
}
.stuck-events-page__jump::after { filter: invert(1); }
.stuck-events-page__jump:hover { text-decoration: underline; }
.stuck-strip__actions { align-items: center; }
.stuck-events-page__archive:focus { outline: none; }
.stuck-events-page__archive-title { margin-bottom: var(--wp--preset--spacing--50); }
.stuck-cards--archive .stuck-media--frame { background: var(--ink); }
.stuck-events-page__more { margin-top: var(--wp--preset--spacing--50); }

/* ============================================================ single event */
.stuck-single__grid {
  display: grid;
  gap: var(--wp--preset--spacing--50);
  padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
}
.stuck-single__back-link { display: inline-block; padding-block: 0.6rem; font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.05em; font-size: 1.125rem; }
.stuck-single__media { max-width: 30rem; transform: rotate(-1deg); }
.stuck-single__title { font-size: var(--wp--preset--font-size--xx-large); margin-bottom: 1.25rem; }
.stuck-single__facts { display: grid; gap: 0.6rem; margin-bottom: 1.5rem; }
.stuck-single__facts > div { display: grid; grid-template-columns: minmax(7rem, max-content) 1fr; gap: 1rem; padding-bottom: 0.6rem; border-bottom: 2px solid var(--ink); }
.stuck-single__facts dt { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.05em; font-size: 1.125rem; }
.stuck-single__facts dd { margin: 0; font-weight: 700; }
.stuck-single__content { font-size: var(--wp--preset--font-size--medium); }
.stuck-single__actions { margin-top: 1.75rem; }
@media (min-width: 64em) {
  .stuck-single__grid { grid-template-columns: minmax(0, 30rem) minmax(0, 1fr); column-gap: var(--wp--preset--spacing--60); }
  .stuck-single__back { grid-column: 1 / -1; }
}

/* ============================================================ club info list */
.stuck-club { overflow: hidden; }
.stuck-club__shapes img { object-position: 100% 50%; }
.stuck-club__grid { display: grid; gap: var(--wp--preset--spacing--50); align-items: start; }
.stuck-info {
  display: grid;
  background: var(--cream);
  border: var(--bw) solid var(--ink);
  border-radius: 14px 4px 18px 6px;
  box-shadow: 6px 6px 0 var(--orange);
}
.stuck-info__row { display: grid; gap: 0.25rem 1.5rem; padding: 1rem clamp(1rem, 0.6rem + 1.5vw, 1.75rem); }
.stuck-info__row + .stuck-info__row { border-top: 2px dashed var(--ink); }
.stuck-info__label {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--font-display);
  font-size: 1.25rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.stuck-info__icon { width: 2rem; height: 2rem; flex: none; }
.stuck-info__value { margin: 0; }
.stuck-info__value p + p { margin-top: 0.5rem; }
.stuck-info__link { display: inline-block; padding-block: 0.35rem; font-weight: 700; }
.stuck-club__doodle { width: clamp(6rem, 4rem + 8vw, 12rem); justify-self: center; }
@media (min-width: 48em) {
  .stuck-info__row { grid-template-columns: 15rem 1fr; align-items: start; }
}
@media (min-width: 64em) {
  .stuck-club__grid { grid-template-columns: minmax(0, 52rem) 1fr; }
  .stuck-club__doodle { align-self: end; }
}

/* ============================================================ team */
.stuck-team { overflow: hidden; }
.stuck-team__grid { position: relative; display: grid; gap: var(--wp--preset--spacing--50); }
.stuck-team__draft { margin-bottom: 0.75rem; }
.stuck-team__photo { margin: 0; transform: rotate(0.8deg); }
.stuck-team__photo .stuck-media--frame { padding: clamp(0.75rem, 0.5rem + 1vw, 1.25rem); border-radius: 26px 10px 30px 12px; }
.stuck-team__caption {
  display: inline-block;
  margin-top: 0.75rem;
  padding: 0.2rem 0.75rem;
  background: var(--cream);
  font-family: var(--font-display);
  font-size: var(--wp--preset--font-size--large);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.stuck-team__cta { margin-top: 1rem; }
.stuck-team__doodle { position: absolute; height: auto; pointer-events: none; }
.stuck-team__doodle--mohawk { width: clamp(3.5rem, 2rem + 4vw, 6rem); right: 0; top: -1rem; }
.stuck-team__doodle--wavy { display: none; }
@media (min-width: 64em) {
  .stuck-team__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-areas:
      "intro intro intro intro intro intro intro photo photo photo photo photo"
      "info1 info1 info1 info1 info1 info1 info1 photo photo photo photo photo"
      "info2 info2 info2 info2 info2 info2 info2 photo photo photo photo photo";
    align-items: start;
  }
  .stuck-team__intro { grid-area: intro; }
  .stuck-team__photo { grid-area: photo; }
  .stuck-team__info { grid-area: info1; }
  .stuck-team__info--2 { grid-area: info2; }
  .stuck-team__doodle--wavy { display: block; width: 6.5rem; right: 1rem; left: auto; bottom: -1.5rem; }
  .stuck-team__doodle--mohawk { right: -1rem; top: -2.5rem; bottom: auto; }
}

/* ============================================================ awareness (dark, chalk) */
.stuck-awareness {
  position: relative;
  isolation: isolate;
  background: var(--ink) var(--chalk);
  color: var(--cream);
  overflow: hidden;
}
/* chalk texture: a seamless tile repeated at a fixed size, never stretched, so it stays sharp (feedback 1 Nov) */
:root { --chalk: url("../assets/textures/chalk.jpg") 0 0 / 1600px auto repeat; }
@media (max-width: 39.99em) { :root { --chalk: url("../assets/textures/chalk.jpg") 0 0 / 1000px auto repeat; } }
.stuck-awareness__head { display: grid; gap: 1.25rem; align-items: center; }
.stuck-awareness__fist { width: clamp(4rem, 2.5rem + 5vw, 7.5rem); height: auto; filter: invert(1); }
.stuck-awareness__title { font-size: var(--wp--preset--font-size--xx-large); margin-bottom: 0.8rem; }
.stuck-awareness__title .asterisk { width: 0.7em; height: 0.7em; vertical-align: 0.15em; }
.stuck-awareness__h2 { font-size: var(--wp--preset--font-size--x-large); margin-bottom: 1.5rem; }
.stuck-awareness__rules { padding-top: 0; }
.stuck-rules { counter-reset: rule; list-style: none; padding: 0; }
.stuck-rules__item {
  counter-increment: rule;
  position: relative;
  display: grid;
  grid-template-columns: 3.25rem 1fr;
  gap: 1rem;
  align-items: baseline;
  font-size: var(--wp--preset--font-size--medium);
  padding-bottom: 1rem;
  margin-bottom: 1.1rem;
  border-bottom: 2px solid rgb(242 239 226 / 0.35);
  break-inside: avoid;
}
.stuck-rules__item::before {
  content: counter(rule);
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 1.8rem + 2vw, 3.25rem);
  line-height: 1;
  color: var(--orange);
  text-align: right;
}
@media (min-width: 64em) {
  .stuck-awareness__head { grid-template-columns: auto 1fr; }
  /* two independent columns, 1–5 and 6–10: a long rule no longer leaves a gap next to a short one (feedback 1 Nov) */
  .stuck-rules { columns: 2; column-gap: 3rem; }
  .stuck-rules > li:nth-child(6) { break-before: column; }
}
.stuck-awareness__card {
  padding: clamp(1.25rem, 0.8rem + 2vw, 2.25rem);
  background: var(--ink);
  border: var(--bw) solid var(--orange);
  border-radius: var(--rough-2);
}
.stuck-awareness__card .asterisk { width: 0.8em; height: 0.8em; }
.stuck-awareness__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.stuck-awareness a:not(.stuck-button) { color: var(--cream); }

/* ============================================================ join us */
.stuck-ways { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.stuck-way {
  padding: 1.4rem;
  border: var(--bw) solid var(--ink);
  border-radius: var(--rough);
  background: var(--cream);
  box-shadow: 5px 5px 0 var(--ink);
}
.stuck-way:nth-child(2) { transform: rotate(0.8deg); border-radius: var(--rough-2); }
.stuck-way:nth-child(3) { transform: rotate(-0.6deg); }
.stuck-way__title { font-size: var(--wp--preset--font-size--large); margin-bottom: 0.6rem; }
.stuck-way__title .asterisk { width: 0.9em; height: 0.9em; }
.stuck-contact__grid { display: grid; gap: 2rem; align-items: center; }
.stuck-contact__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
@media (min-width: 64em) { .stuck-contact__grid { grid-template-columns: 1.4fr 1fr; width: min(100% - 2 * var(--gutter), var(--wp--custom--wide-width)); } }

.stuck-members { background: var(--orange); color: var(--ink); border-block: var(--bw) solid var(--ink); }
.stuck-members__title { font-size: var(--wp--preset--font-size--huge); }
.stuck-members__intro { margin-block: 0.75rem var(--wp--preset--spacing--50); }
.stuck-members__cards { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.stuck-member-card {
  padding: 1.4rem;
  background: var(--cream);
  border: var(--bw) solid var(--ink);
  border-radius: var(--rough-2);
  box-shadow: 6px 6px 0 var(--ink);
}
.stuck-member-card:nth-child(1) { transform: rotate(-1deg); }
.stuck-member-card:nth-child(3) { transform: rotate(1deg); }
.stuck-member-card__title { font-size: var(--wp--preset--font-size--x-large); margin-bottom: 0.5rem; }
.stuck-members__details { margin-top: var(--wp--preset--spacing--50); max-width: 46rem; }
.stuck-members__details p + p { margin-top: 1rem; }
.stuck-members__fee { font-size: var(--wp--preset--font-size--large); font-weight: 700; }
.stuck-donate h2 { margin-bottom: 1rem; }

/* ============================================================ mixcloud */
.stuck-mixcloud { background: var(--ink) var(--chalk); color: var(--cream); }
.stuck-mixcloud .stuck-intro--dark { background: transparent; }
.stuck-featured { padding-top: 0; padding-bottom: var(--wp--preset--spacing--40); }
.stuck-djs { padding-top: var(--wp--preset--spacing--40); }
.stuck-embed { position: relative; }
.stuck-embed__cover .stuck-media__badge { top: 1.75rem; left: 1.75rem; }
.stuck-embed__play {
  position: absolute;
  inset: 50% auto auto 50%;
  translate: -50% -50%;
  display: grid;
  justify-items: center;
  gap: 0.25rem;
  width: clamp(7rem, 5rem + 8vw, 11rem);
  aspect-ratio: 1;
  place-content: center;
  background: var(--orange);
  color: var(--ink);
  border: var(--bw) solid var(--ink);
  border-radius: 46% 54% 50% 50% / 52% 48% 52% 48%;
  box-shadow: 6px 6px 0 var(--ink);
  font-family: var(--font-display);
  font-size: 1.25rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
}
.stuck-embed__play svg { width: 45%; height: auto; }
@media (prefers-reduced-motion: no-preference) {
  .stuck-embed__play { transition: transform 0.15s ease; }
  .stuck-embed__play:hover { transform: rotate(-4deg) scale(1.04); }
}
.stuck-embed__frame { width: 100%; height: 400px; border: 0; background: var(--ink); }
.stuck-embed__note { margin-top: 1rem; font-size: var(--wp--preset--font-size--small); max-width: 60rem; }
.stuck-embed__note:focus { outline: 3px solid var(--orange); outline-offset: 4px; }
.stuck-djs__title { font-size: var(--wp--preset--font-size--x-large); margin-bottom: 1.5rem; }
.stuck-djs__list { display: flex; flex-wrap: wrap; gap: 0.6rem 1.4rem; align-items: baseline; }
.stuck-djs__name {
  font-family: var(--font-display);
  font-size: var(--wp--preset--font-size--large);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.stuck-djs__name:nth-child(3n + 1) { font-size: var(--wp--preset--font-size--x-large); }
.stuck-djs__name:nth-child(4n + 2) { transform: rotate(-3deg); }
.stuck-djs__name:nth-child(5n) { transform: rotate(2deg); }
.stuck-djs__name:not(:last-child)::after { content: " ·"; color: var(--orange); }
.stuck-djs__action { margin-top: var(--wp--preset--spacing--50); }

/* ============================================================ legal pages (left-aligned, F13) */
.stuck-legal__text { text-align: left; max-width: 65ch; }
.stuck-legal__text p + p, .stuck-legal__text p + div { margin-top: 1.25rem; }

/* ============================================================ 404 alt languages */
.stuck-notfound__alt { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 2px dashed var(--ink); }

/* doodles that may overlap a brush shape get a cream "sticker" outline so they stay visible on black */
.stuck-team__doodle,
.stuck-club__doodle {
  filter: drop-shadow(2px 0 0 var(--cream)) drop-shadow(-2px 0 0 var(--cream)) drop-shadow(0 2px 0 var(--cream)) drop-shadow(0 -2px 0 var(--cream));
}

/* ============================================================ archive: poster cloud + year clouds (brief v3 / Ira's events sheet) */
.stuck-poster-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.25rem, 0.8rem + 2vw, 2.5rem) clamp(1rem, 0.5rem + 2vw, 2.25rem);
  justify-content: center;
  margin-bottom: var(--wp--preset--spacing--60);
}
.stuck-poster-cloud__item { width: clamp(8.5rem, 6rem + 9vw, 13rem); }
.stuck-poster-cloud__item { --poster-tilt: -2deg; transform: rotate(var(--poster-tilt)); }
.stuck-poster-cloud__item:nth-child(3n + 1) { margin-top: 1.25rem; }
.stuck-poster-cloud__item:nth-child(3n + 2) { --poster-tilt: 1.5deg; }
.stuck-poster-cloud__item:nth-child(3n) { --poster-tilt: -0.5deg; margin-top: 2.5rem; }
.stuck-poster-cloud__link { display: grid; color: inherit; gap: 0.35rem; text-decoration: none; }
.stuck-poster-cloud__poster .stuck-media__badge { top: 0.65rem; left: 0.65rem; font-size: 0.75rem; padding: 0 0.3rem; }
.stuck-poster-cloud__title { font-family: var(--font-display); font-size: 1.125rem; line-height: 1.15; letter-spacing: 0.04em; text-transform: uppercase; }
.stuck-poster-cloud__date { font-size: var(--wp--preset--font-size--small); font-weight: 700; }
.stuck-poster-cloud__link:hover .stuck-poster-cloud__title { text-decoration: underline; }
@media (prefers-reduced-motion: no-preference) {
  .stuck-poster-cloud__item:hover { animation: stuck-poster-wiggle 0.6s ease-in-out; transform: rotate(0deg) translateY(-4px); }
}
/* posters (event cards + archive cloud): a short wiggle from their own tilt to straight and lifted */
@keyframes stuck-poster-wiggle {
  0% { transform: rotate(var(--poster-tilt)); }
  30% { transform: rotate(2.5deg) translateY(-3px); }
  55% { transform: rotate(-2deg) translateY(-4px); }
  80% { transform: rotate(1deg) translateY(-4px); }
  100% { transform: rotate(0deg) translateY(-4px); }
}

.stuck-years { display: grid; gap: var(--wp--preset--spacing--50); }
.stuck-years__year { min-width: 0; }
.stuck-years__heading { font-size: var(--wp--preset--font-size--x-large); margin-bottom: 0.75rem; }
.stuck-cloud { display: flex; flex-wrap: wrap; gap: 0.6rem 0.7rem; align-items: center; }
.stuck-cloud__item {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 0.45rem;
  max-width: 100%;
  padding: 0.3rem 0.8rem;
  background: var(--cream);
  border: 2px solid var(--ink);
  border-radius: var(--rough);
  box-shadow: 3px 3px 0 var(--ink);
}
.stuck-cloud__item:nth-child(4n + 2) { border-radius: var(--rough-2); transform: rotate(1deg); }
.stuck-cloud__item:nth-child(5n + 3) { transform: rotate(-1.2deg); }
.stuck-cloud__item:nth-child(7n + 1) { background: var(--orange); }
.stuck-cloud__title { min-width: 0; overflow-wrap: anywhere; font-family: var(--font-display); font-size: 1.125rem; line-height: 1.2; letter-spacing: 0.03em; text-transform: uppercase; }
.stuck-cloud__date { font-size: var(--wp--preset--font-size--small); font-weight: 700; white-space: nowrap; }

/* ============================================================ embeds: consent placeholder + dialog */
.stuck-embed__placeholder {
  display: grid;
  justify-items: start;
  gap: 1rem;
  padding: clamp(1.25rem, 0.8rem + 2vw, 2.5rem);
  background: var(--ink);
  border: var(--bw) solid var(--orange);
  border-radius: var(--rough-2);
  color: var(--cream);
}
.stuck-embed__text { max-width: 60ch; }
.stuck-embed__text a { color: var(--cream); }
.stuck-embed__frame { width: 100%; height: 400px; border: 0; background: var(--ink); }

.stuck-consent {
  width: min(100% - 2rem, 34rem);
  padding: 1.5rem;
  background: var(--cream);
  color: var(--ink);
  border: var(--bw) solid var(--ink);
  border-radius: var(--rough-2);
  box-shadow: 6px 6px 0 var(--orange);
}
.stuck-consent::backdrop { background: rgb(10 10 10 / 0.6); }
.stuck-consent__title { font-size: var(--wp--preset--font-size--large); margin-bottom: 0.75rem; }
.stuck-consent__switch { display: flex; align-items: center; gap: 0.75rem; min-height: 44px; margin-top: 1rem; font-weight: 700; cursor: pointer; }
.stuck-consent__switch input { width: 1.4rem; height: 1.4rem; accent-color: var(--ink); }
.stuck-consent__actions { margin-top: 1.25rem; }
.stuck-footer__consent {
  min-height: 44px;
  padding: 0;
  background: none;
  border: 0;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  cursor: pointer;
}

/* ============================================================ donate + privacy */
.stuck-donate__bank { margin-top: 1rem; padding: 0.9rem 1.1rem; border: 2px solid var(--ink); border-radius: 8px; font-variant-numeric: tabular-nums; font-weight: 700; display: inline-block; }
.stuck-legal__h2 { font-size: var(--wp--preset--font-size--large); margin-top: 2.75rem; margin-bottom: 0.5rem; text-transform: none; letter-spacing: 0.02em; }
.stuck-legal__policy p { overflow-wrap: anywhere; }

/* ============================================================ round 2 (feedback 21 Oct) */

/* logo tilt: follows the cursor (JS sets the angles), wobbles while hovered */
.stuck-tilt { display: inline-block; transform-style: preserve-3d; }
@media (prefers-reduced-motion: no-preference) {
  .stuck-tilt {
    transition: transform 0.18s ease-out;
    transform: perspective(700px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) rotate(var(--tilt-z, 0deg));
  }
  .stuck-tilt.is-tilting { transform: perspective(700px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) rotate(var(--tilt-z, 0deg)) scale(1.06); }
  .stuck-tilt:hover img, .stuck-tilt:focus-visible img { animation: stuck-wobble 0.9s ease-in-out infinite; }
}
@keyframes stuck-wobble {
  0%, 100% { transform: translateY(0) skewX(0deg); }
  25% { transform: translateY(-3px) skewX(-3deg); }
  75% { transform: translateY(2px) skewX(3deg); }
}
.stuck-hero__title.stuck-tilt { display: block; }

/* slogan wall (Awareness): single drawings in a wrapping cloud */
.stuck-slogans { padding: var(--wp--preset--spacing--50) var(--gutter); }
.stuck-slogans__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: clamp(1rem, 0.5rem + 2vw, 2.5rem) clamp(1.25rem, 0.5rem + 3vw, 3.5rem);
  max-width: var(--wp--custom--wide-width);
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.stuck-slogans__item img { display: block; width: clamp(8rem, 5rem + 9vw, 13rem); height: auto; }
.stuck-slogans__item:nth-child(3n + 1) { transform: rotate(-4deg); }
.stuck-slogans__item:nth-child(3n + 2) { transform: rotate(3deg) translateY(0.5rem); }
.stuck-slogans__item:nth-child(5n) { transform: rotate(-2deg) translateY(-0.6rem); }
.stuck-slogans__item--star img { width: clamp(2.25rem, 1.5rem + 2vw, 3.5rem); }
@media (prefers-reduced-motion: no-preference) {
  .stuck-slogans__item--star img { animation: stuck-spin 30s linear infinite; }
}

/* membership steps */
.stuck-steps { counter-reset: step; list-style: none; padding: 0; display: grid; gap: 1.1rem; margin-block: 1.25rem; }
.stuck-steps__item {
  counter-increment: step;
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 0.9rem;
  align-items: baseline;
  font-size: var(--wp--preset--font-size--medium);
}
.stuck-steps__item::before {
  content: counter(step);
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 1.8rem + 2vw, 3.25rem);
  line-height: 1;
  text-align: right;
}
.stuck-steps--short .stuck-steps__item { font-size: var(--wp--preset--font-size--large); }
.stuck-steps__title { font-weight: 700; }
.stuck-members__teaser { display: grid; gap: 1.5rem; align-items: center; }
.stuck-members__drawing, .stuck-member__drawing { width: clamp(8rem, 5rem + 10vw, 15rem); height: auto; justify-self: center; }
@media (min-width: 48em) { .stuck-members__teaser { grid-template-columns: 1fr auto; } }
.stuck-member__grid { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 64em) { .stuck-member__grid { grid-template-columns: minmax(0, 46rem) 1fr; } .stuck-member__drawing { align-self: center; } }
.stuck-member__back a { display: inline-block; padding-block: 0.6rem; font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.05em; font-size: 1.125rem; }
.stuck-member__h2 { font-size: var(--wp--preset--font-size--x-large); margin-block: 0.5rem 0.75rem; }
.stuck-member__duties { margin-top: 1.5rem; padding: 1.1rem 1.25rem; border: var(--bw) solid var(--ink); border-radius: var(--rough-2); background: var(--cream); max-width: 46rem; }
.stuck-members__cards--two { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }

/* join + donate drawings */
.stuck-join__telegram { padding-bottom: 0.5rem; }
.stuck-join-ways .stuck-wrap { position: relative; }
.stuck-join__drawing { position: absolute; right: 0; top: -4.5rem; width: clamp(5rem, 3rem + 5vw, 8.5rem); height: auto; pointer-events: none; }
@media (max-width: 47.99em) { .stuck-join__drawing { display: none; } }
.stuck-donate__grid { display: grid; gap: 1.5rem; width: min(100% - 2 * var(--gutter), var(--wp--custom--wide-width)); }
.stuck-donate__grid > div { max-width: 46rem; }
.stuck-donate__title { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin-bottom: 1rem; }
.stuck-donate__heart { display: inline-block; width: 2.4em; height: auto; transform: rotate(-10deg); }
.stuck-donate__thanks { font-weight: 700; }

/* events archive heading + disco ball */
.stuck-events-page__archive-head { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; margin-bottom: var(--wp--preset--spacing--50); }
.stuck-events-page__archive-head .stuck-events-page__archive-title { margin-bottom: 0; }
.stuck-events-page__ball { width: clamp(5rem, 3rem + 6vw, 9rem); height: auto; }

/* mixcloud + 404 drawings */
.stuck-djs .stuck-wrap { position: relative; }
.stuck-djs__ball { position: absolute; right: 0; top: -1rem; width: clamp(4rem, 2.5rem + 5vw, 7.5rem); height: auto; }
.stuck-notfound__art { display: flex; align-items: flex-end; gap: 0.5rem; }
.stuck-notfound__glass { width: clamp(4.5rem, 3rem + 5vw, 7.5rem); height: auto; transform: rotate(6deg); }
.stuck-member__fee { font-size: var(--wp--preset--font-size--medium); max-width: 46rem; }
@media (max-width: 39.99em) { .stuck-donate__title { font-size: 1.375rem; } }
@media (min-width: 22em) and (max-width: 39.99em) { .stuck-donate__title .circled { white-space: nowrap; } }

/* three languages in the header: keep it inside 320 px (targets stay >= 24 px, WCAG 2.5.8) */
@media (max-width: 24em) {
  .stuck-header__logo img { width: 4.5rem; }
  .stuck-header .stuck-lang__link, .stuck-header .stuck-lang__current { min-width: 2rem; padding-inline: 0.1em; font-size: 1.0625rem; }
  .stuck-header .stuck-lang__item + .stuck-lang__item::before { padding-inline: 0; }
  .stuck-header__menu-button { padding-inline: 0.6rem; }
}

/* poster-less events: Stuck drawing on black inside the frame (feedback 22 Oct: no placeholders) */
.stuck-media--frame-ink { background: var(--ink); }
.stuck-media--drawn .stuck-media__drawn {
  display: grid;
  place-items: center;
  aspect-ratio: var(--ratio, 3 / 4);
  width: 100%;
  background: var(--ink);
  border: 2px solid rgb(242 239 226 / 0.25);
}
.stuck-media--drawn .stuck-media__drawn img { width: 62%; height: auto; aspect-ratio: auto; object-fit: contain; }
.stuck-poster-cloud__poster .stuck-media--frame { padding: 0.45rem; }

/* ==== utilities.css ==== */
/* Hand-drawn accents. Live text inside; the decoration is an SVG mask painted in currentColor,
   so it works on cream (ink) and on black (cream) without extra files. */
:root {
  --ellipse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 64' preserveAspectRatio='none'%3E%3Cpath d='M18 14C60 3 160 2 190 18c14 9 4 30-40 38-46 9-120 6-140-12C-6 30 14 10 70 7' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round'/%3E%3C/svg%3E");
  --squiggle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 16' preserveAspectRatio='none'%3E%3Cpath d='M2 10C30 5 60 13 92 8s70-5 106 1' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round'/%3E%3C/svg%3E");
  --wavy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 16' preserveAspectRatio='none'%3E%3Cpath d='M2 8q6-6 12 0t12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
  --asterisk: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg stroke='%23000' stroke-width='7' stroke-linecap='round'%3E%3Cpath d='M20 4v32M6.2 12l27.6 16M6.2 28l27.6-16'/%3E%3C/g%3E%3C/svg%3E");
}

/* .circled: hand-drawn ellipse around a short phrase ("Wird gefeiert.", "Unsere Gäste") */
.circled {
  position: relative;
  display: inline-block;
  padding: 0.3em 0.75em 0.25em;
  isolation: isolate;
}
.circled::before {
  content: "";
  position: absolute;
  inset: -0.12em -0.3em -0.2em -0.35em;
  z-index: -1;
  background: currentColor;
  -webkit-mask: var(--ellipse) no-repeat center / 100% 100%;
  mask: var(--ellipse) no-repeat center / 100% 100%;
}

/* .marker-underline: rough underline ("Freundschaft", "Unsere Ziele") */
.marker-underline {
  position: relative;
  padding-bottom: 0.18em;
}
.marker-underline::after {
  content: "";
  position: absolute;
  left: -0.1em; right: -0.1em; bottom: -0.1em;
  height: 0.32em;
  background: currentColor;
  -webkit-mask: var(--squiggle) no-repeat center / 100% 100%;
  mask: var(--squiggle) no-repeat center / 100% 100%;
}
.marker-underline--wavy::after { -webkit-mask-image: var(--wavy); mask-image: var(--wavy); height: 0.28em; }

/* .asterisk: orange 6-point asterisk accent (F11). Decorative. */
.asterisk {
  display: inline-block;
  width: 1em; height: 1em;
  background: var(--orange);
  -webkit-mask: var(--asterisk) no-repeat center / contain;
  mask: var(--asterisk) no-repeat center / contain;
  vertical-align: -0.1em;
}
@media (prefers-reduced-motion: no-preference) {
  .asterisk--spin { animation: stuck-spin 24s linear infinite; }
}
@keyframes stuck-spin { to { transform: rotate(360deg); } }

/* .doodle-arrow: the hand-drawn arrow ("Vergangene Veranstaltungen →") */
.doodle-arrow { display: inline-flex; align-items: center; gap: 0.75rem; }
.doodle-arrow::after {
  content: "";
  width: 4.5rem; height: 2.6rem;
  background: url("../assets/doodles/arrow.webp") no-repeat center / contain;
}
@media (prefers-reduced-motion: no-preference) {
  .doodle-arrow::after { transition: transform 0.15s ease; }
  .doodle-arrow:hover::after { transform: translateX(4px); }
}

.stuck-lead { font-size: var(--wp--preset--font-size--medium); }
