:root{
  --fg:#fff; --fg-soft:rgba(255,255,255,.92); --line:rgba(255,255,255,.35);
  --accent:#e2231a;
  --gutter:clamp(20px,4vw,56px);
  --font:"Helvetica Neue",Helvetica,Arial,"Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:#000;color:var(--fg);font-family:var(--font);font-weight:300;
  line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.page{text-shadow:0 1px 14px rgba(0,0,0,.45)}
body.legal .scrim{background:rgba(0,0,0,.72)}
.bg{position:fixed;inset:0;z-index:-2;background:#000 url(media/baustelle-poster.jpg) center/cover no-repeat}
.bg video{width:100%;height:100%;object-fit:cover;display:block}
.scrim{position:fixed;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,.45) 35%,rgba(0,0,0,.55) 70%,rgba(0,0,0,.8) 100%)}
.page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:0 var(--gutter)}
header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:clamp(18px,3vw,36px) 0}
.logo img{display:block;height:clamp(44px,5.2vw,68px);width:auto}
nav ul{display:flex;gap:clamp(18px,3vw,44px);list-style:none;padding-top:6px}
nav a{font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;font-weight:400;
  padding:6px 0;border-bottom:1px solid transparent;transition:border-color .2s}
nav a:hover,nav a:focus-visible{border-color:var(--fg)}
nav a[aria-current="page"]{border-color:var(--fg)}
main{flex:1;display:flex;flex-direction:column;justify-content:center;max-width:980px;padding:6vh 0}
.notice{display:inline-flex;align-items:center;gap:10px;font-size:.85rem;letter-spacing:.14em;
  text-transform:uppercase;font-weight:400;margin-bottom:clamp(16px,2.5vw,28px)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--accent);animation:pulse 2.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}
h1{font-weight:300;font-size:clamp(2.4rem,7.2vw,6rem);line-height:1.04;letter-spacing:-.02em}
.lead{margin-top:clamp(18px,2.5vw,30px);font-size:clamp(1.05rem,1.6vw,1.35rem);max-width:34em;color:var(--fg-soft)}
.cols{display:flex;flex-wrap:wrap;gap:28px clamp(40px,8vw,120px);margin-top:clamp(28px,4vw,52px);
  padding-top:clamp(20px,2.5vw,28px);border-top:1px solid var(--line);font-size:1rem}
.names{list-style:none}
address{font-style:normal}
address a{border-bottom:1px solid var(--line)}
address a:hover{border-color:var(--fg)}
footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;
  padding:20px 0 clamp(18px,3vw,32px);font-size:.82rem;color:var(--fg-soft);letter-spacing:.03em}
footer a:hover{color:var(--fg)}
.legal{margin-top:28px;max-width:40em;font-size:1rem;color:var(--fg-soft)}
.legal p{margin-bottom:1.2em}
.legal strong{color:var(--fg);font-weight:400}
.hint{font-size:.85rem;border-left:2px solid var(--accent);padding-left:12px}
:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media (max-width:640px){
  header{flex-direction:column;gap:14px}
  nav ul{gap:20px;padding-top:0}
  nav a{font-size:.8rem}
  main{justify-content:flex-end;padding-bottom:4vh}
}
@media (prefers-reduced-motion:reduce){
  .bg video{display:none}
  .dot{animation:none}
}
