/*
Theme Name: Quiznacht
Theme URI: https://jugendleiter-blog.de/
Author: Daniel
Description: Reduziertes, modernes Dark-Theme als Begleiter zur Quiz Engine. Greift die Bühnen-Optik des Players auf (Spotlight-Glow, Akzentfarbe, Display/Mono-Typo). Startseite zeigt alle Quizze. Farben im Customizer anpassbar. Keine externen Requests (DSGVO).
Version: 1.1.4
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: quiznacht
*/

/* ---- tokens (überschrieben durch Customizer in wp_head) ---- */
:root{
  --qet-primary:#2f6bff;
  --qet-bg:#090b14;
  --qet-ink:#f3f5ff;
  --qet-dim:rgba(243,245,255,.60);
  --qet-faint:rgba(243,245,255,.34);
  --qet-line:rgba(255,255,255,.10);
  --qet-surface:rgba(255,255,255,.04);
  --qet-glow:color-mix(in srgb,var(--qet-primary) 70%,transparent);
  --qet-tint:color-mix(in srgb,var(--qet-primary) 16%,transparent);
  --qet-tint-strong:color-mix(in srgb,var(--qet-primary) 26%,transparent);
  --qet-display:ui-sans-serif,system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --qet-body:ui-sans-serif,system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --qet-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --qet-content:1200px;
  --qet-radius:20px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--qet-bg);color:var(--qet-ink);
  font-family:var(--qet-body);line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  min-height:100vh;overflow-x:hidden;
}
h1,h2,h3,h4,.site-brand{font-family:var(--qet-display)}
a{color:var(--qet-primary);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}
:focus-visible{outline:2px solid var(--qet-primary);outline-offset:3px;border-radius:4px}

/* ambient spotlight */
.qet-spot{position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 50% at 50% -5%,var(--qet-glow) 0%,transparent 60%),
    radial-gradient(80% 60% at 50% 115%,color-mix(in srgb,var(--qet-primary) 18%,transparent),transparent 70%);
  opacity:.36}

.wrap{max-width:var(--qet-content);margin-inline:auto;padding-inline:clamp(18px,4vw,40px)}

.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--qet-primary);color:#fff;padding:10px 16px;border-radius:0 0 8px 0}
.skip-link:focus{left:0;text-decoration:none}

/* ---- header ---- */
.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px);
  background:color-mix(in srgb,var(--qet-bg) 72%,transparent);border-bottom:1px solid var(--qet-line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:68px}
.site-brand{display:inline-flex;align-items:center;gap:12px;font-weight:800;font-size:1.15rem;letter-spacing:-.01em;color:var(--qet-ink)}
.site-brand:hover{text-decoration:none}
.site-brand img{max-height:34px;width:auto}
.site-brand .qet-dot{width:10px;height:10px;border-radius:50%;background:var(--qet-primary);box-shadow:0 0 12px var(--qet-glow)}
.main-nav ul{list-style:none;display:flex;gap:8px;margin:0;padding:0;flex-wrap:wrap}
.main-nav a{font-family:var(--qet-mono);font-size:13px;letter-spacing:.02em;color:var(--qet-dim);padding:8px 12px;border-radius:9px}
.main-nav a:hover{color:var(--qet-ink);background:var(--qet-surface);text-decoration:none}
.main-nav .current-menu-item>a{color:var(--qet-ink)}

/* ---- hero ---- */
.hero{padding:clamp(48px,9vw,120px) 0 clamp(28px,4vw,52px);text-align:center}
.hero .eyebrow{font-family:var(--qet-mono);font-size:clamp(11px,1.4vw,14px);letter-spacing:.28em;text-transform:uppercase;color:var(--qet-primary);margin:0 0 18px}
.hero h1{font-weight:800;font-size:clamp(2.8rem,9vw,6.5rem);line-height:.92;letter-spacing:-.035em;margin:0;
  color:var(--qet-ink);text-shadow:0 0 70px color-mix(in srgb,var(--qet-primary) 28%,transparent)}
.hero p{max-width:54ch;margin:20px auto 0;color:var(--qet-dim);font-size:clamp(1rem,2.2vw,1.35rem)}

/* ---- quiz grid ---- */
.section-label{display:flex;align-items:center;gap:12px;font-family:var(--qet-mono);font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--qet-faint);margin:clamp(20px,4vw,40px) 0 18px}
.section-label::after{content:"";flex:1;height:1px;background:var(--qet-line)}

.quiz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:clamp(16px,2vw,24px);padding-bottom:clamp(40px,6vw,80px)}
.quiz-card{position:relative;display:flex;flex-direction:column;gap:14px;isolation:isolate;
  padding:clamp(20px,2.4vw,28px);border:1px solid var(--qet-line);border-radius:var(--qet-radius);
  background:var(--qet-surface);overflow:hidden;color:inherit;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s,opacity .5s}
.quiz-card::before{content:"";position:absolute;z-index:-1;top:-40%;right:-30%;width:70%;height:80%;
  background:radial-gradient(circle,var(--card,var(--qet-primary)),transparent 70%);opacity:.18;transition:opacity .3s}
.quiz-card:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--card,var(--qet-primary)) 60%,transparent);
  box-shadow:0 24px 60px -28px color-mix(in srgb,var(--card,var(--qet-primary)) 80%,transparent);text-decoration:none}
.quiz-card:hover::before{opacity:.32}
.quiz-card .qc-eyebrow{font-family:var(--qet-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--card,var(--qet-primary))}
.quiz-card h2{margin:0;font-weight:800;font-size:clamp(1.4rem,2.4vw,1.95rem);line-height:1.08;letter-spacing:-.02em;color:var(--qet-ink)}
.quiz-card .qc-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}
.qc-tag{font-family:var(--qet-mono);font-size:10px;letter-spacing:.02em;color:var(--qet-faint);border:1px solid var(--qet-line);border-radius:7px;padding:3px 7px}
.quiz-card .qc-cta{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin-top:6px;
  font-family:var(--qet-mono);font-size:13px;color:var(--qet-ink);
  background:color-mix(in srgb,var(--card,var(--qet-primary)) 22%,transparent);
  border:1px solid color-mix(in srgb,var(--card,var(--qet-primary)) 55%,transparent);
  padding:9px 15px;border-radius:11px;transition:.25s}
.quiz-card:hover .qc-cta{background:var(--card,var(--qet-primary));border-color:transparent;color:#fff}
.quiz-card .qc-thumb{margin:-4px -4px 4px;border-radius:14px;overflow:hidden;border:1px solid var(--qet-line);aspect-ratio:16/9}
.quiz-card .qc-thumb img{width:100%;height:100%;object-fit:cover}
.quiz-card .qc-lock{position:absolute;top:14px;right:14px;z-index:2;width:34px;height:34px;display:grid;place-items:center;
  font-size:15px;line-height:1;border-radius:10px;background:color-mix(in srgb,var(--qet-bg) 70%,transparent);
  border:1px solid var(--qet-line);backdrop-filter:blur(4px)}

/* card reveal animation */
.quiz-card.qet-reveal{opacity:0;transform:translateY(18px)}
.quiz-card.qet-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.quiz-card.qet-reveal{opacity:1;transform:none}}

/* ---- empty state ---- */
.qet-empty{text-align:center;max-width:600px;margin:clamp(30px,6vw,70px) auto;padding:40px;border:1px dashed var(--qet-line);border-radius:var(--qet-radius)}
.qet-empty h2{font-size:clamp(1.6rem,4vw,2.4rem);margin:0 0 12px}
.qet-empty p{color:var(--qet-dim);margin:0}

/* ---- pagination ---- */
.qet-pagination{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding-bottom:clamp(40px,6vw,80px)}
.qet-pagination .page-numbers{font-family:var(--qet-mono);font-size:14px;color:var(--qet-dim);border:1px solid var(--qet-line);
  border-radius:10px;padding:8px 13px;text-decoration:none}
.qet-pagination .page-numbers.current{background:var(--qet-tint-strong);color:var(--qet-ink);border-color:var(--qet-glow)}
.qet-pagination .page-numbers:hover{color:var(--qet-ink)}

/* ---- generic content (pages / posts / 404) ---- */
.content{padding:clamp(40px,7vw,96px) 0}
.content .entry{max-width:760px;margin-inline:auto}
.content h1{font-weight:800;font-size:clamp(2rem,5vw,3.4rem);line-height:1.05;letter-spacing:-.02em;margin:0 0 .5em}
.content h2{font-weight:700;margin:1.4em 0 .5em}
.content p,.content li{color:color-mix(in srgb,var(--qet-ink) 88%,transparent)}
.content a{text-decoration:underline}
.content blockquote{margin:1.4em 0;padding:.4em 1.2em;border-left:3px solid var(--qet-primary);color:var(--qet-dim)}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--qet-mono);font-size:14px;color:#fff;
  background:var(--qet-primary);border:1px solid transparent;border-radius:12px;padding:12px 20px;transition:.25s}
.btn:hover{text-decoration:none;filter:brightness(1.08)}
.btn.ghost{background:var(--qet-surface);color:var(--qet-ink);border-color:var(--qet-line)}

/* ---- footer ---- */
.site-footer{border-top:1px solid var(--qet-line);margin-top:auto}
.site-footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding-block:28px;font-family:var(--qet-mono);font-size:13px;color:var(--qet-faint)}
.site-footer a{color:var(--qet-dim)}

.site{display:flex;flex-direction:column;min-height:100vh}

@media (max-width:600px){
  .site-header .wrap{flex-direction:column;align-items:flex-start;gap:8px;padding-block:12px}
  .main-nav ul{gap:4px}
}
