:root{color-scheme:light;background:#fff;color:#171817;font-family:Arial,Helvetica,sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;--red:#e5312b}
*{box-sizing:border-box}
html,body{margin:0;min-width:280px;min-height:100%;background:#fff}
body{min-height:100svh;display:grid;place-items:center;padding:32px 24px 88px}
.stage{width:min(100%,880px);text-align:center;margin:0 auto;transform:translateY(-1.5vh)}
.logo{display:block;width:100%;height:auto;overflow:visible}
.message{padding:18px 0 0}
p{margin:0;font-weight:400;line-height:1.6}
#headline{font-size:clamp(16px,2.1vw,21px);letter-spacing:-.015em}
#subline{font-size:clamp(14px,1.65vw,17px);color:#626662;margin-top:12px}
html[data-motion="pending"] .stage{visibility:hidden}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
html[data-motion] .site-footer{opacity:0;pointer-events:none}
.site-footer{position:fixed;z-index:10;right:max(24px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:15px;transition:opacity .6s ease}
.imprint-shortcut{font-size:12px;letter-spacing:.02em;color:#6a6d6b;text-decoration:none;transition:color .2s ease}
.imprint-shortcut:hover,.imprint-shortcut:focus-visible{color:var(--red)}
.panel-toggle,.panel-close{border:0;background:none;color:#171817;cursor:pointer}
.panel-toggle{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#fff;box-shadow:0 4px 24px #1718171a;transition:transform .3s ease,background .3s ease,color .3s ease}
.panel-toggle:hover{background:#171817;color:#fff}.panel-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.panel-toggle:not(:focus-visible){animation:arrow-breathe 3.2s cubic-bezier(.4,0,.2,1) infinite}
.panel-toggle[aria-expanded="true"]{animation:none;transform:rotate(180deg)}
@keyframes arrow-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.035)}}
.contact-panel{position:fixed;z-index:9;right:max(24px,env(safe-area-inset-right));bottom:max(76px,calc(env(safe-area-inset-bottom) + 70px));width:min(410px,calc(100vw - 32px));max-height:min(78svh,680px);overflow:auto;padding:28px 30px 30px;background:#fff;border:1px solid #ececea;border-radius:5px;box-shadow:0 18px 70px #1718171c;animation:panel-in .36s cubic-bezier(.2,.8,.2,1) both}
.contact-panel[hidden],.tab-content[hidden]{display:none}
@keyframes panel-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.panel-topline{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:10px;letter-spacing:.19em;color:#767a77}.panel-close{font-size:27px;line-height:1;padding:0 2px;color:#767a77}.panel-close:hover{color:var(--red)}
.panel-tabs{display:flex;gap:24px;margin:20px 0 26px;border-bottom:1px solid #e9e9e6}.panel-tabs [role="tab"]{position:relative;padding:0 0 11px;border:0;background:none;color:#767a77;font:inherit;font-size:13px;cursor:pointer}.panel-tabs [aria-selected="true"]{color:#171817}.panel-tabs [aria-selected="true"]:after{position:absolute;right:0;bottom:-1px;left:0;height:2px;background:var(--red);content:""}
.tab-content h2{margin:0 0 10px;font-size:23px;font-weight:400;letter-spacing:-.04em}.contact-email{margin:0 0 20px;font-size:14px}.contact-panel a{color:inherit;text-decoration-color:#c8c8c5;text-underline-offset:3px}.contact-panel a:hover{color:var(--red)}
.contact-form{display:grid;gap:8px}.contact-form label{margin-top:6px;font-size:11px;color:#555a57}.contact-form input,.contact-form textarea{width:100%;padding:10px 11px;border:1px solid #dededb;border-radius:2px;background:#fff;color:#171817;font:inherit;font-size:14px;outline:none;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:#868986;box-shadow:0 0 0 2px #1718170c}.privacy-note{margin:8px 0 4px;color:#707471;font-size:11px;line-height:1.55}.send-button{display:flex;justify-content:space-between;align-items:center;margin-top:5px;padding:13px 15px;border:0;background:#171817;color:#fff;font:inherit;font-size:13px;cursor:pointer;transition:background .2s ease}.send-button:hover{background:var(--red)}.send-button:disabled{opacity:.6;cursor:wait}.form-status{min-height:1.3em;margin:0;color:#356b48;font-size:12px}.form-status[data-error="true"]{color:#a32620}.form-trap{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.imprint-content p,.imprint-content address{margin:0 0 14px;font-size:13px;line-height:1.7;font-style:normal;color:#555a57}.imprint-content strong{font-weight:600;color:#171817}
@media(max-width:540px){body{padding:28px 20px 96px}.stage{width:100%;transform:translateY(-3vh)}.message{padding-top:25px}#subline{margin-top:8px}.site-footer{right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));gap:12px}.contact-panel{right:16px;bottom:max(70px,calc(env(safe-area-inset-bottom) + 68px));width:calc(100vw - 32px);padding:23px 22px 24px}}
@media(max-height:420px) and (orientation:landscape){body{padding:18px}.stage{width:min(75vw,620px);transform:none}.message{padding-top:0}#subline{margin-top:3px}}
@media(prefers-reduced-motion:reduce){.stage{visibility:visible!important}}
/* Announcement layout based on Dirk's reference. */
body{display:block;padding:0;color:#101010}
.landing{width:min(100% - 12%,1100px);margin:50px auto 64px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7%;align-items:start}
.copy{padding-top:4px}.brand{width:200px;text-align:center;color:#13283a;display:flex;flex-direction:column;align-items:center}.brand-mark{width:58px;height:58px;border:4px solid #13283a;border-radius:50%;display:grid;place-items:center}.brand-mark span{width:16px;height:16px;background:#e72b29;border-radius:50%}.brand strong{font-size:23px;letter-spacing:.1em;margin-top:8px}.brand small{font-size:11px;letter-spacing:.04em;margin-top:5px}
.copy h1{font-size:clamp(25px,2.6vw,32px);line-height:1.35;letter-spacing:.1em;color:#142a3c;margin:52px 0 44px}.copy h1 span{color:#e72b29}.body-copy{font-size:19px;line-height:1.32;max-width:435px}.body-copy p{line-height:1.32;margin:0 0 8px}.body-copy p:nth-child(4){margin-top:18px}
.portrait-column{min-width:0}.portrait{display:block;width:100%;aspect-ratio:1.5;object-fit:cover;object-position:center 38%;filter:grayscale(1)}.name-card{position:relative;width:72%;margin:-30px 5% 0 auto;background:#ed2d2a;color:#fff;text-align:center;padding:22px 14px 18px;display:grid;gap:6px;font-size:13px;line-height:1.4}.name-card strong{font-size:20px;letter-spacing:.14em}.contact-line{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:22px;text-align:center;font-size:18px}.contact-line a{display:block;color:inherit;text-decoration:none;margin:5px 0}.qr-placeholder{width:100px;height:90px;background:#e9e9e9;border:1px solid #ddd;display:grid;place-content:center;font-size:21px;line-height:1.2}.bottom-bar{width:min(100% - 8%,1200px);margin:0 auto 18px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px;letter-spacing:.1em}.bottom-bar a,.bottom-bar button{font:inherit;letter-spacing:inherit;color:inherit;text-decoration:none;background:none;border:0;cursor:pointer}.site-footer{display:none}.intro{position:fixed;z-index:20;inset:0;display:grid;place-items:center;background:#fff;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .75s ease,visibility .75s}.intro .stage{width:min(78vw,880px);transform:none}.intro .message{display:none}html[data-motion="pending"] .intro,html[data-motion="running"] .intro,html[data-motion="finished"] .intro{visibility:visible;opacity:1}html[data-motion="finished"] .intro{opacity:0}.landing,.bottom-bar{transition:opacity .8s ease}html[data-motion="pending"] .landing,html[data-motion="running"] .landing,html[data-motion="pending"] .bottom-bar,html[data-motion="running"] .bottom-bar{opacity:0}html[data-motion="finished"] .stage{transform:translate(calc(-50vw + 170px),calc(-50vh + 115px)) scale(.23);transition:transform .9s cubic-bezier(.22,1,.36,1)}html[data-motion="finished"] .landing{opacity:1}html[data-motion="pending"] .stage{visibility:visible}
@media(max-width:700px){.landing{width:calc(100% - 40px);margin:28px auto 40px;grid-template-columns:1fr;gap:36px}.brand{width:170px}.copy h1{margin:36px 0 26px;font-size:26px}.body-copy{font-size:17px}.portrait-column{max-width:550px}.name-card{width:83%}.bottom-bar{width:calc(100% - 40px);flex-wrap:wrap;font-size:10px}.contact-line{font-size:16px}.intro .stage{width:min(90vw,600px)}html[data-motion="finished"] .stage{transform:translate(calc(-50vw + 110px),calc(-50vh + 85px)) scale(.25)}}
@media(prefers-reduced-motion:reduce){.intro{display:none!important}.landing,.bottom-bar{opacity:1!important}}
.qr-placeholder{visibility:hidden}

/* The animated ring travels to the real mark and settles with a gentle spring. */
html[data-motion="finished"] .intro { opacity:1; background:transparent; transition:background .55s ease; }
html[data-motion="finished"] .stage { transform:none; transition:none; }
html[data-motion="finished"] .brand-mark { visibility:hidden; }
html[data-motion="settled"] .intro { opacity:0; transition:opacity .2s ease, visibility .2s; }
@media (prefers-reduced-motion: reduce) { html[data-motion="finished"] .brand-mark { visibility:visible; } }

/* Reveal the page in layers while the ring settles in its final position. */
@media (prefers-reduced-motion: no-preference) {
 html[data-motion="pending"] .copy h1, html[data-motion="running"] .copy h1,
 html[data-motion="pending"] .body-copy, html[data-motion="running"] .body-copy,
 html[data-motion="pending"] .portrait-column, html[data-motion="running"] .portrait-column,
 html[data-motion="pending"] .bottom-bar, html[data-motion="running"] .bottom-bar { opacity:0; transform:translateY(18px); }
 html[data-motion="finished"] .landing { transition:opacity .45s ease; }
 html[data-motion="finished"] .copy h1, html[data-motion="finished"] .body-copy,
 html[data-motion="finished"] .portrait-column, html[data-motion="finished"] .bottom-bar {
   opacity:1; transform:translateY(0); transition:opacity 1.15s ease, transform 1.15s cubic-bezier(.22,1,.36,1);
 }
 html[data-motion="finished"] .copy h1 { transition-delay:.25s; }
 html[data-motion="finished"] .body-copy { transition-delay:.5s; }
 html[data-motion="finished"] .portrait-column { transition-delay:.4s; }
 html[data-motion="finished"] .bottom-bar { transition-delay:.7s; }
}

/* Keep the animated mark in place while the matching page logo appears. */
html[data-motion="finished"] .brand-mark { visibility:visible; opacity:0; }
html[data-motion="settled"] .brand-mark { visibility:visible; opacity:1; transition:opacity .4s ease; }
html[data-motion="settled"] .intro { visibility:visible; opacity:1; background:transparent; }
html[data-motion="settled"] .intro .stage { opacity:0; transition:opacity .4s ease; }
@media (prefers-reduced-motion: reduce) { html[data-motion="finished"] .brand-mark { opacity:1; } }

/* The moving wordmark replaces the page wordmark until it reaches its position. */
html[data-motion="finished"] .brand strong { opacity:0; }
html[data-motion="settled"] .brand strong { opacity:1; transition:opacity .4s ease; }

/* Keep the original vector logo visible throughout and after docking. */
.brand.brand-animated{position:relative;z-index:21}
.brand.brand-animated .brand-mark,.brand.brand-animated strong{visibility:hidden!important}
.brand-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.brand-svg #logo-lockup,.brand-svg #word-position{transform-box:view-box;transform-origin:0 0}
html[data-motion="pending"] .landing,html[data-motion="running"] .landing{opacity:1}
html[data-motion="pending"] .brand small,html[data-motion="running"] .brand small{opacity:0}
.brand small{transition:opacity .8s ease}

/* Dirk's requested contact and footer refinements. */
.registered{font-size:.58em;line-height:0;vertical-align:super;margin-left:.04em}
.name-card{display:grid;width:calc(72% - 14px);padding:20px 14px;text-decoration:none;box-shadow:0 10px 23px rgba(0,0,0,.22)}
@media(max-width:700px){.name-card{width:calc(83% - 14px)}}
.name-card:focus-visible{outline:3px solid #13283a;outline-offset:4px}
.card-arrow{position:absolute;width:100px;height:auto;right:calc(100% + 5px);top:37%;overflow:visible;pointer-events:none;fill:none;stroke:#ed2d2a;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;opacity:.88}
@media(max-width:700px){.card-arrow{width:52px;right:calc(100% + 3px)}}
.contact-line{width:72%;margin:22px 5% 0 auto;display:flex;flex-direction:column;gap:0;align-items:center;text-align:center}
.contact-line a{margin:5px 0}
.bottom-bar{display:block}
.footer-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center}
.footer-links a:first-child{text-align:left}
.footer-links a:nth-child(2){text-align:center}
.footer-links a:last-child{text-align:right}
.footer-signature{display:block;text-align:center;margin-top:24px}
@media(max-width:700px){.contact-line{width:83%}.footer-links{gap:8px}.footer-signature{margin-top:20px}}
.footer-links{grid-template-columns:1fr auto 1fr;gap:16px}.footer-links .footer-signature{margin:0;text-align:center;white-space:nowrap}.footer-legal{display:flex;justify-content:flex-end;gap:24px}.footer-links .footer-legal a{text-align:right}.contact-line .vcard-link{font-size:13px;margin-top:13px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:700px){.footer-links{grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}.footer-links .footer-signature{grid-column:auto;grid-row:auto;text-align:center;white-space:normal;font-size:clamp(7px,1.9vw,10px)}.footer-legal{gap:14px}.contact-line .vcard-link{font-size:13px}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .name-card{transition:transform .42s cubic-bezier(.2,1.45,.4,1),box-shadow .42s ease}
 .name-card:hover{transform:scale(1.025);box-shadow:0 13px 27px rgba(0,0,0,.25)}
}

.card-download-icon{position:absolute;top:14px;left:14px;width:20px;height:20px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.card-download-icon{width:22px;height:22px;object-fit:contain;filter:brightness(0) invert(1)}
.name-card{width:calc(72% - 42px);margin-right:calc(5% + 14px);padding:20px 12px 14px}
.card-downloads{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.card-downloads a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:36px;padding:7px 10px;border:1px solid rgba(255,255,255,.65);border-radius:4px;color:#fff;text-decoration:none;font-size:12px;font-weight:600;line-height:1.2}
.card-downloads a:hover,.card-downloads a:focus-visible{background:rgba(255,255,255,.16)}
.card-downloads a:focus-visible{outline:2px solid #fff;outline-offset:3px}
.card-downloads img{width:14px;height:14px;object-fit:contain;filter:brightness(0) invert(1)}
@media(max-width:700px){.name-card{width:calc(83% - 28px);margin-right:calc(5% + 7px)}.card-downloads a{min-height:40px}}

.contact-panel .panel-topline{margin-bottom:24px}

/* Auf breiten Bildschirmen stehen Kontaktdaten und Abschlusstext auf gleicher Höhe. */
@media (min-width: 701px){.name-card{margin-top:-60px}}

/* The same animated glyphs remain visible as the permanent tagline. */
.brand.brand-animated small{visibility:hidden!important}

/* Kontaktdaten dezent grau; Karte ragt etwas weiter in das Porträt. */
.contact-line{color:#737373}
.contact-line a{color:#1a73e8;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.contact-line a[href^="tel:"]{color:#101010;text-decoration:none}
.contact-line a:last-child{margin-top:31px}
@media(min-width:701px){.contact-line a:first-child{transform:translateY(26px)}}
@media(max-width:700px){.contact-line a:last-child{margin-top:5px}.contact-line a:first-child{transform:none}}
@media(max-width:700px){.name-card{margin-top:-45px}}
