:root{color-scheme:light;--ink:#142c35;--muted:#526770;--teal:#086859;--line:#d7e3e0;--paper:#fff;--bg:#f2f6f4}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:20px;line-height:1.55}
main{max-width:1320px;margin:auto;padding:38px 40px 22px}
.hero{text-align:center;margin-bottom:24px}
.eyebrow{font-size:.7rem;font-size:14px;letter-spacing:.12em;font-weight:800;color:var(--teal)}
.dot{display:inline-block;width:8px;height:8px;background:#168d71;border-radius:50%;margin-right:6px}
h1{font-size:clamp(40px,5vw,66px);line-height:1.14;letter-spacing:-.045em;margin:16px 0 8px}
.subtitle{font-size:clamp(25px,3vw,34px);margin:0;font-weight:650;letter-spacing:-.025em}
.intro{color:var(--muted);margin:12px auto 0;max-width:760px}
h2{font-size:clamp(24px,2.4vw,30px);line-height:1.25;letter-spacing:-.025em;margin:10px 0 14px}
p{margin:0 0 20px}
.status{padding:15px 22px;background:#e3efea;color:#194d42;border:1px solid #bdD7cd;border-radius:14px;margin-bottom:22px;font-weight:700;text-align:center;min-height:62px}
.status.error{background:#fff0ee;color:#973624;border-color:#ecc0b7}
.status.busy{background:#fff6df;color:#72500b;border-color:#e8d69d}
.layout{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:0 6px 24px #183f3010}
.card p{color:var(--muted)}
label{display:block;font-weight:700;margin:20px 0 8px}
input{font:inherit;width:100%;padding:14px 16px;border:2px solid #a9beb7;border-radius:10px;color:var(--ink);background:#fff}
input::placeholder{color:#6a7c76}
.small{font-size:16px;line-height:1.5}
#name-hint{margin:8px 0 20px}
button{font:inherit;font-weight:700;cursor:pointer;border:2px solid transparent;border-radius:12px;min-height:58px;padding:14px 20px;transition:background .15s}
.primary{background:var(--teal);color:white;width:100%}
.primary:hover{background:#054f44}
.secondary{background:#fff;color:var(--teal);border-color:#a9c7bf;width:100%}
.secondary:hover{background:#eff7f3}
button:disabled{cursor:wait;opacity:.6}
:focus-visible{outline:3px solid #c17a00;outline-offset:4px}
.divider{height:1px;background:var(--line);margin:26px 0}
.explainer{background:#fafffc}
#steps{list-style:none;counter-reset:steps;padding:0;margin:24px 0}
#steps li{counter-increment:steps;display:flex;gap:14px;align-items:flex-start;padding:13px 12px;margin:8px -12px;border-radius:12px;font-weight:550;color:#526770}
#steps li::before{content:counter(steps);display:grid;place-items:center;flex:0 0 34px;height:34px;border:1px solid #bed2c9;border-radius:50%;font-size:17px;background:white}
#steps li.active{background:#fff1cb;color:#5d4309}
#steps li.done{color:#125443;background:#e8f3ed}
#steps li.done::before{content:"✓";color:white;background:var(--teal);border-color:var(--teal)}
.footnote{border-top:1px solid var(--line);padding-top:18px;margin-bottom:0}
.info-box{display:flex;gap:20px;background:#e6eef5;border:1px solid #ccdce7;padding:26px 30px;border-radius:18px;margin-top:24px}
.info-box h2{font-size:24px;margin:0 0 12px}
.info-box p{font-size:18px;margin:8px 0 0}
.info-icon{font:700 24px Georgia,serif;border:2px solid #36546b;border-radius:50%;flex:0 0 34px;height:34px;text-align:center;line-height:30px}
footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:20px;font-size:14px;color:var(--muted)}
.text-button{font-size:15px;min-height:44px;padding:8px;color:var(--muted);background:none;text-decoration:underline}
.result{padding:40px 0;text-align:center}
.result h2{font-size:36px;overflow-wrap:anywhere}
.result-icon{display:grid;place-items:center;margin:0 auto 28px;width:84px;height:84px;border-radius:50%;background:#e1f0e7;color:var(--teal);font-size:48px}
.result button{margin:16px 0}
dialog{border:1px solid var(--line);border-radius:20px;max-width:640px;width:calc(100% - 32px);padding:30px;color:var(--ink)}
dialog::backdrop{background:#102b35aa}
.dialog-actions{display:flex;gap:12px}
.danger{background:#a83424;color:#fff;width:100%}
[hidden]{display:none!important}
@media(min-width:1500px){body{font-size:23px}main{max-width:1440px}.card{padding:36px}}
@media(max-width:800px){main{padding:25px 18px}.layout{grid-template-columns:1fr}.card{padding:24px}.intro{font-size:18px}.info-box{padding:22px;gap:12px}.info-box h2{font-size:22px}footer{flex-direction:column;text-align:center;gap:4px}.dialog-actions{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Auf typischen Präsentationsbildschirmen passen beide Aktionen ins Bild. */
@media(min-width:900px) and (max-height:1100px){
 main{padding-top:20px;padding-bottom:12px}
 .hero{margin-bottom:18px}
 h1{font-size:48px;margin:10px 0 4px}
 .subtitle{font-size:28px}
 .intro{margin-top:8px;font-size:18px}
 .status{padding:10px 18px;min-height:52px;margin-bottom:18px}
 .card{padding:24px}
 .card h2{font-size:26px;margin:8px 0 10px}
 .card p{margin-bottom:12px}
 label{margin-top:12px}
 input{padding:10px 14px}
 #name-hint{margin:6px 0 14px}
 button{min-height:54px;padding:10px 18px}
 .divider{margin:18px 0}
 #steps{margin:16px 0}
 #steps li{padding:8px 12px;margin:4px -12px}
 .info-box{margin-top:18px;padding:18px 24px}
 .info-box h2{font-size:22px;margin-bottom:8px}
 .info-box p{font-size:17px;margin-top:5px}
 footer{margin-top:10px}
}

/* Vortragsoberfläche: Nur Darstellung und Navigation, keine Authenticator-Auswahl. */
.presentation-only,.demo-tabs{display:none}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}
.toolbar button{width:auto;min-height:52px;font-size:18px}
.journey{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;gap:22px;padding:0;margin:20px 0}
.journey li{position:relative;display:flex;align-items:center;gap:10px;padding:14px;background:#fff;border:2px solid var(--line);border-radius:12px;font-weight:700;line-height:1.2}
.journey li:not(:last-child)::after{content:"→";position:absolute;right:-21px;color:var(--muted)}
.journey li span{font-size:30px}
.journey li.active{border-color:#086859;box-shadow:0 0 0 3px #08685926;background:#e1f2ea;color:#064e42}
.journey li.complete{color:#175241}
.smartphone-section,.comparison,.phishing{margin-top:24px}
.phone-layout,.comparison-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.phone-layout button{margin:10px 0 18px}
.phone-guide{margin:0;padding-left:32px}
.phone-guide li{padding-left:6px;margin:0 0 14px}
.browser-note{border-top:1px solid var(--line);padding-top:14px;margin-bottom:0!important}
.key-note{font-size:18px;border-top:1px solid var(--line);padding-top:16px;margin-top:16px}
.privacy-note{font-size:17px}
.info-icon{border:0;font-family:inherit;font-size:28px}
summary{font-size:26px;font-weight:750;cursor:pointer;min-height:48px}
.comparison-columns h3{font-size:22px;margin:20px 0 12px}
.comparison-columns ul{list-style:none;padding:0;margin:0}
.comparison-columns li{margin-bottom:12px}
.phishing .comparison-columns{margin:20px 0}
.domain-example{padding:20px;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:12px}
.domain-example strong{font-size:clamp(18px,2vw,28px);overflow-wrap:anywhere}
.correct{background:#edf8f0}
.wrong{background:#fff2ed}
.visual-flow{list-style:none;padding:0;margin:14px 0}
.visual-flow li{position:relative;padding:7px 12px;text-align:center;border-radius:9px;margin-bottom:18px;font-weight:650;background:#eef4f0}
.visual-flow li:not(:last-child)::after{content:"↓";position:absolute;bottom:-23px;left:calc(50% - 8px);font-size:22px;color:var(--muted)}
.visual-flow li.active{background:#fff0bd;color:#664907}
.visual-flow li.done{background:#dcefe4;color:#154d37}
.presentation{font-size:26px}
.presentation main{max-width:1800px;padding:18px 38px}
.presentation .normal-only{display:none!important}
.presentation .presentation-only{display:initial}
.presentation ol.presentation-only{display:block}
.presentation button.presentation-only{display:block}
.presentation .hero{margin:8px 0 12px}
.presentation .hero>.eyebrow{display:none}
.presentation h1{font-size:48px;margin:0 0 4px}
.presentation .subtitle{font-size:30px}
.presentation .toolbar{margin:0 0 8px}
.presentation .toolbar button{font-size:20px}
.presentation .demo-tabs{display:flex;justify-content:center;gap:12px;margin:14px 0}
.presentation .demo-tabs button{font-size:22px;background:#fff;border-color:#aac2b9;min-height:54px}
.presentation .demo-tabs button[aria-pressed="true"]{background:var(--teal);color:#fff;border-color:var(--teal)}
.presentation .journey{margin:16px 0}
.presentation .journey li{font-size:23px;padding:13px}
.presentation .status{font-size:26px;padding:13px;min-height:64px;margin-bottom:18px}
.presentation .card{padding:26px}
.presentation .card h2{font-size:32px}
.presentation .card p{margin-bottom:16px}
.presentation .layout{grid-template-columns:1fr 1fr;gap:24px}
.presentation button{font-size:26px;min-height:64px;padding:12px 20px}
.presentation input{font-size:30px;padding:14px}
.presentation .small{font-size:21px}
.presentation .eyebrow{font-size:17px}
.presentation .result{padding:12px 0}
.presentation .result h2{font-size:38px}
.presentation .result-icon{margin-bottom:18px}
.presentation .visual-flow{font-size:25px}
.presentation .key-note{font-size:21px;padding-top:12px;margin-top:10px}
.presentation .privacy-note{font-size:20px;margin-bottom:0}
.presentation #steps-caption{font-size:22px}
.presentation .text-button{font-size:21px;min-height:52px}
.presentation footer>span{display:none}
.presentation footer{justify-content:flex-end;margin-top:10px}
.presentation #reset{border:1px solid #9eb7ae;text-decoration:none;background:#fff}
.presentation .smartphone-section{margin-top:0}
.presentation .phone-guide{font-size:28px}
.presentation .browser-note{font-size:21px}
.presentation .info-box{margin:0;padding:24px}
.presentation .info-box h2{font-size:34px}
.presentation .info-box p{font-size:26px}
.presentation .phishing h2{font-size:30px}
.presentation summary{font-size:28px}
.presentation .comparison,.presentation .phishing{margin-top:18px}
.presentation .domain-example strong{font-size:28px}
.presentation[data-view="demo"] #smartphone-section,
.presentation[data-view="demo"] #learn-section,
.presentation[data-view="smartphone"] #demo-section,
.presentation[data-view="smartphone"] #learn-section,
.presentation[data-view="learn"] #demo-section,
.presentation[data-view="learn"] #smartphone-section,
.presentation[data-view="learn"] .journey,
.presentation[data-view="smartphone"] .journey{display:none}
.presentation[data-step="1"] .login-area,
.presentation[data-step="2"] .login-area,
.presentation[data-step="4"] .registration-area,
.presentation[data-step="4"] #existing-account,
.presentation .action-card .divider{display:none}
@media(max-width:900px){
 .journey{grid-template-columns:1fr 1fr;gap:14px}
 .journey li:not(:last-child)::after{display:none}
 .toolbar{align-items:flex-start;flex-direction:column}
 .phone-layout,.comparison-columns{grid-template-columns:1fr;gap:20px}
 .presentation main{padding:20px}
 .presentation h1{font-size:36px}
 .presentation .layout{grid-template-columns:1fr}
 .presentation .demo-tabs{flex-wrap:wrap}
 .presentation .demo-tabs button{flex:1;font-size:19px;padding:10px}
 .presentation .journey li{font-size:20px}
 .presentation .card{padding:22px}
 .presentation .card h2{font-size:29px}
 .presentation .phone-guide{font-size:24px}
 .presentation .domain-example strong{font-size:23px}
}
@media(max-width:520px){
 .journey{grid-template-columns:1fr;gap:22px}
 .journey li:not(:last-child)::after{display:block;content:"↓";right:auto;left:50%;bottom:-24px}
 .presentation .journey{gap:22px}
 .presentation .status{font-size:22px}
 .presentation{font-size:22px}
 .presentation .toolbar button{font-size:18px;width:100%}
 .presentation h1{font-size:32px}
 .presentation button{font-size:22px}
 .presentation .info-box{padding:20px}
 .presentation .info-box h2{font-size:27px}
 .presentation .info-box p{font-size:22px}
}
.presentation .intro{display:none}
.presentation .explainer>.eyebrow,.presentation #steps-caption{display:none}
.presentation .visual-flow{margin:12px 0;font-size:24px}
.presentation .visual-flow li{line-height:1.2;padding:6px 12px;margin-bottom:17px}
.presentation .visual-flow li:not(:last-child)::after{bottom:-21px;font-size:20px}
.presentation .key-note,.presentation .privacy-note{line-height:1.35}
.presentation .demo-tabs button{transition:none;color:var(--ink)}
.presentation .demo-tabs button[aria-pressed="true"]{color:#fff}
.presentation[data-view="learn"] #status:not(.error){display:none}
@media(min-width:1400px){
 .presentation .toolbar{position:relative;display:block;height:0;margin:0}
 .presentation .toolbar>span{position:absolute;left:0;top:18px}
 .presentation .toolbar button{position:absolute;right:0;top:0}
 .presentation .visual-flow li{padding-top:4px;padding-bottom:4px}
}
