/* 🎉 活動區 */
.events-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); max-width: 1060px; margin: 0 auto; }
.ev-card { background: #fff; color: var(--brown, #4a2414); border: 4px solid var(--brown, #4a2414); border-radius: 22px; box-shadow: 0 6px 0 var(--brown, #4a2414); padding: 1rem 1.1rem; text-align: center; display: grid; gap: .5rem; align-content: start; }
.ev-card h3 { margin: 0; font-family: var(--font-cute, inherit); font-weight: 400; font-size: 1.35rem; }
.ev-card p { margin: 0; }
.ev-big { font-size: 3rem; line-height: 1; }
.ev-left { opacity: .75; font-size: .8rem; }
.ev-fest { background: linear-gradient(160deg, #fff4dc, #ffe1e1); }
.fest-xmas .ev-fest { background: linear-gradient(160deg, #e8f6ee, #fff4dc 60%, #ffe1e1); }
.fest-cny .ev-fest { background: linear-gradient(160deg, #ffe1d6, #fff1c4); }
.fest-halloween .ev-fest { background: linear-gradient(160deg, #ffe6c8, #efe1ff); }
.ev-opts { display: grid; gap: .45rem; }
.ev-opt { display: grid; grid-template-columns: 48px 1fr auto; grid-template-rows: auto auto; gap: .1rem .6rem; align-items: center; text-align: left; background: var(--cream, #fff4dc); border: 3px solid var(--brown, #4a2414); border-radius: 14px; padding: .4rem .6rem; font-weight: 700; }
.ev-opt img { grid-row: 1 / 3; width: 48px; height: 48px; object-fit: contain; }
.ev-oname { grid-column: 2; }
.ev-pct { grid-column: 3; grid-row: 1 / 3; font-size: .8rem; opacity: .8; }
.ev-bar { grid-column: 2; height: 8px; border-radius: 99px; background: #fff; border: 2px solid var(--brown, #4a2414); overflow: hidden; }
.ev-bar i { display: block; height: 100%; background: linear-gradient(90deg, #ff9ec0, #f6b830); transition: width .6s; }
.ev-opt.mine { background: #fff6d6; box-shadow: 0 0 0 3px var(--pink, #ff9ec0); }
.ev-opt:disabled { opacity: .85; cursor: default; }
.ev-rimg { width: 140px; height: 140px; object-fit: contain; margin: 0 auto; }
.ev-rinfo b { color: var(--red, #c4232b); }
.ev-in, .ev-winners { font-weight: 700; padding: .5rem; border-radius: 12px; background: var(--cream, #fff4dc); }
.ev-pre ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; text-align: left; }
.ev-pre li { display: flex; gap: .6rem; align-items: center; }
.ev-pre li img { width: 48px; height: 48px; object-fit: contain; }
.ev-pre li span { display: grid; }
.ev-pre li small { opacity: .75; }

/* 節日飄落小裝飾（唔擋到撳嘢） */
.fest-fall { position: fixed; inset: 0; pointer-events: none; z-index: 40; overflow: hidden; }
.fest-fall span { position: absolute; top: -40px; opacity: .8; animation: festfall var(--d, 12s) linear var(--delay, 0s) infinite; }
.fest-xmas .fest-fall span { color: #9fd3ff; text-shadow: 0 0 4px #fff; }
@keyframes festfall { to { transform: translate(var(--x, 0), 110vh) rotate(360deg); } }
/* 節日小改色：頂部紅色橫額加少少裝飾 */
.fest-xmas .topbar { box-shadow: inset 0 -4px 0 #17704d; }
.fest-cny .topbar { box-shadow: inset 0 -4px 0 #f6b830; }
@media (prefers-reduced-motion: reduce) { .fest-fall { display: none; } }
