/* ================================================================
   weiterbilden · Prototyp-Auswahl
   Konzept: ein Diptychon. Jede Hälfte spricht bereits die
   Design-Sprache ihrer Variante – links der Finder (Rasterpapier,
   einheitliche Portal-Farbwelt: Creme, Iris/Aqua, Space Grotesk), rechts das
   Portal (Creme, Denim & Tanne, Space Grotesk). Die Wahl selbst
   ist die Gestaltung; alles andere bleibt ruhig.
   ================================================================ */
/* Schriften lokal ausgeliefert — keine Anfrage an fremde Server.
   Quelle: Fontsource (SIL Open Font License). */
@font-face{font-family:'Space Grotesk';font-style:normal;font-display:swap;font-weight:500;src:url('../fonts/space-grotesk-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-display:swap;font-weight:600;src:url('../fonts/space-grotesk-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-display:swap;font-weight:700;src:url('../fonts/space-grotesk-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:400;src:url('../fonts/inter-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:500;src:url('../fonts/inter-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:600;src:url('../fonts/inter-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-display:swap;font-weight:700;src:url('../fonts/inter-latin-700-normal.woff2') format('woff2')}

:root{
  /* Tokens der Variante A (Finder) */
  --f-paper:#F6F4ED;
  --f-ink:#2A2F3C;
  --f-blau:#0B7C64;
  --f-blau-tief:#085F4C;
  --f-linie:rgba(42,47,60,.13);
  --f-raster:rgba(19,26,51,.05);

  /* Tokens der Variante B (Portal) */
  --p-creme:#F6F4ED;
  --p-ink:#2A2F3C;
  --p-ink-halb:#4B5263;
  --p-iris:#2D62C4;
  --p-aqua:#0B7C64;
  --p-linie:rgba(42,47,60,.13);
  --p-grad:linear-gradient(92deg,var(--p-iris) 0%,var(--p-aqua) 100%);

  --mono:ui-monospace,'SFMono-Regular','Cascadia Mono','JetBrains Mono',Menlo,Consolas,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  min-height:100dvh;
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--f-ink);
  -webkit-font-smoothing:antialiased;
}

/* ---------- Kopfzeile: schwebende Pille über der Naht ---------- */
.kopf{
  position:fixed; top:18px; left:50%; transform:translateX(-50%);
  z-index:10;
  display:flex; align-items:center; gap:12px;
  padding:9px 18px; border-radius:999px;
  background:rgba(255,255,255,.74);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid rgba(25,30,50,.14);
  box-shadow:0 14px 34px -22px rgba(25,30,50,.45);
  white-space:nowrap;
}
.marke{
  margin:0;
  font:600 15px/1 'Inter',sans-serif;
  letter-spacing:-.01em;
  color:#1D2340;
}
.kopf-trenner{width:1px; height:14px; background:rgba(25,30,50,.22)}
.kopf-hinweis{
  font:500 11.5px/1 var(--mono);
  letter-spacing:.14em; text-transform:uppercase;
  color:#5A6072;
}

/* ---------- Diptychon ---------- */
.diptychon{
  display:flex;
  min-height:100dvh;
}

.tafel{
  position:relative;
  flex:1 1 0;
  display:flex; flex-direction:column; justify-content:center;
  padding:96px clamp(28px,6vw,88px) 84px;
  text-decoration:none;
  transition:flex-grow .5s cubic-bezier(.22,.61,.21,1), background-color .35s ease;
}
.tafel:hover,.tafel:focus-visible{flex-grow:1.16}
.tafel:focus-visible{outline:3px solid currentColor; outline-offset:-6px}

.tafel-inhalt{max-width:52ch}

/* Bausteine, die beide Hälften teilen */
.augenbraue{
  margin:0 0 14px;
  font:600 12px/1.2 var(--mono);
  letter-spacing:.16em; text-transform:uppercase;
}
.tafel h2{
  margin:0 0 16px;
  font-size:clamp(34px,4.2vw,56px);
  line-height:1.04;
  letter-spacing:-.02em;
}
.beschreibung{
  margin:0 0 26px;
  font-size:16.5px; line-height:1.6;
  max-width:46ch;
}
.fakten{
  margin:0 0 34px; padding:0; list-style:none;
  display:grid; gap:10px;
  font-size:14.5px; line-height:1.45;
}
.fakten li{position:relative; padding-left:22px}
.fakten li::before{content:""; position:absolute; left:0; top:.42em; width:8px; height:8px}
.cta{
  display:inline-flex; align-items:center; gap:10px;
  padding:13px 22px; border-radius:12px;
  font:600 15px/1 'Inter',sans-serif;
}
.pfeil{transition:transform .25s ease}
.tafel:hover .pfeil{transform:translateX(4px)}
.technik{
  position:absolute; left:clamp(28px,6vw,88px); bottom:26px;
  font:500 11px/1.4 var(--mono);
  letter-spacing:.12em; text-transform:uppercase;
  opacity:.55;
}

/* ---------- Hälfte A: der Finder ---------- */
.tafel-finder{
  background-color:var(--f-paper);
  background-image:
    radial-gradient(620px 420px at 18% 12%, rgba(45,98,196,.19), transparent 70%),
    radial-gradient(520px 400px at 88% 84%, rgba(11,124,100,.15), transparent 72%);
  color:var(--f-ink);
}
.tafel-finder:hover{background-color:#EFEDE4}
.tafel-finder h2{font-family:'Space Grotesk','Inter',sans-serif; font-weight:700}
.tafel-finder .augenbraue{color:var(--f-blau)}
.tafel-finder .beschreibung{color:#3A4160}
.tafel-finder .fakten{color:#2A3152}
.tafel-finder .fakten li::before{background:var(--f-blau); border-radius:2px}
.tafel-finder .cta{
  background:var(--p-grad); color:#fff;
  box-shadow:0 12px 26px -14px rgba(47,122,107,.55);
  transition:background-color .2s ease;
}
.tafel-finder:hover .cta{background:var(--f-blau-tief)}

/* ---------- Hälfte B: das Portal ---------- */
.tafel-portal{
  background-color:var(--p-creme);
  background-image:
    radial-gradient(520px 380px at 82% 18%, rgba(45,98,196,.18), transparent 68%),
    radial-gradient(460px 360px at 16% 86%, rgba(11,124,100,.15), transparent 70%);
  color:var(--p-ink);
}
.tafel-portal:hover{background-color:#EFEDE4}
.tafel-portal h2{font-family:'Space Grotesk','Inter',sans-serif; font-weight:700}
.tafel-portal .augenbraue{color:var(--p-aqua)}
.tafel-portal .beschreibung{color:var(--p-ink-halb)}
.tafel-portal .fakten{color:#3B4152}
.tafel-portal .fakten li::before{background:var(--p-aqua); border-radius:1px; transform:rotate(45deg); top:.46em; width:7px; height:7px}
.tafel-portal .cta{
  background:var(--p-grad); color:#fff;
  box-shadow:0 12px 26px -14px rgba(47,122,107,.55);
  transition:filter .2s ease;
}
.tafel-portal:hover .cta{filter:brightness(1.07)}

/* ---------- Die Naht mit dem „oder" ---------- */
.naht{
  position:relative;
  flex:0 0 1px;
  background:linear-gradient(180deg, transparent, rgba(30,36,58,.28) 18%, rgba(30,36,58,.28) 82%, transparent);
}
.oder{
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  display:grid; place-items:center;
  width:58px; height:58px; border-radius:50%;
  background:#fff;
  border:1px solid rgba(30,36,58,.18);
  box-shadow:0 16px 34px -20px rgba(25,30,50,.5);
  font:600 12px/1 var(--mono);
  letter-spacing:.1em; text-transform:uppercase;
  color:#3A4160;
}

/* ---------- Schmale Bildschirme: untereinander ---------- */
@media (max-width:880px){
  .diptychon{flex-direction:column}
  .tafel{flex:1 1 auto; min-height:50dvh; padding:110px 24px 78px; justify-content:flex-start}
  .tafel:hover,.tafel:focus-visible{flex-grow:1}
  .tafel + .naht + .tafel{padding-top:64px}
  .technik{left:24px; bottom:20px}
  .naht{
    flex:0 0 1px; width:100%;
    background:linear-gradient(90deg, transparent, rgba(30,36,58,.28) 18%, rgba(30,36,58,.28) 82%, transparent);
  }
  .oder{width:52px; height:52px}
  .kopf{top:12px; padding:8px 14px; gap:9px}
}

/* ---------- Ruhe für alle, die sie brauchen ---------- */
@media (prefers-reduced-motion:reduce){
  .tafel,.pfeil,.tafel-finder .cta,.tafel-portal .cta{transition:none}
  .tafel:hover,.tafel:focus-visible{flex-grow:1}
  .tafel:hover .pfeil{transform:none}
}


/* =====================================================================
   DUNKELMODUS — folgt der Systemeinstellung (prefers-color-scheme)
   Beide Hälften behalten ihren kühl/warm-Charakter, nur invertiert.
   Rein additiv: überschreibt nur Farben, keine Struktur.
   ===================================================================== */
html{color-scheme:light dark}
@media(prefers-color-scheme: dark){
  html:not([data-theme="light"]){--f-paper:#0B0C14; --f-ink:#E9EAF4; --f-blau:#34E1D6; --f-blau-tief:#7FF0E7;
    --f-linie:rgba(233,234,244,.09); --f-raster:rgba(255,255,255,.045);
    --p-creme:#0B0C14; --p-ink:#E9EAF4; --p-ink-halb:#B6BAD2;
    --p-iris:#6D5EF6; --p-aqua:#34E1D6; --p-linie:rgba(233,234,244,.09);}
  html:not([data-theme="light"]) body{color:var(--f-ink)}
  html:not([data-theme="light"]) /* Kopfleiste */
  .kopf{background:rgba(22,24,34,.72); border-color:rgba(255,255,255,.12); box-shadow:0 14px 34px -22px rgba(0,0,0,.7)}
  html:not([data-theme="light"]) .marke{color:#E9EAF4}
  html:not([data-theme="light"]) .kopf-trenner{background:rgba(255,255,255,.24)}
  html:not([data-theme="light"]) .kopf-hinweis{color:#9AA0BC}
  html:not([data-theme="light"]) /* Finder-Hälfte (kühl) */
  .tafel-finder:hover{background-color:#151827}
  html:not([data-theme="light"]) .tafel-finder .beschreibung{color:#C4CBDE}
  html:not([data-theme="light"]) .tafel-finder .fakten{color:#C9CFE4}
  html:not([data-theme="light"]) /* Portal-Hälfte (warm) */
  .tafel-portal:hover{background-color:#151827}
  html:not([data-theme="light"]) .tafel-portal .fakten{color:#CBD0DE}
  html:not([data-theme="light"]) /* Naht + „oder"-Kreis */
  .naht{background:linear-gradient(180deg, transparent, rgba(255,255,255,.22) 18%, rgba(255,255,255,.22) 82%, transparent)}
  html:not([data-theme="light"]) .oder{background:#1B1E2C; border-color:rgba(255,255,255,.16); color:#C4CBDE; box-shadow:0 16px 34px -20px rgba(0,0,0,.7)}
}
/* Naht im schmalen Layout (horizontal) auch dunkeltauglich */
@media(prefers-color-scheme: dark) and (max-width:880px){
  html:not([data-theme="light"]) .naht{background:linear-gradient(90deg, transparent, rgba(255,255,255,.22) 18%, rgba(255,255,255,.22) 82%, transparent)}
}

/* Rechtslinks — müssen von jeder Seite aus erreichbar sein.
   Sitzt über beiden Hälften am unteren Rand, ohne das Raster zu stören. */
main{position:relative}
.fuss{
  position:absolute; left:0; right:0; bottom:0; z-index:5;
  display:flex; flex-wrap:wrap; justify-content:center; gap:24px;
  padding:16px 20px;
  font-family:var(--mono); font-size:12px; letter-spacing:.04em;
}
.fuss a{color:rgba(19,26,51,.58); text-decoration:none; border-bottom:1px solid transparent; padding-bottom:2px; transition:color .16s ease, border-color .16s ease}
.fuss a:hover{color:var(--f-blau); border-bottom-color:var(--f-blau)}
@media(prefers-color-scheme: dark){
  html:not([data-theme="light"]) .fuss a{color:rgba(233,240,237,.6)}
  html:not([data-theme="light"]) .fuss a:hover{color:#8FA8FF; border-bottom-color:#8FA8FF}
}

/* =====================================================================
   Manuell gewähltes Farbschema (Umschalter in der Kopfzeile).
   Bewusst OHNE Speicherung — die Wahl gilt nur für die Sitzung,
   damit auf der Seite kein Local Storage und keine Cookies entstehen.
   ===================================================================== */
html[data-theme="dark"]{--f-paper:#0B0C14; --f-ink:#E9EAF4; --f-blau:#34E1D6; --f-blau-tief:#7FF0E7;
    --f-linie:rgba(233,234,244,.09); --f-raster:rgba(255,255,255,.045);
    --p-creme:#0B0C14; --p-ink:#E9EAF4; --p-ink-halb:#B6BAD2;
    --p-iris:#6D5EF6; --p-aqua:#34E1D6; --p-linie:rgba(233,234,244,.09);}
html[data-theme="dark"] body{color:var(--f-ink)}
html[data-theme="dark"] /* Kopfleiste */
  .kopf{background:rgba(22,24,34,.72); border-color:rgba(255,255,255,.12); box-shadow:0 14px 34px -22px rgba(0,0,0,.7)}
html[data-theme="dark"] .marke{color:#E9EAF4}
html[data-theme="dark"] .kopf-trenner{background:rgba(255,255,255,.24)}
html[data-theme="dark"] .kopf-hinweis{color:#9AA0BC}
html[data-theme="dark"] /* Finder-Hälfte (kühl) */
  .tafel-finder:hover{background-color:#151827}
html[data-theme="dark"] .tafel-finder .beschreibung{color:#C4CBDE}
html[data-theme="dark"] .tafel-finder .fakten{color:#C9CFE4}
html[data-theme="dark"] /* Portal-Hälfte (warm) */
  .tafel-portal:hover{background-color:#151827}
html[data-theme="dark"] .tafel-portal .fakten{color:#CBD0DE}
html[data-theme="dark"] /* Naht + „oder"-Kreis */
  .naht{background:linear-gradient(180deg, transparent, rgba(255,255,255,.22) 18%, rgba(255,255,255,.22) 82%, transparent)}
html[data-theme="dark"] .oder{background:#1B1E2C; border-color:rgba(255,255,255,.16); color:#C4CBDE; box-shadow:0 16px 34px -20px rgba(0,0,0,.7)}
@media (max-width:880px){
  html[data-theme="dark"] .naht{background:linear-gradient(90deg, transparent, rgba(255,255,255,.22) 18%, rgba(255,255,255,.22) 82%, transparent)}
}
html[data-theme="dark"] .fuss a{color:rgba(233,240,237,.6)}
html[data-theme="dark"] .fuss a:hover{color:#8FA8FF; border-bottom-color:#8FA8FF}

/* Umschalter Hell/Dunkel in der Kopfzeile */
.thema-btn{display:grid; place-items:center; width:30px; height:30px; padding:0; border-radius:999px; border:1px solid rgba(25,30,50,.16); background:rgba(255,255,255,.6); color:#3A4160; cursor:pointer; transition:color .16s ease, border-color .16s ease, background .16s ease}
.thema-btn:hover{color:var(--f-blau); border-color:var(--f-blau)}
.thema-btn svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round}
.thema-btn .ic-sun{display:none}
@media (prefers-color-scheme: dark){
  html:not([data-theme="light"]) .thema-btn{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); color:#C4CBDE}
  html:not([data-theme="light"]) .thema-btn .ic-moon{display:none}
  html:not([data-theme="light"]) .thema-btn .ic-sun{display:block}
}
html[data-theme="dark"] .thema-btn{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); color:#C4CBDE}
html[data-theme="dark"] .thema-btn .ic-moon{display:none}
html[data-theme="dark"] .thema-btn .ic-sun{display:block}
html[data-theme="light"] .thema-btn .ic-moon{display:block}
html[data-theme="light"] .thema-btn .ic-sun{display:none}

/* Weicher Farbwechsel beim Umschalten hell/dunkel (wie im Portal). */
body, .tafel, .kopf, .thema-btn, .oder{
  transition:background-color .3s ease, color .3s ease, border-color .3s ease;
}
/* Auswahlseite hat keinen globalen Abschalter — hier explizit nachziehen */
@media (prefers-reduced-motion: reduce){
  body, .tafel, .kopf, .thema-btn, .oder{transition:none}
}

/* =====================================================================
   Moduswechsel als Kreis-Überblendung aus der oberen linken Ecke.
   Umgesetzt mit der View-Transition-API; Browser ohne Unterstützung
   schalten schlicht sofort um. Bei prefers-reduced-motion wird die
   Überblendung im Skript übersprungen.
   ===================================================================== */
:root{ --expo-out:cubic-bezier(.16,1,.3,1) }
::view-transition-group(root){ animation-duration:1.5s; animation-timing-function:var(--expo-out) }
::view-transition-old(root){ animation:none; z-index:-1 }
::view-transition-new(root){ animation-name:kreisAufTopLeft }
@keyframes kreisAufTopLeft{
  from{ clip-path:circle(0% at 0% 0%) }
  to  { clip-path:circle(150% at 0% 0%) }
}
@media (prefers-reduced-motion: reduce){
  ::view-transition-group(root),
  ::view-transition-old(root),
  ::view-transition-new(root){ animation:none!important }
}
