
/* IBM Plex (SIL Open Font License 1.1) - lokal eingebettet.
   Kein Request an Google. Subsets: latin, latin-ext. */
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-400-8450d594.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-400-79936b18.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/ibm-plex-sans-400-600-f0e2925b.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/ibm-plex-sans-400-600-b2c9031d.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Sans Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-condensed-600-fafc81e8.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Sans Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-condensed-600-bac89dc8.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

  html { scroll-behavior: smooth; }
  body { margin: 0; background: var(--bg); font-family: 'IBM Plex Sans', sans-serif; -webkit-font-smoothing: antialiased; }
  a { color: inherit; text-decoration: none; }
  a:hover { color: inherit; }
  ::selection { background: var(--accent); color: var(--on-accent); }
  [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
  [data-reveal][data-shown="1"] { opacity: 1; transform: none; }
  [data-reveal][data-d="1"] { transition-delay: .08s; }
  [data-reveal][data-d="2"] { transition-delay: .16s; }
  [data-reveal][data-d="3"] { transition-delay: .24s; }
  @keyframes rise { from { opacity: 0; transform: translateY(110%) rotate(2deg); } to { opacity: 1; transform: none; } }
  @keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  @keyframes drift { 0%,100% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(4%,-6%,0) scale(1.15); } }
  @keyframes blink { 0%,45% { opacity: 1; } 50%,95% { opacity: .15; } }
  @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } [data-reveal] { opacity: 1 !important; transform: none !important; } }

  /* Die Layout-Styles stehen inline, deshalb brauchen die Umbrüche !important. */
  @media (max-width: 980px) {
    .nav { padding: 14px 22px !important; }
    .nav-right { gap: 14px !important; }
    .nav-link { display: none !important; }
    .hero { padding: 76px 22px 64px !important; }
    .hero-grid { grid-template-columns: 1fr !important; gap: 46px !important; }
    .sec { padding: 74px 22px !important; }
    .split { grid-template-columns: 1fr !important; gap: 46px !important; }
    .footer-row { padding: 26px 22px !important; }
  }
  @media (max-width: 620px) {
    .tl-row { grid-template-columns: 1fr !important; gap: 4px !important; }
    .tl-rail { display: none !important; }
    .tl-years { text-align: left !important; padding-bottom: 4px !important; }
    .tl-body { padding-bottom: 30px !important; border-left: 1px solid rgba(128,128,128,0.25); padding-left: 16px !important; }
    .footer-row { flex-direction: column !important; align-items: flex-start !important; }
  }

:root{--bg:#08080a;--surface:#101014;--surface-hi:#17171d;--nav-bg:rgba(8,8,10,0.72);--ink:#f4f4f2;--muted:#9a9aa2;--accent:#f4f4f2;--on-accent:#08080a;--border:rgba(255,255,255,0.10);--grid:rgba(255,255,255,0.05);--accent-glow:rgba(214,255,75,0.22);--aura1:radial-gradient(closest-side, rgba(214,255,75,0.10), transparent 70%);--aura2:radial-gradient(closest-side, rgba(120,140,255,0.10), transparent 70%);--spot-color:rgba(214,255,75,0.07)}
:root[data-theme="light"]{--bg:#f6f5f0;--surface:#fdfcf8;--surface-hi:#ffffff;--nav-bg:rgba(246,245,240,0.8);--ink:#111311;--muted:#5a615b;--accent:#16443c;--on-accent:#f6f5f0;--border:rgba(0,0,0,0.10);--grid:rgba(0,0,0,0.05);--accent-glow:rgba(22,68,60,0.18);--aura1:radial-gradient(closest-side, rgba(22,68,60,0.10), transparent 70%);--aura2:radial-gradient(closest-side, rgba(120,140,255,0.08), transparent 70%);--spot-color:rgba(22,68,60,0.06)}
[data-hv="hv1"]:hover{border-color: {{ c.accent }};}
[data-hv="hv2"]:hover{color: {{ c.ink }};}
[data-hv="hv3"]:hover{transform: rotate(-25deg) scale(1.08); background: {{ c.surfaceHi }};}
[data-hv="hv4"]:hover{transform: translateY(-2px); box-shadow: 0 10px 30px {{ c.accentGlow }};}
[data-hv="hv5"]:hover{transform: translateY(-3px); box-shadow: 0 14px 36px {{ c.accentGlow }};}
[data-hv="hv6"]:hover{background: {{ c.surfaceHi }}; transform: translateY(-3px);}
[data-hv="hv7"]:hover{transform: translateY(-6px); border-color: {{ c.accent }}; background: {{ c.surfaceHi }};}
[data-hv="hv8"]:hover{transform: translateY(-8px); border-color: {{ c.accent }}; background: {{ c.surfaceHi }};}
[data-hv="hv9"]:hover{transform: translateY(-8px); border-color: {{ c.accent }};}
[data-hv="hv10"]:hover{border-color: {{ c.accent }}; color: {{ c.accent }};}
[data-hv="hv11"]:hover{transform: translateY(-3px); box-shadow: 0 16px 40px {{ c.accentGlow }};}
[data-hv="hv12"]:hover{color: {{ c.accent }};}