:root {
  --gold: #d9b17a;
  --gold-line: rgba(217, 177, 122, .55);
  --cream: #f1e7d2;
  --text: #e9e2d4;
  --red: #cf3a2e;
  --sky: #061722;
  --footer-bg: #0a1320;
  --footer-h: 76px;
  --f-wide: "Futura", "Century Gothic", "Avenir Next", "Avenir", "Josefin Sans", "Montserrat", "Segoe UI", sans-serif;
  --f-cond: "DIN Condensed", "Avenir Next Condensed", "Bahnschrift", "Roboto Condensed", "Arial Narrow", "sans-serif-condensed", "Helvetica Neue", Arial, sans-serif;
  --f-body: "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; }
body {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  background: var(--sky);
  color: var(--text);
  font-family: var(--f-body);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--cream); text-decoration: none; }
a:hover { color: var(--gold); }
a:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; border-radius: 2px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Szene (Bild + Kistenbeschriftung) ---------- */
.scene { position: absolute; overflow: hidden; }
.scene img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
/* .art = der Bereich der ursprünglichen Vorlage innerhalb des links verlängerten Bildes */
.art { position: absolute; top: 0; right: 0; height: 100%; width: calc(100% * 1476 / 1976); container-type: inline-size; }

/* ---------- Texte ---------- */
.brand { display: flex; align-items: center; }
.signet { display: block; height: auto; }
.brand-rule { background: var(--gold-line); width: 1px; }
.wordmark { margin: 0; font: 400 1em/1 var(--f-wide); letter-spacing: .2em; color: var(--gold); text-transform: uppercase; }
.subline { margin: 0; font-family: var(--f-wide); letter-spacing: .36em; color: var(--cream); text-transform: uppercase; }
.title { margin: 0; font-family: var(--f-cond); font-weight: 700; font-stretch: condensed; line-height: .9; letter-spacing: .005em; text-transform: uppercase; }
.title span { display: block; color: var(--cream); }
.title .red { color: var(--red); }
.lead { margin: 0; color: var(--text); text-wrap: pretty; }
.rule { display: block; background: var(--gold); height: 1px; }
.soon { margin: 0; font-family: var(--f-wide); letter-spacing: .38em; color: var(--cream); }
.claims p { margin: 0; font-family: var(--f-wide); letter-spacing: .19em; color: var(--gold); text-transform: uppercase; }
.claims span { display: block; white-space: nowrap; }
.claims hr { border: 0; height: 1px; background: var(--gold-line); margin: 0; }

/* ---------- Footer ---------- */
.site-footer {
  position: relative; z-index: 2;
  display: flex; align-items: center; gap: 28px;
  min-height: var(--footer-h); padding: 14px 4.5vw;
  background: var(--footer-bg); border-top: 1px solid rgba(217, 177, 122, .35);
}
.site-footer .f-brand { display: flex; align-items: center; gap: 28px; }
.site-footer .f-name { font: 400 15px/1 var(--f-wide); letter-spacing: .2em; color: var(--gold); margin: 0; }
.site-footer .f-bar { width: 1px; height: 26px; background: var(--gold-line); }
.site-footer .f-init { font: 400 11px/1.4 var(--f-wide); letter-spacing: .18em; color: #cfc6b6; margin: 0; }
.site-footer .f-line { flex: 1; max-width: 270px; height: 1px; background: var(--gold-line); margin-left: auto; }
.site-footer ul { list-style: none; display: flex; gap: 44px; margin: 0; padding: 0; }
.site-footer ul a { font: 400 12px/1 var(--f-wide); letter-spacing: .2em; display: inline-block; padding: 10px 0; }

/* ---------- Desktop: Komposition wie die Vorlage ---------- */
@media (min-width: 821px) and (min-aspect-ratio: 3/2) {
  :root {
    --stage-h: min(calc(100svh - var(--footer-h)), calc(100vw / 1.7106));
    --scene-h: max(calc(var(--stage-h) * 1.05), calc(100vw / 2.181));
    --scene-top: calc((var(--stage-h) - var(--scene-h)) * .35);
  }
  .stage { position: relative; height: var(--stage-h); overflow: hidden; }
  .scene { right: 0; top: var(--scene-top); height: var(--scene-h); width: calc(var(--scene-h) * 2.181); }
  .scene::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3, 12, 19, .5) 0%, rgba(3, 12, 19, 0) 48%); pointer-events: none; }
  .layout { position: absolute; right: 0; top: var(--scene-top); height: var(--scene-h); width: calc(var(--scene-h) * 1.6291); container-type: inline-size; }
  .stage .brand { display: block; }
  .stage .signet { position: absolute; left: -1.15cqw; top: .14cqw; width: 25.27cqw; }
  .stage .brand-rule { position: absolute; left: 21.2cqw; top: 5.35cqw; height: 10.2cqw; }
  .stage .brand-text { position: absolute; left: 24.3cqw; top: 4.95cqw; }
  .stage .wordmark { font-size: 4.8cqw; white-space: nowrap; }
  .stage .subline { font-size: 1.55cqw; margin-top: 1.6cqw; white-space: nowrap; }
  .stage .intro { position: absolute; left: 3.9cqw; top: 19.4cqw; width: 38cqw; }
  .stage .title { font-size: 5cqw; }
  .stage .lead { font-size: max(15px, 1.5cqw); line-height: 1.45; margin-top: 1.4cqw; max-width: 35cqw; }
  .stage .rule { width: 6.3cqw; margin-top: 2.1cqw; }
  .stage .soon { font-size: max(12px, 1.35cqw); margin: 1.1cqw 0 0 9.8cqw; }
  .stage .claims { position: absolute; right: 2.4cqw; top: 2.3cqw; }
  .stage .claims p { font-size: max(10px, .98cqw); line-height: 1.85; }
  .stage .claims hr { width: 8.8cqw; margin: 1.6cqw 0 1.7cqw; }
  .stage .claims p + hr + p { margin-left: 3.8cqw; }
}

/* ---------- Smartphone / Hochformat: eigene Anordnung ---------- */
@media (max-width: 820px), (max-aspect-ratio: 3/2) {
  .stage { display: flex; flex-direction: column; }
  .layout { width: 100%; max-width: 640px; margin: 0 auto; padding: 22px 22px 0; container-type: inline-size; }
  .brand { gap: 14px; }
  .signet { width: 84px; flex: none; margin: -6px -8px -6px -10px; }
  .brand-rule { align-self: stretch; margin: 6px 0; }
  .wordmark { font-size: clamp(22px, 8.4cqw, 44px); letter-spacing: .16em; }
  .subline { font-size: clamp(9px, 2.8cqw, 14px); letter-spacing: .3em; margin-top: 8px; }
  .intro { margin-top: clamp(28px, 10cqw, 56px); }
  .title { font-size: min(11.8cqw, 76px); }
  .lead { font-size: 17px; line-height: 1.5; margin-top: 18px; max-width: 30em; }
  .rule { width: 64px; margin-top: 26px; }
  .soon { font-size: 13px; margin: 14px 0 0 0; }
  .claims { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px 26px; margin-top: 30px; padding-top: 16px; border-top: 1px solid var(--gold-line); }
  .claims p { font-size: 11px; line-height: 1.8; }
  .claims hr { display: none; }
  .scene-crop { order: 2; position: relative; width: 100%; max-width: 760px; margin: 8px auto 0; aspect-ratio: 753 / 779; overflow: hidden; }
  .scene { width: calc(100% / .51 * 1976 / 1476); aspect-ratio: 1976 / 906; left: -144.9%; top: 0; transform: translateY(-10%); }
  .scene-crop::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--sky) 0%, rgba(6, 23, 34, 0) 20%, rgba(6, 23, 34, 0) 95%, var(--footer-bg) 100%); pointer-events: none; }
  .site-footer { flex-direction: column; align-items: flex-start; gap: 14px; padding: 22px; }
  .site-footer .f-brand { gap: 16px; flex-wrap: wrap; }
  .site-footer .f-line, .site-footer .f-bar { display: none; }
  .site-footer ul { gap: 26px; flex-wrap: wrap; }
}
@media (min-width: 821px) and (min-aspect-ratio: 3/2) {
  .scene-crop { display: contents; }
}

/* ---------- Platzhalterseiten ---------- */
.plain { flex: 1; width: 100%; max-width: 720px; margin: 0 auto; padding: 32px 22px 64px; }
.plain .brand { gap: 14px; }
.plain .brand a { display: flex; align-items: center; gap: 14px; }
.plain .signet { width: 92px; margin: -6px -6px -6px -10px; }
.plain .brand-rule { align-self: stretch; margin: 6px 0; }
.plain .wordmark { font-size: 26px; letter-spacing: .16em; }
.plain .subline { font-size: 10px; margin-top: 7px; letter-spacing: .3em; }
.plain h1 { font: 700 clamp(40px, 9vw, 64px)/.95 var(--f-cond); font-stretch: condensed; text-transform: uppercase; color: var(--cream); margin: 64px 0 0; }
.badge { display: inline-block; margin-top: 18px; padding: 6px 10px; border: 1px solid var(--red); color: #f2a79f; font: 400 12px/1 var(--f-wide); letter-spacing: .22em; text-transform: uppercase; }
.plain p { font-size: 17px; line-height: 1.55; max-width: 34em; }
.plain .back { color: var(--gold); text-decoration: underline; text-underline-offset: 4px; }
.plain .back:hover { color: var(--cream); }
