:root {
    --accent: #e11d2e;
    --accent-hover: #b8121f;
    --accent-soft: rgba(225, 29, 46, 0.12);
    --bg: #07070b;
    --bg-elev: #0e0e14;
    --surface: rgba(255, 255, 255, 0.04);
    --surface-2: rgba(255, 255, 255, 0.06);
    --border: rgba(255, 255, 255, 0.08);
    --border-strong: rgba(255, 255, 255, 0.14);
    --text: #ffffff;
    --text-secondary: rgba(255, 255, 255, 0.65);
    --text-muted: rgba(255, 255, 255, 0.38);
    --success: #22c55e;
    --head-h: 74px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--head-h) + 20px); }

body {
    background: var(--bg);
    color: var(--text);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-feature-settings: "cv02", "cv03", "cv04", "cv11";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button { font-family: inherit; }

.wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 28px; }

/* ---------- Kopfzeile ---------- */
.head {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: var(--head-h);
    z-index: 900;
    display: flex;
    align-items: center;
    border-bottom: 1px solid transparent;
    transition: background 0.25s ease, border-color 0.25s ease, backdrop-filter 0.25s ease;
}
.head.is-scrolled {
    background: rgba(7, 7, 11, 0.82);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom-color: var(--border);
}
.head .wrap { display: flex; align-items: center; gap: 26px; }

.head-logo img { height: 34px; }

.nav { display: flex; align-items: center; gap: 4px; margin-left: 14px; }
.nav a {
    padding: 9px 14px;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-secondary);
    border-radius: 9px;
    transition: color 0.15s ease, background 0.15s ease;
}
.nav a:hover { color: var(--text); background: var(--surface); }

.head-right { display: flex; align-items: center; gap: 10px; margin-left: auto; }

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    height: 42px;
    padding: 0 20px;
    border: 1px solid var(--border-strong);
    border-radius: 10px;
    background: var(--surface);
    color: var(--text);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.btn:hover { background: var(--surface-2); border-color: rgba(255, 255, 255, 0.24); }
.btn-primary {
    background: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 10px 26px -12px rgba(225, 29, 46, 0.9);
}
.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.btn-lg { height: 50px; padding: 0 26px; font-size: 15px; }
.btn-ghost { background: transparent; }
.btn > i { font-size: 13px; }

/* ---------- Sprachauswahl ---------- */
.lang { position: relative; }
.lang-btn {
    display: flex;
    align-items: center;
    gap: 9px;
    height: 42px;
    padding: 0 13px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    color: var(--text-secondary);
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.lang-btn:hover { background: var(--surface-2); color: var(--text); }
.lang-btn img { width: 22px; height: 15px; border-radius: 3px; }
.lang-btn i { font-size: 10px; transition: transform 0.2s ease; }
.lang.open .lang-btn i { transform: rotate(180deg); }

.lang-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 184px;
    padding: 6px;
    background: #12121a;
    border: 1px solid var(--border-strong);
    border-radius: 12px;
    box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.9);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s;
}
.lang.open .lang-menu { opacity: 1; visibility: visible; transform: none; }
.lang-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 11px;
    border-radius: 8px;
    font-size: 14px;
    color: var(--text-secondary);
    cursor: pointer;
}
.lang-item:hover { background: var(--surface); color: var(--text); }
.lang-item.active { color: var(--text); background: var(--accent-soft); }
.lang-item img { width: 22px; height: 15px; border-radius: 3px; }

.burger {
    display: none;
    width: 42px; height: 42px;
    align-items: center; justify-content: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    color: var(--text);
    font-size: 16px;
    cursor: pointer;
}

.mobile-nav {
    position: fixed;
    top: var(--head-h); left: 0; right: 0;
    z-index: 899;
    padding: 14px 28px 22px;
    background: rgba(9, 9, 14, 0.98);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--border);
    display: none;
    flex-direction: column;
    gap: 4px;
}
.mobile-nav.open { display: flex; }
.mobile-nav a {
    padding: 13px 12px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 500;
    color: var(--text-secondary);
}
.mobile-nav a:hover { background: var(--surface); color: var(--text); }
.mobile-nav .btn { margin-top: 8px; }

/* ---------- Hero-Slider ---------- */
.hero {
    position: relative;
    min-height: 620px;
    height: calc(100vh - 60px);
    max-height: 790px;
    display: flex;
    align-items: center;
    overflow: hidden;
    border-bottom: 1px solid var(--border);
}
.hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.022) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.022) 1px, transparent 1px);
    background-size: 62px 62px;
    mask-image: radial-gradient(ellipse at 30% 40%, black 10%, transparent 72%);
    -webkit-mask-image: radial-gradient(ellipse at 30% 40%, black 10%, transparent 72%);
    pointer-events: none;
}
.hero-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(1200px 780px at 12% 18%, rgba(225, 29, 46, 0.20) 0%, transparent 58%),
        radial-gradient(1000px 700px at 88% 92%, rgba(225, 29, 46, 0.10) 0%, transparent 55%),
        linear-gradient(180deg, #0a0a11 0%, #06060a 100%);
    transition: background 0.6s ease;
}

.hero .wrap { position: relative; z-index: 2; width: 100%; padding-top: var(--head-h); }


.badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 13px;
    background: rgba(34, 197, 94, 0.13);
    border: 1px solid rgba(34, 197, 94, 0.3);
    color: #4ade80;
    border-radius: 100px;
    font-size: 12.5px;
    font-weight: 600;
    width: fit-content;
}
.badge i { font-size: 11px; }
.badge strong { font-weight: 800; font-variant-numeric: tabular-nums; }

.hero-text h1 {
    margin: 20px 0 0;
    font-size: clamp(34px, 4.4vw, 58px);
    font-weight: 800;
    line-height: 1.06;
    letter-spacing: -0.03em;
}
.hero-text h1 span { color: var(--accent); }
.hero-text p.sub {
    margin-top: 20px;
    max-width: 540px;
    font-size: 17px;
    line-height: 1.62;
    color: var(--text-secondary);
}
.slide-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }






/* ---------- Hero-Inhalt ---------- */
.hero-grid {
    display: grid;
    grid-template-columns: 1.08fr 0.92fr;
    align-items: center;
    gap: 56px;
}

.hero-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-top: 42px;
}
.hero-stat {
    min-width: 0;
    padding: 20px 18px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.055) 0%, rgba(255, 255, 255, 0.02) 100%);
    border: 1px solid var(--border);
    border-radius: 16px;
    transition: border-color 0.2s ease, transform 0.2s ease;
}
.hero-stat:hover { border-color: rgba(255, 255, 255, 0.2); transform: translateY(-2px); }
.stat-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px; height: 32px;
    margin-bottom: 14px;
    background: var(--accent-soft);
    border: 1px solid rgba(225, 29, 46, 0.25);
    border-radius: 10px;
    color: #ff5a68;
    font-size: 13px;
}
.stat-value {
    font-size: clamp(26px, 2.4vw, 32px);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.stat-label { margin-top: 8px; font-size: 12.5px; line-height: 1.35; color: var(--text-muted); }

/* Zuletzt entwickelte Loesungen */
.hero-live {
    padding: 22px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.02) 100%);
    border: 1px solid var(--border-strong);
    border-radius: 20px;
    box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.9);
}
.live-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 15px;
    margin-bottom: 6px;
    border-bottom: 1px solid var(--border);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.live-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--success);
    box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.5);
    animation: livePuls 2.4s ease-out infinite;
}
@keyframes livePuls {
    0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.5); }
    70% { box-shadow: 0 0 0 9px rgba(34, 197, 94, 0); }
    100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); }
}

.live-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 2px;
}
.live-row + .live-row { border-top: 1px solid rgba(255, 255, 255, 0.05); }
.live-main { min-width: 0; }
.live-ecu {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.live-make { margin-top: 2px; font-size: 11.5px; color: var(--text-muted); }
.live-right {
    margin-left: auto;
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
}
.live-time { font-size: 10.5px; color: rgba(255, 255, 255, 0.3); white-space: nowrap; }
.live-sol {
    flex: 0 0 auto;
    padding: 4px 9px;
    background: var(--accent-soft);
    border: 1px solid rgba(225, 29, 46, 0.25);
    border-radius: 100px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: #ff5a68;
}


/* ---------- Abschnitte ---------- */
section { padding: 96px 0; }
.section-head { max-width: 720px; margin: 0 auto 46px; text-align: center; }
.eyebrow {
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent);
}
.section-head h2 {
    margin-top: 12px;
    font-size: clamp(28px, 3.2vw, 40px);
    font-weight: 800;
    letter-spacing: -0.025em;
}
.section-head p { margin-top: 14px; font-size: 16px; line-height: 1.6; color: var(--text-secondary); }

/* ---------- Module ---------- */
.module-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 16px;
}
.module {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 22px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.045) 0%, rgba(255, 255, 255, 0.02) 100%);
    border: 1px solid var(--border);
    border-radius: 16px;
    cursor: pointer;
    text-align: left;
    color: inherit;
    transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}
.module:hover {
    transform: translateY(-3px);
    border-color: rgba(255, 255, 255, 0.2);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.075) 0%, rgba(255, 255, 255, 0.03) 100%);
}
.module-icon {
    width: 56px; height: 56px;
    display: flex; align-items: center; justify-content: center;
    padding: 9px;
    background: linear-gradient(180deg, #45454e 0%, #23232a 100%);
    border: 1px solid var(--border);
    border-radius: 14px;
    color: var(--text-secondary);
    font-size: 20px;
}
.module-icon img { width: 100%; height: 100%; object-fit: contain; }
.module-name { font-size: 15.5px; font-weight: 700; line-height: 1.3; }
.module-desc {
    font-size: 13.2px;
    line-height: 1.55;
    color: var(--text-muted);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.module-foot { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 4px; }
.module-more { margin-left: auto; font-size: 12.5px; font-weight: 600; color: var(--accent); }


/* Modul-Detail */
.sheet {
    position: fixed;
    inset: 0;
    z-index: 950;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(4, 4, 7, 0.7);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.sheet.open { display: flex; }
.sheet-card {
    width: 100%;
    max-width: 560px;
    max-height: 84vh;
    overflow-y: auto;
    padding: 30px;
    background: #101018;
    border: 1px solid var(--border-strong);
    border-radius: 20px;
    box-shadow: 0 50px 100px -40px rgba(0, 0, 0, 0.95);
}
.sheet-head { display: flex; align-items: center; gap: 16px; }
.sheet-head .module-icon { width: 64px; height: 64px; flex: 0 0 auto; }
.sheet-title { font-size: 21px; font-weight: 700; }
.sheet-cat { margin-top: 4px; font-size: 12.5px; color: var(--text-muted); }
.sheet-close {
    margin-left: auto;
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    color: var(--text-secondary);
    cursor: pointer;
}
.sheet-close:hover { color: var(--text); background: var(--surface-2); }
.sheet-text { margin-top: 22px; font-size: 14.5px; line-height: 1.68; color: var(--text-secondary); white-space: pre-line; }
.sheet-hint {
    margin-top: 18px;
    padding: 13px 15px;
    background: rgba(245, 158, 11, 0.1);
    border: 1px solid rgba(245, 158, 11, 0.25);
    border-radius: 12px;
    font-size: 13.5px;
    line-height: 1.55;
    color: #fbbf24;
}

/* ---------- Ablauf: Stoppuhr ---------- */
.flow-clock {
    display: flex;
    align-items: center;
    gap: 22px;
    margin: 0 auto 26px;
    max-width: 860px;
    padding: 18px 24px;
    background: linear-gradient(90deg, rgba(225, 29, 46, 0.10) 0%, rgba(255, 255, 255, 0.03) 55%, rgba(255, 255, 255, 0.02) 100%);
    border: 1px solid var(--border-strong);
    border-radius: 18px;
    position: relative;
    overflow: hidden;
    transition: border-color 0.5s ease, box-shadow 0.5s ease;
}
.flow-clock::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(420px 140px at 0% 50%, rgba(225, 29, 46, 0.22), transparent 70%);
    pointer-events: none;
}
.flow-clock.is-done {
    border-color: rgba(34, 197, 94, 0.45);
    box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.18), 0 30px 70px -30px rgba(34, 197, 94, 0.55);
}
.flow-clock-left { display: flex; align-items: center; gap: 16px; flex: 1; min-width: 0; position: relative; }
.flow-clock-icon {
    flex: 0 0 auto;
    width: 50px; height: 50px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 14px;
    background: var(--accent);
    color: #fff;
    font-size: 21px;
    box-shadow: 0 12px 30px -10px rgba(225, 29, 46, 0.8);
}
.flow-clock.is-running .flow-clock-icon i { animation: clockTick 1s steps(2, end) infinite; }
.flow-clock.is-done .flow-clock-icon { background: var(--success); box-shadow: 0 12px 30px -10px rgba(34, 197, 94, 0.8); }
.flow-clock-label { font-size: 16px; font-weight: 700; letter-spacing: -0.01em; }
.flow-clock-sub { margin-top: 3px; font-size: 12.5px; color: var(--text-muted); }
.flow-clock-time {
    position: relative;
    font-size: 46px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    color: var(--text);
    transition: color 0.4s ease, text-shadow 0.4s ease;
    text-shadow: 0 0 0 rgba(255, 255, 255, 0);
}
.flow-clock-time small { font-size: 22px; font-weight: 700; color: var(--text-muted); }
.flow-clock.is-running .flow-clock-time { text-shadow: 0 0 24px rgba(255, 90, 104, 0.45); }
.flow-clock.is-done .flow-clock-time { color: #4ade80; text-shadow: 0 0 28px rgba(34, 197, 94, 0.55); }
.flow-clock.is-done .flow-clock-time small { color: rgba(74, 222, 128, 0.7); }
.flow-clock-stamp {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 9px 16px;
    border: 2px solid #4ade80;
    border-radius: 10px;
    color: #4ade80;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    white-space: nowrap;
    opacity: 0;
    transform: scale(2.2) rotate(-14deg);
    transition: opacity 0.2s ease, transform 0.42s cubic-bezier(0.18, 1.6, 0.4, 1);
    pointer-events: none;
}
.flow-clock-stamp i { font-size: 13px; }
.flow-clock-stamp.is-on { opacity: 1; transform: scale(1) rotate(-4deg); }
.flow-clock-stamp.is-on::after {
    content: '';
    position: absolute;
    inset: -6px;
    border-radius: 14px;
    border: 2px solid rgba(74, 222, 128, 0.6);
    animation: stampRing 0.7s ease-out forwards;
}

/* ---------- Ablauf: fünf Schritte mit Pfeilen ---------- */
.flow {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto 1fr;
    align-items: stretch;
    gap: 4px;
}
.flow-step {
    display: flex;
    flex-direction: column;
    position: relative;
    padding: 24px 18px 20px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
    transition: border-color 0.35s ease, box-shadow 0.35s ease, transform 0.35s ease, background 0.35s ease, opacity 0.35s ease;
}
.flow-step.is-active {
    border-color: rgba(225, 29, 46, 0.7);
    background: linear-gradient(180deg, rgba(225, 29, 46, 0.14) 0%, rgba(255, 255, 255, 0.02) 100%);
    box-shadow: 0 0 0 1px rgba(225, 29, 46, 0.35), 0 26px 60px -22px rgba(225, 29, 46, 0.7);
    transform: translateY(-6px) scale(1.02);
    z-index: 2;
}
.flow-step.is-done {
    border-color: rgba(34, 197, 94, 0.4);
    background: linear-gradient(180deg, rgba(34, 197, 94, 0.07) 0%, rgba(255, 255, 255, 0.02) 100%);
}
.flow-step[data-step="2"].is-active::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    height: 55%;
    top: -55%;
    background: linear-gradient(180deg, transparent 0%, rgba(255, 90, 104, 0.22) 50%, transparent 100%);
    animation: flowScan 1.1s linear infinite;
    pointer-events: none;
}
.flow-no {
    position: absolute;
    top: 14px; right: 16px;
    font-size: 26px;
    font-weight: 800;
    line-height: 1;
    color: rgba(255, 255, 255, 0.07);
    transition: color 0.35s ease;
}
.flow-step.is-active .flow-no { color: rgba(255, 90, 104, 0.6); }
.flow-step.is-done .flow-no { color: rgba(74, 222, 128, 0.35); }
.flow-icon {
    position: relative;
    width: 42px; height: 42px;
    display: flex; align-items: center; justify-content: center;
    background: var(--accent-soft);
    border: 1px solid rgba(225, 29, 46, 0.28);
    border-radius: 12px;
    color: #ff5a68;
    font-size: 16px;
    transition: background 0.35s ease, color 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}
.flow-step.is-active .flow-icon {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
    box-shadow: 0 0 0 6px rgba(225, 29, 46, 0.18), 0 10px 30px -8px rgba(225, 29, 46, 0.9);
}
.flow-step.is-done .flow-icon {
    background: rgba(34, 197, 94, 0.14);
    border-color: rgba(34, 197, 94, 0.45);
    color: #4ade80;
}
.flow-icon::after {
    content: '\f00c';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    top: -8px; right: -8px;
    width: 20px; height: 20px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: var(--success);
    color: #fff;
    font-size: 9px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
    transform: scale(0);
    transition: transform 0.35s cubic-bezier(0.18, 1.6, 0.4, 1);
}
.flow-step.is-done .flow-icon::after { transform: scale(1); }
.flow-step[data-step="5"].is-active .flow-icon::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: 14px;
    border: 2px solid rgba(255, 90, 104, 0.9);
    animation: flowRing 1.1s ease-out infinite;
}
.flow-step[data-step="1"].is-active .flow-icon i { animation: flowUp 0.8s ease-in-out infinite; }
.flow-step[data-step="2"].is-active .flow-icon i { animation: flowLook 1.1s ease-in-out infinite; }
.flow-step[data-step="3"].is-active .flow-icon i { animation: flowSpin 1.4s linear infinite; }
.flow-step[data-step="4"].is-active .flow-icon i { animation: flowDown 0.8s ease-in-out infinite; }
.flow-step[data-step="5"].is-active .flow-icon i { animation: flowChip 0.55s ease-in-out infinite; }
.flow-step h3 { margin-top: 16px; font-size: 15.5px; font-weight: 700; line-height: 1.3; }
.flow-status {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--text-muted);
}
.flow-status em, .flow-status b, .flow-status u { font-style: normal; font-weight: inherit; text-decoration: none; display: none; }
.flow-status em { display: inline; }
.flow-step.is-active .flow-status { color: #ff5a68; }
.flow-step.is-active .flow-status em { display: none; }
.flow-step.is-active .flow-status b { display: inline; }
.flow-step.is-done .flow-status { color: #4ade80; }
.flow-step.is-done .flow-status em, .flow-step.is-done .flow-status b { display: none; }
.flow-step.is-done .flow-status u { display: inline; }
.flow-dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    transition: background 0.3s ease;
}
.flow-step.is-active .flow-dot { background: #ff5a68; animation: livePuls 1s ease-in-out infinite; }
.flow-step.is-done .flow-dot { background: var(--success); }
.flow-bar {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 3px;
    background: rgba(255, 255, 255, 0.06);
}
.flow-bar::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 0;
    background: linear-gradient(90deg, #ff5a68, var(--accent));
    box-shadow: 0 0 14px rgba(255, 90, 104, 0.9);
}
.flow-step.is-active .flow-bar::before { animation: flowFill var(--dur, 1.2s) cubic-bezier(0.25, 0.6, 0.3, 1) forwards; }
.flow-step[data-step="2"] { --dur: 1.2s; }
.flow-step[data-step="3"] { --dur: 1.2s; }
.flow-step[data-step="4"] { --dur: 1s; }
.flow-step[data-step="5"] { --dur: 1.2s; }
.flow-step.is-done .flow-bar::before { width: 100%; background: var(--success); box-shadow: none; }

.flow-arrow {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 6px;
    color: rgba(255, 255, 255, 0.34);
    font-size: 17px;
    transition: color 0.3s ease;
}
.flow-arrow.is-run { color: #ff5a68; }
.flow-arrow.is-run i { animation: flowArrow 0.6s ease-in-out infinite; }
.flow-arrow.is-done { color: rgba(74, 222, 128, 0.7); }
.flow-time {
    padding: 4px 9px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--border);
    border-radius: 100px;
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-secondary);
    white-space: nowrap;
    transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease, transform 0.4s cubic-bezier(0.18, 1.6, 0.4, 1);
}
.flow-arrow.is-run .flow-time {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
    transform: scale(1.22);
    box-shadow: 0 8px 24px -8px rgba(225, 29, 46, 0.9);
}
.flow-arrow.is-done .flow-time {
    background: rgba(34, 197, 94, 0.14);
    border-color: rgba(34, 197, 94, 0.4);
    color: #4ade80;
}
.flow-note {
    margin-top: 26px;
    text-align: center;
    font-size: 13.5px;
    color: var(--text-muted);
}

@keyframes clockTick { 0% { transform: rotate(-6deg); } 100% { transform: rotate(6deg); } }
@keyframes stampRing { 0% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(1.5); } }
@keyframes flowScan { 0% { top: -55%; } 100% { top: 100%; } }
@keyframes flowUp { 0%, 100% { transform: translateY(2px); } 50% { transform: translateY(-3px); } }
@keyframes flowDown { 0%, 100% { transform: translateY(-2px); } 50% { transform: translateY(3px); } }
@keyframes flowLook { 0%, 100% { transform: translate(-2px, 1px) rotate(-8deg); } 50% { transform: translate(2px, -1px) rotate(8deg); } }
@keyframes flowSpin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes flowChip { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.18); } }
@keyframes flowRing { 0% { opacity: 0.9; transform: scale(1); } 100% { opacity: 0; transform: scale(1.9); } }
@keyframes flowArrow { 0%, 100% { transform: translateX(-4px); opacity: 0.6; } 50% { transform: translateX(4px); opacity: 1; } }
@keyframes flowFill { 0% { width: 0; } 100% { width: 100%; } }

/* ---------- Vorteile ---------- */
.features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.feature {
    padding: 26px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
}
.feature-icon {
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 12px;
    color: var(--accent);
    font-size: 17px;
}
.feature h3 { margin-top: 16px; font-size: 16.5px; font-weight: 700; }
.feature p { margin-top: 9px; font-size: 13.8px; line-height: 1.62; color: var(--text-muted); }

/* ---------- App ---------- */
.app-band {
    display: grid;
    grid-template-columns: 1fr 0.8fr;
    align-items: center;
    gap: 50px;
    padding: 46px;
    background:
        radial-gradient(700px 420px at 12% 20%, rgba(225, 29, 46, 0.16) 0%, transparent 60%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
    border: 1px solid var(--border-strong);
    border-radius: 24px;
}
.app-band h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 800; letter-spacing: -0.025em; }
.app-band p { margin-top: 14px; font-size: 15.5px; line-height: 1.62; color: var(--text-secondary); }
.store-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.store-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 11px 20px 11px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border-strong);
    border-radius: 12px;
    transition: background 0.15s ease;
}
.store-btn:hover { background: rgba(255, 255, 255, 0.1); }
.store-btn i { font-size: 26px; }
.store-btn span { display: flex; flex-direction: column; line-height: 1.2; }
.store-btn .zeile-1 { font-size: 11px; color: var(--text-muted); }
.store-btn .zeile-2 { font-size: 15px; font-weight: 600; }
.app-shot { display: flex; justify-content: center; }
.app-shot img {
    max-width: 260px;
    border-radius: 22px;
    border: 1px solid var(--border-strong);
    box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.95);
}



/* ---------- Farbige Abschnittsbänder ---------- */
.band-hell {
    background:
        radial-gradient(1000px 600px at 50% 0%, rgba(255, 255, 255, 0.06) 0%, transparent 60%),
        linear-gradient(180deg, #101017 0%, #0c0c13 100%);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}
.band-dunkel {
    background:
        radial-gradient(900px 520px at 22% 0%, rgba(59, 130, 246, 0.10) 0%, transparent 60%),
        linear-gradient(180deg, #07070c 0%, #050509 100%);
    border-bottom: 1px solid var(--border);
}
.band-rot {
    background:
        radial-gradient(900px 500px at 80% 10%, rgba(225, 29, 46, 0.14) 0%, transparent 60%),
        linear-gradient(180deg, #0b0b11 0%, #08080d 100%);
    border-bottom: 1px solid var(--border);
}

/* ---------- Fuß ---------- */
.foot { padding: 54px 0 40px; border-top: 1px solid var(--border); }
.foot-top { display: flex; flex-wrap: wrap; gap: 34px; justify-content: space-between; }
.foot-brand img { height: 30px; }
.foot-brand p { margin-top: 14px; max-width: 320px; font-size: 13.5px; line-height: 1.6; color: var(--text-muted); }
.foot-cols { display: flex; flex-wrap: wrap; gap: 54px; }
.foot-col h4 {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.foot-col a { display: block; margin-top: 11px; font-size: 14px; color: var(--text-secondary); }
.foot-col a:hover { color: var(--text); }
.foot-bottom {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: space-between;
    margin-top: 44px;
    padding-top: 22px;
    border-top: 1px solid var(--border);
    font-size: 13px;
    color: var(--text-muted);
}

/* ---------- Einblenden beim Scrollen ---------- */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; transition: none; }
    .live-dot { animation: none; }
    .flow-step, .flow-icon, .flow-icon::after, .flow-icon i, .flow-bar::before, .flow-arrow i, .flow-time, .flow-clock-stamp, .flow-clock-icon i { animation: none !important; transition: none !important; }
    .flow-step.is-active { transform: none; }
}
@keyframes flowArrowDown { 0%, 100% { transform: rotate(90deg) translateX(-4px); opacity: 0.6; } 50% { transform: rotate(90deg) translateX(4px); opacity: 1; } }

/* ---------- Schmale Bildschirme ---------- */
@media (max-width: 1080px) {
    .nav { display: none; }
    .burger { display: flex; }
    .hero-grid { grid-template-columns: 1fr; gap: 38px; }
    .hero-stats { grid-template-columns: repeat(3, 1fr); gap: 12px; }
    .hero { height: auto; max-height: none; padding: 40px 0 60px; }
    .flow { grid-template-columns: 1fr; gap: 0; }
    .flow-step.is-active { transform: scale(1.02); }
    .flow-arrow { flex-direction: row; gap: 14px; padding: 8px 0; }
    .flow-arrow i { transform: rotate(90deg); }
    .flow-arrow.is-run i { animation-name: flowArrowDown; }
    .flow-clock { flex-wrap: wrap; gap: 14px 22px; }
    .flow-clock-left { flex: 1 1 100%; }
    .flow-clock-time { font-size: 40px; }
    .features { grid-template-columns: repeat(2, 1fr); }
    .app-band { grid-template-columns: 1fr; }
    .app-shot { order: -1; }
}

@media (max-width: 720px) {
    .wrap { padding: 0 18px; }
    .hero-stats { grid-template-columns: 1fr 1fr; }
    .hero-stats .hero-stat:last-child { grid-column: 1 / -1; }
    .features { grid-template-columns: 1fr; }
    section { padding: 68px 0; }
    .app-band { padding: 32px 22px; }
    .slide-cta .btn { width: 100%; }
    .head-right .btn-ghost { display: none; }
    .lang-btn span { display: none; }
}

/* ---------- Telefon im App-Band ---------- */
.phone {
    position: relative;
    width: 100%;
    max-width: 260px;
    padding: 14px;
    background: linear-gradient(180deg, #17171f 0%, #0d0d13 100%);
    border: 1px solid var(--border-strong);
    border-radius: 30px;
    box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.95);
}
.phone-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 6px 14px;
    border-bottom: 1px solid var(--border);
    color: var(--text-muted);
    font-size: 12px;
}
.phone-brand { font-size: 12.5px; font-weight: 700; color: var(--text); letter-spacing: -0.01em; }
.phone-body { padding-top: 6px; }
.phone-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 4px;
    font-size: 12.5px;
    color: var(--text-secondary);
}
.phone-row + .phone-row { border-top: 1px solid rgba(255, 255, 255, 0.05); }
.phone-row b { font-size: 12.5px; color: var(--text); font-weight: 600; }
.phone-row small { font-size: 11px; color: var(--text-muted); }
.phone-dot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; }
.phone-dot.ok { background: var(--success); }
.phone-dot.wait { background: #f59e0b; }
.phone-tag {
    margin-left: auto;
    padding: 3px 8px;
    border-radius: 100px;
    font-size: 10.5px;
    font-weight: 700;
}
.phone-tag.ok { background: rgba(34, 197, 94, 0.14); color: #4ade80; }
.phone-tag.wait { background: rgba(245, 158, 11, 0.14); color: #fbbf24; }
.phone-push {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 16px -4px -4px;
    padding: 12px;
    background: rgba(225, 29, 46, 0.14);
    border: 1px solid rgba(225, 29, 46, 0.3);
    border-radius: 14px;
    font-size: 11.5px;
    line-height: 1.4;
    color: #ff8a94;
}
.phone-push i { font-size: 14px; }

/* ---------- Datei-Anzahl auf der Modul-Kachel ---------- */
.module-kopf { display: flex; align-items: flex-start; gap: 12px; }
.module-files {
    margin-left: auto;
    padding: 4px 9px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--border);
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    white-space: nowrap;
}
.module:hover .module-files { color: var(--text-secondary); border-color: rgba(255, 255, 255, 0.18); }

/* ---------- Laufband: zuletzt bestellt ---------- */
.ticker-wrap {
    padding: 26px 0 30px;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0%, transparent 100%);
}
.ticker-label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-bottom: 18px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.ticker {
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent 0, #000 90px, #000 calc(100% - 90px), transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 90px, #000 calc(100% - 90px), transparent 100%);
}
.ticker-track {
    display: flex;
    gap: 12px;
    width: max-content;
    will-change: transform;
}

.ticker-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
    border: 1px solid var(--border);
    border-radius: 14px;
    white-space: nowrap;
}
.ticker-ecu { font-size: 13.5px; font-weight: 600; color: var(--text); }
.ticker-make { margin-top: 2px; font-size: 11px; color: var(--text-muted); }
.ticker-sols { display: flex; gap: 6px; margin-left: 4px; }
.ticker-sol {
    padding: 4px 9px;
    background: var(--accent-soft);
    border: 1px solid rgba(225, 29, 46, 0.22);
    border-radius: 100px;
    font-size: 10.5px;
    font-weight: 700;
    color: #ff5a68;
}

@media (prefers-reduced-motion: reduce) {
    .ticker { overflow-x: auto; }
}

/* ---------- Modul-Filter ---------- */
.tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 34px; }
.tab {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 10px 16px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 100px;
    color: var(--text-secondary);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.tab:hover { background: var(--surface-2); color: var(--text); }
.tab.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }

/* Filter-Animation (FLIP): herausfallende Kacheln blenden als Klon aus,
   bleibende gleiten an ihre neue Stelle, neue kommen gestaffelt herein. */
.module-flip-clone { will-change: transform, opacity; }
.module { will-change: transform; }

/* ---------- Leistungskonfigurator (Widget von rockstar.ecubase.de) ---------- */
.konf-band {
    position: relative;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    background:
        radial-gradient(900px 520px at 18% 0%, rgba(225, 29, 46, 0.26) 0%, transparent 62%),
        radial-gradient(800px 500px at 85% 100%, rgba(225, 29, 46, 0.16) 0%, transparent 60%),
        linear-gradient(180deg, #0c0c12 0%, #08080d 100%);
}
.konf-box {
    padding: 26px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.025) 100%);
    border: 1px solid var(--border-strong);
    border-radius: 20px;
    box-shadow: 0 40px 90px -40px rgba(0, 0, 0, 0.9);
}
.konf-box #tuningbase-konfigurator { max-width: 100%; }
@media (max-width: 720px) { .konf-box { padding: 16px; } }

/* ---------- Abdeckungs-Tabelle ---------- */
.cov-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}
.cov-search {
    position: relative;
    flex: 1 1 300px;
    min-width: 240px;
}
.cov-search i {
    position: absolute;
    left: 15px; top: 50%;
    transform: translateY(-50%);
    font-size: 13px;
    color: var(--text-muted);
    pointer-events: none;
}
.cov-search input {
    width: 100%;
    height: 46px;
    padding: 0 16px 0 40px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 12px;
    color: var(--text);
    font-family: inherit;
    font-size: 14px;
    outline: none;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.cov-search input:focus { border-color: rgba(225, 29, 46, 0.55); background: rgba(255, 255, 255, 0.07); }
.cov-search input::placeholder { color: var(--text-muted); }

.cov-select {
    height: 46px;
    min-width: 190px;
    padding: 0 14px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 12px;
    color: var(--text);
    font-family: inherit;
    font-size: 14px;
    cursor: pointer;
    outline: none;
}
.cov-select option { background: #12121a; color: #fff; }

.cov-table {
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.02);
}
/* eigener Scrollbereich wie ein Fenster im Fenster */
.cov-scroll {
    height: 560px;
    max-height: 560px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
    overscroll-behavior: contain;
}
.cov-scroll::-webkit-scrollbar { width: 10px; }
.cov-scroll::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.03); }
.cov-scroll::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.16);
    border: 3px solid transparent;
    background-clip: content-box;
    border-radius: 8px;
}
.cov-scroll::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.28); background-clip: content-box; }
.cov-head,
.cov-row {
    display: grid;
    grid-template-columns: 170px 210px 1fr 90px;
    align-items: center;
    gap: 16px;
    padding: 13px 20px;
}
.cov-head {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #14141b;
    border-bottom: 1px solid var(--border);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.cov-row { border-top: 1px solid rgba(255, 255, 255, 0.05); transition: background 0.15s ease; }
.cov-row:first-child { border-top: none; }
.cov-row:hover { background: rgba(255, 255, 255, 0.04); }
.cov-make { font-size: 13.5px; color: var(--text-secondary); }
.cov-ecu { font-size: 14px; font-weight: 600; color: var(--text); }
.cov-mods { display: flex; flex-wrap: wrap; gap: 6px; }
.cov-mod {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px 3px 4px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--border);
    border-radius: 100px;
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-secondary);
    white-space: nowrap;
}
.cov-mod img { width: 17px; height: 17px; object-fit: contain; }
.cov-num { text-align: right; font-variant-numeric: tabular-nums; }
.cov-row .cov-num { font-size: 13px; color: var(--text-muted); }
.cov-leer { padding: 34px 20px; text-align: center; font-size: 14px; color: var(--text-muted); }

@media (max-width: 900px) {
    .cov-head { display: none; }
    .cov-scroll { height: 480px; max-height: 480px; }
    .cov-row {
        grid-template-columns: 1fr auto;
        gap: 6px 12px;
        padding: 16px 16px;
    }
    .cov-make { order: 1; }
    .cov-row .cov-num { order: 2; }
    .cov-ecu { order: 3; grid-column: 1 / -1; }
    .cov-mods { order: 4; grid-column: 1 / -1; margin-top: 4px; }
}

.cov-hinweis {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    max-width: 760px;
    margin: 18px auto 0;
    padding: 12px 16px;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid var(--border);
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--text-muted);
}
.cov-hinweis i { margin-top: 2px; color: rgba(255, 255, 255, 0.35); font-size: 13px; }

/* ---------- Rechtstexte und Registrierung im Modal ---------- */
.doc-card { max-width: 760px; }
.doc-text {
    margin-top: 20px;
    max-height: 62vh;
    overflow-y: auto;
    padding-right: 8px;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--text-secondary);
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}
.doc-text::-webkit-scrollbar { width: 8px; }
.doc-text::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.16); border-radius: 8px; }
.doc-text h1, .doc-text h2, .doc-text h3 {
    margin: 22px 0 8px;
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
}
.doc-text h1:first-child, .doc-text h2:first-child { margin-top: 0; }
.doc-text p { margin-bottom: 12px; }
.doc-text ul, .doc-text ol { margin: 0 0 12px 20px; }
.doc-text li { margin-bottom: 6px; }
.doc-text a { color: var(--accent); }
.doc-text table { width: 100%; border-collapse: collapse; margin-bottom: 14px; }
.doc-text td, .doc-text th { padding: 7px 10px; border: 1px solid var(--border); text-align: left; }

.reg-card { max-width: 620px; padding: 24px; }
.sheet-cat a { color: var(--accent); }
.reg-rahmen {
    margin-top: 18px;
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    background: #0a0a0f;
}
.reg-rahmen iframe {
    display: block;
    width: 100%;
    height: min(74vh, 760px);
    border: 0;
}

/* ---------- Scroll-Fortschritt ---------- */
.scroll-bar {
    position: absolute;
    left: 0; bottom: -1px;
    height: 2px;
    width: 100%;
    background: linear-gradient(90deg, var(--accent), #ff5a68);
    box-shadow: 0 0 12px rgba(225, 29, 46, 0.8);
    transform: scaleX(0);
    transform-origin: left center;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.head.is-scrolled .scroll-bar { opacity: 1; }

/* ---------- Hero: Maus-Glow, Schimmer, Scroll-Hinweis ---------- */
.hero-glow {
    position: absolute;
    left: 0; top: 0;
    width: 900px; height: 900px;
    margin: -450px 0 0 -450px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 60, 80, 0.20) 0%, rgba(225, 29, 46, 0.07) 30%, transparent 60%);
    opacity: 0;
    transition: opacity 0.6s ease;
    pointer-events: none;
    will-change: transform;
}
.hero.has-glow .hero-glow { opacity: 1; }
.hero-text h1 span {
    background: linear-gradient(100deg, var(--accent) 0%, var(--accent) 38%, #ff8a94 50%, var(--accent) 62%, var(--accent) 100%);
    background-size: 240% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--accent);
    animation: heroShimmer 4.5s ease-in-out infinite;
}
.hero-text h1, .hero-text p.sub, .hero-text .badge, .hero-text .slide-cta, .hero-stats { animation: heroIn 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.hero-text h1 { animation-delay: 0.08s; }
.hero-text p.sub { animation-delay: 0.18s; }
.hero-text .slide-cta { animation-delay: 0.28s; }
.hero-stats { animation-delay: 0.4s; }
.hero-live { animation: heroIn 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) 0.25s both; }
.live-row { animation: liveIn 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.live-row:nth-child(1) { animation-delay: 0.05s; }
.live-row:nth-child(2) { animation-delay: 0.11s; }
.live-row:nth-child(3) { animation-delay: 0.17s; }
.live-row:nth-child(4) { animation-delay: 0.23s; }
.live-row:nth-child(5) { animation-delay: 0.29s; }
.live-row:nth-child(6) { animation-delay: 0.35s; }
.live-row:nth-child(7) { animation-delay: 0.41s; }
.live-row:nth-child(8) { animation-delay: 0.47s; }
.live-row:first-child .live-sol { animation: livePop 2.4s ease-in-out infinite; }

/* ---------- Spotlight auf Karten ---------- */
.spot { --mx: 50%; --my: 50%; position: relative; overflow: hidden; isolation: isolate; }
.spot::before,
.spot::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    opacity: 0;
    transition: opacity 0.35s ease;
    pointer-events: none;
    z-index: -1;
}
.spot::before {
    background: radial-gradient(320px circle at var(--mx) var(--my), rgba(225, 29, 46, 0.16), transparent 60%);
}
.spot::after {
    inset: -1px;
    padding: 1px;
    background: radial-gradient(260px circle at var(--mx) var(--my), rgba(255, 90, 104, 0.9), transparent 60%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    z-index: 1;
}
.spot:hover::before, .spot:hover::after { opacity: 1; }
.module.spot { z-index: 0; }
.module.spot::after { z-index: 2; }

/* ---------- Modul-Kacheln: Auftritt + Hover ---------- */
.module-grid:not(.is-in) .module.pop { opacity: 0; }
.module-grid.is-in .module.pop { animation: cardIn 0.55s cubic-bezier(0.2, 0.8, 0.2, 1) both; animation-delay: calc(var(--i, 0) * 45ms); }
.module-icon { transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.25s ease, border-color 0.25s ease; }
.module:hover .module-icon {
    transform: translateY(-3px) scale(1.06) rotate(-3deg);
    border-color: rgba(225, 29, 46, 0.45);
    box-shadow: 0 12px 26px -12px rgba(225, 29, 46, 0.8);
}
.module-more i { transition: transform 0.2s ease; }
.module:hover .module-more i { transform: translateX(4px); }

/* ---------- Vorteile: gestaffelt + Hover ---------- */
.feature { transition: opacity 0.6s ease, transform 0.6s ease, border-color 0.25s ease; }
.feature:nth-child(3n+2) { transition-delay: 0.1s; }
.feature:nth-child(3n+3) { transition-delay: 0.2s; }
.feature:hover { border-color: rgba(255, 255, 255, 0.18); }
.feature-icon { transition: transform 0.3s cubic-bezier(0.18, 1.4, 0.4, 1), background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease; }
.feature:hover .feature-icon {
    transform: translateY(-3px) rotate(-6deg) scale(1.08);
    background: var(--accent);
    color: #fff;
    box-shadow: 0 12px 28px -10px rgba(225, 29, 46, 0.9);
}

/* ---------- Abdeckung: Zeilen gestaffelt ---------- */
.cov-row { animation: rowIn 0.4s ease both; }
.cov-row:nth-child(1) { animation-delay: 0.02s; }
.cov-row:nth-child(2) { animation-delay: 0.06s; }
.cov-row:nth-child(3) { animation-delay: 0.10s; }
.cov-row:nth-child(4) { animation-delay: 0.14s; }
.cov-row:nth-child(5) { animation-delay: 0.18s; }
.cov-row:nth-child(6) { animation-delay: 0.22s; }
.cov-row:nth-child(7) { animation-delay: 0.26s; }
.cov-row:nth-child(8) { animation-delay: 0.30s; }
.cov-row:nth-child(9) { animation-delay: 0.34s; }
.cov-row:nth-child(10) { animation-delay: 0.38s; }

/* ---------- Knöpfe: Lichtstreifen ---------- */
.btn-primary { position: relative; overflow: hidden; }
.btn-primary::after {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    left: -60%;
    width: 40%;
    background: linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, 0.28) 50%, transparent 100%);
    transform: skewX(-18deg);
    transition: left 0.55s ease;
    pointer-events: none;
}
.btn-primary:hover::after { left: 120%; }
.btn-primary:hover { transform: translateY(-1px); box-shadow: 0 14px 30px -12px rgba(225, 29, 46, 1); }

/* ---------- Telefon: schweben + Push in Schleife ---------- */
.phone { animation: phoneFloat 6s ease-in-out infinite; }
.phone-bell { position: relative; display: inline-flex; }
.phone-bell i { animation: bellRing 9s ease-in-out infinite; transform-origin: 50% 0; }
.phone-bell b {
    position: absolute;
    top: -6px; right: -8px;
    min-width: 15px; height: 15px;
    padding: 0 4px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 100px;
    background: var(--accent);
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    animation: bellBadge 9s ease-in-out infinite;
}
.phone-push { animation: pushIn 9s cubic-bezier(0.2, 0.8, 0.2, 1) infinite; }
.phone-push i { animation: pushCheck 9s ease-in-out infinite; }
.phone-row:nth-child(2) .phone-dot.wait { animation: dotWait 1.2s ease-in-out infinite; }

@keyframes heroShimmer { 0%, 35% { background-position: 100% 0; } 65%, 100% { background-position: 0 0; } }
@keyframes heroIn { 0% { opacity: 0; transform: translateY(22px); } 100% { opacity: 1; transform: none; } }
@keyframes liveIn { 0% { opacity: 0; transform: translateX(16px); } 100% { opacity: 1; transform: none; } }
@keyframes livePop { 0%, 100% { box-shadow: 0 0 0 0 rgba(225, 29, 46, 0.45); } 50% { box-shadow: 0 0 0 6px rgba(225, 29, 46, 0); } }
@keyframes scrollHint { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(16px); opacity: 0; } 100% { transform: translateY(0); opacity: 0; } }
@keyframes cardIn { 0% { opacity: 0; transform: translateY(24px) scale(0.96); } 100% { opacity: 1; transform: none; } }
@keyframes rowIn { 0% { opacity: 0; transform: translateY(8px); } 100% { opacity: 1; transform: none; } }
@keyframes phoneFloat { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-12px) rotate(1deg); } }
@keyframes bellRing { 0%, 10%, 22%, 100% { transform: rotate(0); } 12% { transform: rotate(18deg); } 14% { transform: rotate(-16deg); } 16% { transform: rotate(12deg); } 18% { transform: rotate(-8deg); } 20% { transform: rotate(4deg); } }
@keyframes bellBadge { 0%, 11% { opacity: 0; transform: scale(0); } 14%, 88% { opacity: 1; transform: scale(1); } 92%, 100% { opacity: 0; transform: scale(0); } }
@keyframes pushIn { 0%, 12% { opacity: 0; transform: translateY(-14px) scale(0.96); } 18%, 86% { opacity: 1; transform: none; } 92%, 100% { opacity: 0; transform: translateY(10px) scale(0.98); } }
@keyframes pushCheck { 0%, 18% { transform: scale(0); } 22% { transform: scale(1.4); } 26%, 100% { transform: scale(1); } }
@keyframes dotWait { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }

@media (max-width: 1080px) {
    .scroll-hint { display: none; }
    .hero-glow { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .hero-text h1 span, .hero-text h1, .hero-text p.sub, .hero-text .badge, .hero-text .slide-cta, .hero-stats, .hero-live, .live-row, .live-sol, .scroll-hint span, .module.pop, .cov-row, .phone, .phone-bell i, .phone-bell b, .phone-push, .phone-push i, .phone-dot { animation: none !important; }
    .module-grid:not(.is-in) .module.pop { opacity: 1; }
    .hero-text h1 span { -webkit-text-fill-color: var(--accent); }
    .hero-glow { display: none; }
    .btn-primary::after { display: none; }
}

/* ---------- Live-Aktualisierung ---------- */
.stat-value { transition: color 0.4s ease; }
.hero-stat { transition: border-color 0.35s ease, transform 0.2s ease, box-shadow 0.35s ease; }
.hero-stat.is-bump {
    border-color: rgba(34, 197, 94, 0.55);
    box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.25), 0 22px 50px -20px rgba(34, 197, 94, 0.7);
}
.hero-stat.is-bump .stat-value { color: #4ade80; }
.hero-stat.is-bump .stat-icon { background: rgba(34, 197, 94, 0.16); border-color: rgba(34, 197, 94, 0.4); color: #4ade80; }
.stat-icon { transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease; }
.stat-plus {
    position: absolute;
    right: 16px; top: 16px;
    font-size: 14px;
    font-weight: 800;
    color: #4ade80;
    animation: statPlus 1.9s ease-out forwards;
    pointer-events: none;
}
.badge { transition: transform 0.3s cubic-bezier(0.18, 1.4, 0.4, 1), box-shadow 0.3s ease; }
.badge.is-bump { transform: scale(1.05); box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.18); }

.live-row { border-radius: 8px; }
.live-row.live-still { animation: none; }
.live-row.live-new { animation: liveIn 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) both, liveGlow 4s ease-out both; }

.ticker-card { transition: border-color 0.4s ease, box-shadow 0.4s ease; }
.ticker-card.ticker-new {
    border-color: rgba(34, 197, 94, 0.5);
    box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.2), 0 0 26px rgba(34, 197, 94, 0.22);
    animation: tickerNew 0.6s cubic-bezier(0.18, 1.4, 0.4, 1) both;
}
.ticker-card.ticker-new .ticker-ecu::before {
    content: '';
    display: inline-block;
    width: 7px; height: 7px;
    margin-right: 7px;
    border-radius: 50%;
    background: var(--success);
    vertical-align: middle;
    animation: livePuls 1.6s ease-out infinite;
}
.ticker-label { transition: color 0.3s ease; }
.ticker-label.is-bump { color: #4ade80; }
.ticker-label.is-bump .live-dot { animation-duration: 0.8s; }

@keyframes statPlus { 0% { opacity: 0; transform: translateY(8px); } 18% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(-26px); } }
@keyframes liveGlow { 0% { background: rgba(34, 197, 94, 0.22); } 100% { background: transparent; } }
@keyframes tickerNew { 0% { opacity: 0; transform: scale(0.7); } 100% { opacity: 1; transform: scale(1); } }

@media (prefers-reduced-motion: reduce) {
    .stat-plus, .live-row.live-new, .ticker-card.ticker-new, .ticker-card.ticker-new .ticker-ecu::before { animation: none !important; }
}

/* ---------- Ablauf: scrollgesteuerte Bühne ---------- */
.ablauf-scrolly { position: relative; height: 460vh; padding: 0; }
.ablauf-pin {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--border);
}
.ablauf-bg { position: absolute; inset: 0; pointer-events: none; }
.ablauf-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.55;
    will-change: transform;
}
.ablauf-orb-a { width: 620px; height: 620px; left: -160px; top: -120px; background: radial-gradient(circle, rgba(225, 29, 46, 0.42), transparent 65%); }
.ablauf-orb-b { width: 560px; height: 560px; right: -140px; bottom: -160px; background: radial-gradient(circle, rgba(59, 130, 246, 0.28), transparent 65%); }
.ablauf-stage {
    position: relative;
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: 60px;
    align-items: center;
    width: 100%;
    padding-top: var(--head-h);
}
.stage-title { margin-top: 12px; font-size: clamp(30px, 3.2vw, 44px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.08; }
.stage-steps { list-style: none; margin: 34px 0 0; padding: 0 0 0 26px; position: relative; }
.stage-step {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    padding: 14px 0;
    opacity: 0.3;
    transform: translateX(-6px);
    transition: opacity 0.35s ease, transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.stage-step.is-active { opacity: 1; transform: none; }
.stage-step.is-done { opacity: 0.55; transform: none; }
.stage-num {
    flex: 0 0 auto;
    width: 44px; height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border-strong);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    font-variant-numeric: tabular-nums;
    color: var(--text-secondary);
    transition: background 0.35s ease, color 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}
.stage-step.is-active .stage-num { background: var(--accent); border-color: var(--accent); color: #fff; box-shadow: 0 14px 30px -12px rgba(225, 29, 46, 1); }
.stage-step.is-done .stage-num { background: var(--success-soft, rgba(34, 197, 94, 0.14)); border-color: rgba(34, 197, 94, 0.45); color: #4ade80; }
.stage-step.is-done .stage-num::before { content: '\f00c'; font-family: 'Font Awesome 6 Free'; font-weight: 900; }
.stage-step.is-done .stage-num span, .stage-step.is-done .stage-num { font-size: 0; }
.stage-step.is-done .stage-num::before { font-size: 14px; }
.stage-text h3 { font-size: 19px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
.stage-text p { margin-top: 6px; max-width: 420px; font-size: 14.5px; line-height: 1.55; color: var(--text-secondary); max-height: 0; overflow: hidden; opacity: 0; transition: max-height 0.5s ease, opacity 0.4s ease, margin 0.4s ease; margin-top: 0; }
.stage-step.is-active .stage-text p { max-height: 120px; opacity: 1; margin-top: 6px; }
.stage-rail { position: absolute; left: 0; top: 42px; bottom: 42px; width: 3px; border-radius: 3px; background: rgba(255, 255, 255, 0.08); }
.stage-rail-fill { position: absolute; left: 0; top: 0; width: 100%; height: 0; border-radius: 3px; background: linear-gradient(180deg, #ff5a68, var(--accent)); box-shadow: 0 0 16px rgba(225, 29, 46, 0.8); }
.stage-steps { margin-left: 0; }
.stage-left { position: relative; }
.stage-left .stage-rail { left: 0; top: calc(34px + 120px); bottom: 20px; }

.stage-right { position: relative; display: flex; flex-direction: column; align-items: center; gap: 22px; }
.stage-clock {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 18px 10px 12px;
    border-radius: 100px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border-strong);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: border-color 0.4s ease, box-shadow 0.4s ease;
}
.stage-clock.is-done { border-color: rgba(34, 197, 94, 0.5); box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.2), 0 24px 60px -24px rgba(34, 197, 94, 0.7); }
.stage-clock-icon {
    width: 40px; height: 40px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-size: 16px;
    transition: background 0.4s ease;
}
.stage-clock.is-done .stage-clock-icon { background: var(--success); }
.stage-clock-text { display: flex; flex-direction: column; line-height: 1.1; }
.stage-clock-text b { font-size: 30px; font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; transition: color 0.4s ease; }
.stage-clock.is-done .stage-clock-text b { color: #4ade80; }
.stage-clock-text small { font-size: 11.5px; color: var(--text-muted); margin-top: 3px; }

.stage-scene { position: relative; width: 100%; max-width: 560px; height: 480px; }
.stage-cloud {
    position: absolute;
    left: 50%; top: 0;
    width: 120px; height: 120px;
    margin-left: -60px;
    display: flex; align-items: center; justify-content: center;
    color: #ff5a68;
    font-size: 34px;
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.18, 1.4, 0.4, 1);
}
.stage-1 .stage-cloud { opacity: 1; transform: none; }
.stage-ring { position: absolute; inset: 0; transform: rotate(-90deg); }
.stage-ring-track { fill: none; stroke: rgba(255, 255, 255, 0.1); stroke-width: 4; }
.stage-ring-fill { fill: none; stroke: #ff5a68; stroke-width: 4; stroke-linecap: round; stroke-dasharray: 339.3; stroke-dashoffset: 339.3; filter: drop-shadow(0 0 8px rgba(255, 90, 104, 0.8)); }

.stage-file {
    position: absolute;
    left: 50%; top: 92px;
    width: 340px;
    margin-left: -170px;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.03) 100%);
    border: 1px solid var(--border-strong);
    box-shadow: 0 50px 100px -40px rgba(0, 0, 0, 0.95), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    overflow: hidden;
    will-change: transform;
    transition: border-color 0.5s ease, box-shadow 0.5s ease, background 0.5s ease;
}
.stage-4 .stage-file { border-color: rgba(34, 197, 94, 0.55); box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.25), 0 50px 100px -40px rgba(0, 0, 0, 0.95), 0 30px 80px -30px rgba(34, 197, 94, 0.6); background: linear-gradient(180deg, rgba(34, 197, 94, 0.10) 0%, rgba(255, 255, 255, 0.03) 100%); }
.stage-file-head { display: flex; align-items: center; gap: 6px; padding: 12px 14px; border-bottom: 1px solid var(--border); font-size: 12px; }
.stage-file-dot { width: 9px; height: 9px; border-radius: 50%; background: rgba(255, 255, 255, 0.14); }
.stage-file-dot:nth-child(1) { background: #ff5f57; } .stage-file-dot:nth-child(2) { background: #febc2e; } .stage-file-dot:nth-child(3) { background: #28c840; }
.stage-file-name { margin-left: 8px; font-weight: 700; font-family: 'SF Mono', Menlo, Consolas, monospace; letter-spacing: 0.02em; }
.stage-file-size { margin-left: auto; color: var(--text-muted); font-family: 'SF Mono', Menlo, Consolas, monospace; }
.stage-hex { padding: 14px 16px 12px; font-family: 'SF Mono', Menlo, Consolas, monospace; font-size: 11.5px; line-height: 1.85; color: rgba(255, 255, 255, 0.34); min-height: 190px; }
.stage-hex-row { display: flex; gap: 12px; opacity: 0.35; transition: opacity 0.25s ease, color 0.25s ease; white-space: nowrap; }
.stage-hex-row b { color: rgba(255, 90, 104, 0.7); font-weight: 600; }
.stage-hex-row.is-on { opacity: 1; color: rgba(255, 255, 255, 0.75); }
.stage-hex-row.is-hit b { color: #4ade80; }
.stage-hex-row .stage-hex-mod { color: #ff5a68; font-weight: 700; }
.stage-scan {
    position: absolute;
    left: 0; right: 0;
    top: 46px;
    height: 34px;
    background: linear-gradient(180deg, transparent, rgba(255, 90, 104, 0.22), transparent);
    border-top: 1px solid rgba(255, 90, 104, 0.6);
    opacity: 0;
    pointer-events: none;
    will-change: transform;
}
.stage-2 .stage-scan { opacity: 1; }
.stage-found { position: absolute; left: 14px; right: 14px; bottom: 14px; display: flex; flex-wrap: wrap; gap: 6px; }
.stage-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 10px;
    border-radius: 100px;
    background: rgba(34, 197, 94, 0.14);
    border: 1px solid rgba(34, 197, 94, 0.4);
    color: #4ade80;
    font-size: 11.5px;
    font-weight: 700;
    opacity: 0;
    transform: translateY(8px) scale(0.9);
    transition: opacity 0.3s ease, transform 0.4s cubic-bezier(0.18, 1.4, 0.4, 1);
}
.stage-chip.is-on { opacity: 1; transform: none; }
.stage-write { position: absolute; left: 14px; right: 14px; bottom: 14px; padding: 12px 14px; border-radius: 14px; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--border); opacity: 0; transform: translateY(10px); transition: opacity 0.35s ease, transform 0.4s ease; }
.stage-3 .stage-write, .stage-4 .stage-write { opacity: 1; transform: none; }
.stage-write-row { display: flex; justify-content: space-between; font-size: 12px; color: var(--text-secondary); }
.stage-write-row b { color: #fff; font-variant-numeric: tabular-nums; }
.stage-write-bar { height: 5px; margin: 8px 0 10px; border-radius: 5px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.stage-write-bar i { display: block; height: 100%; width: 0; border-radius: 5px; background: linear-gradient(90deg, #ff5a68, var(--accent)); box-shadow: 0 0 12px rgba(255, 90, 104, 0.8); }
.stage-4 .stage-write-bar i { background: var(--success); box-shadow: none; }
.stage-write-chk b.is-ok { color: #4ade80; }
.stage-3 .stage-found, .stage-4 .stage-found { opacity: 0; }
.stage-stamp {
    position: absolute;
    left: 50%; top: 50%;
    display: inline-flex; align-items: center; gap: 10px;
    padding: 10px 18px;
    border: 3px solid #4ade80;
    border-radius: 12px;
    color: #4ade80;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
    background: rgba(6, 6, 10, 0.75);
    backdrop-filter: blur(6px);
    opacity: 0;
    transform: translate(-50%, -50%) scale(2.4) rotate(-14deg);
    pointer-events: none;
}
.stage-modules { position: absolute; right: -10px; top: 120px; display: flex; flex-direction: column; gap: 10px; }
.stage-mod {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 6px 12px 6px 6px;
    border-radius: 100px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--border-strong);
    font-size: 12.5px;
    font-weight: 700;
    opacity: 0;
    transform: translateX(80px);
    transition: opacity 0.35s ease, transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
    box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.9);
}
.stage-mod img { width: 26px; height: 26px; border-radius: 8px; object-fit: contain; background: linear-gradient(180deg, #45454e 0%, #23232a 100%); padding: 3px; }
.stage-mod.is-on { opacity: 1; transform: translateX(-150px); }
.stage-mod.is-in { opacity: 0; transform: translateX(-190px) scale(0.6); }
.stage-download {
    position: absolute;
    left: 50%; bottom: 0;
    transform: translate(-50%, 30px);
    display: inline-flex; align-items: center; gap: 10px;
    height: 54px;
    padding: 0 26px;
    border-radius: 14px;
    background: var(--success);
    color: #fff;
    font-size: 15.5px;
    font-weight: 700;
    box-shadow: 0 20px 44px -16px rgba(34, 197, 94, 0.9);
    opacity: 0;
    transition: opacity 0.35s ease, transform 0.5s cubic-bezier(0.18, 1.4, 0.4, 1);
}
.stage-download.is-on { opacity: 1; transform: translate(-50%, 0); }
.stage-hint {
    position: absolute;
    left: 0; right: 0;
    bottom: -60px;
    display: flex; justify-content: center; align-items: center; gap: 8px;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
    transition: opacity 0.3s ease;
}
.stage-hint i { animation: scrollHintArrow 1.4s ease-in-out infinite; }
.stage-hint.is-off { opacity: 0; }
@keyframes scrollHintArrow { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(5px); } }

.ablauf-summary { padding-top: 72px; }
.ablauf-summary .flow-clock { display: none; }
.ablauf-scrolly.is-static { height: auto; padding: 96px 0; }
.ablauf-scrolly.is-static .ablauf-pin { position: static; height: auto; overflow: visible; border: 0; }
@media (max-width: 1080px), (max-height: 640px) {
    .ablauf-scrolly { display: none; }
    .ablauf-summary { padding-top: 96px; }
    .ablauf-summary .flow-clock { display: flex; }
}
@media (prefers-reduced-motion: reduce) {
    .stage-hint i { animation: none; }
}
.stage-hex { padding-bottom: 104px; }
.stage-file-head { min-width: 0; }
.stage-file-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stage-file-size { white-space: nowrap; flex: 0 0 auto; }
.stage-found { bottom: 16px; }
.stage-write { bottom: 12px; }

/* ---------- Ablauf: Produkt-Demo ---------- */
.demo { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 44px; align-items: center; }
.demo-steps { list-style: none; margin: 0; padding: 0; }
.demo-step {
    display: flex; gap: 16px; align-items: flex-start;
    padding: 12px 0;
    opacity: 0.32;
    transition: opacity 0.35s ease;
}
.demo-step.is-active { opacity: 1; }
.demo-step.is-done { opacity: 0.6; }
.demo-num {
    flex: 0 0 auto;
    width: 40px; height: 40px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border-strong);
    font-size: 14px; font-weight: 800;
    color: var(--text-secondary);
    transition: background 0.35s ease, color 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}
.demo-step.is-active .demo-num { background: var(--accent); border-color: var(--accent); color: #fff; box-shadow: 0 14px 30px -12px rgba(225, 29, 46, 1); }
.demo-step.is-done .demo-num { background: rgba(34, 197, 94, 0.14); border-color: rgba(34, 197, 94, 0.45); color: #4ade80; font-size: 0; }
.demo-step.is-done .demo-num::before { content: '\f00c'; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: 14px; }
.demo-step h3 { font-size: 17px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.25; padding-top: 9px; }
.demo-step p { margin-top: 0; max-width: 380px; font-size: 14px; line-height: 1.55; color: var(--text-secondary); max-height: 0; overflow: hidden; opacity: 0; transition: max-height 0.5s ease, opacity 0.4s ease, margin 0.4s ease; }
.demo-step.is-active p { max-height: 110px; opacity: 1; margin-top: 6px; }
.demo-clock {
    display: inline-flex; align-items: center; gap: 12px;
    margin-top: 22px;
    padding: 10px 18px 10px 12px;
    border-radius: 100px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border-strong);
    transition: border-color 0.4s ease, box-shadow 0.4s ease;
}
.demo-clock.is-done { border-color: rgba(34, 197, 94, 0.5); box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.2), 0 24px 60px -24px rgba(34, 197, 94, 0.7); }
.demo-clock-icon { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--accent); color: #fff; font-size: 16px; transition: background 0.4s ease; }
.demo-clock.is-done .demo-clock-icon { background: var(--success); }
.demo-clock-text { display: flex; flex-direction: column; line-height: 1.1; }
.demo-clock-text b { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; transition: color 0.4s ease; }
.demo-clock.is-done .demo-clock-text b { color: #4ade80; }
.demo-clock-text small { font-size: 11.5px; color: var(--text-muted); margin-top: 3px; }

.demo-frame-wrap { position: relative; width: 100%; }
.demo-frame {
    position: relative;
    width: 720px; height: 470px;
    transform-origin: top left;
    border-radius: 18px;
    background: #0b0b12;
    border: 1px solid var(--border-strong);
    box-shadow: 0 60px 120px -40px rgba(0, 0, 0, 0.95), 0 0 0 1px rgba(255, 255, 255, 0.03), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    overflow: hidden;
    font-size: 13px;
}
.demo-titlebar { height: 38px; display: flex; align-items: center; gap: 7px; padding: 0 14px; border-bottom: 1px solid var(--border); background: rgba(255, 255, 255, 0.03); }
.demo-titlebar span { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, 0.14); }
.demo-titlebar span:nth-child(1) { background: #ff5f57; } .demo-titlebar span:nth-child(2) { background: #febc2e; } .demo-titlebar span:nth-child(3) { background: #28c840; }
.demo-titlebar em { margin-left: 10px; font-style: normal; font-size: 12px; color: var(--text-muted); padding: 4px 12px; border-radius: 100px; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--border); }
.demo-app { display: grid; grid-template-columns: 168px 1fr; height: calc(100% - 38px); }
.demo-nav { padding: 14px 12px; border-right: 1px solid var(--border); background: rgba(255, 255, 255, 0.02); display: flex; flex-direction: column; gap: 6px; }
.demo-nav img { height: 20px; width: auto; align-self: flex-start; margin: 2px 0 12px 4px; }
.demo-nav-item { display: flex; align-items: center; gap: 9px; height: 32px; padding: 0 9px; border-radius: 9px; font-size: 12px; font-weight: 600; color: var(--text-secondary); }
.demo-nav-item i { width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border-radius: 7px; background: rgba(255, 255, 255, 0.06); font-size: 10px; color: var(--text-secondary); }
.demo-nav-item.is-primary { background: var(--accent); color: #fff; box-shadow: 0 10px 20px -10px rgba(225, 29, 46, 0.9); }
.demo-nav-item.is-primary i { background: rgba(255, 255, 255, 0.2); color: #fff; }
.demo-main { position: relative; padding: 14px 20px 18px; overflow: hidden; }
.demo-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.demo-online { display: inline-flex; align-items: center; gap: 7px; padding: 5px 10px; border-radius: 100px; background: rgba(34, 197, 94, 0.12); border: 1px solid rgba(34, 197, 94, 0.3); color: #4ade80; font-size: 11px; font-weight: 700; }
.demo-online i { width: 7px; height: 7px; border-radius: 50%; background: var(--success); animation: livePuls 2.4s ease-out infinite; }
.demo-credit-pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 9px; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--border-strong); font-size: 12px; font-weight: 700; }
.demo-credit-pill i { color: #ff5a68; font-size: 11px; }
.demo-screen { position: absolute; left: 20px; right: 20px; top: 62px; bottom: 18px; opacity: 0; transform: translateY(10px); transition: opacity 0.35s ease, transform 0.4s ease; pointer-events: none; }
.demo-screen.is-on { opacity: 1; transform: none; }
.demo-screen h4 { font-size: 15px; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 12px; }
.demo-drop {
    position: relative;
    height: 300px;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
    border: 2px dashed rgba(255, 255, 255, 0.18);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.02);
    transition: border-color 0.25s ease, background 0.25s ease, transform 0.25s ease;
}
.demo-drop > i { font-size: 40px; color: #ff5a68; margin-bottom: 6px; transition: transform 0.3s cubic-bezier(0.18, 1.4, 0.4, 1); }
.demo-drop b { font-size: 15px; }
.demo-drop span { font-size: 12px; color: var(--text-muted); }
.demo-drop.is-over { border-color: rgba(225, 29, 46, 0.8); background: rgba(225, 29, 46, 0.08); transform: scale(1.01); }
.demo-drop.is-over > i { transform: translateY(-6px) scale(1.15); }
.demo-upload-bar { position: absolute; left: 40px; right: 40px; bottom: 40px; height: 6px; border-radius: 6px; background: rgba(255, 255, 255, 0.08); overflow: hidden; opacity: 0; transition: opacity 0.3s ease; }
.demo-upload-bar i { display: block; height: 100%; width: 0; border-radius: 6px; background: linear-gradient(90deg, #ff5a68, var(--accent)); box-shadow: 0 0 12px rgba(255, 90, 104, 0.8); transition: width 1.3s cubic-bezier(0.25, 0.6, 0.3, 1); }
.demo-drop.is-uploading .demo-upload-bar { opacity: 1; }
.demo-drop.is-uploading .demo-upload-bar i { width: 100%; }
.demo-upload-state { position: absolute; left: 0; right: 0; bottom: 16px; text-align: center; font-size: 12px; font-weight: 600; color: var(--text-secondary); }
.demo-upload-state i { margin-right: 6px; color: #ff5a68; }
.demo-detect {
    display: flex; align-items: center; gap: 14px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(34, 197, 94, 0.08);
    border: 1px solid rgba(34, 197, 94, 0.35);
    margin-bottom: 16px;
    opacity: 0; transform: translateY(-8px);
    transition: opacity 0.35s ease, transform 0.4s ease;
}
.demo-screen.is-on .demo-detect { opacity: 1; transform: none; transition-delay: 0.15s; }
.demo-detect img { width: 46px; height: 32px; object-fit: contain; }
.demo-detect-text { display: flex; flex-direction: column; gap: 2px; line-height: 1.25; }
.demo-detect-text small { font-size: 10.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #4ade80; }
.demo-detect-text b { font-size: 14px; }
.demo-detect-text span { font-size: 12px; color: var(--text-secondary); }
.demo-detect-text em { font-style: normal; color: #4ade80; font-weight: 600; }
.demo-detect > i { margin-left: auto; font-size: 22px; color: #4ade80; }
.demo-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.demo-tile {
    position: relative;
    display: flex; flex-direction: column; align-items: center; gap: 4px;
    padding: 12px 8px 10px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.04);
    border: 2px solid var(--border);
    opacity: 0; transform: translateY(10px);
    transition: opacity 0.3s ease, transform 0.4s cubic-bezier(0.18, 1.4, 0.4, 1), border-color 0.2s ease, background 0.2s ease;
}
.demo-screen.is-on .demo-tile { opacity: 1; transform: none; }
.demo-screen.is-on .demo-tile:nth-child(1) { transition-delay: 0.45s; }
.demo-screen.is-on .demo-tile:nth-child(2) { transition-delay: 0.58s; }
.demo-screen.is-on .demo-tile:nth-child(3) { transition-delay: 0.71s; }
.demo-tile img { width: 44px; height: 44px; object-fit: contain; border-radius: 12px; background: linear-gradient(180deg, #45454e 0%, #23232a 100%); padding: 6px; }
.demo-tile b { font-size: 12.5px; }
.demo-tile small { font-size: 11px; color: var(--text-muted); }
.demo-tile > i { position: absolute; top: 8px; right: 8px; width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--success); color: #fff; font-size: 10px; transform: scale(0); transition: transform 0.3s cubic-bezier(0.18, 1.6, 0.4, 1); }
.demo-tile.is-selected { border-color: rgba(34, 197, 94, 0.7); background: rgba(34, 197, 94, 0.08); }
.demo-tile.is-selected > i { transform: scale(1); }
.demo-cta { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); font-size: 13px; color: var(--text-secondary); }
.demo-cta b { color: #fff; font-size: 15px; }
.demo-btn {
    display: inline-flex; align-items: center; gap: 8px;
    height: 38px; padding: 0 16px;
    border-radius: 10px;
    border: 0;
    background: var(--accent);
    color: #fff;
    font: inherit; font-size: 13px; font-weight: 700;
    box-shadow: 0 12px 26px -12px rgba(225, 29, 46, 1);
    transition: transform 0.15s ease, filter 0.15s ease;
}
.demo-btn.is-pressed { transform: scale(0.94); filter: brightness(1.15); }
.demo-btn-green { background: var(--success); box-shadow: 0 12px 26px -12px rgba(34, 197, 94, 1); height: 46px; padding: 0 22px; font-size: 14px; }
.demo-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.demo-checks li { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border-radius: 12px; background: rgba(255, 255, 255, 0.04); border: 1px solid var(--border); font-size: 13.5px; color: var(--text-muted); transition: color 0.3s ease, border-color 0.3s ease, background 0.3s ease; }
.demo-checks li i { width: 22px; height: 22px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.18); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; transition: background 0.3s ease, border-color 0.3s ease; }
.demo-checks li.is-busy { color: var(--text-primary); border-color: rgba(225, 29, 46, 0.4); }
.demo-checks li.is-busy i { border-color: #ff5a68; border-top-color: transparent; animation: demoSpin 0.8s linear infinite; }
.demo-checks li.is-ok { color: var(--text-primary); border-color: rgba(34, 197, 94, 0.35); background: rgba(34, 197, 94, 0.06); }
.demo-checks li.is-ok i { background: var(--success); border-color: var(--success); }
.demo-checks li.is-ok i::before { content: '\f00c'; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: 10px; color: #fff; }
@keyframes demoSpin { to { transform: rotate(360deg); } }
.demo-work-bar { height: 8px; margin-top: 18px; border-radius: 8px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.demo-work-bar i { display: block; height: 100%; width: 0; border-radius: 8px; background: linear-gradient(90deg, #ff5a68, var(--accent)); box-shadow: 0 0 12px rgba(255, 90, 104, 0.8); transition: width 0.6s ease; }
.demo-work-note { margin-top: 10px; font-size: 12px; color: var(--text-muted); text-align: center; }
.demo-screen-done { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 12px; }
.demo-done-check { width: 76px; height: 76px; border-radius: 50%; background: var(--success); color: #fff; font-size: 34px; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 0 0 10px rgba(34, 197, 94, 0.15), 0 24px 60px -20px rgba(34, 197, 94, 0.9); transform: scale(0); transition: transform 0.5s cubic-bezier(0.18, 1.6, 0.4, 1); }
.demo-screen-done.is-on .demo-done-check { transform: scale(1); transition-delay: 0.1s; }
.demo-screen-done h4 { margin: 4px 0 0; font-size: 20px; }
.demo-done-file { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; border-radius: 10px; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--border-strong); font-family: 'SF Mono', Menlo, Consolas, monospace; font-size: 12px; }
.demo-done-file i { color: #4ade80; }
.demo-done-file small { color: var(--text-muted); }
.demo-toast {
    position: absolute; top: 60px; right: 20px;
    display: flex; align-items: center; gap: 10px;
    padding: 10px 14px;
    border-radius: 12px;
    background: rgba(14, 14, 20, 0.96);
    border: 1px solid rgba(34, 197, 94, 0.45);
    box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.95);
    opacity: 0; transform: translateX(30px);
    transition: opacity 0.3s ease, transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
    z-index: 5;
}
.demo-toast.is-on { opacity: 1; transform: none; }
.demo-toast > i { width: 32px; height: 32px; border-radius: 9px; background: rgba(34, 197, 94, 0.15); color: #4ade80; display: inline-flex; align-items: center; justify-content: center; }
.demo-toast span { display: flex; flex-direction: column; line-height: 1.2; }
.demo-toast b { font-size: 12.5px; }
.demo-toast small { font-size: 11px; color: var(--text-muted); }
.demo-file {
    position: absolute; left: 0; top: 0;
    display: inline-flex; align-items: center; gap: 8px;
    padding: 8px 12px;
    border-radius: 10px;
    background: rgba(20, 20, 28, 0.96);
    border: 1px solid var(--border-strong);
    box-shadow: 0 20px 40px -16px rgba(0, 0, 0, 0.95);
    font-family: 'SF Mono', Menlo, Consolas, monospace;
    font-size: 12px;
    opacity: 0;
    transform: translate(560px, 520px);
    transition: transform 1.3s cubic-bezier(0.3, 0.7, 0.2, 1), opacity 0.3s ease;
    pointer-events: none;
    z-index: 6;
}
.demo-file i { color: #ff5a68; }
.demo-file.is-on { opacity: 1; }
.demo-file.is-dropped { opacity: 0; transition: transform 0.35s ease-in, opacity 0.3s ease; }
.demo-cursor {
    position: absolute; left: 0; top: 0;
    opacity: 0;
    transform: translate(600px, 540px);
    transition: transform 1.3s cubic-bezier(0.3, 0.7, 0.2, 1), opacity 0.3s ease;
    pointer-events: none;
    z-index: 7;
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.7));
}
.demo-cursor.is-on { opacity: 1; }
.demo-cursor svg { display: block; transform-origin: 6px 4px; transition: transform 0.12s ease; }
.demo-cursor.is-click svg { animation: demoClick 0.3s ease; }
.demo-cursor::after {
    content: '';
    position: absolute;
    left: 6px; top: 4px;
    width: 34px; height: 34px;
    margin: -17px 0 0 -17px;
    border-radius: 50%;
    border: 2px solid rgba(255, 90, 104, 0.9);
    background: rgba(225, 29, 46, 0.25);
    opacity: 0;
    transform: scale(0.3);
    pointer-events: none;
}
.demo-cursor.is-click::after { animation: demoRipple 0.55s ease-out; }
@keyframes demoClick { 0%, 100% { transform: scale(1); } 40% { transform: scale(0.82); } }
@keyframes demoRipple { 0% { opacity: 0.9; transform: scale(0.3); } 100% { opacity: 0; transform: scale(1.6); } }
.demo-cursor.is-fast { transition-duration: 0.7s; }

@media (max-width: 1080px) {
    .demo { grid-template-columns: 1fr; gap: 26px; }
    .demo-step p { display: none; }
    .demo-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
}
@media (max-width: 720px) {
    .demo-steps { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .demo-online i, .demo-checks li.is-busy i { animation: none; }
}

section.demo-screen { padding: 0; }
.demo { min-width: 0; }
.demo-frame-wrap { position: relative; min-width: 0; overflow: hidden; }
.demo-frame { position: absolute; left: 0; top: 0; }
@media (max-width: 1080px) { .demo { grid-template-columns: minmax(0, 1fr); } }

.demo-screen-work { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 14px; }
.demo-screen-work h4 { margin: 0; font-size: 18px; }
.demo-spinner { position: relative; width: 84px; height: 84px; margin-bottom: 6px; }
.demo-spinner i { position: absolute; inset: 0; border-radius: 50%; border: 5px solid rgba(255, 255, 255, 0.08); }
.demo-spinner i:last-child { border-color: #ff5a68 transparent transparent transparent; animation: demoSpin 0.9s linear infinite; filter: drop-shadow(0 0 10px rgba(255, 90, 104, 0.7)); }

.demo-tiles { grid-template-columns: repeat(4, 1fr); gap: 8px; }
.demo-tile { padding: 24px 6px 10px; }
.demo-tile img { width: 40px; height: 40px; }
.demo-tile > i { top: 6px; right: 6px; }
.demo-tag {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 2px 7px;
    border-radius: 100px;
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
}
.demo-tag em { font-style: normal; }
.demo-tag i { font-size: 8px; }
.demo-tag-auto { background: rgba(34, 197, 94, 0.16); border: 1px solid rgba(34, 197, 94, 0.45); color: #4ade80; }
.demo-tag-manual { background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.16); color: var(--text-muted); }
.demo-tile .demo-tag { position: absolute; top: 6px; left: 6px; }
.demo-tile.is-manual { opacity: 0.6; border-style: dashed; }
.demo-tile.is-manual img { filter: grayscale(1); }
.demo-tag-big { font-size: 11px; padding: 5px 12px; gap: 6px; }
.demo-tag-big i { font-size: 10px; }
.demo-legend { display: flex; gap: 14px; margin-top: 10px; font-size: 11px; color: var(--text-muted); }
.demo-legend span { display: inline-flex; align-items: center; gap: 6px; }
.demo-legend em { font-style: normal; }
.demo-legend span:first-child i { color: #4ade80; }
.demo-cta { margin-top: 10px; }
