/* Bewusst keine externen Fonts (Google Fonts o. Ä.) – keine Datenübertragung an Dritte. */
:root{
  --ink:#1c2633;
  --ink-soft:#5b6b7d;
  --accent:#177f85;      /* Petrol */
  --steel:#3c6ea3;       /* Stahlblau */
  --glass:rgba(255,255,255,.50);
  --glass-border:rgba(255,255,255,.85);
  --font:"SF Pro Display","Segoe UI Variable Display","Segoe UI Variable","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
body{
  font-family:var(--font);color:var(--ink);
  background:#f3f5f8;
  height:100dvh;
  display:grid;place-items:center;
  -webkit-font-smoothing:antialiased;
}

/* ---------- Hintergrund: Weiß, helles Grau, Petrol, Stahlblau ---------- */
.bg{position:fixed;inset:0;overflow:hidden;z-index:0;
    background:linear-gradient(135deg,#fbfcfd 0%,#eef2f6 50%,#f2f6f6 100%)}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.85;will-change:transform}
.b1{width:60vmax;height:60vmax;left:-18vmax;top:-22vmax;background:radial-gradient(circle,#b9d0e8 0%,#b9d0e800 68%);animation:f1 24s ease-in-out infinite}
.b2{width:46vmax;height:46vmax;right:-10vmax;top:-14vmax;background:radial-gradient(circle,#a9dcd9 0%,#a9dcd900 68%);animation:f2 28s ease-in-out infinite}
.b3{width:56vmax;height:56vmax;right:-18vmax;bottom:-24vmax;background:radial-gradient(circle,#8fcfc9 0%,#8fcfc900 68%);animation:f3 26s ease-in-out infinite}
.b4{width:44vmax;height:44vmax;left:-10vmax;bottom:-18vmax;background:radial-gradient(circle,#9fbbdc 0%,#9fbbdc00 68%);animation:f4 30s ease-in-out infinite}
.b5{width:34vmax;height:34vmax;left:42%;top:30%;background:radial-gradient(circle,#dfe5ec 0%,#dfe5ec00 68%);opacity:.9;animation:f2 32s ease-in-out infinite reverse}
@keyframes f1{50%{transform:translate(8vmax,6vmax) scale(1.1)}}
@keyframes f2{50%{transform:translate(-7vmax,8vmax) scale(.9)}}
@keyframes f3{50%{transform:translate(-9vmax,-6vmax) scale(1.08)}}
@keyframes f4{50%{transform:translate(6vmax,-8vmax) scale(1.12)}}
.grain{position:absolute;inset:0;opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@media (prefers-reduced-motion:reduce){.blob{animation:none}}

/* ---------- Glaskarte ---------- */
.card{
  position:relative;z-index:1;
  width:min(1040px,calc(100vw - 32px));
  max-height:calc(100dvh - 90px);
  display:grid;grid-template-columns:auto 1fr;align-items:center;
  gap:clamp(24px,5vw,64px);
  padding:clamp(24px,5vw,64px);
  border-radius:clamp(24px,3vw,40px);
  background:var(--glass);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(28px) saturate(140%);
  -webkit-backdrop-filter:blur(28px) saturate(140%);
  box-shadow:0 30px 70px -24px rgba(40,60,90,.28), inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 0 rgba(255,255,255,.4);
}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.55),rgba(255,255,255,0) 45%)}

.photo{
  position:relative;
  width:clamp(140px,26vw,300px);aspect-ratio:1;border-radius:50%;
  padding:5px;
  background:conic-gradient(from 200deg,#177f85,#3c6ea3,#9fc9cc,#177f85);
  box-shadow:0 22px 50px -16px rgba(30,60,90,.4), 0 0 0 1px rgba(255,255,255,.6);
}
.photo img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 18%;
  display:block;background:#fff;border:4px solid #fff}

.eyebrow{font-size:clamp(11px,1.1vw,13px);letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--accent);margin-bottom:.8em}
h1{font-weight:650;letter-spacing:-.02em;line-height:1.02;font-size:clamp(30px,5.2vw,64px);
  background:linear-gradient(90deg,#1c2633,#2c4f74 55%,#177f85);-webkit-background-clip:text;background-clip:text;color:transparent}
h1 strong{font-weight:inherit;display:inline}
h1{white-space:nowrap;font-size:clamp(26px,4.4vw,56px)}
.titles{list-style:none;margin:clamp(16px,2.4vw,28px) 0;display:flex;flex-direction:column;gap:.45em;font-size:clamp(14px,1.5vw,18px);color:var(--ink);font-weight:600}
.titles li{display:flex;align-items:center;gap:.7em}
.titles li::before{content:"";width:7px;height:7px;border-radius:50%;flex:none;background:linear-gradient(135deg,#177f85,#3c6ea3)}
.contact{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:.6em;padding:.75em 1.2em;border-radius:999px;font-size:clamp(13px,1.3vw,16px);
  color:var(--ink);text-decoration:none;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.9);
  transition:transform .2s, background .2s}
a.pill:hover{transform:translateY(-2px);background:rgba(255,255,255,.85)}
a.pill.primary{color:#fff;font-weight:600;background:linear-gradient(135deg,#1f9aa0,#177f85 55%,#2a5f8f);border-color:transparent;box-shadow:0 12px 26px -10px rgba(23,127,133,.6)}
.pill svg{width:1.1em;height:1.1em;flex:none}

footer{position:fixed;z-index:2;bottom:max(14px,env(safe-area-inset-bottom));left:0;right:0;display:flex;justify-content:center;gap:8px;font-size:12px}
footer button{font:inherit;color:var(--ink-soft);background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.8);
  padding:.45em 1em;border-radius:999px;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
footer button:hover{color:var(--ink);background:rgba(255,255,255,.85)}

/* ---------- Modal ---------- */
dialog{border:none;padding:0;background:transparent;margin:auto;width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 48px);color:var(--ink)}
dialog::backdrop{background:rgba(30,45,65,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.modal{display:flex;flex-direction:column;max-height:calc(100dvh - 48px);border-radius:28px;overflow:hidden;
  background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.95);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);
  box-shadow:0 40px 90px -24px rgba(30,50,80,.4), inset 0 1px 0 #fff}
.modal header{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1px solid rgba(28,38,51,.1)}
.modal h2{font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.close{width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;background:rgba(23,127,133,.1);color:var(--ink);font-size:20px;line-height:1}
.close:hover{background:rgba(23,127,133,.2)}
.modal .body{padding:24px 28px 32px;overflow-y:auto;overscroll-behavior:contain;font-size:15px;line-height:1.6;color:#33404f}
.body h3{font-size:16px;margin:1.4em 0 .4em;color:var(--ink)}
.body h3:first-child{margin-top:0}
.body p,.body ul{margin-bottom:.7em}
.body ul{padding-left:1.2em}
.body a{color:var(--accent)}
.todo{background:#fff1c2;padding:0 .3em;border-radius:4px}

/* ---------- Responsive: Hochformat / Mobil ---------- */
@media (max-width:760px), (max-aspect-ratio:4/5){
  .card{grid-template-columns:1fr;justify-items:center;text-align:center;gap:18px;padding:26px 20px}
  .photo{width:clamp(110px,30vh,190px)}
  .titles{align-items:center;margin:14px 0 18px}
  .titles li::before{display:none}
  .contact{justify-content:center}
  h1{font-size:clamp(26px,8vw,40px)}
}
@media (max-height:560px){
  .card{padding:20px 28px;gap:24px}
  .photo{width:clamp(100px,34vh,180px)}
  h1{font-size:clamp(22px,6vh,40px)}
  .titles{margin:10px 0;font-size:13px}
}
/* Hochformat mit wenig Höhe (kleine Handys, schmale Fenster): alles kompakter */
@media ((max-width:760px) or (max-aspect-ratio:4/5)) and (max-height:700px){
  .card{padding:16px 16px 14px;gap:10px;max-height:calc(100dvh - 64px);transform:translateY(-14px)}
  .photo{width:clamp(72px,18vh,130px);padding:4px}
  .photo img{border-width:3px}
  .eyebrow{font-size:10px;margin-bottom:.4em;letter-spacing:.18em}
  h1{font-size:clamp(20px,4.5vh,30px);line-height:1}
  h1 strong{display:inline}
  .titles{margin:8px 0 10px;gap:.2em;font-size:clamp(11px,2vh,14px)}
  .contact{gap:6px}
  .pill{padding:.5em .9em;font-size:12px}
  footer{bottom:8px;font-size:11px}
}
