:root {
  --blue:#224569; --blue-d:#16314c; --sky:#769cbe; --terra:#732622;
  --cream:#fcf8aa; --gold:#f7c948; --gold-d:#e0a32e;
  --ink:#1d2733; --soft:#5d6776; --line:#ece8dd; --bg:#f5f2ea;
  --glass:rgba(255,255,255,.72); --glass-brd:rgba(255,255,255,.7);
  --shadow:0 18px 50px -22px rgba(34,69,105,.45);
  --radius:22px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'Inter',system-ui,sans-serif; margin:0; color:var(--ink); line-height:1.6;
  background:
    radial-gradient(1100px 600px at 85% -8%, rgba(247,201,72,.32), transparent 60%),
    radial-gradient(900px 520px at 8% 4%, rgba(118,156,190,.30), transparent 55%),
    linear-gradient(180deg,#fbf8ef 0%, var(--bg) 38%);
  background-attachment:fixed; min-height:100vh; -webkit-font-smoothing:antialiased;
}
h1,h2,h3 { font-family:'Manrope','Inter',sans-serif; letter-spacing:-.02em; }
a { color:var(--blue); }
.wrap { max-width:1400px; margin:0 auto; padding:1.6rem 1.1rem 5rem; }

.card {
  position:relative; background:var(--glass); backdrop-filter:blur(14px) saturate(1.1);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);
  border:1px solid var(--glass-brd); border-radius:var(--radius);
  padding:1.8rem; margin-bottom:1.4rem; box-shadow:var(--shadow);
  animation:rise .7s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes rise { from { opacity:0; transform:translateY(22px); } }

/* ---------- HERO ---------- */
.hero {
  overflow:hidden; text-align:center; color:#fff; border:0; padding:3.4rem 1.6rem 3rem;
  background:linear-gradient(150deg,#1b3a5c 0%, #2b5681 45%, #5d86ad 100%);
}
.hero .sun {
  position:absolute; top:-130px; right:-110px; width:340px; height:340px; border-radius:50%;
  background:radial-gradient(circle at 50% 50%, #fff3b0 0%, var(--gold) 45%, rgba(247,201,72,0) 72%);
  filter:blur(2px); animation:pulse 6s ease-in-out infinite;
}
.hero .sun::before {
  content:""; position:absolute; inset:-90px; border-radius:50%;
  background:conic-gradient(from 0deg, rgba(255,243,176,.45) 0 8deg, transparent 8deg 30deg);
  -webkit-mask:radial-gradient(circle, transparent 56%, #000 57%);
  mask:radial-gradient(circle, transparent 56%, #000 57%);
  animation:spin 26s linear infinite; opacity:.7;
}
@keyframes spin { to { transform:rotate(360deg); } }
@keyframes pulse { 50% { transform:scale(1.06); } }
.hero-inner { position:relative; z-index:1; }
.eyebrow {
  display:inline-block; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  font-size:.72rem; padding:.45rem 1rem; border-radius:100px;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.25); backdrop-filter:blur(6px);
}
.hero h1 { font-size:clamp(2rem,6vw,3.3rem); font-weight:800; margin:1rem 0 .4rem; line-height:1.05; text-shadow:0 6px 30px rgba(0,0,0,.18); }
.hero h1 .grad {
  background:linear-gradient(105deg,#fff3b0,var(--gold) 55%,#ffd56b);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.stat-row { display:flex; justify-content:center; gap:.7rem; flex-wrap:wrap; margin:1.4rem 0 .6rem; }
.stat {
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); border-radius:16px;
  padding:.7rem 1.1rem; min-width:92px; backdrop-filter:blur(6px);
}
.stat b { display:block; font-family:'Manrope',sans-serif; font-size:1.6rem; line-height:1; }
.stat span { font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; opacity:.85; }
.stat.hl { background:linear-gradient(135deg,var(--gold),var(--gold-d)); border-color:transparent; color:#3a2700; box-shadow:0 10px 26px -10px rgba(247,201,72,.8); }

.countdown { display:flex; gap:.7rem; justify-content:center; margin:1.6rem 0 .4rem; flex-wrap:wrap; }
.cd-box {
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.24); color:#fff;
  border-radius:14px; padding:.7rem .9rem; min-width:78px; text-align:center; backdrop-filter:blur(8px);
}
.cd-box b { display:block; font-family:'Manrope',sans-serif; font-size:1.9rem; line-height:1; font-variant-numeric:tabular-nums; }
.cd-box span { font-size:.66rem; text-transform:uppercase; letter-spacing:.1em; opacity:.82; }
.cd-label { font-size:.8rem; opacity:.85; margin-top:.2rem; }

/* ---------- BUTTONS ---------- */
.btn {
  position:relative; overflow:hidden; display:inline-flex; align-items:center; gap:.5rem;
  border:0; border-radius:100px; cursor:pointer; text-decoration:none; font-weight:800; font-size:1rem;
  padding:.85rem 1.7rem; color:#fff;
  background:linear-gradient(135deg,#8a2e29,var(--terra)); box-shadow:0 14px 30px -12px rgba(115,38,34,.7);
  transition:transform .15s, box-shadow .15s;
}
.btn:hover { transform:translateY(-2px); box-shadow:0 18px 36px -12px rgba(115,38,34,.8); }
.btn::after {
  content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent); transform:skewX(-18deg);
  transition:left .55s;
}
.btn:hover::after { left:140%; }
.btn.alt { background:linear-gradient(135deg,var(--blue),var(--blue-d)); box-shadow:0 14px 30px -12px rgba(34,69,105,.7); }
.btn.gold { background:linear-gradient(135deg,var(--gold),var(--gold-d)); color:#3a2700; box-shadow:0 14px 30px -12px rgba(224,163,46,.8); }
.btn-xl { padding:1.05rem 2.3rem; font-size:1.1rem; margin-top:1.4rem; }

/* ---------- SECTION HEADERS ---------- */
h2 { color:var(--blue); font-size:1.4rem; margin:0 0 1.1rem; display:flex; align-items:center; gap:.55rem; }
h2 .ic { font-size:1.5rem; filter:drop-shadow(0 3px 6px rgba(0,0,0,.12)); }
.muted { color:var(--soft); }
.motto { font-size:1.45rem; font-weight:800; font-family:'Manrope',sans-serif;
  background:linear-gradient(100deg,var(--terra),#b8532b); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* ---------- FINALISTS ---------- */
.grid6 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
@media(max-width:760px){ .grid6 { grid-template-columns:repeat(2,1fr); gap:.9rem; } }
@media(max-width:430px){ .grid6 { grid-template-columns:1fr; } }
.fcard {
  position:relative; border:1px solid var(--line); border-radius:18px; overflow:hidden; background:#fff;
  display:flex; flex-direction:column; box-shadow:0 12px 30px -18px rgba(34,69,105,.5);
  transition:transform .22s, box-shadow .22s;
}
.fcard:hover { transform:translateY(-6px); box-shadow:0 26px 50px -22px rgba(34,69,105,.6); }
.fimg { position:relative; aspect-ratio:1/1; overflow:hidden; background:#eef1f4; }
.fimg img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.fcard:hover .fimg img { transform:scale(1.06); }
.rank {
  position:absolute; top:.7rem; left:.7rem; width:40px; height:40px; border-radius:50%;
  display:grid; place-items:center; font-family:'Manrope',sans-serif; font-weight:800; font-size:1.1rem; color:#3a2700;
  background:linear-gradient(135deg,#fff3b0,var(--gold-d)); box-shadow:0 6px 16px -4px rgba(224,163,46,.8); border:2px solid #fff;
}
.fcard .body { padding:.85rem .95rem 1rem; display:flex; flex-direction:column; gap:.25rem; }
.fcard .ttl { font-weight:800; font-family:'Manrope',sans-serif; }
.fcard .meta { font-size:.78rem; color:var(--soft); }
.fcard .story { font-size:.86rem; font-style:italic; color:#3b4654; margin:.2rem 0 .55rem; }
.vbtn { width:100%; justify-content:center; padding:.6rem; margin-top:auto; }
.result { margin-top:auto; }
.bar { height:9px; border-radius:100px; background:#eef1f4; overflow:hidden; }
.bar i { display:block; height:100%; border-radius:100px; background:linear-gradient(90deg,var(--sky),var(--blue)); }
.result .meta { margin-top:.3rem; }

/* ---------- WINNER ---------- */
.winner { background:linear-gradient(135deg,#fffdf2,#fdf6da); border:1px solid #f1e3a8;
  box-shadow:0 22px 60px -26px rgba(224,163,46,.7); }
.winner h2 { color:var(--gold-d); }
.winner .photo { width:190px; height:190px; object-fit:cover; border-radius:18px;
  box-shadow:0 14px 34px -12px rgba(224,163,46,.8); border:4px solid #fff; }
.winner .crown { font-size:2rem; }

/* ---------- COUNTERS ---------- */
.counters { display:flex; gap:1.1rem; flex-wrap:wrap; }
.counter { flex:1 1 180px; text-align:center; border-radius:18px; padding:1.3rem 1rem;
  background:linear-gradient(135deg,#ffffff,#fbf6e2); border:1px solid var(--line); box-shadow:0 12px 30px -20px rgba(34,69,105,.5); }
.counter .ic { font-size:1.7rem; }
.counter b { display:block; font-family:'Manrope',sans-serif; font-size:2.3rem; line-height:1.1; color:var(--blue);
  background:linear-gradient(120deg,var(--blue),var(--sky)); -webkit-background-clip:text; background-clip:text; color:transparent; font-variant-numeric:tabular-nums; }
.counter span { font-size:.82rem; color:var(--soft); }

/* ---------- HALL OF FAME ---------- */
.hof { display:flex; flex-wrap:wrap; gap:.7rem; }
.hof .w { display:flex; align-items:center; gap:.5rem; background:#fff; border:1px solid var(--line);
  border-radius:14px; padding:.55rem .9rem; font-size:.9rem; box-shadow:0 8px 20px -16px rgba(34,69,105,.6); }
.hof .w b { font-family:'Manrope',sans-serif; }
.champion { margin-top:1.2rem; font-size:1.35rem; font-family:'Manrope',sans-serif; font-weight:800;
  background:linear-gradient(120deg,var(--gold-d),#b8532b); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* ---------- CTA blocks ---------- */
.cta { background:linear-gradient(135deg,#ffffff,#eef3f8); }
.links { display:flex; flex-wrap:wrap; gap:.65rem 1.3rem; }
.links a { font-weight:700; text-decoration:none; }
.links a:hover { text-decoration:underline; }
.chip-links { display:flex; flex-wrap:wrap; gap:.6rem; }
.chip-links a { background:#fff; border:1px solid var(--line); border-radius:100px; padding:.5rem 1rem; font-weight:700; text-decoration:none; font-size:.9rem; transition:transform .15s, box-shadow .15s; }
.chip-links a:hover { transform:translateY(-2px); box-shadow:0 10px 22px -14px rgba(34,69,105,.7); }

/* ---------- FORMS ---------- */
label { display:block; font-weight:700; font-size:.85rem; margin:1rem 0 .35rem; }
input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],textarea,select {
  width:100%; padding:.7rem .8rem; border:1px solid var(--line); border-radius:11px; font-size:.95rem;
  background:rgba(255,255,255,.85); font-family:inherit; transition:border-color .15s, box-shadow .15s; }
input:focus,textarea:focus,select:focus { outline:0; border-color:var(--sky); box-shadow:0 0 0 4px rgba(118,156,190,.22); }
.msg { padding:.8rem 1rem; border-radius:12px; margin-bottom:1rem; font-size:.92rem; font-weight:600; }
.ok { background:#e7f6ec; color:#1d6b3a; border:1px solid #b7e2c5; }
.err { background:#fdecea; color:#8a1c13; border:1px solid #f5c6c0; }
.fineprint { font-size:.78rem; color:var(--soft); text-align:center; }

/* ---------- ADMIN/JURY ---------- */
table.tbl { width:100%; border-collapse:collapse; font-size:.9rem; }
.tbl th,.tbl td { text-align:left; padding:.55rem .45rem; border-bottom:1px solid var(--line); vertical-align:top; }
.tbl.subs { table-layout:fixed; min-width:720px; }
.tbl.subs th, .tbl.subs td { overflow-wrap:anywhere; word-break:break-word; }
.tbl.subs img.thumb { max-width:100%; }
.tbl.subs td.story { font-size:.78rem; line-height:1.4; color:#3b4654; }
.tbl-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.act-cell { display:flex; flex-wrap:nowrap; gap:.26rem; }
.act-cell form { margin:0; display:inline-flex; }
.act-btn { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; padding:0;
  border-radius:8px; border:1px solid var(--line); background:#fff; color:var(--soft); cursor:pointer;
  transition:background .14s, border-color .14s, transform .12s, box-shadow .14s; }
.act-btn:hover { transform:translateY(-1px); box-shadow:0 8px 18px -12px rgba(34,69,105,.45); }
.act-btn svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.act-btn.ok { color:#1d6b3a; border-color:#cfe7d6; background:#f0f8f2; }
.act-btn.ok:hover { background:#e0f1e6; }
.act-btn.no { color:#8a5a12; border-color:#f1ddb0; background:#fdf7ea; }
.act-btn.no:hover { background:#f8ecd2; }
.act-btn.del { color:#a3322d; border-color:#f1cfcc; background:#fdefee; }
.act-btn.del:hover { background:#f8ddda; }
.thumb { width:64px; height:64px; object-fit:cover; border-radius:10px; }
.pill { display:inline-block; padding:.16rem .55rem; border-radius:100px; font-size:.72rem; font-weight:800; }
.pill.pending { background:#fff3cd; color:#7a5b00; }
.pill.approved { background:#e7f6ec; color:#1d6b3a; }
.pill.rejected { background:#fdecea; color:#8a1c13; }
.topbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:1rem; }
@media (prefers-reduced-motion:reduce){ .card,.hero .sun,.hero .sun::before{ animation:none; } }

/* ===== Sticky Bereichs-Navigation der Sommer-Challenge (nur Gewinnspiel-Seiten) ===== */
.sc-subnav{ position:sticky; top:72px; z-index:1090;
  background:linear-gradient(90deg,#ffd66b 0%, #ff9e54 100%);
  border-bottom:1px solid rgba(90,42,8,.14);
  box-shadow:0 8px 20px -14px rgba(0,0,0,.45); }
.sc-subnav-in{ max-width:1260px; margin:0 auto; padding:0 1.4rem; min-height:46px;
  display:flex; align-items:center; gap:1rem; }
.sc-subnav-brand{ display:inline-flex; align-items:center; gap:.4rem;
  font-family:'Manrope',sans-serif; font-weight:800; font-size:.92rem; color:#5a2a08;
  text-decoration:none; white-space:nowrap; }
.sc-subnav-list{ display:flex; gap:.2rem; list-style:none; margin:0; padding:0; }
.sc-subnav-list a{ display:block; padding:.5rem .8rem; border-radius:9px; white-space:nowrap;
  color:#5a2a08; font-weight:700; font-size:.9rem; text-decoration:none; transition:background .15s,color .15s; }
.sc-subnav-list a:hover{ background:rgba(255,255,255,.45); }
.sc-subnav-list a.active{ background:#224569; color:#fff; }
@media(max-width:760px){
  .sc-subnav-in{ padding:0 .8rem; gap:.5rem; }
  .sc-subnav-brand{ display:none; }                 /* Platz fürs Menü auf Mobil */
  .sc-subnav-list{ width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .sc-subnav-list::-webkit-scrollbar{ display:none; }
  .sc-subnav-list a{ padding:.5rem .7rem; font-size:.86rem; }
}

/* Gesperrte Sub-Nav-Punkte vor dem Start (Blur + Hinweis-Toast) */
.sc-lock{ cursor:not-allowed; user-select:none; }
.sc-lock .lbl{ display:inline-block; filter:blur(2.4px); -webkit-filter:blur(2.4px); }
.sc-lock::after{ content:"🔒"; margin-left:.34rem; font-size:.82em; vertical-align:baseline; filter:none; -webkit-filter:none; }
.sc-subnav-list a.sc-lock{ opacity:.9; }
.sc-subnav-list a.sc-lock:hover{ background:transparent; }
/* Hinweis mittig im Bildschirm (Desktop & Handy) – unten wurde es teils von Browserleisten verdeckt */
.sc-locktoast{ position:fixed; left:50%; top:50%; transform:translate(-50%,calc(-50% + 16px));
  background:#224569; color:#fff; padding:.95rem 1.35rem; border-radius:14px; font-weight:700; font-size:.98rem;
  box-shadow:0 26px 64px -18px rgba(0,0,0,.6); z-index:3000; max-width:90vw; text-align:center; opacity:0; pointer-events:none;
  transition:transform .3s cubic-bezier(.2,.8,.2,1), opacity .25s; }
.sc-locktoast.show{ transform:translate(-50%,-50%); opacity:1; }
