:root{
  --accent-1:#ff3b30;--accent-2:#ff5447;
  --bg-0:#f4f6f8;--bg-1:#ffffffee;--bg-2:#ffffff80;--txt-1:#0e1013;--txt-2:#3b4048;--stroke:#0e10130f;
  --grad-a:radial-gradient(90vmax 90vmax at 15% -10%,color-mix(in oklab,var(--accent-1) 28%,transparent),transparent 60%);
  --grad-b:radial-gradient(80vmax 80vmax at 110% 20%,color-mix(in oklab,var(--accent-2) 24%,transparent),transparent 60%);
  --grad-c:linear-gradient(180deg,#ffffff,#eef1f5);
  --glass-blur:18px;--glass-sat:140%;--glass-border:1px;--radius-xl:28px;--radius-lg:18px;
  --shadow-lg:0 28px 80px rgba(0,0,0,.14),0 10px 28px rgba(0,0,0,.10);
  --shadow-sm:0 10px 26px rgba(0,0,0,.12);
  --spring:cubic-bezier(.16,1,.3,1);--hover:cubic-bezier(.22,1,.36,1);
  --page-pad: clamp(16px, 4vw, 32px);
  color-scheme:light dark
}
html.dark:root{
  --bg-0:#0c0d10;--bg-1:#16181dcc;--bg-2:#0f1116a0;--txt-1:#e9edf2;--txt-2:#b3bcc8;--stroke:#ffffff14;
  --grad-a:radial-gradient(90vmax 90vmax at -10% -10%,color-mix(in oklab,var(--accent-1) 26%,transparent),transparent 65%);
  --grad-b:radial-gradient(70vmax 70vmax at 120% 10%,color-mix(in oklab,#15171d 92%,var(--accent-1) 8%),transparent 60%);
  --grad-c:linear-gradient(180deg,#0b0c10,#121418);
  --shadow-lg:0 40px 90px rgba(0,0,0,.45),0 12px 32px rgba(0,0,0,.34);
  --shadow-sm:0 12px 30px rgba(0,0,0,.32)
}

*{box-sizing:border-box}
html,body{height:100%}

/* Fix gegen seitliches „Andocken“ / eventuellen Overflow auf iOS */
html, body { overflow-x: hidden; }

body{
  margin:0;
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans";
  color:var(--txt-1);
  background:var(--grad-a),var(--grad-b),var(--grad-c);
  background-attachment:fixed,fixed,fixed;
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:var(--page-pad);
}

.card{
  position:relative;z-index:1;
  width:min(820px,100%);            /* robust zentriert */
  margin-inline:auto;
  border-radius:var(--radius-xl);
  background:linear-gradient(180deg,var(--bg-1),var(--bg-2));
  border:var(--glass-border) solid var(--stroke);
  box-shadow:var(--shadow-lg);
  backdrop-filter:saturate(var(--glass-sat)) blur(var(--glass-blur));
  -webkit-backdrop-filter:saturate(var(--glass-sat)) blur(var(--glass-blur));
  padding:clamp(22px,3.5vw,32px);
  animation:card-in .7s var(--spring) both;
  overflow:clip
}
@keyframes card-in{from{transform:translateY(8px) scale(.992);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}

.header{
  display:grid;grid-template-columns:auto 1fr auto;gap:clamp(14px,2.6vw,24px);align-items:center;margin-bottom:clamp(12px,2vw,16px)
}
.header h1 { text-align: center; }
.header .back-link { justify-self: start; }
.header .mode { justify-self: end; }
.logo{width:clamp(64px,8vw,84px);height:clamp(64px,8vw,84px);display:grid;place-items:center}
.logo img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35));border-radius:22px}
h1{margin:0;font-size:clamp(1.6rem,2.2vw,2.05rem);letter-spacing:.2px;animation:text-in .8s .4s var(--spring) both;line-height:1}

.back-link {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(180deg,color-mix(in oklab,var(--bg-1) 85%,transparent),transparent);
  border: 1px solid var(--stroke);
  color: var(--txt-2);
  transition: all .3s var(--hover);
}
.back-link:hover {
  border-color: color-mix(in oklab,var(--accent-1) 24%,var(--stroke));
  color: var(--txt-1);
  transform: scale(1.05);
}
.back-link svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
}

.mode{
  display:grid;
  place-items:center;
  gap:10px;padding:10px 14px;border-radius:999px;border:1px solid var(--stroke);
  background:linear-gradient(180deg,color-mix(in oklab,var(--bg-1) 85%,transparent),transparent);
  backdrop-filter:saturate(130%) blur(10px);-webkit-backdrop-filter:saturate(130%) blur(10px);
  box-shadow:var(--shadow-sm);color:var(--txt-2);font-weight:600;letter-spacing:.2px;min-width:5ch;
  cursor:pointer;user-select:none;transition:border-color .35s var(--spring);
  touch-action:manipulation
}
.mode:hover{border-color:color-mix(in oklab,var(--accent-1) 24%,var(--stroke))}
.mode svg{width:20px;height:20px;flex:0 0 auto}
.mode svg path{fill:currentColor} /* Icon erbt die Text-/Buttonfarbe */

.blobs{position:fixed;inset:0;z-index:0;overflow:hidden;filter:blur(44px) saturate(120%);pointer-events:none}
.blob{position:absolute;width:clamp(260px,28vw,480px);height:clamp(260px,28vw,480px);border-radius:50%;
  background:radial-gradient(closest-side,color-mix(in oklab,var(--accent-1) 72%,#ffffff 6%),transparent 70%);
  opacity:.32;mix-blend-mode:plus-lighter;animation:float 28s var(--hover) infinite alternate;transform:translateZ(0)
}
.blob.b1{left:-6vw;top:8vh}.blob.b2{right:-4vw;top:18vh;animation-delay:-7s}.blob.b3{left:20vw;bottom:-10vh;animation-delay:-14s}
@keyframes float{0%{transform:translate3d(-1vw,-1vh,0) scale(1)}50%{transform:translate3d(1.5vw,-2vh,0) scale(1.05)}100%{transform:translate3d(-.5vw,1vh,0) scale(1.02)}}
@media (prefers-reduced-motion: reduce){.blob{animation:none}body{background-attachment:scroll,scroll,scroll}}

.social-wrap{display:grid;justify-items:center;margin-top:clamp(8px,2vw,14px)}
.social{width:min(520px, 100%);display:grid;grid-template-columns:1fr;gap:clamp(10px,1.4vw,14px);justify-items:center}
.pill{
  --bg:color-mix(in oklab,var(--bg-1) 70%,transparent);
  width:100%;display:flex;align-items:center;justify-content:center;gap:12px;
  padding:16px 20px;border-radius:var(--radius-lg);text-decoration:none;color:var(--txt-1);
  background:linear-gradient(180deg,var(--bg),transparent);border:1px solid var(--stroke);
  box-shadow:var(--shadow-sm);backdrop-filter:saturate(130%) blur(10px);-webkit-backdrop-filter:saturate(130%) blur(10px);
  transition:border-color .35s var(--spring);isolation:isolate;overflow:hidden
}
.pill:hover{border-color:color-mix(in oklab,var(--accent-1) 24%,var(--stroke))}
.pill:active{transform:translateY(-1px) scale(.99)}
.pill svg{width:28px;height:28px;fill:currentColor;color:color-mix(in oklab,var(--accent-1) 22%,var(--txt-1));filter:drop-shadow(0 2px 6px rgba(0,0,0,.2))}
.label{font-weight:800;letter-spacing:.2px;font-size:1.02rem;animation:text-in .7s var(--spring) both}
.pill:nth-child(1) .label{animation-delay:.5s}
.pill:nth-child(2) .label{animation-delay:.6s}
.pill:nth-child(3) .label{animation-delay:.7s}
.pill:nth-child(4) .label{animation-delay:.8s}

.foot{margin-top:clamp(14px,2.2vw,18px);display:flex;justify-content:center;align-items:center;color:var(--txt-2);font-size:.95rem}

@media (max-width:720px){
  .header:has(.logo){grid-template-columns:1fr;justify-items:center;text-align:center;gap:clamp(12px,2vw,16px)}
  .logo{width:clamp(60px,12vw,72px);height:clamp(60px,12vw,72px)}
  .foot{justify-content:center}
}
@keyframes text-in{from{transform:translateY(10px) scale(.98);filter:blur(6px);opacity:0}to{transform:translateY(0) scale(1);filter:blur(0);opacity:1}}

@supports not (backdrop-filter: blur(1px)){.card,.pill,.mode{background:color-mix(in oklab,var(--bg-1) 92%,#0000)}}


/* --- Kontaktformular --- */
.container {
  position: relative;
  z-index: 1;
  width: min(600px, 100%);
  margin-inline: auto;
  border-radius: var(--radius-xl);
  background: linear-gradient(180deg, var(--bg-1), var(--bg-2));
  border: var(--glass-border) solid var(--stroke);
  box-shadow: var(--shadow-lg);
  backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  -webkit-backdrop-filter: saturate(var(--glass-sat)) blur(var(--glass-blur));
  padding: clamp(22px, 3.5vw, 32px);
  animation: card-in .7s var(--spring) both;
  overflow: clip;
  text-align: center;
}

.container h1 {
  margin: 0 0 24px 0;
  font-size: clamp(1.6rem, 2.2vw, 2.05rem);
  letter-spacing: .2px;
  animation: text-in .8s .4s var(--spring) both;
}

form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  text-align: left;
}

label {
  font-weight: 600;
  color: var(--txt-2);
  margin-bottom: -8px;
}

input[type="text"],
input[type="email"],
textarea {
  width: 100%;
  padding: 14px 18px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--stroke);
  background: var(--bg-0);
  color: var(--txt-1);
  font-size: 1rem;
  transition: border-color .3s var(--spring), box-shadow .3s var(--spring);
}

input[type="text"]:focus,
input[type="email"]:focus,
textarea:focus {
  outline: none;
  border-color: color-mix(in oklab, var(--accent-1) 24%, var(--stroke));
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent-1) 15%, transparent);
}

textarea {
  min-height: 120px;
  resize: vertical;
  font-family: inherit;
}

button[type="submit"] {
  --bg: color-mix(in oklab, var(--bg-1) 70%, transparent);
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 16px 20px;
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: var(--txt-1);
  background: linear-gradient(180deg, var(--bg), transparent);
  border: 1px solid var(--stroke);
  box-shadow: var(--shadow-sm);
  backdrop-filter: saturate(130%) blur(10px);
  -webkit-backdrop-filter: saturate(130%) blur(10px);
  transition: border-color .35s var(--spring);
  isolation: isolate;
  overflow: hidden;
  font-weight: 800;
  letter-spacing: .2px;
  font-size: 1.02rem;
  cursor: pointer;
}

button[type="submit"]:hover {
  border-color: color-mix(in oklab, var(--accent-1) 24%, var(--stroke));
}

button[type="submit"]:active {
  transform: translateY(-1px) scale(.99);
}
