/*
Theme Name: Quiznacht
Theme URI: https://jugendleiter-blog.de/
Author: Daniel
Author URI: https://jugendleiter-blog.de/
Description: Reduziertes, modernes Dark-Theme als Begleiter zur Quizwelt-Suite. Greift die Bühnen-Optik des Players auf (Spotlight-Glow, Akzentfarbe, Display/Mono-Typo). Die Startseite zeigt alle Quizze. Farben und Schrift im Customizer anpassbar, Schrift wird lokal ausgeliefert. Keine externen Requests (DSGVO).
Version: 1.3.1
Requires at least: 6.3
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
Tags: one-column, custom-colors, custom-logo, custom-menu, featured-images, translation-ready, accessibility-ready, block-styles, wide-blocks
*/

/* ---- 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)}

/* submenus (depth 2) */
.main-nav .sub-menu{list-style:none;margin:0;padding:6px;background:var(--qet-surface);border:1px solid var(--qet-line);border-radius:12px}
.main-nav li{position:relative}
.main-nav .menu-item-has-children>a::after{content:"▾";margin-left:6px;font-size:.8em;opacity:.7}

/* accessible nav toggle (hidden on desktop) */
.nav-toggle{display:none;align-items:center;gap:9px;background:var(--qet-surface);color:var(--qet-ink);
  border:1px solid var(--qet-line);border-radius:11px;padding:9px 14px;cursor:pointer;
  font-family:var(--qet-mono);font-size:13px;letter-spacing:.02em}
.nav-toggle:hover{border-color:var(--qet-glow)}
.nav-toggle-box{position:relative;width:18px;height:12px;display:inline-block}
.nav-toggle-bar,.nav-toggle-bar::before,.nav-toggle-bar::after{position:absolute;left:0;width:18px;height:2px;
  background:currentColor;border-radius:2px;transition:transform .25s,opacity .25s}
.nav-toggle-bar{top:5px}
.nav-toggle-bar::before{content:"";top:-5px}
.nav-toggle-bar::after{content:"";top:5px}
.site-header.nav-open .nav-toggle-bar{background:transparent}
.site-header.nav-open .nav-toggle-bar::before{transform:translateY(5px) rotate(45deg)}
.site-header.nav-open .nav-toggle-bar::after{transform:translateY(-5px) rotate(-45deg)}

/* ---- 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 .qc-badges{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}
.quiz-card .qc-thumb + .qc-badges,.quiz-card .qc-badges:has(+ .qc-thumb){margin-top:0}
.qc-label{display:inline-flex;align-items:center;font-family:var(--qet-mono);font-size:11px;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;padding:5px 11px;border-radius:999px;border:1px solid transparent;line-height:1}
.qc-label--klassisch{color:#9ec5ff;background:color-mix(in srgb,#2f6bff 16%,transparent);border-color:color-mix(in srgb,#2f6bff 32%,transparent)}
.qc-label--spass{color:#ffb3da;background:color-mix(in srgb,#e84393 16%,transparent);border-color:color-mix(in srgb,#e84393 34%,transparent)}
.qc-members{display:inline-flex;align-items:center;gap:5px;font-family:var(--qet-mono);font-size:11px;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;padding:5px 11px 5px 9px;border-radius:999px;line-height:1;
  color:#ffd98a;background:color-mix(in srgb,#f3c34a 15%,transparent);border:1px solid color-mix(in srgb,#f3c34a 34%,transparent)}
.qc-members svg{width:13px;height:13px}
.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 28px;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-footer-meta{display:flex;flex-direction:column;gap:3px;min-width:0}
.site-footer-desc{color:var(--qet-faint)}
.footer-nav .footer-menu{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:0}
.footer-nav .footer-menu li{display:flex;align-items:center}
.footer-nav .footer-menu li+li::before{content:"";width:3px;height:3px;border-radius:50%;
  background:currentColor;opacity:.4;margin:0 14px}
.footer-nav a{color:var(--qet-faint);padding:2px 0;border-radius:4px;transition:color .15s}
.footer-nav a:hover{color:var(--qet-ink);text-decoration:none}
.footer-nav .current-menu-item a{color:var(--qet-dim)}

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

@media (max-width:720px){
  .site-header .wrap{min-height:60px}
  .nav-toggle{display:inline-flex}
  .main-nav{position:absolute;top:100%;right:clamp(18px,4vw,40px);left:clamp(18px,4vw,40px);
    margin-top:8px;padding:8px;background:color-mix(in srgb,var(--qet-bg) 94%,transparent);
    border:1px solid var(--qet-line);border-radius:14px;backdrop-filter:blur(10px);
    box-shadow:0 24px 60px -28px #000;opacity:0;visibility:hidden;transform:translateY(-8px);
    transition:opacity .2s,transform .2s,visibility .2s}
  .site-header.nav-open .main-nav{opacity:1;visibility:visible;transform:none}
  .main-nav ul{flex-direction:column;gap:2px}
  .main-nav a{display:block;padding:11px 13px;font-size:14px}
  .main-nav .sub-menu{position:static;margin:2px 0 2px 12px}
}
@media (prefers-reduced-motion:reduce){
  .main-nav,.nav-toggle-bar,.nav-toggle-bar::before,.nav-toggle-bar::after{transition:none}
}

/* ---- search form ---- */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.qet-search{display:flex;gap:8px;max-width:520px;margin:0 0 1.6em}
.qet-search input[type=search]{flex:1;min-width:0;background:var(--qet-surface);border:1px solid var(--qet-line);
  border-radius:11px;padding:11px 14px;color:var(--qet-ink);font:inherit}
.qet-search input[type=search]::placeholder{color:var(--qet-faint)}
.qet-search button{font-family:var(--qet-mono);font-size:14px;color:#fff;background:var(--qet-primary);
  border:1px solid transparent;border-radius:11px;padding:11px 18px;cursor:pointer}
.qet-search button:hover{filter:brightness(1.08)}

/* ---- QuizArena-Teaser (Startseite) ---- */
.qet-arena{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(18px,3vw,40px);align-items:center;
  margin:clamp(22px,4vw,44px) 0;padding:clamp(22px,3vw,38px);border-radius:var(--qet-radius);text-decoration:none;color:var(--qet-ink);
  border:1px solid color-mix(in srgb,var(--p) 38%,var(--qet-line));overflow:hidden;
  background:linear-gradient(135deg,color-mix(in srgb,var(--p) 16%,var(--qet-bg)) 0%,var(--qet-bg) 60%);
  transition:transform .25s,border-color .25s,box-shadow .25s}
.qet-arena::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 90% at 88% 12%,color-mix(in srgb,var(--p) 42%,transparent) 0%,transparent 60%);opacity:.5}
.qet-arena:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--p) 65%,transparent);
  box-shadow:0 30px 70px -34px color-mix(in srgb,var(--p) 85%,transparent);text-decoration:none}
.qet-arena-body{position:relative;z-index:1;display:flex;flex-direction:column;gap:13px}
.qet-arena-kicker{font-family:var(--qet-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--p);font-weight:700}
.qet-arena-title{margin:0;font-weight:800;font-size:clamp(1.8rem,4vw,2.9rem);line-height:.98;letter-spacing:-.03em;
  text-shadow:0 0 50px color-mix(in srgb,var(--p) 35%,transparent)}
.qet-arena-text{margin:0;color:var(--qet-dim);font-size:clamp(.95rem,1.6vw,1.08rem);max-width:48ch}
.qet-arena-steps{list-style:none;margin:4px 0 2px;padding:0;display:flex;flex-direction:column;gap:9px}
.qet-arena-steps li{display:flex;align-items:center;gap:11px;font-size:.96rem;color:var(--qet-ink)}
.qet-arena-num{flex:none;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-family:var(--qet-mono);
  font-size:12px;font-weight:700;color:var(--p);background:color-mix(in srgb,var(--p) 16%,transparent);
  border:1px solid color-mix(in srgb,var(--p) 42%,transparent)}
.qet-arena-cta{margin-top:8px;align-self:flex-start;display:inline-flex;align-items:center;gap:8px;font-family:var(--qet-mono);
  font-size:14px;font-weight:600;color:#fff;background:var(--p);border-radius:12px;padding:12px 20px;transition:filter .2s,gap .2s}
.qet-arena:hover .qet-arena-cta{filter:brightness(1.1);gap:11px}
.qet-arena-art{position:relative;z-index:1}
.qet-arena-svg{width:100%;height:auto;display:block;filter:drop-shadow(0 20px 50px rgba(0,0,0,.45))}
@media(max-width:760px){
  .qet-arena{grid-template-columns:1fr}
  .qet-arena-art{order:-1;max-width:420px;margin:0 auto}
}
@media (prefers-reduced-motion:reduce){
  .qet-arena,.qet-arena-cta{transition:none}
}
