/* ============================================================
   TS-RACING v4 — Stylesheet
   Modern · Dark · Purple (#9147FF)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:wght@400;500;600;700&display=swap');

:root {
  --bg:       #07070F;
  --bg2:      #0B0B18;
  --surf:     #101023;
  --surf2:    #16162E;
  --card:     #1A1A38;
  --card2:    #222244;
  --purple:   #9147FF;
  --purple2:  #A968FF;
  --pdim:     rgba(145,71,255,.12);
  --pline:    rgba(145,71,255,.28);
  --red:      #E0182A;
  --green:    #22C55E;
  --gold:     #FFD24A;
  --silver:   #C8D0DC;
  --bronze:   #E08A4A;
  --w:        #ECEEF8;
  --mid:      #9090B4;
  --dim:      #54546E;
  --bdr:      rgba(255,255,255,.08);
  --bdr2:     rgba(255,255,255,.14);
  --D:        'Bebas Neue', sans-serif;
  --S:        'DM Sans', sans-serif;
  --shadow:   0 24px 60px rgba(0,0,0,.5);
  --rad:      14px;
}

* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--S);
  background:var(--bg);
  color:var(--w);
  line-height:1.6;
  overflow-x:hidden;
  min-height:100vh;
}
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
img { max-width:100%; display:block; }
input, select, textarea { font-family:inherit; }

.wrap { max-width:1240px; margin:0 auto; padding:0 1.5rem; }

/* ===== TOP GRADIENT LINE ===== */
.top-line {
  height:3px;
  background:linear-gradient(90deg, var(--purple), var(--red), var(--purple));
  background-size:200% 100%;
  animation:slide 8s linear infinite;
}
@keyframes slide { 0%{background-position:0 0} 100%{background-position:200% 0} }

/* ===== HELPERS ===== */
.spin {
  display:inline-block; width:18px; height:18px;
  border:2px solid var(--pdim); border-top-color:var(--purple);
  border-radius:50%; animation:spin .7s linear infinite;
}
@keyframes spin { to { transform:rotate(360deg); } }
.hidden { display:none !important; }
.msg { padding:.7rem .9rem; border-radius:8px; font-size:.85rem; margin:.6rem 0; }
.msg.err { background:rgba(224,24,42,.1); border:1px solid rgba(224,24,42,.25); color:#ff6b6b; }
.msg.ok  { background:rgba(34,197,94,.1); border:1px solid rgba(34,197,94,.25); color:#5CE08A; }

/* ===== BUTTONS ===== */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--D); letter-spacing:.08em; font-size:1rem;
  padding:.75rem 1.6rem; border-radius:10px; transition:.18s; white-space:nowrap;
}
.btn-primary { background:var(--purple); color:#fff; }
.btn-primary:hover { background:var(--purple2); transform:translateY(-2px); box-shadow:0 8px 24px rgba(145,71,255,.35); }
.btn-ghost { background:rgba(255,255,255,.05); border:1px solid var(--bdr2); color:var(--w); }
.btn-ghost:hover { background:rgba(255,255,255,.1); }
.btn-red { background:var(--red); color:#fff; }
.btn-red:hover { filter:brightness(1.1); }
.btn-sm { padding:.5rem 1rem; font-size:.85rem; }

/* ===== NAVIGATION ===== */
.nav {
  position:sticky; top:0; z-index:1000;
  background:rgba(7,7,15,.85); backdrop-filter:blur(16px);
  border-bottom:1px solid var(--bdr);
}
.nav-inner { display:flex; align-items:center; justify-content:space-between; height:76px; }
.nav-logo { font-family:var(--D); font-size:2.7rem; letter-spacing:.04em; }
.nav-logo .r { color:var(--red); }
.nav-logo img { height:60px; }
.nav-links { display:flex; align-items:center; gap:.3rem; }
.nav-link {
  font-family:var(--D); font-size:1.05rem; letter-spacing:.06em;
  color:var(--mid); padding:.55rem .9rem; border-radius:8px; transition:.15s;
  position:relative;
}
.nav-link:hover, .nav-link.active { color:var(--w); background:rgba(255,255,255,.04); }
.nav-link.active::after {
  content:''; position:absolute; bottom:-1px; left:.9rem; right:.9rem; height:2px;
  background:var(--purple); border-radius:2px;
}

/* Liga Dropdown */
.nav-dd { position:relative; }
.nav-dd-menu {
  position:absolute; top:calc(100% + .5rem); left:0; min-width:190px;
  background:var(--surf2); border:1px solid var(--bdr2); border-radius:12px;
  padding:.4rem; box-shadow:var(--shadow);
  opacity:0; visibility:hidden; transform:translateY(-8px); transition:.18s; z-index:1001;
}
.nav-dd.open .nav-dd-menu { opacity:1; visibility:visible; transform:translateY(0); }
.nav-dd-item {
  display:flex; align-items:center; gap:.6rem; padding:.65rem .8rem;
  border-radius:8px; font-family:var(--D); font-size:1rem; letter-spacing:.05em;
  color:var(--mid); transition:.15s;
}
.nav-dd-item:hover { background:var(--pdim); color:var(--w); }
.nav-dd-dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.nav-chev { transition:transform .2s; display:inline-block; }
.nav-dd.open .nav-chev { transform:rotate(180deg); }

.nav-burger { display:none; flex-direction:column; gap:5px; padding:.5rem; }
.nav-burger span { width:24px; height:2px; background:var(--w); border-radius:2px; transition:.2s; }

/* Mobile nav */
.mob-nav {
  position:fixed; inset:0; z-index:2000; background:rgba(7,7,15,.98);
  backdrop-filter:blur(20px); padding:5rem 1.5rem 2rem;
  transform:translateX(100%); transition:transform .3s; overflow-y:auto;
}
.mob-nav.open { transform:translateX(0); }
.mob-nav-close { position:absolute; top:1.4rem; right:1.5rem; font-size:1.8rem; color:var(--w); }
.mob-link {
  display:block; font-family:var(--D); font-size:1.6rem; letter-spacing:.05em;
  color:var(--w); padding:.9rem 0; border-bottom:1px solid var(--bdr);
}
.mob-sub { padding-left:1.2rem; }
.mob-sub .mob-link { font-size:1.3rem; color:var(--mid); }

/* ===== TICKER ===== */
.ticker {
  background:var(--purple); overflow:hidden; white-space:nowrap; padding:.55rem 0;
}
.ticker-track { display:inline-block; animation:ticker 30s linear infinite; }
.ticker-track span { font-family:var(--D); font-size:.95rem; letter-spacing:.2em; color:#fff; padding:0 1.5rem; }
@keyframes ticker { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* ===== PAGES ===== */
.page { display:none; min-height:60vh; }
.page.active { display:block; animation:fade .3s; }
@keyframes fade { from{opacity:0} to{opacity:1} }

/* ===== HERO (HOME) ===== */
.hero {
  position:relative; min-height:88vh; display:flex; align-items:center;
  overflow:hidden; border-bottom:1px solid var(--bdr);
}
.hero-bg {
  position:absolute; inset:0;
  background:var(--hero-img, linear-gradient(135deg,#13132B,#0A0A18));
  background-size:cover; background-position:center; opacity:.5;
}
.hero-bg::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(7,7,15,.4) 0%, var(--bg) 100%);
}
.hero-content { position:relative; z-index:2; }
.hero-badge {
  display:inline-block; font-family:var(--D); font-size:.8rem; letter-spacing:.25em;
  color:var(--purple); border:1px solid var(--pline); border-radius:100px;
  padding:.45rem 1.2rem; margin-bottom:1.5rem;
}
.hero h1 {
  font-family:var(--D); font-size:clamp(3.5rem, 11vw, 8rem); line-height:.92;
  letter-spacing:.02em; margin-bottom:1rem;
}
.hero h1 .accent { color:var(--purple); }
.hero-sub { font-size:1.15rem; color:var(--mid); max-width:540px; margin-bottom:2rem; letter-spacing:.02em; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }

/* ===== STATS BAR ===== */
.stats-bar {
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--bdr); border:1px solid var(--bdr); border-radius:var(--rad);
  overflow:hidden; margin:3rem 0;
}
.stat { background:var(--surf); padding:2rem 1rem; text-align:center; }
.stat-v { font-family:var(--D); font-size:2.6rem; color:var(--purple); line-height:1; }
.stat-l { font-size:.78rem; letter-spacing:.15em; text-transform:uppercase; color:var(--mid); margin-top:.5rem; }

/* ===== SECTION ===== */
.section { padding:5rem 0; }
.section-head { margin-bottom:2.5rem; }
.section-label { font-family:var(--D); font-size:.8rem; letter-spacing:.25em; color:var(--purple); text-transform:uppercase; }
.section-title { font-family:var(--D); font-size:clamp(2.2rem,5vw,3.4rem); letter-spacing:.02em; line-height:1; margin-top:.4rem; }

/* ===== LINEUP / DRIVER CARDS ===== */
.lineup-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.5rem; }
.driver-card {
  background:var(--surf); border:1px solid var(--bdr); border-radius:var(--rad);
  overflow:hidden; cursor:pointer; transition:.26s;
}
.driver-card:hover { transform:translateY(-6px); border-color:var(--pline); box-shadow:var(--shadow); }
.dc-photo { aspect-ratio:3/4; position:relative; overflow:hidden; background:linear-gradient(135deg,var(--card),var(--card2)); }
.dc-photo img { width:100%; height:100%; object-fit:cover; }
.dc-photo-ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--D); font-size:5rem; color:var(--dim); }
.dc-num {
  position:absolute; top:1rem; right:1rem; font-family:var(--D); font-size:2.2rem;
  color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.6); line-height:1;
}
.dc-team-badge {
  position:absolute; top:1rem; left:1rem; font-family:var(--D); font-size:.7rem;
  letter-spacing:.1em; background:var(--purple); color:#fff; padding:.25rem .6rem; border-radius:5px;
}
.dc-info { padding:1.2rem; }
.dc-name { font-family:var(--D); font-size:1.5rem; letter-spacing:.03em; }
.dc-role { font-size:.82rem; color:var(--purple); letter-spacing:.05em; }
.dc-sims { display:flex; gap:.4rem; margin-top:.7rem; flex-wrap:wrap; }
.dc-sim { font-size:.68rem; letter-spacing:.08em; background:var(--pdim); color:var(--purple2); padding:.2rem .55rem; border-radius:5px; text-transform:uppercase; }

/* ===== NEWS ===== */
.news-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:1.5rem; }
.news-card {
  background:var(--surf); border:1px solid var(--bdr); border-radius:var(--rad);
  overflow:hidden; cursor:pointer; transition:.26s; display:flex; flex-direction:column;
}
.news-card:hover { transform:translateY(-5px); border-color:var(--pline); }
.nc-img { aspect-ratio:16/9; background:linear-gradient(135deg,var(--card),var(--card2)); overflow:hidden; }
.nc-img img { width:100%; height:100%; object-fit:cover; }
.nc-body { padding:1.3rem; flex:1; display:flex; flex-direction:column; }
.nc-cat { font-family:var(--D); font-size:.7rem; letter-spacing:.15em; color:var(--purple); text-transform:uppercase; }
.nc-title { font-family:var(--D); font-size:1.4rem; letter-spacing:.02em; margin:.4rem 0; line-height:1.1; }
.nc-excerpt { font-size:.88rem; color:var(--mid); flex:1; }
.nc-date { font-size:.75rem; color:var(--dim); margin-top:.8rem; }

/* ===== SPONSORS (größer) ===== */
.sponsors-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1.5rem;
  align-items:center;
}
.sponsor-card {
  background:var(--surf); border:1px solid var(--bdr); border-radius:var(--rad);
  padding:2rem 1.5rem; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.9rem;
  min-height:140px; transition:.2s; text-decoration:none;
}
.sponsor-card:hover { border-color:var(--pline); background:var(--surf2); }
.sponsor-card img { max-height:80px; max-width:100%; object-fit:contain; filter:grayscale(.3); transition:.2s; }
.sponsor-card:hover img { filter:grayscale(0); }
.sponsor-name { font-family:var(--D); letter-spacing:.05em; font-size:1.05rem; color:var(--w); text-align:center; line-height:1.1; }

/* ===== Sponsoren im Footer (auf jeder Seite, gleiche Optik wie Startseite) ===== */
.footer-sponsors { border-top:1px solid var(--bdr); margin-top:2rem; padding-top:2rem; }
.footer-sponsors-label { font-family:var(--D); letter-spacing:.1em; font-size:.85rem; text-transform:uppercase; color:var(--dim); text-align:center; margin-bottom:1.4rem; }
.footer-sponsors-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1.5rem; align-items:stretch; }
.footer-sponsor {
  background:var(--surf); border:1px solid var(--bdr); border-radius:var(--rad);
  padding:2rem 1.5rem; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.9rem;
  min-height:140px; transition:.2s; text-decoration:none;
}
.footer-sponsor:hover { border-color:var(--pline); background:var(--surf2); }
.footer-sponsor img { max-height:80px; max-width:100%; object-fit:contain; filter:grayscale(.3); transition:.2s; }
.footer-sponsor:hover img { filter:grayscale(0); }
.footer-sponsor-name { font-family:var(--D); letter-spacing:.05em; font-size:1.05rem; color:var(--w); text-align:center; line-height:1.1; }

/* ===== FOOTER ===== */
.footer { background:var(--bg2); border-top:1px solid var(--bdr); padding:4rem 0 2rem; margin-top:4rem; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:2rem; margin-bottom:3rem; }
.footer-logo { font-family:var(--D); font-size:1.8rem; }
.footer-logo .r { color:var(--red); }
.footer h4 { font-family:var(--D); font-size:1rem; letter-spacing:.1em; color:var(--w); margin-bottom:1rem; }
.footer ul { list-style:none; }
.footer li { margin-bottom:.6rem; }
.footer a { font-size:.88rem; color:var(--mid); transition:.15s; }
.footer a:hover { color:var(--purple2); }
.footer-social { display:flex; gap:.8rem; margin-top:1rem; }
.footer-social a {
  width:40px; height:40px; border-radius:10px; background:var(--surf);
  border:1px solid var(--bdr); display:flex; align-items:center; justify-content:center; transition:.2s;
}
.footer-social a:hover { background:var(--purple); border-color:var(--purple); }
.footer-bot { border-top:1px solid var(--bdr); padding-top:1.5rem; text-align:center; color:var(--dim); font-size:.82rem; }

/* ===== MODAL / OVERLAY ===== */
.ov {
  position:fixed; inset:0; z-index:3000; background:rgba(0,0,0,.7); backdrop-filter:blur(6px);
  display:none; align-items:flex-start; justify-content:center; padding:5vh 1rem; overflow-y:auto;
}
.ov.open { display:flex; }
.modal {
  background:var(--surf); border:1px solid var(--bdr2); border-radius:var(--rad);
  width:100%; max-width:480px; box-shadow:var(--shadow); animation:modalin .25s;
}
@keyframes modalin { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
.modal-hd { display:flex; align-items:center; justify-content:space-between; padding:1.3rem 1.5rem; border-bottom:1px solid var(--bdr); }
.modal-hd h2 { font-family:var(--D); font-size:1.5rem; letter-spacing:.04em; }
.modal-x { font-size:1.5rem; color:var(--mid); transition:.15s; }
.modal-x:hover { color:var(--w); }
.modal-body { padding:1.5rem; }

/* ===== FORMS ===== */
.field { margin-bottom:1rem; }
.field label { display:block; font-family:var(--D); font-size:.78rem; letter-spacing:.1em; color:var(--mid); margin-bottom:.4rem; text-transform:uppercase; }
.input {
  width:100%; background:var(--bg2); border:1px solid var(--bdr2); color:var(--w);
  padding:.7rem .9rem; border-radius:9px; font-size:.92rem; transition:.15s;
}
.input:focus { outline:none; border-color:var(--purple); }
textarea.input { resize:vertical; min-height:90px; }
select.input { cursor:pointer; }

/* ===== AUTH TABS ===== */
.auth-tabs { display:flex; border-bottom:1px solid var(--bdr); margin-bottom:1.3rem; }
.auth-tab {
  flex:1; font-family:var(--D); font-size:.82rem; letter-spacing:.08em;
  padding:.7rem .5rem; color:var(--mid); border-bottom:2px solid transparent; transition:.15s;
}
.auth-tab.active { color:var(--w); border-bottom-color:var(--purple); }
.auth-panel { display:none; flex-direction:column; gap:.2rem; }
.auth-panel.active { display:flex; }

/* ===== PAGE HERO (sub-pages) ===== */
.phero { padding:7rem 0 3.5rem; background:linear-gradient(180deg,var(--bg2),var(--bg)); border-bottom:1px solid var(--bdr); position:relative; overflow:hidden; }
.phero-ghost {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  font-family:var(--D); font-size:clamp(8rem,25vw,20rem); color:rgba(145,71,255,.04);
  white-space:nowrap; pointer-events:none; letter-spacing:.05em;
}
.phero-content { position:relative; z-index:2; }
.phero h1 { font-family:var(--D); font-size:clamp(2.8rem,8vw,5rem); letter-spacing:.02em; line-height:1; }
.phero h1 .accent { color:var(--purple); }

/* ===== RESPONSIVE ===== */
@media (max-width:900px) {
  .nav-links { display:none; }
  .nav-burger { display:flex; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .stats-bar { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px) {
  .footer-grid { grid-template-columns:1fr; }
  .nav-logo { font-size:2.2rem; }
  .nav-logo img { height:48px; }
  .hero h1 { font-size:3.2rem; }
  .wrap { padding:0 1.1rem; }
}

/* ===== TWITCH LIVE ===== */
#tw-bar{background:linear-gradient(90deg,#9146FF,#7b2ff7);color:#fff;padding:.6rem 0;cursor:pointer;position:sticky;top:0;z-index:90;animation:twSlide .4s ease}
@keyframes twSlide{from{transform:translateY(-100%)}to{transform:translateY(0)}}
.tw-live-dot{width:9px;height:9px;border-radius:50%;background:#ff3b30;box-shadow:0 0 0 0 rgba(255,59,48,.7);animation:twPulse 1.6s infinite;flex-shrink:0;display:inline-block}
@keyframes twPulse{0%{box-shadow:0 0 0 0 rgba(255,59,48,.7)}70%{box-shadow:0 0 0 8px rgba(255,59,48,0)}100%{box-shadow:0 0 0 0 rgba(255,59,48,0)}}
.tw-tab{font-family:var(--D);letter-spacing:.05em;font-size:.82rem;padding:.4rem .85rem;border-radius:8px;background:var(--surf);border:1px solid var(--bdr);color:var(--mid);cursor:pointer;display:flex;align-items:center;gap:.4rem;white-space:nowrap}
.tw-tab.active{background:#9146FF;border-color:#9146FF;color:#fff}
.tw-tab .tw-live-dot{width:7px;height:7px}

/* ===== HOME: Über uns + Grids responsiv ===== */
@media(max-width:780px){
  .about-grid{grid-template-columns:1fr !important;gap:1.5rem !important}
  #home-about-img-wrap{min-height:auto;max-height:280px}
  #home-about-img-wrap.is-empty{display:none !important}
}

/* ===== COUNTDOWN ===== */
.cd-card{position:relative;background:linear-gradient(135deg,rgba(145,71,255,.18),rgba(20,20,46,.95));border:1px solid var(--pline);border-radius:var(--rad);padding:1.5rem 1.8rem;overflow:hidden;box-shadow:0 20px 50px -20px rgba(145,71,255,.5)}
.cd-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(145,71,255,.25),transparent 60%);pointer-events:none}
.cd-card.is-live{background:linear-gradient(135deg,rgba(224,24,42,.22),rgba(20,20,46,.95));border-color:rgba(224,24,42,.5);box-shadow:0 20px 50px -20px rgba(224,24,42,.55)}
.cd-top{display:flex;align-items:center;gap:.6rem;margin-bottom:.9rem;position:relative;z-index:2}
.cd-label{font-family:var(--D);letter-spacing:.18em;font-size:.72rem;text-transform:uppercase;color:var(--purple)}
.cd-card.is-live .cd-label{color:#ff5b66}
.cd-main{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;position:relative;z-index:2}
.cd-info{flex:1;min-width:200px}
.cd-race-title{font-family:var(--D);font-size:1.9rem;line-height:1;letter-spacing:.02em;margin-bottom:.3rem}
.cd-race-meta{color:var(--mid);font-size:.9rem}
.cd-race-meta .cd-sim-dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle;margin-right:.4rem}
.cd-timer{display:flex;gap:.6rem}
.cd-unit{text-align:center;min-width:62px}
.cd-num{font-family:var(--D);font-size:2.6rem;line-height:1;color:#fff;background:rgba(0,0,0,.25);border-radius:10px;padding:.35rem .2rem;font-variant-numeric:tabular-nums}
.cd-unit-l{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mid);margin-top:.35rem}
.cd-live-badge{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--D);letter-spacing:.1em;font-size:1.3rem;color:#fff;background:var(--red);padding:.5rem 1.1rem;border-radius:10px;animation:cdPulse 1.4s infinite}
@keyframes cdPulse{0%,100%{opacity:1}50%{opacity:.7}}
.cd-cta{position:relative;z-index:2;margin-top:1rem;display:inline-flex}
@media(max-width:620px){
  .cd-num{font-size:2rem;min-width:0}
  .cd-unit{min-width:50px}
  .cd-race-title{font-size:1.5rem}
  .cd-main{gap:1rem}
}

/* ===== LIGHTBOX ===== */
.lb-overlay{position:fixed;inset:0;z-index:9999;background:rgba(7,7,15,.96);display:none;align-items:center;justify-content:center;animation:lbFade .2s ease}
@keyframes lbFade{from{opacity:0}to{opacity:1}}
.lb-stage{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;position:relative}
#lb-img{max-width:92vw;max-height:82vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.lb-cap{margin-top:1rem;color:#fff;font-size:.95rem;text-align:center;max-width:80vw}
.lb-count{position:absolute;top:1.2rem;left:50%;transform:translateX(-50%);font-family:var(--D);letter-spacing:.1em;color:rgba(255,255,255,.7);font-size:.85rem}
.lb-close{position:absolute;top:1rem;right:1.2rem;z-index:2;background:rgba(255,255,255,.1);color:#fff;border:none;width:44px;height:44px;border-radius:50%;font-size:1.3rem;cursor:pointer;transition:background .2s}
.lb-close:hover{background:rgba(255,255,255,.25)}
.lb-nav{z-index:2;background:rgba(255,255,255,.08);color:#fff;border:none;width:54px;height:54px;border-radius:50%;font-size:2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;margin:0 .6rem;flex-shrink:0;transition:background .2s}
.lb-nav:hover{background:var(--purple)}
.gal-item:hover img{transform:scale(1.05)}
@media(max-width:620px){
  .lb-nav{width:42px;height:42px;font-size:1.5rem;margin:0 .2rem}
  .lb-close{top:.6rem;right:.6rem}
}

/* ============================================================
   RENNKARTEN — Esport-Look
   ============================================================ */
.rcard{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--bdr);margin-bottom:1.2rem;background:var(--surf);transition:transform .25s,border-color .25s,box-shadow .25s}
.rcard:hover{transform:translateY(-4px);border-color:var(--pline);box-shadow:0 24px 50px -20px rgba(145,71,255,.45)}
.rcard-banner{position:relative;height:200px;background-size:cover;background-position:center;display:flex;align-items:flex-end}
.rcard-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,7,15,.1) 0%,rgba(7,7,15,.55) 55%,rgba(16,16,35,.96) 100%)}
.rcard-simbar{position:absolute;top:0;left:0;right:0;height:4px;z-index:3}
.rcard-top{position:absolute;top:1rem;left:1rem;right:1rem;display:flex;justify-content:space-between;align-items:flex-start;z-index:3}
.rcard-round{font-family:var(--D);letter-spacing:.08em;background:rgba(7,7,15,.6);backdrop-filter:blur(6px);border:1px solid var(--bdr2);color:#fff;padding:.35rem .8rem;border-radius:8px;font-size:.82rem}
.rcard-status{font-family:var(--D);letter-spacing:.06em;padding:.35rem .8rem;border-radius:8px;font-size:.72rem;text-transform:uppercase;backdrop-filter:blur(6px)}
.rcard-st-upcoming{background:rgba(145,71,255,.25);border:1px solid var(--pline);color:#c9a8ff}
.rcard-st-completed{background:rgba(34,197,94,.2);border:1px solid rgba(34,197,94,.4);color:#7ee6a3}
.rcard-st-live{background:var(--red);color:#fff;animation:cdPulse 1.4s infinite}
.rcard-titlewrap{position:relative;z-index:3;padding:1.3rem 1.4rem;width:100%}
.rcard-title{font-family:var(--D);font-size:2rem;line-height:.98;letter-spacing:.02em;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.5)}
.rcard-track{display:flex;align-items:center;gap:.4rem;color:var(--purple2);font-size:.92rem;margin-top:.3rem;font-weight:600}
.rcard-body{padding:1.1rem 1.4rem}
.rcard-meta{display:flex;flex-wrap:wrap;gap:1.2rem;margin-bottom:1rem}
.rcard-meta-item{display:flex;flex-direction:column;gap:.1rem}
.rcard-meta-k{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.rcard-meta-v{font-size:.92rem;color:var(--w);font-weight:600}
.rcard-cd{display:inline-flex;align-items:center;gap:.45rem;background:var(--pdim);border:1px solid var(--pline);color:var(--purple2);padding:.4rem .8rem;border-radius:8px;font-family:var(--D);letter-spacing:.05em;font-size:.85rem;margin-bottom:1rem}

/* ============================================================
   PODIUM — Top 3 dramatisch
   ============================================================ */
.podium{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:.8rem;align-items:end;margin:0 0 1.8rem;max-width:640px}
.pod{position:relative;border-radius:14px;overflow:hidden;background:var(--surf2);border:1px solid var(--bdr);padding:1.1rem .8rem;text-align:center}
.pod-1{border-color:rgba(255,210,74,.5);background:linear-gradient(180deg,rgba(255,210,74,.14),var(--surf2));box-shadow:0 16px 40px -16px rgba(255,210,74,.4)}
.pod-2{border-color:rgba(200,208,220,.4);background:linear-gradient(180deg,rgba(200,208,220,.1),var(--surf2))}
.pod-3{border-color:rgba(224,138,74,.4);background:linear-gradient(180deg,rgba(224,138,74,.1),var(--surf2))}
.pod-pos{font-family:var(--D);font-size:1.5rem;line-height:1}
.pod-1 .pod-pos{color:var(--gold)}.pod-2 .pod-pos{color:var(--silver)}.pod-3 .pod-pos{color:var(--bronze)}
.pod-av{width:64px;height:64px;border-radius:50%;object-fit:cover;margin:.6rem auto .5rem;border:2px solid var(--bdr2)}
.pod-1 .pod-av{width:78px;height:78px;border-color:var(--gold)}
.pod-av-ph{width:64px;height:64px;border-radius:50%;background:var(--card);margin:.6rem auto .5rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem}
.pod-name{font-family:var(--D);font-size:1.05rem;letter-spacing:.02em;color:#fff;line-height:1.1}
.pod-team{font-size:.7rem;color:var(--mid);margin-top:.15rem}
.pod-time{font-size:.78rem;color:var(--purple2);margin-top:.4rem;font-variant-numeric:tabular-nums}
.pod-pts{display:inline-block;margin-top:.5rem;font-family:var(--D);font-size:1.1rem;color:#fff;background:rgba(145,71,255,.2);border:1px solid var(--pline);padding:.1rem .6rem;border-radius:6px}
.pod-crown{position:absolute;top:.5rem;left:50%;transform:translateX(-50%);font-size:1.1rem}
@media(max-width:560px){
  .podium{grid-template-columns:1fr;max-width:340px;margin-left:auto;margin-right:auto}
  .pod{display:flex;align-items:center;gap:.9rem;text-align:left;padding:.8rem}
  .pod-av,.pod-1 .pod-av,.pod-av-ph{margin:0;width:48px;height:48px}
  .pod-crown{display:none}
  .pod-pts{margin-top:0;margin-left:auto}
}

/* Ergebnis-Tabelle aufgewertet */
.restable{width:100%;border-collapse:collapse;min-width:520px}
.restable thead tr{background:var(--surf2)}
.restable th{padding:.7rem .8rem;font-size:.68rem;letter-spacing:.08em;color:var(--mid);text-transform:uppercase}
.restable tbody tr{border-bottom:1px solid var(--bdr);transition:background .15s}
.restable tbody tr:hover{background:rgba(145,71,255,.05)}
.restable .rt-pos{font-family:var(--D);font-size:1.05rem;width:46px;text-align:center}
.restable .rt-p1{color:var(--gold)}.restable .rt-p2{color:var(--silver)}.restable .rt-p3{color:var(--bronze)}

/* ============================================================
   COOKIE-BANNER (DSGVO) — erscheint nur wenn Analytics aktiv
   ============================================================ */
#cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:var(--surf);border-top:1px solid var(--pline);box-shadow:0 -10px 40px rgba(0,0,0,.5);padding:1.2rem 1.4rem;display:none}
#cookie-banner.show{display:block;animation:cbUp .35s ease}
@keyframes cbUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.cb-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}
.cb-text{flex:1;min-width:240px;color:var(--mid);font-size:.86rem;line-height:1.6}
.cb-text strong{color:var(--w);font-family:var(--D);letter-spacing:.04em;font-size:1rem;display:block;margin-bottom:.2rem}
.cb-text a{color:var(--purple2);text-decoration:underline}
.cb-btns{display:flex;gap:.6rem;flex-wrap:wrap}
.cb-btns button{font-family:var(--D);letter-spacing:.05em;padding:.6rem 1.3rem;border-radius:8px;cursor:pointer;font-size:.9rem;border:1px solid var(--bdr2);transition:.15s}
.cb-accept{background:var(--purple);color:#fff;border-color:var(--purple)}
.cb-accept:hover{background:var(--purple2)}
.cb-decline{background:transparent;color:var(--mid)}
.cb-decline:hover{color:var(--w);border-color:var(--w)}
@media(max-width:560px){.cb-inner{flex-direction:column;align-items:stretch}.cb-btns button{flex:1}}

/* ===== Lineup Team-Filter ===== */
.lineup-filters { display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap; margin-bottom:2rem; }
.lineup-filter {
  font-family:var(--D); letter-spacing:.05em; font-size:.95rem;
  background:var(--surf); color:var(--mid); border:1px solid var(--bdr);
  border-radius:10px; padding:.55rem 1.3rem; cursor:pointer; transition:.18s;
}
.lineup-filter:hover { color:var(--w); border-color:var(--bdr2); }
.lineup-filter.active { background:var(--purple); color:#fff; border-color:var(--purple); }
