@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&family=Manrope:wght@400;500;600;700;800&display=swap";:root{--primary:#1a3a8f;--primary-light:#2651c9;--primary-hover:#112670;--primary-dark:#0d1f5c;--accent:#5b3de8;--accent-light:#7c62f0;--accent-hover:#4429d0;--accent-bg:#5b3de814;--violet:#7c3aed;--violet-light:#9f6ef7;--background:#f5f6fa;--surface:#fff;--surface-2:#f0f2f9;--surface-3:#e8ebf5;--text:#12172e;--text-muted:#556080;--text-faint:#9aa3bf;--scarlet:#c23e4d;--scarlet-muted:#9a4a54;--scarlet-bg:#c23e4d14;--scarlet-border:#c23e4d61;--border:#dde1f0;--border-light:#eaecf5;--shadow-xs:0 1px 3px #1a3a8f12;--shadow-sm:0 2px 8px #1a3a8f1a;--shadow-md:0 6px 24px #1a3a8f21;--shadow-lg:0 16px 48px #1a3a8f29;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--font-display:"Montserrat", "Arial Black", sans-serif;--font-body:"Manrope", "Segoe UI", system-ui, sans-serif;--ease:cubic-bezier(.16, 1, .3, 1);--duration:.2s;--content-narrow:640px;--content-default:960px;--content-wide:1200px;--navbar-height:68px;--navbar-gap:1.25rem}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;hanging-punctuation:first last}body{font-family:var(--font-body);background-color:var(--background);color:var(--text);min-height:100dvh;font-size:1rem;line-height:1.65;overflow-x:hidden}#root{flex-direction:column;min-height:100dvh;display:flex}img,video{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer}h1,h2,h3,h4{font-family:var(--font-display);color:var(--primary-dark);font-weight:700;line-height:1.15}h1{font-size:clamp(1.8rem,4vw,3rem)}h2{font-size:clamp(1.4rem,3vw,2.25rem)}h3{font-size:clamp(1.05rem,2vw,1.4rem)}::selection{color:var(--primary-dark);background:#5b3de826}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}.app-main{padding-top:calc(var(--navbar-height) + var(--navbar-gap));flex-direction:column;flex:1;display:flex}.navbar{z-index:200;height:var(--navbar-height);background:var(--primary-dark);transition:box-shadow var(--duration) var(--ease), background var(--duration) var(--ease);position:fixed;top:0;left:0;right:0}.navbar--scrolled{background:var(--primary-dark);box-shadow:0 4px 24px #0d1f5c73}.navbar-inner{max-width:var(--content-wide);justify-content:space-between;align-items:center;gap:1rem;height:100%;margin:0 auto;padding:0 1.5rem;display:flex}.navbar-logo{color:#fff;transition:opacity var(--duration);flex-shrink:0;align-items:center;gap:.625rem;display:flex}.navbar-logo:hover{opacity:.85}.navbar-logo svg{color:var(--accent-light);filter:drop-shadow(0 0 8px #7c62f08c);flex-shrink:0}.navbar-logo-text{flex-direction:column;line-height:1.1;display:flex}.navbar-logo-primary{font-family:var(--font-display);color:#fff;letter-spacing:.01em;font-size:1.05rem;font-weight:800}.navbar-logo-secondary{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:#ffffff73;font-size:.68rem;font-weight:500}.navbar-links{align-items:center;gap:.125rem;display:flex}.navbar-link{border-radius:var(--radius-sm);color:#fff9;white-space:nowrap;letter-spacing:.01em;border:none;padding:0;font-size:.875rem;font-weight:600;transition:color .35s cubic-bezier(.16,1,.3,1);display:inline-flex}.navbar-link__inner{border-radius:inherit;align-items:center;padding:.45rem .875rem;display:inline-flex;position:relative}.navbar-link__outline{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.navbar-link__path{fill:none;stroke:var(--accent-light);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}.navbar-link:hover{color:#fff}.navbar-link__path--on{animation:.28s linear forwards navbar-outline-draw}.navbar-link--active{color:#fff;font-weight:700}@keyframes navbar-outline-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.navbar-burger{cursor:pointer;border-radius:var(--radius-sm);width:44px;height:44px;transition:background var(--duration);background:0 0;border:none;flex-direction:column;flex-shrink:0;justify-content:center;gap:5px;padding:10px;display:none}.navbar-burger:hover{background:#ffffff14}.burger-line{border-radius:var(--radius-full);height:2px;transition:transform .3s var(--ease), opacity .2s ease, width .2s ease;transform-origin:50%;background:#fff;width:100%;display:block}.burger-line--1-open{transform:translateY(7px)rotate(45deg)}.burger-line--2-open{opacity:0;transform:scaleX(0)}.burger-line--3-open{transform:translateY(-7px)rotate(-45deg)}.mobile-menu{top:var(--navbar-height);z-index:190;background:var(--primary-dark);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:transform .32s var(--ease), opacity .25s ease;border-bottom:1px solid #ffffff12;padding:.75rem 1rem 1.25rem;position:fixed;left:0;right:0;transform:translateY(-110%)}.mobile-menu--open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-menu-links{flex-direction:column;gap:.25rem;display:flex}.mobile-menu-link{border-radius:var(--radius-md);color:#fff9;border:none;width:100%;padding:0;font-size:1rem;font-weight:600;transition:color .35s cubic-bezier(.16,1,.3,1);display:flex}.mobile-menu-link__inner{border-radius:inherit;align-items:center;gap:.75rem;width:100%;padding:.875rem 1rem;display:flex;position:relative}.mobile-menu-link__outline{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.mobile-menu-link__path{fill:none;stroke:var(--accent-light);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}.mobile-menu-link:hover{color:#fff}.mobile-menu-link__path--on{animation:.28s linear forwards navbar-outline-draw}.mobile-menu-link--active{color:#fff;font-weight:700}.mobile-menu-link__text{align-items:center;gap:.75rem;width:100%;display:flex}.mobile-menu-icon{text-align:center;flex-shrink:0;width:28px;font-size:1.15rem}.mobile-menu-overlay{inset:0;top:var(--navbar-height);z-index:180;background:#0d1f5c8c;animation:.2s fadeOverlay;position:fixed}@keyframes fadeOverlay{0%{opacity:0}to{opacity:1}}.btn{background:var(--accent);color:#fff;border-radius:var(--radius-md);font-family:var(--font-body);cursor:pointer;letter-spacing:.02em;transition:background var(--duration) var(--ease), transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease);border:2px solid #0000;align-items:center;gap:.5rem;padding:.75rem 1.75rem;font-size:.9rem;font-weight:700;display:inline-flex}.btn:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 8px 24px #5b3de866}.btn:active{transform:translateY(0)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-hover)}.btn-primary{background:var(--primary)}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 8px 24px #1a3a8f59}.btn-secondary{color:var(--primary-dark);border-color:var(--border);background:0 0}.btn-secondary:hover{background:var(--surface-2);border-color:var(--primary);box-shadow:none}.btn-outline{color:#fff;background:0 0;border-color:#ffffff73}.btn-outline:hover{box-shadow:none;background:#ffffff1a;border-color:#fff}.small-btn{border-radius:var(--radius-sm);padding:.4rem .9rem;font-size:.82rem}.back-link{color:var(--text-muted);font-size:.875rem;font-weight:600;font-family:var(--font-body);border-radius:var(--radius-sm);transition:color var(--duration) var(--ease), transform var(--duration) var(--ease);background:0 0;border:none;align-items:center;gap:.4rem;margin-bottom:1.5rem;padding:.4rem .75rem .4rem .25rem;display:inline-flex}.back-link:hover{color:var(--accent);transform:translate(-3px)}.back-link:active{transform:translate(0)}.hero{color:var(--text);background:0 0;padding:clamp(3rem,7vw,5rem) 1.5rem clamp(2rem,5vw,3.5rem);position:relative}.hero-overlay{z-index:1;max-width:var(--content-wide);grid-template-columns:1.05fr .95fr;align-items:center;gap:3rem;margin:0 auto;display:grid;position:relative}.hero-left{flex-direction:column;gap:1.25rem;display:flex}.hero h1{font-family:var(--font-display);color:var(--primary-dark);letter-spacing:-.03em;font-size:clamp(2rem,5vw,3.6rem);font-weight:900;line-height:1.08}.hero-subtitle{color:var(--text-muted);font-size:clamp(1.05rem,2.25vw,1.4rem);font-weight:400;line-height:1.55}.hero-subtitle-static{color:var(--text-muted)}.typewriter-line,.typewriter-word{color:var(--violet-light);font-weight:700}.typewriter-cursor{color:var(--accent-light);margin-left:2px;font-weight:300;animation:.85s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-right{flex-direction:column;gap:1.5rem;display:flex}.hero-search{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color var(--duration), box-shadow var(--duration);align-items:center;gap:.75rem;padding:.5rem .5rem .5rem 1.25rem;display:flex}.hero-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #5b3de81f}.hero-search-icon{color:var(--text-muted);flex-shrink:0}.hero-search-input{min-width:0;font-family:var(--font-body);color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:.85rem 0;font-size:1.1rem}.hero-search-input::placeholder{color:var(--text-faint)}.hero-search-btn{background:var(--accent);border-radius:var(--radius-md);color:#fff;cursor:pointer;width:54px;height:54px;transition:background var(--duration), transform var(--duration), box-shadow var(--duration);border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.hero-search-btn:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 8px 24px #5b3de866}.hero-upcoming{display:block}.upcoming-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.6rem;font-size:.72rem;font-weight:700;display:block}.upcoming-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--duration) var(--ease), border-color var(--duration), box-shadow var(--duration);align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;display:flex}.upcoming-card:hover{border-color:var(--accent);box-shadow:0 0 0 3px #5b3de81f, var(--shadow-sm);transform:translateY(-2px)}.upcoming-icon-block{border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--accent), var(--violet));width:64px;height:64px;box-shadow:var(--shadow-md);font-family:var(--font-display);color:#fff;flex-shrink:0;justify-content:center;align-items:center;font-size:1.75rem;font-weight:800;display:flex}.upcoming-info{flex:1;min-width:0}.upcoming-people{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem;font-size:.72rem;font-weight:700}.upcoming-name{font-family:var(--font-display);color:var(--primary-dark);white-space:nowrap;text-overflow:ellipsis;margin-bottom:.2rem;font-size:1.05rem;font-weight:800;overflow:hidden}.upcoming-date{color:var(--text-muted);margin-bottom:.35rem;font-size:.82rem}.upcoming-countdown{color:var(--accent);background:var(--accent-bg);border-radius:var(--radius-sm);border:1.5px solid #5b3de833;padding:.2rem .6rem;font-size:.75rem;font-weight:700;display:inline-block}.home-page{width:100%;max-width:100%;overflow-x:clip}section{max-width:min(var(--content-wide), 100%);box-sizing:border-box;margin:0 auto;padding:clamp(2.5rem,5vw,4.5rem) 1.5rem}section.drum-section{padding-top:0;padding-bottom:0}section.hero{padding:clamp(3.25rem,8vw,5.5rem) 0 0}section h2{text-align:center;color:var(--primary-dark);margin-bottom:clamp(1.5rem,3vw,2.5rem)}.section-divider{background:linear-gradient(to right, transparent, var(--border) 20%, var(--border) 80%, transparent);border:none;max-width:800px;height:1px;margin:0 auto}.filters{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin-bottom:2rem;display:flex}.filters select{border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-family:var(--font-body);color:var(--text);cursor:pointer;transition:border-color var(--duration);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23556080' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right .875rem center;background-repeat:no-repeat;background-color:var(--surface);min-width:160px;box-shadow:var(--shadow-xs);padding:.65rem 2.25rem .65rem 1rem;font-size:.9rem;font-weight:500}.filters select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5b3de81f}.holidays-preview-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:clamp(1.25rem,2.5vw,1.75rem);display:grid}.holiday-card{background:var(--surface);border-radius:var(--radius-lg);border:1.5px solid var(--border-light);cursor:pointer;width:100%;transition:transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease);box-shadow:var(--shadow-xs);flex-direction:column;display:flex;overflow:hidden}.holiday-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-6px)}.holiday-card-media{justify-content:center;align-items:center;height:150px;display:flex;position:relative;overflow:hidden}.holiday-card-media:after{content:"";background:linear-gradient(#0000 40%,#0d1f5c73 100%);position:absolute;inset:0}.holiday-card-img{object-fit:cover;width:100%;height:100%;display:block}.holiday-card-media-title{font-family:var(--font-display);color:#fff;text-align:center;z-index:1;text-shadow:0 2px 10px #00000047;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:100%;padding:0 1rem;font-size:clamp(1.05rem,3.2vw,1.45rem);font-weight:800;line-height:1.2;display:-webkit-box;position:relative;overflow:hidden}.holiday-card-body{flex-direction:column;flex:1;gap:.35rem;padding:1.15rem;display:flex}.holiday-card-body h3{color:var(--primary-dark);font-size:1.05rem;font-weight:700}.holiday-card-title{font-family:var(--font-display);color:var(--primary-dark);font-size:1.05rem;font-weight:800;line-height:1.15}.holiday-card-people{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:700}.holiday-card-desc{color:var(--text-muted);flex:1;font-size:.875rem;line-height:1.55}.holiday-card-date{color:var(--accent);align-items:center;gap:.4rem;margin-top:.35rem;font-size:.82rem;font-weight:700;display:flex}.proposal-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:2px}.no-results{text-align:center;width:100%;color:var(--text-faint);grid-column:1/-1;padding:3rem 0;font-size:1rem}.show-more-wrap{justify-content:center;margin-top:2rem;display:flex}.show-more-btn{color:var(--accent);background:var(--accent-bg);border-radius:var(--radius-md);transition:background var(--duration), transform var(--duration), box-shadow var(--duration);border:2px solid #5b3de838;align-items:center;gap:.5rem;padding:.875rem 2.5rem;font-size:1rem;font-weight:700;display:inline-flex}.show-more-btn:hover{background:#5b3de824;transform:translateY(-2px);box-shadow:0 6px 20px #5b3de838}.contribute-section{background:var(--primary-dark);border-radius:var(--radius-xl);text-align:center;box-shadow:var(--shadow-lg);width:calc(100% - 3rem);max-width:var(--content-wide);background-image:radial-gradient(at 80%,#7c62ff99 0%,#0000 62%),radial-gradient(at 10% 80%,#2651c9b3 0%,#0000 55%);margin:0 auto clamp(2rem,4vw,4rem);padding:clamp(2.5rem,6vw,5rem) clamp(1.5rem,6vw,5rem);position:relative;overflow:hidden}.contribute-section:before{content:"";background:linear-gradient(90deg, var(--primary-light), var(--accent), var(--violet-light));height:4px;position:absolute;top:0;left:0;right:0}.contribute-section h2{font-family:var(--font-display);color:#fff;letter-spacing:-.02em;margin-bottom:1rem;font-weight:900}.contribute-section p{color:#ffffffb8;max-width:560px;margin:0 auto 2.5rem;font-size:clamp(.95rem,2vw,1.1rem);line-height:1.7}.cta-btn{padding:1rem 2.5rem;font-size:1.05rem}.cta-btn svg{flex-shrink:0}.cta-footer-gap{height:clamp(3rem,6vw,6rem)}.site-footer{background:var(--primary-dark);color:#ffffff73;text-align:center;border-top:1px solid #ffffff0f;padding:2.5rem 1.5rem}.footer-content{max-width:var(--content-default);margin:0 auto}.footer-logo{justify-content:center;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.footer-logo svg{color:#fff;filter:drop-shadow(0 0 6px #7c62f080)}.footer-logo-text{font-family:var(--font-display);color:#fff;font-size:1.05rem;font-weight:800}.site-footer p{margin:.3rem 0;font-size:.875rem}.copyright{opacity:.5;margin-top:.5rem}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 50%, var(--surface-2) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}.skeleton-text{height:1em;margin-bottom:.5rem}.skeleton-heading{width:60%;height:1.4em;margin-bottom:.75rem}.holiday-page{width:100%;max-width:var(--content-wide);flex:1;margin:0 auto;padding:clamp(2rem,4vw,3.25rem) 1.5rem}.holiday-page-layout{grid-template-columns:minmax(0,1fr) minmax(240px,300px);align-items:start;gap:clamp(1.5rem,3vw,2.5rem);display:grid}.holiday-page-main{min-width:0}.holiday-block{width:100%;margin-bottom:.875rem}.holiday-block--intro{margin-bottom:1.5rem}.holiday-block__layout{--block-fade:clamp(1.35rem, 3.5vw, 2.25rem);--block-wave:clamp(.45rem, 1.2vw, .75rem);--hero-jagged-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='hf' x1='0' y1='34' x2='0' y2='100' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='white'/%3E%3Cstop offset='0.5' stop-color='white'/%3E%3Cstop offset='0.78' stop-color='white' stop-opacity='0.82'/%3E%3Cstop offset='0.92' stop-color='white' stop-opacity='0.38'/%3E%3Cstop offset='1' stop-color='white' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23hf)' d='M0 0 H1440 V84.35 Q720 84.55 1440 84.35 L1440 100 L0 100 Z'/%3E%3C/svg%3E");border:1.5px solid var(--border-light);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-xs);box-sizing:border-box;flex-direction:column;display:flex;overflow:hidden}.holiday-block__hero{color:#fff;width:100%;padding:clamp(1.25rem,3vw,2.5rem);padding-bottom:calc(var(--block-fade) + var(--block-wave));z-index:2;box-sizing:border-box;min-height:0;-webkit-mask-image:var(--hero-jagged-mask);-webkit-mask-image:var(--hero-jagged-mask);mask-image:var(--hero-jagged-mask);flex-direction:column;justify-content:flex-start;display:flex;position:relative;overflow:hidden;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.holiday-block--intro .holiday-block__hero{min-height:0}.holiday-block__hero-head{z-index:1;width:100%;position:relative}.holiday-block__hero-head:after{content:"";top:0;left:calc(-1*clamp(1.25rem,3vw,2.5rem));right:calc(-1*clamp(1.25rem,3vw,2.5rem));bottom:calc(-1 * (var(--block-fade) + var(--block-wave)));pointer-events:none;z-index:-1;background:linear-gradient(#fff0 0%,#ffffff0f 22%,#fff3 48%,#ffffff73 72%,#ffffffc7 100%);position:absolute}.holiday-block__hero:before{content:"";height:calc(var(--block-fade) + var(--block-wave));pointer-events:none;z-index:0;background:linear-gradient(#fff0 0%,#ffffff2e 45%,#ffffff8c 75%,#ffffffeb 100%);position:absolute;bottom:0;left:0;right:0}.holiday-block__hero:after{display:none}.holiday-block__hero-skeleton{border-radius:0;min-height:clamp(120px,16vw,150px)}.holiday-block__title{z-index:1;color:#fff;font-family:var(--font-display);margin:0 0 .45rem;font-size:clamp(1.05rem,2.2vw,1.35rem);font-weight:800;line-height:1.25;position:relative}.holiday-block--intro .holiday-block__title{margin-bottom:.55rem;font-size:clamp(1.6rem,4vw,2.5rem);line-height:1.15}.holiday-block__hero .holiday-meta{z-index:1;color:#fff;opacity:.95;gap:1.25rem;font-size:.95rem;position:relative}.holiday-block__panel{margin-top:calc(-1 * (var(--block-fade) + var(--block-wave)));padding:1.25rem 1.5rem;padding-top:calc(1.5rem + (var(--block-fade) + var(--block-wave)) * .38);background:var(--surface);box-shadow:none;box-sizing:border-box;z-index:1;border:none;border-radius:0;width:100%;min-width:0;position:relative}.holiday-block__text,.holiday-block__panel .holiday-region,.holiday-block__panel .tags,.holiday-block__panel .holiday-gallery,.holiday-block__media,.holiday-block__gallery,.holiday-block__media-toggle{z-index:1;position:relative}.holiday-block__text p{color:var(--text);text-align:justify;-webkit-hyphens:auto;hyphens:auto;margin:0 0 .85rem;font-size:.95rem;line-height:1.65}.holiday-block__text p:last-child{margin-bottom:0}.holiday-block__panel .holiday-region{color:var(--text-muted);margin-top:1rem;font-size:.9rem}.holiday-block__panel .tags{margin-top:1rem}.holiday-block__panel .holiday-gallery{margin-top:1.5rem}.holiday-block__gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.holiday-block--event .holiday-block__media{margin-bottom:1rem}.holiday-block--event .holiday-block__media:last-child{margin-bottom:0}.holiday-block--event .holiday-block__media-title{font-family:var(--font-display);color:var(--primary-dark);margin:0 0 .75rem;font-size:1.05rem;font-weight:800}.holiday-block--event .holiday-block__gallery{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.875rem;margin-bottom:0}.holiday-block--event .holiday-block__thumb{aspect-ratio:4/3;min-height:160px;max-height:none}.holiday-block__gallery:last-child{margin-bottom:0}.holiday-block__thumb{object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border-light);background:var(--surface-2);width:100%;max-height:200px;display:block}.holiday-block__thumb--clickable{cursor:pointer;transition:opacity var(--duration)}.holiday-block__thumb--clickable:hover{opacity:.88}.holiday-block__media-toggle{color:var(--accent);font-family:var(--font-body);cursor:pointer;text-underline-offset:3px;transition:color var(--duration);background:0 0;border:none;margin-top:.75rem;padding:.45rem 0;font-size:.9rem;font-weight:700;text-decoration:underline;display:inline-block}.holiday-block__media-toggle:hover{color:var(--accent-hover)}.holiday-sidebar{top:calc(var(--navbar-height) + 1rem);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.25rem;position:sticky}.holiday-sidebar-title{color:var(--primary-dark);margin:0 0 1rem;font-size:1rem;font-weight:800;line-height:1.3}.holiday-sidebar-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.holiday-sidebar-card{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);color:inherit;transition:box-shadow var(--duration), transform var(--duration);gap:.75rem;padding:.75rem;text-decoration:none;display:flex}.holiday-sidebar-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.holiday-sidebar-card-accent{border-radius:var(--radius-full);flex-shrink:0;width:4px}.holiday-sidebar-card-body{flex-direction:column;gap:.2rem;min-width:0;display:flex}.holiday-sidebar-card-people{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.72rem;font-weight:700}.holiday-sidebar-card-title{color:var(--primary-dark);font-size:.92rem;font-weight:700;line-height:1.25}.holiday-sidebar-card-date{color:var(--text-muted);font-size:.8rem}.holiday-sidebar-card-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.4;display:-webkit-box;overflow:hidden}@media (width<=900px){.holiday-page-layout{grid-template-columns:1fr}.holiday-sidebar{position:static}}.holiday-hero{color:#fff;border-radius:var(--radius-xl);width:100%;min-width:100%;height:clamp(160px,22vw,200px);min-height:clamp(160px,22vw,200px);box-shadow:var(--shadow-md);box-sizing:border-box;flex-shrink:0;margin-bottom:2rem;padding:clamp(1.5rem,3vw,2.5rem);display:block;position:relative;overflow:hidden}.holiday-hero:after{content:"";pointer-events:none;background:linear-gradient(#0000 40%,#0d1f5ca6 100%);position:absolute;inset:0}.holiday-hero-skeleton{border-radius:var(--radius-xl);width:100%;height:clamp(160px,22vw,200px);margin-bottom:2rem}.holiday-hero h1{color:#fff;z-index:1;margin-bottom:.75rem;font-size:clamp(1.6rem,4vw,2.5rem);line-height:1.15;position:absolute;bottom:2.5rem;left:clamp(1.5rem,3vw,2.5rem);right:clamp(1.5rem,3vw,2.5rem)}.holiday-hero .holiday-meta{position:absolute;bottom:clamp(1rem,2vw,1.5rem);left:clamp(1.5rem,3vw,2.5rem);right:clamp(1.5rem,3vw,2.5rem)}.holiday-meta{opacity:.9;font-size:.95rem;font-family:var(--font-body);z-index:1;flex-wrap:wrap;gap:1.25rem;display:flex}.description{color:var(--text);margin-bottom:1.5rem;font-size:1.05rem;line-height:1.8}.tags{flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;display:flex}.tag{border-radius:var(--radius-full);color:var(--primary-dark);letter-spacing:.03em;background:#1a3a8f14;border:1px solid #1a3a8f2e;padding:.35rem .875rem;font-size:.82rem;font-weight:700}.holiday-gallery{margin-top:2rem}.holiday-gallery h3{color:var(--primary-dark);margin-bottom:.875rem;font-size:1.2rem}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.875rem;display:grid}.gallery-item{border-radius:var(--radius-md);aspect-ratio:4/3;background:var(--surface-2);overflow:hidden}.gallery-thumb{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-md);cursor:pointer;width:100%;transition:transform .3s var(--ease), box-shadow .3s var(--ease);display:block}.gallery-thumb:hover{box-shadow:var(--shadow-md);transform:scale(1.03)}.gallery-img{object-fit:cover;width:100%;height:100%;transition:transform .3s var(--ease);cursor:pointer}.gallery-img:hover{transform:scale(1.04)}.image-modal-overlay{z-index:1000;background:#0a0f32eb;justify-content:center;align-items:center;padding:1rem;animation:.18s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.image-modal-content{flex-direction:column;align-items:center;gap:1rem;max-width:90vw;max-height:90vh;display:flex;position:relative}.image-modal-img{object-fit:contain;border-radius:var(--radius-lg);max-width:100%;max-height:80vh;display:block;box-shadow:0 24px 64px #000000b3}.image-modal-close{color:#ffffff8c;cursor:pointer;width:36px;height:36px;transition:color var(--duration), transform var(--duration);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;display:flex;position:absolute;top:-2.5rem;right:0}.image-modal-close:hover{color:#fff;transform:scale(1.15)}.image-modal-nav{align-items:center;gap:1.25rem;display:flex}.image-modal-btn{color:#ffffffb3;cursor:pointer;width:44px;height:44px;transition:color var(--duration), transform var(--duration);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.image-modal-btn:hover{color:#fff;transform:scale(1.15)}.image-modal-counter{color:#fff9;font-size:.9rem;font-family:var(--font-body);text-align:center;min-width:48px}.file-input{cursor:pointer;background:var(--surface-2);border:1.5px dashed var(--border);border-radius:var(--radius-md);width:100%;font-family:var(--font-body);margin-bottom:.5rem;padding:.5rem}.file-preview-container{flex-wrap:wrap;gap:.6rem;margin-top:.75rem;display:flex}.file-preview-item{border-radius:var(--radius-md);width:90px;height:90px;box-shadow:var(--shadow-sm);border:1.5px solid var(--border-light);position:relative;overflow:hidden}.file-preview-item img{object-fit:cover;width:100%;height:100%}.remove-file-btn{cursor:pointer;color:#8b2020;width:22px;height:22px;box-shadow:var(--shadow-xs);transition:transform var(--duration);background:#ffffffeb;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex;position:absolute;top:3px;right:3px}.remove-file-btn:hover{transform:scale(1.15)}.contribute-page{flex:1;max-width:680px;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) 1.5rem}.contribute-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.contribute-tab{border-radius:var(--radius-full);border:1.5px solid var(--border-light);background:var(--surface);color:var(--text-muted);transition:color var(--duration), border-color var(--duration), background var(--duration);padding:.5rem 1rem;font-size:.9rem;font-weight:700;text-decoration:none}.contribute-tab:hover{color:var(--primary-dark);border-color:#5b3de840}.contribute-tab--active{background:var(--accent-bg);color:var(--accent);border-color:#5b3de859}.contribute-lead{color:var(--text-muted);margin:-.5rem 0 1.5rem;font-size:.95rem;line-height:1.6}.holiday-event-contribute{text-align:center;margin-top:1rem}.holiday-event-contribute__link{color:var(--accent);text-underline-offset:3px;font-size:.95rem;font-weight:700;text-decoration:underline}.holiday-event-contribute__link:hover{color:var(--accent-hover)}.file-preview-video{object-fit:cover;width:100%;height:100%;display:block}.contribute-form .form-group{margin-bottom:1.25rem}.contribute-form label{color:var(--primary-dark);margin-bottom:.4rem;font-size:.875rem;font-weight:700;display:block}.contribute-form input[type=text],.contribute-form input[type=email],.contribute-form input[type=date],.contribute-form select,.contribute-form textarea{border:1.5px solid var(--border);border-radius:var(--radius-md);width:100%;font-family:var(--font-body);background:var(--surface);color:var(--text);transition:border-color var(--duration), box-shadow var(--duration);outline:none;padding:.75rem;font-size:.95rem}.contribute-form input[type=text]:focus,.contribute-form input[type=email]:focus,.contribute-form input[type=date]:focus,.contribute-form select:focus,.contribute-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5b3de81f}.contribute-form input::placeholder,.contribute-form textarea::placeholder{color:var(--text-faint);opacity:.75}.contribute-inline-row{flex-wrap:wrap;align-items:stretch;gap:.5rem;display:flex}.contribute-inline-select{border:1.5px solid var(--border);border-radius:var(--radius-md);min-width:0;font-family:var(--font-body);background-color:var(--surface);color:var(--text);cursor:pointer;appearance:none;transition:border-color var(--duration), box-shadow var(--duration);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23556080' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right .625rem center;background-repeat:no-repeat;outline:none;flex:1;padding:.75rem 2rem .75rem .75rem;font-size:.95rem}.contribute-inline-select--empty{color:#0000}.contribute-inline-select:invalid,.contribute-inline-select option[value=""]{color:var(--text-faint)}.contribute-inline-select:not(:invalid){color:var(--text)}.contribute-inline-select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5b3de81f}.contribute-inline-select--people{flex:2;min-width:130px}@media (width<=480px){.contribute-inline-row{flex-direction:column}.contribute-inline-select{width:100%}}.auth-error{color:#8b2020;border-radius:var(--radius-md);background:#fff5f5;border:1.5px solid #8b20202e;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.contribute-success{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:clamp(2rem,6vw,4rem) 1.5rem;display:flex}.contribute-success h2{color:var(--primary-dark);margin:0 0 .75rem}.contribute-success p{color:var(--text-muted);max-width:480px;margin:0;line-height:1.6}.success-card{flex-direction:column;align-items:center;gap:1.25rem;max-width:520px;display:flex}.success-card__actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:.25rem;display:flex}.page-sticky-footer{min-height:calc(100dvh - var(--navbar-height));flex-direction:column;flex:1;display:flex}.page-sticky-footer .site-footer{margin-top:auto}.not-found-page{min-height:calc(100dvh - var(--navbar-height));flex:1;justify-content:center;align-items:center;padding:clamp(3rem,8vw,6rem) 1.5rem;display:flex}.not-found-inner{text-align:center;flex-direction:column;align-items:center;gap:1rem;max-width:480px;display:flex}.not-found-code{font-family:var(--font-display);background:linear-gradient(135deg, var(--primary-light), var(--accent), var(--violet-light));-webkit-text-fill-color:transparent;letter-spacing:-.04em;-webkit-user-select:none;user-select:none;-webkit-background-clip:text;background-clip:text;font-size:clamp(5rem,18vw,9rem);font-weight:900;line-height:1}.not-found-title{color:var(--primary-dark);margin:0;font-size:clamp(1.25rem,3vw,1.75rem)}.not-found-desc{color:var(--text-muted);max-width:38ch;font-size:.95rem;line-height:1.7}.not-found-desc code{background:var(--surface-2);border-radius:var(--radius-sm);color:var(--accent);border:1px solid var(--border);word-break:break-all;padding:.15em .45em;font-family:Courier New,monospace;font-size:.85em}.not-found-btn{margin-top:.5rem;padding:.875rem 2rem;font-size:1rem}@media (width<=900px){.hero-overlay{grid-template-columns:1fr;gap:2.25rem}.hero{text-align:center;padding:clamp(3rem,7vw,4.5rem) 1.5rem clamp(2rem,5vw,3.5rem)}.hero-left{align-items:center}.hero-subtitle{text-align:center}.upcoming-label{text-align:left}}@media (width<=768px){.navbar-links{display:none}.navbar-burger{display:flex}.contribute-section{width:calc(100% - 1.5rem);margin:0 auto clamp(1.5rem,3vw,3rem);padding:2.5rem 1.25rem}}@media (width<=560px){.hero{padding-left:max(.75rem, env(safe-area-inset-left,0px));padding-right:max(.75rem, env(safe-area-inset-right,0px))}.hero-search{gap:.5rem;padding-left:.85rem}.hero-search-input{padding:.65rem 0;font-size:1rem}.hero-search-btn{width:46px;height:46px}.upcoming-card{text-align:center;flex-direction:column;padding:1rem}.upcoming-icon-block{margin:0 auto}.upcoming-info{text-align:center}section.holidays-section{padding-left:max(.75rem, env(safe-area-inset-left,0px));padding-right:max(.75rem, env(safe-area-inset-right,0px))}}.consent-block{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--duration) var(--ease), background var(--duration) var(--ease);align-items:center;gap:1.25rem;margin-bottom:1.25rem;padding:1rem 1.25rem 1rem 1rem;display:flex}.consent-block:hover{border-color:var(--accent);background:#5b3de80a}.consent-block--error{background:#e74c3c0f;border-color:#e74c3c;box-shadow:0 0 0 1px #e74c3c26}.consent-block--error .consent-text{color:#c0392b}.consent-check{cursor:pointer;flex:none;justify-content:center;align-self:center;align-items:center;padding:.25rem .35rem .25rem .15rem;display:flex}.consent-text-label{cursor:pointer;flex:1;align-self:center;min-width:0;display:block}.consent-checkbox{appearance:none;border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;width:20px;height:20px;transition:border-color var(--duration) var(--ease), background var(--duration) var(--ease), box-shadow var(--duration) var(--ease);flex-shrink:0;margin:0;display:block;position:relative}.consent-checkbox:hover{border-color:var(--accent);box-shadow:0 0 0 3px #5b3de81f}.consent-checkbox:checked{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px #5b3de826}.consent-checkbox:checked:after{content:"";border:2.5px solid #fff;border-top:none;border-left:none;width:8px;height:12px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}.consent-checkbox:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.consent-text{color:var(--text-muted);min-width:0;padding:0;font-size:.875rem;line-height:1.6}.consent-text a{color:var(--accent);text-underline-offset:2px;transition:color var(--duration);font-weight:600;text-decoration:underline}.consent-text a:hover{color:var(--accent-hover)}.privacy-page{flex:1;max-width:720px;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) 1.5rem}.privacy-page h1{margin-bottom:.5rem}.privacy-updated{color:var(--text-faint);margin-bottom:2.5rem;font-size:.85rem}.privacy-section{max-width:100%!important;margin:0 0 2rem!important;padding:0!important}.privacy-section h2{color:var(--primary-dark);text-align:left;margin-bottom:.6rem;font-size:clamp(1rem,2vw,1.2rem);font-weight:700}.privacy-section p{color:var(--text-muted);margin-bottom:.5rem;font-size:.95rem;line-height:1.75}.privacy-section ul{margin-top:.4rem;padding-left:1.25rem}.privacy-section ul li{color:var(--text-muted);margin-bottom:.2rem;font-size:.95rem;line-height:1.75;list-style:outside}.holiday-events{margin-top:.5rem}.holiday-events__title{font-family:var(--font-display);color:var(--primary-dark);margin-bottom:1rem;font-size:clamp(1.05rem,2vw,1.3rem);font-weight:800}.holiday-events__list{flex-direction:column;gap:.875rem;display:flex}.holiday-block--skeleton .holiday-block__panel{flex-direction:column;gap:.75rem;display:flex}.drum-section{width:100%;max-width:min(var(--content-wide), 100%);box-sizing:border-box;margin:0 auto;padding:0;overflow-x:clip}.drum-filters{box-sizing:border-box;flex-direction:column;align-items:stretch;gap:.25rem;width:100%;max-width:100%;padding:2rem 1.5rem .5rem;display:flex}.drum-row{box-sizing:border-box;justify-content:center;align-items:flex-start;gap:2rem;width:100%;min-width:0;max-width:860px;margin:0 auto;display:flex}.drum-col{flex:1;min-width:0}.dp-picker{flex-direction:column;align-items:center;width:100%;min-width:0;max-width:100%;display:flex}.dp-label{font-family:var(--font-body);color:var(--primary-dark);text-align:center;flex-shrink:0;font-size:1.65rem;font-weight:800;line-height:1.2}.dp-label-divider{background:linear-gradient(to right, transparent 0%, var(--text-faint) 18%, var(--text-faint) 82%, transparent 100%);flex-shrink:0;width:100%;height:1px;margin:.35rem 0 .5rem}.dp-container{-webkit-user-select:none;user-select:none;width:100%;min-width:0;max-width:100%;height:150px;position:relative;overflow:hidden}.dp-scroll-zone{z-index:3;cursor:ns-resize;width:min(7.5rem,72%);height:6rem;position:absolute;top:0;left:50%;transform:translate(-50%)}.dp-track{will-change:transform;flex-direction:column;align-items:center;width:100%;max-width:100%;min-height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1);display:flex}.dp-item{font-family:var(--font-body);white-space:nowrap;text-align:center;color:var(--text);opacity:.2;cursor:pointer;text-overflow:ellipsis;box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding:.35rem .5rem;font-size:1.35rem;font-weight:600;transition:opacity .4s cubic-bezier(.16,1,.3,1),color .4s;overflow:hidden}.dp-item.dp-active{opacity:1;color:var(--primary-dark);font-size:1.65rem;font-weight:800}.dp-item.dp-adjacent{opacity:.32;font-size:1.35rem}.dp-item.dp-before{visibility:hidden;pointer-events:none}.drum-divider{background:linear-gradient(to right, transparent 0%, var(--text-faint) 18%, var(--text-faint) 82%, transparent 100%);flex-shrink:0;width:100%;max-width:860px;height:1px;margin:.4rem 0}.drum-divider-vertical{background:linear-gradient(to bottom, transparent 0%, var(--text-faint) 18%, var(--text-faint) 82%, transparent 100%);align-self:stretch;width:1px;max-width:none;min-height:120px;margin:0}.filter-reset-wrap{box-sizing:border-box;flex-shrink:0;justify-content:center;align-items:center;width:100%;min-width:0;max-width:860px;min-height:2.75rem;margin:.75rem auto 0;display:flex}.filter-reset-inner{opacity:0;pointer-events:none;transition:opacity .4s cubic-bezier(.16,1,.3,1)}.filter-reset-wrap.is-visible .filter-reset-inner{opacity:1;pointer-events:auto}.filter-reset-btn{font-family:var(--font-body);color:var(--scarlet-muted);border:1.5px solid var(--scarlet-border);border-radius:var(--radius-full);cursor:pointer;transition:background var(--duration), color var(--duration), border-color var(--duration);background:0 0;align-items:center;gap:.5rem;padding:.45rem 1.1rem;font-size:.85rem;font-weight:700;display:flex}.filter-reset-btn:hover{background:var(--scarlet-bg);color:var(--scarlet);border-color:var(--scarlet)}@media (width<=900px){.drum-row{flex-direction:column;gap:.75rem;max-width:100%}.drum-col{width:100%;max-width:100%}}@media (width<=600px){.drum-filters{padding:1.25rem max(.75rem, env(safe-area-inset-left,0px)) .5rem max(.75rem, env(safe-area-inset-right,0px))}.dp-label{font-size:1.2rem}.dp-container{height:130px}.dp-scroll-zone{width:min(6.5rem,80%)}.drum-divider-vertical{background:linear-gradient(to right, transparent 0%, var(--text-faint) 18%, var(--text-faint) 82%, transparent 100%);width:100%;max-width:100%;height:1px;margin:.2rem 0}.dp-item{padding:.25rem .35rem;font-size:1.05rem}.dp-item.dp-active{font-size:1.2rem}.dp-item.dp-adjacent{font-size:1.05rem}}*,:before,:after{box-sizing:border-box}body{background-color:#f5f4f0;background-image:radial-gradient(circle,#00000026 1px,#0000 1px);background-size:24px 24px;margin:0}#root{z-index:1;position:relative}
