/* Schriften lokal eingebunden (DSGVO, keine Google-Verbindung) */
@font-face{font-family:"Gloock";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/gloock-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/figtree-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/figtree-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/figtree-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2")}
/* Layout: eine Bildschirmseite, Text links oben, Landeskrone-Silhouette füllt den unteren Rand */
:root{
  --bg:#eef0ec; --surface:#f8f9f6; --fg:#232825; --muted:#5d665f; --line:#cfd5cd;
  --accent:#2f5a45; --accent-ink:#f4f7f2; --warm:#b5803a;
  --hill1:#c7d0c6; --hill2:#9fae9f; --hill3:#5f7466;
  --f-display:"Gloock", Georgia, "Times New Roman", serif;
  --f-body:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#161a18; --surface:#1e2420; --fg:#e6ebe5; --muted:#9aa59c; --line:#323b35;
  --accent:#7fb495; --accent-ink:#10140f; --warm:#d9a45e;
  --hill1:#232b26; --hill2:#2e3a32; --hill3:#40564a; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#161a18; --surface:#1e2420; --fg:#e6ebe5; --muted:#9aa59c; --line:#323b35;
  --accent:#7fb495; --accent-ink:#10140f; --warm:#d9a45e;
  --hill1:#232b26; --hill2:#2e3a32; --hill3:#40564a; color-scheme:dark}

*{box-sizing:border-box}
html,body{min-height:100%}
body{background:var(--bg);color:var(--fg);font:400 1rem/1.6 var(--f-body);margin:0;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
a{color:inherit}
:focus-visible{outline:2px solid var(--warm);outline-offset:3px}
.wrap{width:100%;max-width:68rem;margin:0 auto;padding-inline:clamp(16px,4vw,40px)}

header .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-block:1.4rem}
.brand{font-family:var(--f-display);font-size:1.15rem;line-height:1.1}
.brand small{display:block;font:500 .66rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.3rem}
.status{display:inline-flex;align-items:center;gap:.55rem;font:500 .74rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.5rem .85rem;white-space:nowrap}
.status i{width:.5rem;height:.5rem;border-radius:50%;background:var(--warm);box-shadow:0 0 0 0 var(--warm)}

main{flex:1;display:flex;flex-direction:column;justify-content:center}
.intro{display:grid;gap:1.3rem;padding-block:clamp(2rem,6vw,4rem) 1rem}
.eyebrow{font:500 .74rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
h1{font-family:var(--f-display);font-weight:400;font-size:clamp(2.6rem,8vw,5.6rem);line-height:1.02;margin:0;max-width:13ch;text-wrap:balance}
h1 em{font-style:normal;color:var(--accent)}
.lead{font-size:1.15rem;color:var(--muted);max-width:52ch;margin:0}
.facts{display:flex;flex-wrap:wrap;gap:.6rem 2rem;list-style:none;margin:.4rem 0 0;padding:0;font:500 .82rem var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums}
.facts li{display:flex;align-items:center;gap:.6rem}
.facts li::before{content:"";width:1.4rem;height:1px;background:var(--muted)}
.contact{margin-top:.6rem;font-size:.95rem}
.contact b{font-weight:600}

.hills{display:block;width:100%;height:clamp(140px,26vw,260px);margin-top:auto}

footer{background:var(--hill3);color:#eef2ec}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;padding-block:1rem;font-size:.85rem}
footer a{color:inherit;text-underline-offset:3px}

/* Benachrichtigung */
.notify{display:grid;gap:.6rem;margin-top:.8rem;max-width:34rem}
.notify > label{font-weight:600;font-size:.95rem}
.notify-row{display:flex;flex-wrap:wrap;gap:.6rem}
.notify input[type=email],.notify input[type=text],.notify input[type=password]{flex:1 1 14rem;min-width:0;font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.75rem 1.1rem}
.notify input::placeholder{color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-ink);border:0;border-radius:999px;padding:.75rem 1.35rem;font:600 .95rem var(--f-body);cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.08)}
.btn[disabled]{opacity:.6;cursor:progress}
.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.82rem;color:var(--muted);line-height:1.45}
.consent input{margin-top:.15rem;accent-color:var(--accent);flex:none;width:1rem;height:1rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.msg{font-size:.92rem;border-radius:10px;padding:.75rem 1rem;border:1px solid var(--line);background:var(--surface)}
.msg.ok{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.msg.err{border-color:var(--warm)}
table.list{border-collapse:collapse;width:100%;font-size:.92rem}
table.list th,table.list td{text-align:left;padding:.55rem .8rem .55rem 0;border-bottom:1px solid var(--line)}
table.list th{font:500 .72rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.legal{max-width:62ch;display:grid;gap:.9rem}
.legal h2{font-family:var(--f-display);font-weight:400;font-size:1.5rem;margin:1rem 0 0}
.legal p,.legal ul{margin:0;color:var(--fg)}

/* Admin */
.admin-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.stats div{background:var(--surface);padding:1rem 1.1rem;display:grid;gap:.2rem}
.stats b{font-size:1.8rem;font-weight:500;line-height:1}
.stats span{font-size:.8rem;color:var(--muted)}
.panel{display:grid;gap:.9rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.panel h2{font-family:var(--f-display);font-weight:400;font-size:1.6rem;margin:0}
.hint{font-size:.88rem;color:var(--muted);margin:0;max-width:65ch}
code{font-family:var(--f-mono);font-size:.85em;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:.05rem .3rem}
.notify textarea,.notify > input[type=text]{width:100%;font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.75rem 1rem}
.notify textarea{resize:vertical;line-height:1.5}
.step{display:grid;gap:.6rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.btn.ghost{background:transparent;color:var(--fg);border:1px solid var(--line)}
.progress{height:.5rem;border-radius:999px;background:var(--line);overflow:hidden}
.progress div{height:100%;width:0;background:var(--accent);transition:width .4s}
.pill{display:inline-block;font:500 .72rem var(--f-mono);border:1px solid var(--line);border-radius:999px;padding:.15rem .55rem;color:var(--muted)}
.pill.ok{border-color:var(--accent);color:var(--accent)}
.pill.err{border-color:var(--warm);color:var(--warm)}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}

@media (prefers-reduced-motion:no-preference){
  .status i{animation:pulse 2.4s ease-out infinite}
  @keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--warm) 60%,transparent)}100%{box-shadow:0 0 0 .6rem transparent}}
  .hills path{animation:rise 1s ease-out both}
  .hills path:nth-child(2){animation-delay:.12s}.hills path:nth-child(3){animation-delay:.24s}
  @keyframes rise{from{transform:translateY(16px)}to{transform:none}}
}
