.text-shadow-lg{text-shadow:0 8px 20px #020617d9}.holiday-bg{background:radial-gradient(circle at 20% 20%,#fbbfbc59,#0000 45%),radial-gradient(circle at 80% 0,#fda4af4d,#0000 45%),linear-gradient(#fff8fb 0%,#ffeef3 60%,#fff5f7 100%);position:relative;overflow:hidden}@media (prefers-color-scheme:dark){.holiday-bg{background:radial-gradient(circle at 20% 20%,#fbbfbc26,transparent 45%),radial-gradient(circle at 80% 0%,#fda4af1f,transparent 45%),linear-gradient(180deg,var(--background)0%,var(--background)60%,var(--background)100%)}}.holiday-bg:after{content:"";opacity:.5;pointer-events:none;background:radial-gradient(circle,#f48fb129 1px,#0000 1px) 0 0/220px 220px,repeating-linear-gradient(#f472b614 0 1px,#0000 1px 4px) 0 0/100% 4px;position:absolute;inset:0}.holiday-card{background:#fffffff2;border:1px solid #fb718533;border-radius:30px;transition:transform .3s,border-color .3s;box-shadow:0 25px 60px #f43f5e26}@media (prefers-color-scheme:dark){.holiday-card{background:var(--background);border:1px solid #fb71854d;box-shadow:0 25px 60px #f43f5e4d}}.holiday-card:hover{border-color:#f43f5e73;transform:translateY(-6px);box-shadow:0 35px 80px #f43f5e40}.holiday-card:after{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(120deg,#fda4af33,#f472b666);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.holiday-modal{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:radial-gradient(circle at top,#ffe4ecbf,#fffffff2);border:1px solid #f472b640;border-radius:28px;box-shadow:0 30px 80px #f43f5e2e}@media (prefers-color-scheme:dark){.holiday-modal{background:radial-gradient(circle at top,#fb718533,var(--background));border:1px solid #f472b666;box-shadow:0 30px 80px #f43f5e66}}.holiday-btn{border:1px solid #f472b640;transition:box-shadow .2s,transform .2s}.holiday-btn:hover{border-color:#f472b68c;box-shadow:0 10px 20px #f43f5e33}.holiday-badge{color:#fff;background:linear-gradient(90deg,#f43f5ef2,#fb7185f2);border-radius:999px;padding:.35rem .8rem;box-shadow:0 4px 15px #f43f5e40}.holiday-newsletter{background:#fffffff2;border:1px solid #fbd6e2e6;border-radius:32px;padding:1.5rem;box-shadow:0 30px 50px #f43f5e26}@media (prefers-color-scheme:dark){.holiday-newsletter{background:var(--background);border:1px solid #fbd6e24d;box-shadow:0 30px 50px #f43f5e4d}}.holiday-divider{background:linear-gradient(90deg,#fff0 0%,#f8fafc99 50%,#fff0 100%);height:1px;margin:2rem 0}.snowfall-glow{mix-blend-mode:screen;pointer-events:none;opacity:.6;background-image:radial-gradient(circle,#ffffff40 2px,#0000 2px);background-size:180px 180px;position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.snowfall-glow{animation:6s linear infinite twinkle}}.mobile-calendar-container{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe6;border:1px solid #fbb6ce66;border-radius:1rem;padding:1rem}@media (prefers-color-scheme:dark){.mobile-calendar-container{background:var(--background);border:1px solid #fbb6ce4d}}.mobile-event-card:active{transform:scale(.98)}@media (prefers-reduced-motion:no-preference){.mobile-event-card{animation:.35s ease-out float-up}}@keyframes float-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.upcoming-events-header{text-align:center;margin-bottom:1.5rem;position:relative}.upcoming-events-header:after{content:"";background:linear-gradient(90deg,#3b82f626,#f8fafce6,#3b82f626);width:60px;height:2px;position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%)}.overflow-y-auto{-webkit-overflow-scrolling:touch}@media (max-width:640px){button{min-height:44px}}
