/* Yılbaşı modu: yalnızca görsellik. Admin > Site Ayarları > Yılbaşı modu açıkken yüklenir; her özellik ayrı kapatılabilir. */

/* ---- Kar yağışı ---- */
.xmas-snow { position: fixed; inset: 0; z-index: 1900; overflow: hidden; pointer-events: none; }
.xmas-flake { position: absolute; top: -28px; color: #f4f9ff; opacity: var(--op, .85); font-size: var(--size, 14px); line-height: 1; text-shadow: 0 0 2px #4f7fc4, 0 0 6px rgba(79, 127, 196, .75), 0 1px 2px rgba(20, 40, 90, .5); will-change: transform; animation: xmasFall var(--dur, 12s) linear var(--delay, 0s) infinite; }
.xmas-flake > i { display: block; font-style: normal; animation: xmasSway calc(var(--dur, 12s) / 3.4) ease-in-out var(--delay, 0s) infinite alternate; }
@keyframes xmasFall { from { transform: translate3d(0, -4vh, 0); } to { transform: translate3d(0, 108vh, 0); } }
@keyframes xmasSway { from { transform: translateX(calc(var(--sway, 30px) * -1)) rotate(-25deg); } to { transform: translateX(var(--sway, 30px)) rotate(25deg); } }

/* ---- Işık zinciri (başlığın altında) ---- */
.xmas-lights { position: absolute; z-index: 5; left: 0; right: 0; bottom: -13px; height: 22px; display: flex; justify-content: space-between; padding: 0 10px; pointer-events: none; }
.xmas-lights::before { content: ""; position: absolute; left: 0; right: 0; top: 2px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, #1d2a1f, #2c3d2f, #1d2a1f); box-shadow: 0 1px 2px rgba(0, 0, 0, .25); }
.xmas-bulb { position: relative; width: 9px; height: 13px; margin-top: 4px; border-radius: 50% 50% 55% 55%; background: var(--c); box-shadow: 0 0 9px 2px var(--c); animation: xmasTwinkle 1.8s ease-in-out var(--d, 0s) infinite alternate; }
.xmas-bulb::before { content: ""; position: absolute; left: 2px; top: -4px; width: 5px; height: 5px; border-radius: 1px; background: #3b4a3d; }
@keyframes xmasTwinkle { from { opacity: .45; filter: brightness(.8); } to { opacity: 1; filter: brightness(1.25); } }

/* ---- Logoda şapka ---- */
/* Şapka artık logonun kendisinde (logo-xmas.svg); eski üstüne bindirilen şapka kaldırıldı. */

/* ---- Kar birikintisi (kart ve düğmelerin üst kenarı) ---- */
.xmas-caps :is(.ko-item-card, .lunora-category-card, .lunora-quick-card, .cypher-card, .lunora-cart-button, .lunora-header-register, .lunora-all-games) { position: relative; }
.xmas-caps :is(.ko-item-card, .lunora-category-card, .lunora-quick-card, .cypher-card, .lunora-cart-button, .lunora-header-register, .lunora-all-games)::before { content: ""; position: absolute; z-index: 4; left: 8px; right: 8px; top: -1px; height: 9px; pointer-events: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 10' preserveAspectRatio='none'%3E%3Cpath d='M0 0h40v3c-3 0-4 6-8 6s-4-5-8-5-4 6-8 6-4-6-8-6-4 3-8 3z' fill='%23f7fbff' stroke='%23b4cdea' stroke-width='.8'/%3E%3C/svg%3E") repeat-x top left / 28px 100%; filter: drop-shadow(0 1px 1.5px rgba(60, 100, 170, .4)); }
.xmas-caps .lunora-cart-button::before, .xmas-caps .lunora-header-register::before { left: 4px; right: 4px; height: 6px; }

/* ---- Sabit kar birikintileri: yağışı beklemeden sayfa açılır açılmaz görünür ---- */
.xmas-caps #header.lunora-header::before { content: ""; position: absolute; z-index: 6; left: 0; right: 0; top: -1px; height: 12px; pointer-events: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 12' preserveAspectRatio='none'%3E%3Cpath d='M0 0h80v4c-5 0-6 8-12 8s-7-6-13-6-6 5-11 5-7-8-13-8-7 6-12 6-7-5-9-5z' fill='%23f7fbff' stroke='%23b4cdea' stroke-width='.8'/%3E%3C/svg%3E") repeat-x top left / 80px 100%; filter: drop-shadow(0 1px 1.5px rgba(60, 100, 170, .4)); }
.xmas-caps .lunora-footer { position: relative; }
.xmas-caps .lunora-footer::before { content: ""; position: absolute; z-index: 3; left: 0; right: 0; top: -15px; height: 24px; pointer-events: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 24' preserveAspectRatio='none'%3E%3Cpath d='M0 24V15Q20 1 40 15T80 15T120 15T160 15V24z' fill='%23f7fbff' stroke='%23b4cdea' stroke-width='.8'/%3E%3C/svg%3E") repeat-x bottom left / 160px 100%; filter: drop-shadow(0 -1px 2px rgba(60, 80, 120, .25)); }

/* ---- Kartlarda buz parıltısı ---- */
.xmas-sparkle :is(.ko-item-card, .lunora-category-card, .lunora-quick-card, .lunora-pvp-card, .cypher-card, .lunora-cr-tile):hover { box-shadow: 0 0 0 1px rgba(150, 215, 255, .8), 0 12px 32px rgba(110, 185, 255, .32) !important; filter: brightness(1.03) saturate(1.05); transition: box-shadow .25s ease, filter .25s ease; }

/* ---- Hoş geldin balonu ---- */
.xmas-hello { position: fixed; z-index: 1950; left: 16px; bottom: 18px; max-width: 290px; display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; color: #17191f; font-size: 13.5px; font-weight: 700; line-height: 1.4; background: #fff; border: 1px solid #ffd2b0; border-radius: 16px; box-shadow: 0 16px 40px rgba(16, 24, 40, .22); animation: xmasHelloIn .5s ease both; }
.xmas-hello.is-out { animation: xmasHelloOut .5s ease both; }
.xmas-hello b { font-size: 22px; line-height: 1; }
.xmas-hello button { flex: none; width: 22px; height: 22px; margin: -2px -4px 0 0; border: 0; border-radius: 50%; background: #f1ede9; color: #555; font-size: 15px; line-height: 1; cursor: pointer; }
@keyframes xmasHelloIn { from { opacity: 0; transform: translateY(14px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes xmasHelloOut { to { opacity: 0; transform: translateY(14px) scale(.96); } }

/* ---- Havai fişek ---- */
.xmas-fireworks { position: fixed; inset: 0; z-index: 1850; width: 100%; height: 100%; pointer-events: none; }

@media (max-width: 767.98px) {
    .xmas-lights { bottom: -11px; height: 20px; padding: 0 6px; }
    .xmas-bulb { width: 8px; height: 11px; }
    .xmas-hello { left: 10px; right: 10px; bottom: 76px; max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
    .xmas-snow, .xmas-fireworks { display: none; }
    .xmas-bulb, .xmas-hello { animation: none; }
}

/* ---- JS ile eklenen ek kar birikintileri (bölüm, kart ve arama kutusu üst kenarları) ---- */
.xmas-cap { position: absolute; z-index: 4; left: 10px; right: 10px; top: -1px; height: 12px; pointer-events: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 12' preserveAspectRatio='none'%3E%3Cpath d='M0 0h36v4c-3 0-4 7-9 7s-5-5-9-5-5 6-9 6-6-6-9-6z' fill='%23f7fbff' stroke='%23b4cdea' stroke-width='.8'/%3E%3C/svg%3E") repeat-x top left / 36px 100%; filter: drop-shadow(0 1px 1.5px rgba(60, 100, 170, .42)); }
.xmas-cap--big { left: 0; right: 0; height: 22px; background-size: 72px 100%; }
.xmas-cap--soft { left: 6px; right: 6px; height: 9px; background-size: 28px 100%; }

/* ---- Kış köyü ve tren (kategorilerin hemen üstünde, yalnız bilgisayar) ---- */
.xmas-village { position: relative; height: 60px; overflow: hidden; pointer-events: none; background: linear-gradient(180deg, #f5f9ff 0%, #e6f0fb 100%); border-top: 1px solid #e3ebf6; }
.xmas-village__bank { position: absolute; left: -10px; right: -10px; bottom: 22px; height: 12px; border-radius: 50% 50% 0 0 / 100% 100% 0 0; background: #fff; box-shadow: 0 -1px 2px rgba(120, 160, 210, .35); }
.xmas-village__track { position: absolute; left: 0; right: 0; bottom: 0; height: 9px; background: repeating-linear-gradient(90deg, #7a5230 0 3px, transparent 3px 10px) bottom / 100% 5px no-repeat, #fff; border-top: 2px solid #98a3b3; box-shadow: inset 0 -2px 0 #98a3b3; }
.xmas-vi { position: absolute; bottom: 25px; display: block; }
.xmas-vi svg { display: block; height: 31px; width: auto; filter: drop-shadow(0 1px 1px rgba(60, 90, 140, .3)); }
.xmas-vi--tree svg { height: 29px; }
.xmas-train { position: absolute; left: 0; bottom: 5px; width: 178px; height: 26px; }
.xmas-train svg { display: block; width: 100%; height: 100%; overflow: visible; animation: xmasTrainShake .35s ease-in-out infinite alternate; }
.xmas-smoke { opacity: 0; animation: xmasSmoke 2.4s ease-out infinite; transform-box: fill-box; transform-origin: center; }
.xmas-smoke--b { animation-delay: .8s; }
.xmas-smoke--c { animation-delay: 1.6s; }
@keyframes xmasTrainShake { from { transform: translateY(0); } to { transform: translateY(-1px); } }
@keyframes xmasSmoke { 0% { opacity: .85; transform: translate(0, 0) scale(.7); } 100% { opacity: 0; transform: translate(-14px, -20px) scale(2); } }
@media (max-width: 767.98px) { .xmas-village { display: none; } }
@media (prefers-reduced-motion: reduce) { .xmas-train { display: none; } }

/* ---- Köy açıkken kategori şeridine nefes payı; çizgiler yumuşatıldı ---- */
.xmas-village + .lunora-nav-wrap { border-top: 0; }
.xmas-village + .lunora-nav-wrap .lunora-nav-row { min-height: 68px; }
.xmas-village__track { border-top: 1px solid #c9d3e0; box-shadow: none; background: repeating-linear-gradient(90deg, #9a7550 0 3px, transparent 3px 10px) bottom / 100% 4px no-repeat, #fff; }
.xmas-lights::before { height: 2px; opacity: .5; box-shadow: none; }
