.ritchy-content {
  position: absolute;
  inset: 0;
  z-index: 10;
  pointer-events: none;
  overflow: hidden;
}

.ritchy-photo {
  position: absolute;
  left: var(--x, 50%);
  top: var(--y, 27%);
  width: var(--w, min(25vw, 390px));
  opacity: 0;
  transform-origin: 50% 50%;
  filter: drop-shadow(0 0 23px rgba(0, 0, 0, .30)) drop-shadow(0 0 46px rgba(0, 0, 0, .18));
  will-change: transform, opacity;
}

.ritchy-photo img {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
  -webkit-user-drag: none;
}

.ritchy-photo.is-throw {
  transform: translate(calc(-50% + var(--from-x)), calc(-50% + var(--from-y))) rotate(var(--from-rot)) scale(.92);
}

.ritchy-photo.is-in {
  opacity: 1;
  transform: translate(-50%, -50%) rotate(var(--rot)) scale(1);
  transition: opacity .55s ease-out var(--delay), transform 1.15s cubic-bezier(.18, .72, .18, 1) var(--delay);
}

.ritchy-text {
  position: absolute;
  left: 50%;
  top: var(--text-y, 52%);
  width: min(82vw, 1200px);
  transform: translateX(-50%);
  text-align: center;
  color: #fff;
  font-family: "neue-frutiger-world", sans-serif;
  font-size: clamp(14px, 1.12vw, 20px);
  font-weight: 300;
  line-height: 1.38;
  letter-spacing: .015em;
  text-shadow: 0 1px 6px rgba(0, 0, 0, .75);
  opacity: 0;
}

.ritchy-text.is-in {
  opacity: 1;
  transition: opacity .18s ease-out;
}

.ritchy-written-text {
  min-height: 9.2em;
  white-space: pre-wrap;
}

.ritchy-line {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  white-space: normal;
}

.ritchy-line-gap {
  height: .8em;
}

.ritchy-char {
  display: inline;
  opacity: 0;
  filter: blur(2.5px);
  transition: opacity .24s ease-out, filter .30s ease-out;
}

.ritchy-char.is-visible {
  opacity: 1;
  filter: blur(0);
}

.ritchy-written-text .ritchy-welcome {
  font-weight: 900;
  font-size: 1.22em;
}

.ritchy-signature {
  display: inline-block;
  margin-top: .35em;
  padding: .08em .18em .16em;
  white-space: nowrap;
  color: transparent;
  font-family: "mina", serif;
  font-size: clamp(38px, 4vw, 68px);
  font-weight: 400;
  font-style: normal;
  line-height: 1.08;
  letter-spacing: 0;
  text-shadow: none;
  transform: rotate(-2deg);
  background-image: linear-gradient(#1B365D, #1B365D);
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 0% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: 0;
  will-change: background-size, opacity;
}

.ritchy-signature.is-writing {
  opacity: 1;
  background-size: 100% 100%;
  transition: background-size 2.65s cubic-bezier(.18, .62, .18, 1), opacity .12s linear;
}

@media (orientation: portrait) {
  .ritchy-photo {
    width: var(--w, min(52vw, 360px));
  }

  .ritchy-text {
    width: min(88vw, 720px);
    font-size: clamp(13px, 3.2vw, 18px);
    line-height: 1.32;
  }

  .ritchy-written-text {
    min-height: 10.2em;
  }

  .ritchy-signature {
    font-size: clamp(34px, 10vw, 56px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ritchy-photo,
  .ritchy-photo.is-throw,
  .ritchy-photo.is-in {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(var(--rot));
    transition: none;
  }

  .ritchy-text,
  .ritchy-text.is-in {
    opacity: 1;
    transition: none;
  }

  .ritchy-char {
    opacity: 1;
    filter: none;
    transition: none;
  }

  .ritchy-signature,
  .ritchy-signature.is-writing {
    opacity: 1;
    background-size: 100% 100%;
    transition: none;
  }
}

/* RITCHY · gezeichnete Unterschrift */
.ritchy-signature-svg {
  display: block;
  width: min(560px, 58vw);
  height: auto;
  margin: 1.15rem auto 0;
  object-fit: contain;
  overflow: visible;
  opacity: 0;
}

.ritchy-signature-svg[src] {
  opacity: 1;
}

@media (max-width: 700px) {
  .ritchy-signature-svg {
    width: min(460px, 84vw);
    margin-top: .9rem;
  }
}


/* ---------------------------------------------------------
   RITCHY · Typografie + echte SVG-Schreibanimation v8
   Neon / Brand / Navigation bleiben unangetastet.
--------------------------------------------------------- */

.ritchy-text {
  width: min(90vw, 1320px);
  font-size: clamp(24px, 1.55vw, 30px);
  line-height: 1.34;
}

.ritchy-written-text {
  width: min(100%, 1260px);
  min-height: 0;
  margin: 0 auto;
  white-space: normal;
}

.ritchy-line {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.ritchy-line:not(.ritchy-line--body) {
  width: fit-content;
  max-width: 100%;
  text-align: center;
}

.ritchy-line--body {
  width: min(100%, 1220px);
  text-align: left;
}

.ritchy-line-gap {
  height: .72em;
}

.ritchy-written-text .ritchy-welcome {
  font-size: 1.34em;
  line-height: 1.08;
}

.ritchy-signature-svg {
  display: block;
  width: min(320px, 25vw);
  height: auto;
  margin: .9rem auto 0;
  overflow: visible;
  opacity: 1;
}

.ritchy-signature-svg .ritchy-stroke {
  fill: none;
  stroke: #1B365D;
  stroke-width: 9;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-miterlimit: 10;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.ritchy-signature-svg.is-writing .ritchy-stroke {
  animation-name: ritchy-draw;
  animation-timing-function: cubic-bezier(0.18, 0.78, 0.72, 0.22);
  animation-fill-mode: forwards;
}

.ritchy-signature-svg.is-writing .p1 { animation-duration: 0.553s; animation-delay: 0.063s; }
.ritchy-signature-svg.is-writing .p2 { animation-duration: 0.632s; animation-delay: 0.632s; }
.ritchy-signature-svg.is-writing .p3 { animation-duration: 0.232s; animation-delay: 1.290s; }
.ritchy-signature-svg.is-writing .p4 { animation-duration: 0.274s; animation-delay: 1.544s; }
.ritchy-signature-svg.is-writing .p5 { animation-duration: 0.168s; animation-delay: 1.838s; }
.ritchy-signature-svg.is-writing .p6 { animation-duration: 0.232s; animation-delay: 2.028s; }
.ritchy-signature-svg.is-writing .p7 { animation-duration: 0.870s; animation-delay: 2.286s; }
.ritchy-signature-svg.is-writing .p8 { animation-duration: 0.095s; animation-delay: 3.182s; }

@keyframes ritchy-draw {
  to { stroke-dashoffset: 0; }
}

@media (orientation: portrait), (max-width: 700px) {
  .ritchy-text {
    width: min(88vw, 680px);
    font-size: clamp(25px, 4.25vw, 31px);
    line-height: 1.31;
  }

  .ritchy-written-text {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  .ritchy-line--body {
    width: 100%;
    text-align: left;
  }

  .ritchy-written-text .ritchy-welcome {
    font-size: 1.28em;
  }

  .ritchy-signature-svg {
    width: min(270px, 58vw);
    margin-top: .7rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ritchy-signature-svg .ritchy-stroke {
    animation: none !important;
    stroke-dashoffset: 0;
  }
}


/* ---------------------------------------------------------
   RITCHY · Zentrierung + Mobile-Korrektur v9
   Nur Textblock und Signatur.
--------------------------------------------------------- */

/* Desktop / Landscape */
.ritchy-text {
  width: min(1000px, 74vw) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  font-size: clamp(23px, 1.55vw, 30px) !important;
}

.ritchy-written-text {
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.ritchy-line {
  margin-left: auto !important;
  margin-right: auto !important;
}

.ritchy-line:not(.ritchy-line--body) {
  width: fit-content !important;
  max-width: 100% !important;
  text-align: center !important;
}

.ritchy-line--body {
  width: min(860px, 100%) !important;
  max-width: 860px !important;
  text-align: left !important;
}

.ritchy-signature-svg {
  display: block !important;
  width: min(280px, 22vw) !important;
  height: auto !important;
  margin: .8rem auto 0 !important;
}

/* Mobile / Portrait */
@media (orientation: portrait), (max-width: 700px) {
  .ritchy-text {
    width: min(86vw, 560px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    font-size: clamp(18px, 4.7vw, 22px) !important;
    line-height: 1.32 !important;
  }

  .ritchy-written-text {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .ritchy-line {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .ritchy-line:not(.ritchy-line--body) {
    width: fit-content !important;
    max-width: 100% !important;
    text-align: center !important;
  }

  .ritchy-line--body {
    width: min(78vw, 500px) !important;
    max-width: 100% !important;
    text-align: left !important;
  }

  .ritchy-written-text .ritchy-welcome {
    font-size: 1.28em !important;
  }

  .ritchy-signature-svg {
    width: min(220px, 48vw) !important;
    height: auto !important;
    margin: .65rem auto 0 !important;
  }
}


/* ---------------------------------------------------------
   RITCHY · Layoutkorrektur v10
   Bild kleiner/weiter oben, kompletter Text wirklich zentriert.
   Neon / Navigation / Signaturanimation unangetastet.
--------------------------------------------------------- */

/* Desktop */
.ritchy-photo {
  width: min(300px, 22vw) !important;
  top: 8.5% !important;
}

.ritchy-text {
  width: min(980px, 72vw) !important;
  margin: .675rem auto 0 !important;
  text-align: center !important;
}

.ritchy-written-text {
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.ritchy-line,
.ritchy-line--body,
.ritchy-line:not(.ritchy-line--body) {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.ritchy-signature-svg {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Mobile / Portrait */
@media (orientation: portrait), (max-width: 700px) {
  .ritchy-photo {
    width: min(300px, 68vw) !important;
    top: 7.5% !important;
  }

  .ritchy-text {
    width: min(88vw, 560px) !important;
    margin: 1.15rem auto 0 !important;
    text-align: center !important;
  }

  .ritchy-written-text {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  .ritchy-line,
  .ritchy-line--body,
  .ritchy-line:not(.ritchy-line--body) {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  .ritchy-signature-svg {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}


/* ---------------------------------------------------------
   RITCHY · NEUES LAYOUT 2.0 · Scroll-/Layer-Grundarchitektur
   RITCHY ist die Masterseite für die spätere HOME-Übernahme.
--------------------------------------------------------- */

:root {
  /* Werden von ritchy.js abhängig von Landscape/Portrait gesetzt. */
  --ritchy-scroll-lead-factor: 1.25;
  --ritchy-zoom-scroll-factor: 1.50;
  --ritchy-zoom-max-scale: 1.65;
  --ritchy-background-scale: 1;
}

.ritchy-scroll-shell {
  position: relative;
  width: 100%;
  /* Fallback; die exakte Höhe setzt ritchy.js als svh-Wert. */
  height: var(--ritchy-scroll-shell-height, 375svh);
  background: #000;
}

.ritchy-stage {
  position: sticky;
  top: 0;
  width: 100%;
  height: 100vh;
  height: 100svh;
  min-height: 520px;
  overflow: hidden;
  isolation: isolate;

  /* Der Hintergrund lebt ab jetzt ausschließlich auf eigener Ebene. */
  background: #000 !important;
}

.ritchy-background-layer {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  background: #000;
}

.ritchy-background-layer picture {
  position: absolute;
  inset: 0;
  display: block;
}

.ritchy-background {
  position: absolute;
  top: 0;
  left: 50%;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  transform: translateX(-50%) scale(var(--ritchy-background-scale));
  transform-origin: top center;
  will-change: transform;
  user-select: none;
  -webkit-user-drag: none;
}

/* Explizite Ebenen oberhalb des neuen Hintergrunds. */
.ritchy-layer--content { z-index: 10; }
.ritchy-layer--neon   { z-index: 115; }
.ritchy-layer--brand  { z-index: 120; }

@media (prefers-reduced-motion: reduce) {
  .ritchy-scroll-shell {
    height: 100svh;
  }

  .ritchy-stage {
    position: relative;
  }

  .ritchy-background {
    transform: translateX(-50%) scale(1) !important;
  }
}


/* ---------------------------------------------------------
   NEUES LAYOUT 2.0 · Startzustand Phase 1
   Zu Beginn ist nur die Grundszene sichtbar. Foto und Text
   werden erst in einer späteren Scrollphase zugeschaltet.
--------------------------------------------------------- */
.ritchy-photo {
  top: -40vh !important;
  opacity: 0 !important;
  transition: none !important;
}

.ritchy-text {
  opacity: 0 !important;
  transition: none !important;
}

/* ---------------------------------------------------------
   RITCHY · NEUES LAYOUT 2.0 · Inhaltsaufbau Landscape
   1 Bild oben (später 3) · Text · Unterschrift
   Hintergrund-/Scrollmechanik bleibt davon unabhängig.
--------------------------------------------------------- */

@media (orientation: landscape) {
  .ritchy-photo {
    left: 50% !important;
    top: clamp(20px, 4.5svh, 48px) !important;
    width: clamp(210px, 23vw, 350px) !important;
    opacity: 1 !important;
    transform: translateX(-50%) rotate(-2deg) !important;
    transition: none !important;
    filter: none !important;
  }

  .ritchy-text {
    left: 50% !important;
    top: clamp(250px, 30svh, 340px) !important;
    width: min(72vw, 980px) !important;
    transform: translateX(-50%) !important;
    opacity: 1 !important;
    transition: none !important;
    font-size: clamp(17px, 1.35vw, 24px) !important;
    line-height: 1.34 !important;
  }

  .ritchy-written-text {
    width: 100% !important;
  }

  .ritchy-line {
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
  }

  /* Lauftext: ungefähr halbe bisherige Zeilenlänge in Landscape. */
  .ritchy-line--body {
    width: 52% !important;
    max-width: 52% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    font-size: clamp(1.45rem, 2.15vw, 2.25rem) !important;
    line-height: 1.28 !important;
  }

  .ritchy-intro {
    font-size: clamp(1.55rem, 2.35vw, 2.5rem) !important;
    line-height: 1.16 !important;
  }

  .ritchy-line-gap {
    height: .55em !important;
  }

  .ritchy-char {
    opacity: 1 !important;
    filter: none !important;
    transition: none !important;
  }

  .ritchy-signature-svg {
    width: clamp(190px, 18vw, 285px) !important;
    margin-top: .65rem !important;
    opacity: 1 !important;
  }

  .ritchy-signature-svg .ritchy-stroke {
    stroke-dashoffset: 0 !important;
    animation: none !important;
  }
}

/* Portrait ist für diese Phase noch nicht final. Inhalt bleibt sichtbar;
   die spätere eigene Hochformat-Komposition folgt getrennt. */
@media (orientation: portrait) {
  .ritchy-photo {
    left: 50% !important;
    top: 5svh !important;
    width: min(48vw, 310px) !important;
    opacity: 1 !important;
    transform: translateX(-50%) rotate(-2deg) !important;
    transition: none !important;
    filter: none !important;
  }

  .ritchy-text {
    opacity: 1 !important;
    transition: none !important;
  }

  .ritchy-char {
    opacity: 1 !important;
    filter: none !important;
    transition: none !important;
  }

  .ritchy-signature-svg .ritchy-stroke {
    stroke-dashoffset: 0 !important;
    animation: none !important;
  }
}


/* ---------------------------------------------------------
   RITCHY · Layout 2.0 · korrigierter Hintergrundablauf

   LANDSCAPE:
   hintergrund_11.webp wird als echtes 1:1-Bild über die
   volle Viewportbreite dargestellt. Es scrollt zunächst
   bis zur unteren Bildkante. Erst danach beginnt der Zoom.

   PORTRAIT:
   gleiche Mechanik mit dem jeweiligen Portrait-Hintergrund.
--------------------------------------------------------- */

.ritchy-background-layer {
  overflow: hidden !important;
}

.ritchy-background-layer picture {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: auto !important;
  bottom: auto !important;
  width: 100% !important;
  height: auto !important;
  transform: translate3d(0, var(--ritchy-background-scroll-y, 0px), 0);
  will-change: transform;
}

.ritchy-background {
  position: relative !important;
  top: auto !important;
  left: 50% !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  object-fit: unset !important;
  object-position: initial !important;
  transform:
    translateX(-50%)
    scale(var(--ritchy-background-scale, 1)) !important;
  transform-origin: top center !important;
}

/* Bild/Text/Unterschrift sind die scrollende Inhaltsebene.
   Blur, Neon, Logo und Navigation bleiben fest darüber. */
.ritchy-content {
  transform: translate3d(0, var(--ritchy-content-scroll-y, 0px), 0);
  will-change: transform;
}


/* =========================================================
   RITCHY · LAYOUT 2.0 · VERBINDLICHER INHALTSSTAND
   Diese Regeln stehen bewusst zuletzt und ersetzen die
   historischen Einzelkorrekturen für Foto/Signatur.
========================================================= */

/* Inhalt darf innerhalb des Sticky-Viewports laufen; die Stage clippt
   weiterhin nur am Viewportrand. */
.ritchy-content {
  overflow: visible !important;
}

/* Text: sofort komplett sichtbar, keinerlei Schreib-/Fade-Animation. */
.ritchy-text,
.ritchy-text.is-in {
  opacity: 1 !important;
  transition: none !important;
}

.ritchy-char {
  opacity: 1 !important;
  filter: none !important;
  transition: none !important;
}

/* Foto: kleiner und wieder mit echter Einflugbewegung.
   Für Landscape zunächst ein einzelnes Bild; später werden daraus drei. */
@media (orientation: landscape) {
  .ritchy-photo {
    left: var(--x, 50%) !important;
    top: var(--y, 15svh) !important;
    width: var(--w, clamp(165px, 15vw, 245px)) !important;
    opacity: 0 !important;
    transform:
      translate(calc(-50% + var(--from-x)), calc(-50% + var(--from-y)))
      rotate(var(--from-rot))
      scale(.92) !important;
    transform-origin: 50% 50% !important;
    transition: none !important;
    filter: none !important;
  }

  .ritchy-photo.is-throw {
    opacity: 0 !important;
    transform:
      translate(calc(-50% + var(--from-x)), calc(-50% + var(--from-y)))
      rotate(var(--from-rot))
      scale(.92) !important;
  }

  .ritchy-photo.is-in {
    opacity: 1 !important;
    transform:
      translate(-50%, -50%)
      rotate(var(--rot))
      scale(1) !important;
    transition:
      opacity .42s ease-out var(--delay),
      transform 1.05s cubic-bezier(.18, .72, .18, 1) var(--delay) !important;
  }
}

@media (orientation: portrait) {
  .ritchy-photo {
    width: var(--w, clamp(150px, 40vw, 225px)) !important;
  }
}

/* Signatur: vollständiges SVG, keine Alt-Regel darf Pfade vorab zeigen.
   Startzustand = komplett unsichtbar; JS setzt einmalig is-writing. */
.ritchy-signature-svg {
  display: block !important;
  width: clamp(220px, 20vw, 320px) !important;
  height: auto !important;
  margin: .85rem auto 0 !important;
  overflow: visible !important;
  opacity: 1 !important;
}

.ritchy-signature-svg .ritchy-stroke {
  fill: none !important;
  stroke: #1B365D !important;
  stroke-width: 9 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-dasharray: 1 !important;
  stroke-dashoffset: 1 !important;
  animation: none !important;
}

.ritchy-signature-svg.is-writing .ritchy-stroke {
  animation-name: ritchy-draw !important;
  animation-timing-function: cubic-bezier(.18, .78, .72, .22) !important;
  animation-fill-mode: forwards !important;
}

.ritchy-signature-svg.is-writing .p1 { animation-duration: .553s !important; animation-delay: .063s !important; }
.ritchy-signature-svg.is-writing .p2 { animation-duration: .632s !important; animation-delay: .632s !important; }
.ritchy-signature-svg.is-writing .p3 { animation-duration: .232s !important; animation-delay: 1.290s !important; }
.ritchy-signature-svg.is-writing .p4 { animation-duration: .274s !important; animation-delay: 1.544s !important; }
.ritchy-signature-svg.is-writing .p5 { animation-duration: .168s !important; animation-delay: 1.838s !important; }
.ritchy-signature-svg.is-writing .p6 { animation-duration: .232s !important; animation-delay: 2.028s !important; }
.ritchy-signature-svg.is-writing .p7 { animation-duration: .870s !important; animation-delay: 2.286s !important; }
.ritchy-signature-svg.is-writing .p8 { animation-duration: .095s !important; animation-delay: 3.182s !important; }

@media (orientation: portrait) {
  .ritchy-signature-svg {
    width: clamp(190px, 48vw, 270px) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ritchy-photo,
  .ritchy-photo.is-throw,
  .ritchy-photo.is-in {
    opacity: 1 !important;
    transform: translate(-50%, -50%) rotate(var(--rot)) scale(1) !important;
    transition: none !important;
  }

  .ritchy-signature-svg .ritchy-stroke {
    stroke-dashoffset: 0 !important;
  }
}


/* =========================================================
   RITCHY · LAYOUT 2.0 · Intro-Typografie
   Oberer Dreizeiler bewusst größer als der Lauftext.
========================================================= */
@media (orientation: landscape) {
  #ritchyWrittenText > .ritchy-line:nth-child(1),
  #ritchyWrittenText > .ritchy-line:nth-child(3) {
    font-size: clamp(1.45rem, 1.95vw, 2.05rem) !important;
    line-height: 1.12 !important;
  }

  #ritchyWrittenText > .ritchy-line:nth-child(2) {
    font-size: clamp(1.9rem, 2.55vw, 2.8rem) !important;
    line-height: 1.02 !important;
    font-weight: 900 !important;
  }
}

@media (orientation: portrait) {
  #ritchyWrittenText > .ritchy-line:nth-child(1),
  #ritchyWrittenText > .ritchy-line:nth-child(3) {
    font-size: clamp(1.25rem, 5vw, 1.75rem) !important;
  }

  #ritchyWrittenText > .ritchy-line:nth-child(2) {
    font-size: clamp(1.65rem, 6.5vw, 2.25rem) !important;
    font-weight: 900 !important;
  }
}

/* RITCHY Layout 2.0 – Portrait: Textblock am Start höher */
@media (orientation: portrait) {
  .ritchy-text {
    top: 40svh !important;
  }
}

/* RITCHY Layout 2.0 – Portrait: Bild/Text-Abstand kompakter */
@media (orientation: portrait) {
  .ritchy-text {
    top: 29svh !important;
  }
}


/* =========================================================
   RITCHY · LAYOUT 2.0 · reduzierte Unterschrift
   Direkt unter dem Text, keine Animation, kein SVG.
========================================================= */
.ritchy-signature-text {
  display: block;
  width: max-content;
  max-width: 90%;
  margin: .7rem auto 0;
  color: #1B365D;
  font-family: "mina", serif;
  font-weight: 400;
  font-style: normal;
  font-size: clamp(42px, 4.2vw, 68px);
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  transform: rotate(-2deg);
}

@media (orientation: portrait) {
  .ritchy-signature-text {
    margin-top: .55rem;
    font-size: clamp(38px, 10vw, 56px);
  }
}


/* RITCHY Layout 2.0 – Textsignatur Feintuning */
.ritchy-signature-text {
  margin-top: 1.25rem !important;
  text-shadow:
    0 0 5px rgba(255, 255, 255, .72),
    0 0 11px rgba(255, 255, 255, .42),
    0 0 18px rgba(255, 255, 255, .20);
}

@media (orientation: portrait) {
  .ritchy-signature-text {
    margin-top: 1.05rem !important;
  }
}


/* RITCHY stellt ausschließlich Position und Platz für das Mastermodul bereit. */
.ritchy-gallery-container {
  width: min(82vw, 1120px);
  margin: clamp(2.75rem, 4vw, 4rem) auto 0;
  pointer-events: auto;
}

@media (max-aspect-ratio: 1 / 1) {
  .ritchy-gallery-container {
    width: 92vw;
    margin-top: clamp(.75rem, 2vw, 1.25rem);
  }
}
