/* Winter & Weihnachten (2026-11-01, v2) - aktiv per winter.js (1.11. bis 6.1.), body.rd-winter */

/* Schneefall */
#rdw-snow { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 950; } /* unter Cookie-Hinweis (1000) und Fenstern */

/* Frost in den Ecken */
.rdw-frost { position: fixed; inset: 0; pointer-events: none; z-index: 949;
  background:
    radial-gradient(ellipse 340px 260px at 0 0, rgba(220, 240, 255, .16), transparent 70%),
    radial-gradient(ellipse 340px 260px at 100% 0, rgba(220, 240, 255, .14), transparent 70%),
    radial-gradient(ellipse 380px 220px at 0 100%, rgba(220, 240, 255, .12), transparent 70%),
    radial-gradient(ellipse 380px 220px at 100% 100%, rgba(220, 240, 255, .12), transparent 70%); }

/* Navigation: Schneekappe, Lichterkette, Kugeln */
body.rd-winter .navbar { border-bottom-color: rgba(255, 255, 255, .22); }
.rdw-cap { position: absolute; left: 0; right: 0; top: -2px; height: 16px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 16' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23ffffff'/%3E%3Cstop offset='1' stop-color='%23dbeafe'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 0h120v7c-5 0-6 7-12 7s-7-6-14-6-6 8-13 8-7-7-14-7-6 6-13 6-7-8-14-8-6 7-13 7S19 8 13 8 5 14 0 13z' fill='url(%23g)'/%3E%3C/svg%3E") repeat-x;
  background-size: 120px 16px; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .3)); }
.rdw-lights { position: absolute; left: 0; right: 0; bottom: -17px; height: 22px; pointer-events: none; overflow: hidden; z-index: 2; }
.rdw-lights svg { display: block; width: 100%; height: 22px; }
.rdw-bulb { animation: rdw-blink 2.4s infinite ease-in-out; }
.rdw-bulb:nth-of-type(4n+1) { fill: #ff4d6d; color: #ff4d6d; animation-delay: 0s; }
.rdw-bulb:nth-of-type(4n+2) { fill: #ffd60a; color: #ffd60a; animation-delay: .6s; }
.rdw-bulb:nth-of-type(4n+3) { fill: #4cc9f0; color: #4cc9f0; animation-delay: 1.2s; }
.rdw-bulb:nth-of-type(4n+4) { fill: #80ed99; color: #80ed99; animation-delay: 1.8s; }
@keyframes rdw-blink { 0%, 100% { opacity: 1; filter: drop-shadow(0 0 5px currentColor); } 50% { opacity: .35; filter: none; } }
.rdw-balls { position: absolute; left: 0; right: 0; bottom: 0; height: 0; pointer-events: none; z-index: 3; }
.rdw-ball { position: absolute; top: 2px; width: 2px; height: var(--len); background: rgba(255, 255, 255, .45); transform-origin: top center;
  animation: rdw-swing 3.2s ease-in-out infinite; }
.rdw-ball::before { content: ""; position: absolute; left: 50%; bottom: -3px; width: 8px; height: 6px; margin-left: -4px; border-radius: 2px; background: #d4d4d8; }
.rdw-ball::after { content: ""; position: absolute; left: 50%; bottom: -21px; width: 20px; height: 20px; margin-left: -10px; border-radius: 50%;
  background: radial-gradient(circle at 34% 30%, rgba(255, 255, 255, .95) 0 3px, transparent 4px), radial-gradient(circle at 40% 35%, color-mix(in srgb, var(--c) 70%, #fff), var(--c) 55%, color-mix(in srgb, var(--c) 60%, #000));
  box-shadow: 0 4px 10px rgba(0, 0, 0, .45), 0 0 12px color-mix(in srgb, var(--c) 55%, transparent); }
@keyframes rdw-swing { 0%, 100% { transform: rotate(6deg); } 50% { transform: rotate(-6deg); } }

/* Weihnachtsmuetze auf dem Logo */
body.rd-winter .navbar .logo-mark { position: relative; }
body.rd-winter .navbar .logo-mark::after { content: ""; position: absolute; width: 30px; height: 26px; left: 15px; top: -11px; transform: rotate(18deg); pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 52'%3E%3Cpath d='M6 40 C10 18 26 4 44 8 C50 10 54 18 52 26 L46 22 C42 30 40 36 40 40 Z' fill='%23e11d48'/%3E%3Cpath d='M44 8 C50 10 54 18 52 26 L46 22 C47 16 46 11 44 8Z' fill='%23be123c'/%3E%3Crect x='2' y='38' width='42' height='12' rx='6' fill='%23f8fafc'/%3E%3Ccircle cx='52' cy='27' r='7' fill='%23f8fafc'/%3E%3C/svg%3E") no-repeat center / contain;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .35)); }

/* Weihnachtsbanner mit Countdown */
.rdw-bar { position: relative; overflow: hidden; color: #fff; text-align: center;
  background:
    radial-gradient(ellipse at 50% 120%, rgba(250, 204, 21, .18), transparent 60%),
    linear-gradient(100deg, #450a0a 0%, #991b1b 22%, #7f1d1d 50%, #14532d 78%, #052e16 100%);
  border-bottom: 1px solid rgba(255, 255, 255, .14); box-shadow: inset 0 -10px 24px rgba(0, 0, 0, .25); }
.rdw-bar::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .22;
  background-image: radial-gradient(#fff 1.1px, transparent 1.3px), radial-gradient(#fff .8px, transparent 1px);
  background-size: 26px 26px, 17px 17px; background-position: 0 0, 9px 11px; }
.rdw-garland { display: block; width: 100%; height: 22px; position: relative; z-index: 1; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .35)); }
.rdw-bar-inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: .9rem 1.4rem; flex-wrap: wrap; padding: .35rem 3rem .75rem; }
.rdw-msg { display: flex; align-items: center; gap: .55rem; font-weight: 700; font-size: .98rem; text-shadow: 0 2px 6px rgba(0, 0, 0, .4); }
.rdw-msg b { color: #fde68a; }
.rdw-tree { font-size: 1.4rem; animation: rdw-bob 2.8s ease-in-out infinite; display: inline-block; }
.rdw-santa { font-size: 1.6rem; animation: rdw-bob 2.8s ease-in-out infinite reverse; display: inline-block; }
@keyframes rdw-bob { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-3px) rotate(4deg); } }
.rdw-clock { display: flex; gap: .45rem; }
.rdw-unit { display: grid; min-width: 3.1rem; padding: .3rem .45rem .25rem; border-radius: 11px; line-height: 1.05;
  background: linear-gradient(180deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .05)); border: 1px solid rgba(255, 255, 255, .22);
  box-shadow: 0 4px 12px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .25); backdrop-filter: blur(4px); }
.rdw-unit b { font-size: 1.25rem; font-weight: 900; color: #fff; font-variant-numeric: tabular-nums; }
.rdw-unit small { font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #fde68a; }
.rdw-x { position: absolute; z-index: 2; right: .6rem; top: 50%; transform: translateY(-30%); width: 28px; height: 28px; border-radius: 50%; border: 0;
  background: rgba(0, 0, 0, .3); color: #fff; cursor: pointer; font-size: 1rem; line-height: 1; }
.rdw-x:hover { background: rgba(0, 0, 0, .5); }

/* Fusszeile: Schnee, Schneemann, Tanne */
body.rd-winter .site-footer { position: relative; }
body.rd-winter .site-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 18px; pointer-events: none; transform: scaleY(-1);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 18' preserveAspectRatio='none'%3E%3Cpath d='M0 18V10c8-7 16-7 24-2s14 5 24 0 18-8 28-3 16 6 26 1 18-7 28-2 14 5 22 3 6-1 8-2v13z' fill='%23f1f5ff'/%3E%3C/svg%3E") repeat-x;
  background-size: 160px 18px; filter: drop-shadow(0 -2px 3px rgba(0, 0, 0, .2)); }
.rdw-snowman, .rdw-tree-foot { position: absolute; top: 14px; width: 70px; pointer-events: none; z-index: 1; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .4)); }
.rdw-snowman { left: 3%; } .rdw-tree-foot { right: 3%; top: 6px; width: 74px; }
.rdw-snowman svg, .rdw-tree-foot svg { display: block; width: 100%; height: auto; }

.rdw-gifts { position: absolute; top: 58px; right: calc(3% + 66px); width: 82px; pointer-events: none; z-index: 1; filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .4)); }
.rdw-gifts svg { display: block; width: 100%; height: auto; }

/* Adventskalender-Tuerchen */
.rdw-door { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .8rem; border-radius: 999px; cursor: pointer; font-weight: 800; font-size: .85rem;
  color: #3b0a0a; background: linear-gradient(180deg, #fde68a, #f59e0b); border: 1px solid #fff7; box-shadow: 0 4px 12px rgba(0, 0, 0, .35); transition: transform .15s; }
.rdw-door:hover { transform: translateY(-2px) scale(1.04); }
.rdw-door.new { animation: rdw-wiggle 1.6s ease-in-out infinite; }
.rdw-door.new::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #ef4444; box-shadow: 0 0 0 2px #fff; margin-left: .1rem; }
@keyframes rdw-wiggle { 0%, 70%, 100% { transform: rotate(0); } 76% { transform: rotate(-8deg); } 84% { transform: rotate(8deg); } 92% { transform: rotate(-4deg); } }
.rdw-pop { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 16px; background: rgba(5, 8, 20, .6); backdrop-filter: blur(4px); animation: rdw-fade .2s; }
.rdw-pop-card { position: relative; max-width: 420px; width: 100%; padding: 1.6rem 1.4rem 1.3rem; border-radius: 22px; text-align: center; color: #fff;
  background: radial-gradient(circle at 50% 0, rgba(250, 204, 21, .25), transparent 60%), linear-gradient(160deg, #7f1d1d, #14532d);
  border: 2px solid rgba(253, 230, 138, .6); box-shadow: 0 20px 60px rgba(0, 0, 0, .55); animation: rdw-popin .35s cubic-bezier(.2, 1.4, .4, 1); }
.rdw-pop-card::before { content: "🎁"; position: absolute; top: -30px; left: 50%; transform: translateX(-50%); font-size: 3rem; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .4)); }
.rdw-pop-num { margin-top: .6rem; font-size: 1.3rem; font-weight: 900; color: #fde68a; }
.rdw-pop-card p { margin: .7rem 0 1.1rem; font-size: 1.02rem; line-height: 1.55; }
.rdw-pop-card button { padding: .5rem 1.3rem; border-radius: 999px; border: 0; cursor: pointer; font-weight: 800; color: #3b0a0a; background: #fde68a; }
@keyframes rdw-fade { from { opacity: 0; } }
@keyframes rdw-popin { from { transform: scale(.6) rotate(-4deg); opacity: 0; } }

/* Schneemann-Maskottchen */
.rdw-mascot { position: fixed; left: 66px; bottom: -14px; z-index: 900; width: 74px; height: 92px; padding: 0; border: 0; background: none; cursor: pointer;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .45)); transition: transform .25s cubic-bezier(.2, 1.4, .4, 1); }
.rdw-mascot:hover, .rdw-mascot:focus-visible { transform: translateY(-10px) rotate(-3deg); }
.rdw-mascot svg { width: 100%; height: 100%; display: block; }
.rdw-mascot .rdw-arm { transform-origin: 70px 74px; animation: rdw-wave 2.2s ease-in-out infinite; }
@keyframes rdw-wave { 0%, 60%, 100% { transform: rotate(0); } 70% { transform: rotate(-22deg); } 80% { transform: rotate(8deg); } 90% { transform: rotate(-16deg); } }
.rdw-say { position: absolute; left: 62px; bottom: 82px; width: max-content; max-width: 220px; padding: .5rem .75rem; border-radius: 14px 14px 14px 4px;
  font-size: .85rem; font-weight: 700; color: #0b1020; background: #fff; box-shadow: 0 6px 18px rgba(0, 0, 0, .35); opacity: 0; transform: translateY(6px) scale(.9);
  transition: opacity .2s, transform .2s; pointer-events: none; text-align: left; }
.rdw-mascot.talk .rdw-say { opacity: 1; transform: none; }
.rdw-snowball { position: fixed; z-index: 952; width: 16px; height: 16px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle at 35% 30%, #fff, #dbeafe); box-shadow: 0 3px 6px rgba(0, 0, 0, .35); animation: rdw-throw .75s cubic-bezier(.3, .6, .5, 1) forwards; }
@keyframes rdw-throw { 0% { transform: translate(0, 0); } 50% { transform: translate(calc(var(--dx) * .5), var(--dy)); } 100% { transform: translate(var(--dx), calc(var(--dy) * .35 + 40px)); } }
.rdw-splat { position: fixed; z-index: 952; width: 7px; height: 7px; border-radius: 50%; background: #fff; pointer-events: none; animation: rdw-splat .7s ease-out forwards; }
@keyframes rdw-splat { to { transform: translate(var(--sx), var(--sy)); opacity: 0; } }

/* Weihnachtsmann mit Schlitten */
.rdw-sleigh { position: fixed; left: 0; z-index: 948; width: 260px; pointer-events: none; animation: rdw-fly 13s linear forwards; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .4)); }
.rdw-sleigh svg { width: 100%; height: auto; display: block; animation: rdw-bounce 1.2s ease-in-out infinite; }
@keyframes rdw-fly { from { transform: translateX(-300px); } to { transform: translateX(calc(100vw + 60px)); } }
@keyframes rdw-bounce { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-12px) rotate(2deg); } }
.rdw-spark { position: fixed; z-index: 947; width: 6px; height: 6px; border-radius: 50%; pointer-events: none; background: #fde68a; box-shadow: 0 0 8px #facc15;
  animation: rdw-sparkfade 1.4s ease-out forwards; }
@keyframes rdw-sparkfade { to { transform: translate(-20px, 26px) scale(.2); opacity: 0; } }

/* Maus-Spur */
.rdw-trail { position: fixed; z-index: 951; pointer-events: none; color: #e0f2fe; font-size: 12px; transform: translate(-50%, -50%);
  text-shadow: 0 0 6px rgba(186, 230, 253, .9); animation: rdw-trailfade .9s ease-out forwards; }
@keyframes rdw-trailfade { to { transform: translate(calc(-50% + var(--tx)), 30px) rotate(90deg); opacity: 0; } }

/* ---------- Startseite: Weihnachts-Bereich ---------- */
.rdx { margin: 1.2rem auto 2rem; max-width: 1200px; padding: 0 16px; display: grid; gap: 1.1rem; }
.rdx-hero { position: relative; min-height: 360px; border-radius: 28px; overflow: hidden; border: 1px solid rgba(253, 230, 138, .35);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .04), 0 0 60px rgba(250, 204, 21, .08); }
.rdx-scene { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.rdx-star { fill: #fff; animation: rdx-twinkle 3.6s ease-in-out infinite; }
@keyframes rdx-twinkle { 0%, 100% { opacity: .9; } 50% { opacity: .2; } }
.rdx-win { fill: #fde68a; animation: rdx-window 5s ease-in-out infinite; filter: drop-shadow(0 0 6px #facc15); }
@keyframes rdx-window { 0%, 100% { fill: #fde68a; } 50% { fill: #fbbf24; } }
.rdx-tl { animation: rdw-blink 2.2s infinite ease-in-out; color: #fff; }
.rdx-topstar { transform-origin: 915px 110px; animation: rdx-glow 2.4s ease-in-out infinite; filter: drop-shadow(0 0 10px #facc15); }
@keyframes rdx-glow { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.15); } }
.rdx-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(8, 6, 28, .78) 0%, rgba(8, 6, 28, .55) 45%, rgba(8, 6, 28, 0) 75%); }
.rdx-copy { position: relative; z-index: 1; max-width: 640px; padding: clamp(1.4rem, 4vw, 2.6rem); color: #fff; }
.rdx-kicker { display: inline-block; padding: .25rem .8rem; border-radius: 999px; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  color: #3b0a0a; background: linear-gradient(180deg, #fde68a, #f59e0b); box-shadow: 0 4px 14px rgba(0, 0, 0, .35); }
.rdx-copy h2 { margin: .7rem 0 .5rem; font-size: clamp(1.8rem, 4.6vw, 3rem); line-height: 1.08; letter-spacing: -.02em; text-shadow: 0 4px 18px rgba(0, 0, 0, .55); }
.rdx-copy h2 span { background: linear-gradient(90deg, #fde68a, #fb923c, #f472b6); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rdx-copy p { margin: 0 0 1rem; max-width: 520px; color: #e2e8f0; line-height: 1.6; text-shadow: 0 2px 10px rgba(0, 0, 0, .6); }
.rdx-count { display: flex; gap: .55rem; flex-wrap: wrap; }
.rdx-count div { display: grid; min-width: 4.4rem; padding: .55rem .6rem .45rem; border-radius: 16px; text-align: center; line-height: 1.05;
  background: linear-gradient(180deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, .06)); border: 1px solid rgba(255, 255, 255, .25);
  box-shadow: 0 8px 22px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .3); backdrop-filter: blur(6px); }
.rdx-count b { font-size: clamp(1.6rem, 4vw, 2.3rem); font-weight: 900; font-variant-numeric: tabular-nums; }
.rdx-count small { font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #fde68a; }
.rdx-until { margin-top: .45rem; font-size: .85rem; font-weight: 700; color: #fde68a; text-shadow: 0 2px 8px rgba(0, 0, 0, .6); }
.rdx-msg { font-size: 1.15rem; font-weight: 700; } .rdx-msg b { color: #fde68a; }
.rdx-actions { display: flex; gap: .55rem; flex-wrap: wrap; margin-top: 1.1rem; }
.rdx-btn { display: inline-flex; align-items: center; gap: .35rem; padding: .6rem 1.05rem; border-radius: 999px; font-weight: 800; font-size: .9rem; text-decoration: none;
  color: #fff; background: rgba(10, 8, 30, .62); border: 1px solid rgba(255, 255, 255, .3); backdrop-filter: blur(6px); transition: transform .15s, background .15s;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .35); }
.rdx-btn:hover { transform: translateY(-2px); background: rgba(10, 8, 30, .82); }
.rdx-btn-gold { color: #3b0a0a; background: linear-gradient(180deg, #fde68a, #f59e0b); border-color: #fff8; box-shadow: 0 6px 18px rgba(245, 158, 11, .35); }

/* ---------- Adventskalender v2 (2026-11-02): Holzrahmen mit Lichterkette, Geschenkpapier-Tuerchen, Gold-Medaillons ---------- */
.rdx-advent { position: relative; margin-top: 10px; padding: 2.5rem clamp(.8rem, 2.6vw, 1.6rem) clamp(1rem, 2.6vw, 1.6rem); border-radius: 28px;
  border: 2px solid rgba(253, 230, 138, .55);
  background: radial-gradient(circle at 15% 0, rgba(220, 38, 38, .35), transparent 55%), radial-gradient(circle at 85% 100%, rgba(22, 163, 74, .3), transparent 55%),
    linear-gradient(160deg, #3a0d14, #1a0b12 55%, #0c1a14);
  box-shadow: 0 0 0 6px rgba(120, 53, 15, .6), 0 0 0 8px rgba(253, 230, 138, .3), 0 26px 60px rgba(0, 0, 0, .5), inset 0 0 60px rgba(0, 0, 0, .45); }
.rdx-advent::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: .1;
  background-image: radial-gradient(#fff 1px, transparent 1.6px), radial-gradient(#fff 1px, transparent 1.6px); background-size: 34px 34px, 22px 22px; background-position: 0 0, 11px 17px; }
.rdx-lights { position: absolute; left: 18px; top: -4px; width: calc(100% - 36px); height: 30px; pointer-events: none; }
.rdx-ribbon { position: absolute; z-index: 2; top: -28px; left: 50%; transform: translateX(-50%); font-size: 2.7rem; pointer-events: none; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .45)); }
.rdx-head { position: relative; display: flex; align-items: center; justify-content: space-between; gap: .9rem 1.2rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.rdx-title h3 { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.55rem, 3.4vw, 2.25rem); font-weight: 700; line-height: 1.1;
  background: linear-gradient(180deg, #fffbea, #fde68a 45%, #f59e0b); -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .55)); }
.rdx-title h3 em { font-weight: 400; }
.rdx-title p { margin: .3rem 0 0; max-width: 560px; color: #f5e9c8; font-weight: 600; font-size: .92rem; line-height: 1.45; }
.rdx-stats { display: flex; align-items: center; gap: .75rem; padding: .5rem 1rem .5rem .55rem; border-radius: 18px; background: rgba(0, 0, 0, .3); border: 1px solid rgba(253, 230, 138, .25); }
.rdx-ring { position: relative; flex: none; width: 60px; height: 60px; }
.rdx-ring svg { display: block; width: 100%; height: 100%; transform: rotate(-90deg); }
.rdx-ring circle { fill: none; stroke: rgba(255, 255, 255, .12); stroke-width: 4.5; }
.rdx-ring .fg { stroke: #facc15; stroke-linecap: round; stroke-dasharray: 119.4; stroke-dashoffset: 119.4; transition: stroke-dashoffset 1s cubic-bezier(.3, 1, .4, 1); filter: drop-shadow(0 0 3px #facc15); }
.rdx-ring span { position: absolute; inset: 0; display: flex; align-items: baseline; justify-content: center; padding-top: 19px; line-height: 1; }
.rdx-ring b { font-size: 1.2rem; font-weight: 900; color: #fff; } .rdx-ring small { font-size: .66rem; font-weight: 800; color: #fde68a; }
.rdx-stat-txt { display: grid; gap: .15rem; font-size: .8rem; color: #e2e8f0; }
.rdx-stat-txt > b { font-size: .95rem; color: #fff; }
.rdx-streak { font-weight: 800; color: #fdba74; }
.rdx-next b { color: #fde68a; font-variant-numeric: tabular-nums; } .rdx-next a { color: #fde68a; font-weight: 800; }

.rdx-grid { position: relative; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-auto-flow: dense; gap: .65rem; }
.rdx-deco { display: grid; place-items: center; aspect-ratio: 1; border-radius: 14px; font-size: clamp(1.4rem, 3.4vw, 2.2rem);
  background: radial-gradient(circle, rgba(253, 230, 138, .25), transparent 70%); border: 2px solid rgba(253, 230, 138, .25); }
/* 3D-Tuerchen: Rahmen (.rdx-door) mit Innenraum (.rdx-inside) und aufklappender Tuer (.rdx-front) */
.rdx-door { position: relative; aspect-ratio: 1; padding: 0; border: 0; border-radius: 14px; cursor: pointer; color: #fff; font: inherit; font-weight: 900; perspective: 800px;
  background: #12060a; box-shadow: inset 0 3px 12px rgba(0, 0, 0, .8), 0 6px 14px rgba(0, 0, 0, .4); transition: transform .2s cubic-bezier(.2, 1.4, .4, 1); }
.rdx-door:hover { transform: translateY(-4px) rotate(-1deg); }
.rdx-door:focus-visible { outline: 3px solid #fde68a; outline-offset: 3px; }
.rdx-inside { position: absolute; inset: 4px; border-radius: 10px; display: grid; place-content: center; justify-items: center; gap: .1rem; overflow: hidden;
  background: radial-gradient(circle at 50% 38%, #fffbea, #fde68a 50%, #d97706); box-shadow: inset 0 0 20px rgba(124, 45, 18, .5); }
.rdx-ic { font-size: clamp(1.4rem, 3.4vw, 2.1rem); line-height: 1.1; filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .3)); }
.rdx-cat { font-size: .56rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; color: #7c2d12; white-space: nowrap; }
.rdx-door.is-open .rdx-ic { animation: rdx-pop .6s .25s both cubic-bezier(.2, 1.6, .4, 1); }
@keyframes rdx-pop { from { transform: scale(.3); opacity: 0; } }
.rdx-front { position: absolute; inset: 0; display: grid; place-items: center; border-radius: 14px; transform-origin: left center; backface-visibility: hidden;
  transition: transform .8s cubic-bezier(.3, 1.3, .5, 1), box-shadow .8s, filter .3s;
  background: linear-gradient(150deg, #dc2626, #7f1d1d);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18), inset 0 -10px 18px rgba(0, 0, 0, .25), inset 0 8px 14px rgba(255, 255, 255, .08); }
.rdx-front::before { content: ""; position: absolute; inset: 5px; border-radius: 10px; border: 1px solid rgba(253, 230, 138, .55); pointer-events: none; }
/* Geschenkpapier: Zuckerstange, Goldpunkte, Schneenacht, Karo, Creme-Streifen, Rauten */
.rdx-door.p0 .rdx-front { background: repeating-linear-gradient(45deg, rgba(255, 255, 255, .17) 0 7px, transparent 7px 16px), linear-gradient(150deg, #dc2626, #7f1d1d); }
.rdx-door.p1 .rdx-front { background: radial-gradient(circle, rgba(253, 230, 138, .6) 1.6px, transparent 2.2px) 0 0 / 14px 14px, linear-gradient(150deg, #16a34a, #14532d); }
.rdx-door.p2 .rdx-front { background: radial-gradient(circle, rgba(255, 255, 255, .55) 1.2px, transparent 1.8px) 0 0 / 18px 18px,
  radial-gradient(circle, rgba(255, 255, 255, .3) 1px, transparent 1.6px) 9px 9px / 18px 18px, linear-gradient(150deg, #1d4ed8, #172554); }
.rdx-door.p3 .rdx-front { background: linear-gradient(90deg, rgba(0, 0, 0, .2) 50%, transparent 0) 0 0 / 20px 20px, linear-gradient(rgba(0, 0, 0, .2) 50%, transparent 0) 0 0 / 20px 20px,
  linear-gradient(90deg, transparent 9px, rgba(253, 230, 138, .4) 9px 11px, transparent 11px) 0 0 / 20px 20px, linear-gradient(150deg, #be123c, #6b0f1a); }
.rdx-door.p4 .rdx-front { background: repeating-linear-gradient(90deg, transparent 0 12px, rgba(185, 28, 28, .6) 12px 15px, transparent 15px 22px, rgba(21, 128, 61, .55) 22px 24px, transparent 24px 34px),
  linear-gradient(150deg, #fef3c7, #e9c88a); }
.rdx-door.p5 .rdx-front { background: conic-gradient(from 45deg, rgba(255, 255, 255, .13) 25%, transparent 0 50%, rgba(255, 255, 255, .13) 0 75%, transparent 0) 0 0 / 16px 16px,
  linear-gradient(150deg, #0f766e, #134e4a); }
.rdx-door.is-bonus .rdx-front { background: radial-gradient(circle, rgba(253, 230, 138, .55) 1.4px, transparent 2px) 0 0 / 14px 14px, linear-gradient(150deg, #7c3aed, #3b0764); }
.rdx-door.is-big { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.rdx-door.is-big .rdx-front { background: linear-gradient(90deg, transparent calc(50% - 11px), #b91c1c calc(50% - 11px) calc(50% + 11px), transparent 0),
  linear-gradient(transparent calc(50% - 11px), #b91c1c calc(50% - 11px) calc(50% + 11px), transparent 0),
  radial-gradient(circle, rgba(255, 255, 255, .35) 1.4px, transparent 2px) 0 0 / 16px 16px, linear-gradient(150deg, #fbbf24, #b45309 60%, #78350f); }
.rdx-bow { position: absolute; top: 6px; right: 10px; font-size: clamp(1.6rem, 4vw, 2.6rem); transform: rotate(14deg); filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .4)); }
/* Zahl als goldenes Medaillon */
.rdx-n { position: relative; display: grid; place-content: center; width: 2.35em; height: 2.35em; border-radius: 50%; font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(.9rem, 1.9vw, 1.3rem); font-weight: 700; line-height: 1; text-align: center; color: #5b0f0f; text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
  background: radial-gradient(circle at 35% 30%, #fffbea, #fde68a 45%, #d4a017 80%, #a16207);
  box-shadow: 0 3px 8px rgba(0, 0, 0, .45), inset 0 -2px 3px rgba(0, 0, 0, .25), 0 0 0 2px rgba(255, 255, 255, .25); }
.rdx-n small { display: block; margin-top: .2em; font-family: system-ui, sans-serif; font-size: .3em; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; color: #7c2d12; text-shadow: none; }
.rdx-door.is-big .rdx-n { width: 2.7em; height: 2.7em; font-size: clamp(1.6rem, 4vw, 2.6rem); }
.rdx-door.is-big .rdx-ic { font-size: clamp(2.4rem, 6vw, 3.8rem); }
.rdx-door.is-big .rdx-cat { font-size: .75rem; }
/* Zustaende */
.rdx-door.is-open .rdx-front { transform: rotateY(-108deg); box-shadow: -10px 0 18px rgba(0, 0, 0, .5); }
.rdx-door.is-locked .rdx-front { filter: saturate(.8) brightness(.9); }
.rdx-door.is-locked:hover .rdx-front { filter: none; }
.rdx-door.is-locked .rdx-front::after { content: "🔒"; position: absolute; right: .4rem; bottom: .3rem; font-size: .7rem; opacity: .6; }
.rdx-door.is-today { animation: rdx-pulse 1.8s ease-in-out infinite; }
.rdx-door.is-today .rdx-front { box-shadow: inset 0 0 0 2px #fde68a, inset 0 -10px 18px rgba(0, 0, 0, .25); }
.rdx-door.is-today .rdx-n { box-shadow: 0 3px 8px rgba(0, 0, 0, .45), inset 0 -2px 3px rgba(0, 0, 0, .25), 0 0 0 2px #fff8, 0 0 18px #facc15; }
.rdx-door.is-missed .rdx-front { box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .75), inset 0 -10px 18px rgba(0, 0, 0, .25); }
.rdx-door.is-today .rdx-front::after, .rdx-door.is-missed .rdx-front::after { content: "Heute öffnen"; position: absolute; left: 50%; bottom: .4rem; transform: translateX(-50%);
  padding: .1rem .5rem; border-radius: 999px; font-size: .58rem; font-weight: 900; letter-spacing: .02em; white-space: nowrap; color: #3b0a0a;
  background: linear-gradient(180deg, #fffbea, #fbbf24); box-shadow: 0 2px 6px rgba(0, 0, 0, .4); }
.rdx-door.is-missed .rdx-front::after { content: "Nachholen"; background: linear-gradient(180deg, #fff, #cbd5e1); }
@keyframes rdx-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(253, 230, 138, .75), 0 6px 14px rgba(0, 0, 0, .35); } 50% { box-shadow: 0 0 0 10px rgba(253, 230, 138, 0), 0 6px 14px rgba(0, 0, 0, .35); } }
.rdx-door.shake { animation: rdx-shake .45s; }
.rdx-burst { position: fixed; z-index: 10001; pointer-events: none; transform: translate(-50%, -50%); animation: rdx-burst 1.1s cubic-bezier(.2, .8, .3, 1) forwards; }

/* Tuerchen-Karte (Popup) */
.rdx-card { max-width: 440px; padding: 1.25rem 1.3rem 1.1rem; text-align: left;
  background: radial-gradient(circle at 50% 35%, rgba(250, 204, 21, .22), transparent 60%), repeating-linear-gradient(45deg, rgba(255, 255, 255, .03) 0 10px, transparent 10px 20px),
    linear-gradient(160deg, #7f1d1d, #3b0a14 55%, #14532d); }
.rdx-card.is-xmas { background: radial-gradient(circle at 50% 35%, rgba(255, 251, 234, .3), transparent 60%), linear-gradient(160deg, #b45309, #7f1d1d 60%, #3b0a14); }
.rdx-card.is-nov { background: radial-gradient(circle at 50% 35%, rgba(250, 204, 21, .2), transparent 60%), linear-gradient(160deg, #5b21b6, #2e1065 60%, #14532d); }
.rdx-card::before { display: none; }
.rdx-card-top { display: flex; align-items: center; gap: .7rem; }
.rdx-medal { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 50%; font-family: Georgia, 'Times New Roman', serif; font-size: 1.5rem; font-weight: 700;
  color: #5b0f0f; background: radial-gradient(circle at 35% 30%, #fffbea, #fde68a 45%, #d4a017 80%, #a16207); box-shadow: 0 4px 10px rgba(0, 0, 0, .45), inset 0 -2px 3px rgba(0, 0, 0, .25); }
.rdx-card-date { display: grid; line-height: 1.2; }
.rdx-card-date small { font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #fde68a; }
.rdx-card-date b { font-family: Georgia, 'Times New Roman', serif; font-size: 1.2rem; }
.rdx-chip { margin-left: auto; padding: .25rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 800; white-space: nowrap; background: rgba(0, 0, 0, .3); border: 1px solid rgba(253, 230, 138, .4); }
.rdx-card-ic { display: grid; place-items: center; width: 100px; height: 100px; margin: .8rem auto .1rem; border-radius: 50%; font-size: 3.3rem;
  background: radial-gradient(circle, rgba(253, 230, 138, .38), transparent 70%); animation: rdx-float 3s ease-in-out infinite; }
@keyframes rdx-float { 50% { transform: translateY(-6px) rotate(4deg); } }
.rdw-pop-card.rdx-card p { margin: .5rem 0 1.1rem; text-align: center; font-size: 1.08rem; }
.rdx-card-act { display: flex; align-items: center; justify-content: center; gap: .5rem; flex-wrap: wrap; }
.rdw-pop-card .rdx-card-act button:not(.is-main) { color: #fff; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .3); }
.rdw-pop-card .rdx-card-act .rdx-nav { width: 40px; height: 40px; padding: 0; font-size: 1.4rem; line-height: 1; }
.rdx-card-next { margin-top: .95rem; padding-top: .7rem; border-top: 1px dashed rgba(253, 230, 138, .3); text-align: center; font-size: .86rem; color: #e2e8f0; }
.rdx-card-next b { color: #fde68a; font-variant-numeric: tabular-nums; }

@media (max-width: 560px) {
  .rdx-advent { padding-top: 2.2rem; }
  .rdx-stats { width: 100%; }
  .rdx-lights { left: 10px; width: calc(100% - 20px); }
  .rdx-cat { display: none; }
  .rdx-door.is-big .rdx-cat { display: block; }
  .rdx-door.is-today .rdx-front::after, .rdx-door.is-missed .rdx-front::after { bottom: .25rem; font-size: .52rem; padding: .08rem .35rem; }
  .rdx-n { font-size: .95rem; }
}
@keyframes rdx-burst { 70% { opacity: 1; } to { transform: translate(calc(-50% + var(--bx)), calc(-50% + var(--by))) rotate(160deg) scale(.4); opacity: 0; } }

/* Szene: Rauch, Sternschnuppe, Tiefenbewegung */
.rdx-scene { transition: transform .4s ease-out; transform-origin: 70% 60%; }
.rdx-smoke { fill: #e2e8f0; opacity: 0; animation: rdx-smoke 3.6s ease-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes rdx-smoke { 0% { opacity: 0; transform: translate(0, 0) scale(.5); } 20% { opacity: .55; } 100% { opacity: 0; transform: translate(10px, -46px) scale(2.2); } }
.rdx-shoot { opacity: 0; animation: rdx-shoot 9s linear infinite; }
@keyframes rdx-shoot { 0%, 82% { opacity: 0; transform: translate(380px, 40px); } 84% { opacity: 1; } 92% { opacity: 1; transform: translate(640px, 130px); } 94%, 100% { opacity: 0; transform: translate(680px, 145px); } }
@keyframes rdx-shake { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-5px) rotate(-3deg); } 40% { transform: translateX(5px) rotate(3deg); } 60% { transform: translateX(-3px); } 80% { transform: translateX(3px); } }

.rdx-tips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
.rdx-tip { display: grid; gap: .25rem; padding: 1rem; border-radius: 20px; text-decoration: none; color: #fff; border: 1px solid rgba(255, 255, 255, .1);
  background: linear-gradient(160deg, rgba(220, 38, 38, .16), rgba(22, 163, 74, .12)), var(--panel, #140d18); transition: transform .15s, border-color .15s; }
.rdx-tip:hover { transform: translateY(-3px); border-color: rgba(253, 230, 138, .5); }
.rdx-tip-ic { font-size: 1.8rem; } .rdx-tip b { font-size: 1rem; } .rdx-tip small { color: #cbd5e1; line-height: 1.45; }

@media (max-width: 900px) {
  .rdx-tips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .rdx-hero { min-height: 0; background: linear-gradient(180deg, #0b1033, #2a1b4d); }
  .rdx-hero::after { background: none; }
  .rdx-scene { top: auto; bottom: 0; height: 210px; }
  .rdx-copy { padding-bottom: 215px; }
  .rdx-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; }
  .rdx-count { flex-wrap: nowrap; gap: .4rem; }
  .rdx-count div { flex: 1; min-width: 0; padding: .45rem .2rem .4rem; }
  .rdx-count small { font-size: .55rem; letter-spacing: .03em; }
}

/* Schneedecke unten, waechst langsam */
.rdw-ground { position: fixed; left: 0; right: 0; bottom: 0; height: 0; z-index: 899; pointer-events: none; opacity: .92;
  filter: drop-shadow(0 -2px 4px rgba(0, 0, 0, .25)); animation: rdw-grow 120s ease-out forwards; }
.rdw-ground svg { display: block; width: 100%; height: 100%; }
@keyframes rdw-grow { from { height: 0; } to { height: 22px; } }
body.rdw-snow-off .rdw-ground { display: none; }

/* Schneehauben auf Karten (Startseite + Shop) */
body.rd-winter .rdx-tip, body.rd-winter .mcs-card, body.rd-winter .rk-card, body.rd-winter .cp-card { position: relative; }
body.rd-winter :is(.rdx-tip, .mcs-card, .rk-card, .cp-card)::before { content: ""; position: absolute; z-index: 3; left: -2px; right: -2px; top: -3px; height: 13px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 13' preserveAspectRatio='none'%3E%3Cpath d='M0 0h100v5c-4 0-5 5-10 5s-5-4-11-4-5 6-11 6-6-5-12-5-5 4-11 4-6-6-12-6-5 5-11 5S7 6 3 6 0 9 0 8z' fill='%23f8fbff'/%3E%3C/svg%3E") no-repeat;
  background-size: 100% 100%; filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .25)); border-radius: 20px 20px 0 0; }

/* Schnee an/aus */
.rdw-toggle { position: fixed; left: 14px; bottom: 14px; z-index: 900; width: 44px; height: 44px; border-radius: 50%; cursor: pointer;
  border: 1px solid rgba(255, 255, 255, .3); background: radial-gradient(circle at 35% 30%, rgba(96, 165, 250, .5), rgba(10, 14, 30, .85)); color: #fff;
  font-size: 1.3rem; backdrop-filter: blur(6px); box-shadow: 0 4px 16px rgba(0, 0, 0, .4), 0 0 14px rgba(147, 197, 253, .35); transition: transform .15s, opacity .15s; }
.rdw-toggle:hover { transform: scale(1.08) rotate(20deg); }
.rdw-toggle.off { opacity: .5; filter: grayscale(1); }

@media (max-width: 900px) { body.rd-winter .navbar { position: relative; } } /* dort sonst static - Kappe/Lichter brauchen einen Bezug */
@media (max-width: 720px) {
  .rdw-bar-inner { padding: .3rem 2.4rem .65rem .8rem; gap: .5rem; }
  .rdw-msg { font-size: .85rem; }
  .rdw-unit { min-width: 2.6rem; padding: .25rem .35rem; }
  .rdw-unit b { font-size: 1.05rem; }
  .rdw-santa { display: none; }
  .rdw-ball:nth-child(n+2):nth-child(-n+5) { display: none; }
  .rdw-snowman, .rdw-tree-foot { width: 46px; top: 12px; } .rdw-tree-foot { top: 6px; width: 48px; }
  .rdw-gifts { display: none; }
  .rdw-mascot { width: 58px; height: 72px; left: 60px; bottom: -10px; }
  .rdw-sleigh { width: 170px; }
  .rdw-door span { display: none; }
}
