:root{--navratri-plum:#641847;--navratri-gold:#efbd64}
.welcome-open{overflow:hidden}
.committee-welcome{width:min(640px,calc(100vw - 28px));max-height:calc(100dvh - 32px);box-sizing:border-box;margin:auto;padding:0;border:1px solid #e9c78c;border-radius:24px;background:#fffaf3;color:#352033;box-shadow:0 28px 100px #260f2855;overflow:auto;overscroll-behavior:contain}
.committee-welcome::backdrop{background:#261126bb;backdrop-filter:blur(5px)}
.welcome-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;background:#641847;color:#fff1d6;position:sticky;top:0;z-index:1}
.welcome-topline>span{font-size:.67rem;letter-spacing:.15em;font-weight:600}
.welcome-close{flex-shrink:0;width:44px;height:44px;border:1px solid #ffffff55;border-radius:50%;background:transparent;color:white;font-size:28px;cursor:pointer;line-height:1}
.welcome-letter{padding:22px 36px 8px;background:radial-gradient(ellipse at top,#f5dfb866,transparent 65%)}
.welcome-flower{text-align:center;font-size:34px}
.welcome-kicker{text-align:center;color:#8c5a29;font-size:.68rem;letter-spacing:.18em;font-weight:600;margin:8px 0}
.committee-welcome h2{text-align:center;font-size:clamp(1.65rem,4vw,2.2rem);line-height:1.2;color:#641847;margin:12px 0 26px}
.committee-welcome h2:focus{outline:none}
#committeeWelcomeMessage p{white-space:pre-line;font-size:.93rem;line-height:1.8;margin:0 0 16px}
#committeeWelcomeMessage p:first-child{font-weight:600;color:#641847}
#committeeWelcomeMessage p:nth-last-child(2){font-weight:600;color:#641847}
#committeeWelcomeMessage p:last-child{font-size:.88rem;margin-bottom:0}
.welcome-footer{padding:20px 36px 28px;text-align:center}
.welcome-footer .btn{width:100%;box-sizing:border-box}
.committee-welcome button:focus-visible{outline:3px solid #e3a941;outline-offset:3px}
@media(max-width:480px){.welcome-letter{padding:18px 22px 4px}.welcome-footer{padding:16px 22px 22px}.welcome-topline{padding:10px 14px}#committeeWelcomeMessage p{font-size:.88rem;line-height:1.7}.committee-welcome{border-radius:18px}}
body{background:#fff9f1;color:#352033}
.navbar{border-bottom:2px solid #efbd64;background:#fffcf8}
.navratri-hero{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;padding-top:36px;padding-bottom:36px}
.navratri-hero h1{font-size:clamp(2.3rem,5vw,4.5rem);line-height:1.12;color:#641847;margin:18px 0}
.navratri-hero>img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:26px;box-shadow:0 18px 48px #64184722}
.goddess-slideshow{--slide-accent:#963e09;--slide-pale:#fff3e8;min-width:0;border:1px solid #e1cda9;border-radius:24px;overflow:hidden;background:var(--slide-pale);box-shadow:0 18px 48px #64184718}
.goddess-slide-image{position:relative;display:block;width:100%;padding:0;border:0;background:#fff8eb;cursor:pointer}
.goddess-slide-image img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.goddess-slide-image>span{position:absolute;bottom:12px;right:12px;border-radius:18px;background:#201622d9;color:white;padding:8px 12px;font-size:.75rem}
.goddess-slide-caption{text-align:center;padding:18px 16px 8px}.goddess-slide-caption>span{font-size:.65rem;letter-spacing:.11em;font-weight:600;color:var(--slide-accent)}
.goddess-slide-caption h2{font-size:clamp(1.3rem,2.4vw,1.8rem);color:var(--slide-accent);line-height:1.3;margin:6px 0}
.goddess-slide-controls{display:flex;align-items:center;justify-content:center;gap:16px;padding:8px 16px 18px}
.goddess-slide-controls button{min-width:44px;min-height:44px;border:1px solid var(--slide-accent);border-radius:24px;background:white;color:var(--slide-accent);padding:8px 14px;cursor:pointer;font:inherit}
.goddess-slide-controls>span{font-size:.8rem;font-variant-numeric:tabular-nums;color:#51404b}
.goddess-slideshow button:focus-visible{outline:3px solid var(--slide-accent);outline-offset:-4px}
.goddess-slide-status{font-size:.8rem;margin:0;text-align:center;padding:0 14px 14px}.goddess-slide-status:empty{display:none}
.festival-name{font-size:1.6rem;font-weight:700;color:#9a3f72}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}
.btn-dark,.nav-cta{background:#641847;color:white}
.priority-notice{background:#f7e6f0;border-color:#e9c78c}
#accounts{border:2px solid #e9c78c;border-radius:24px;background:#fff;margin-block:24px;padding:28px}
#accounts .section-heading h2{color:#641847}
.community-photos{background:#f8edf4;border-radius:24px;padding:28px}
#communityPhotoForm{display:grid;grid-template-columns:1fr 1fr;gap:16px}
#communityPhotoForm label{display:grid;gap:8px;font-weight:500}
#communityPhotoForm input:not([type=checkbox]){width:100%;padding:12px;border:1px solid #cba7bf;border-radius:10px;background:white;box-sizing:border-box}
#communityPhotoForm .photo-consent{display:flex;align-items:flex-start;grid-column:1/-1}
#photoStatus{grid-column:1/-1}
.celebration-share{margin:24px 0;padding:24px;background:#fffaf3;border:1px solid #e2cda8;border-radius:18px}
.celebration-share h3{font-size:1.5rem;color:#641847;margin:8px 0}
.celebration-share label{display:block;font-weight:600;margin:16px 0 8px}
.celebration-share textarea,.celebration-share input{display:block;width:100%;box-sizing:border-box;padding:12px;border:1px solid #cba7bf;border-radius:10px;background:white;color:#352033;font:inherit;line-height:1.6}
.celebration-share textarea{resize:vertical;min-height:150px}
.celebration-share button{padding:12px 16px;border:1px solid #641847;border-radius:24px;background:#641847;color:white;font:inherit;cursor:pointer}
.celebration-share button:disabled{opacity:.5;cursor:not-allowed}
.celebration-share button:focus-visible{outline:3px solid #b17517;outline-offset:3px}
.share-photo-note,#celebrationShareStatus{font-size:.85rem}
.community-media{margin-top:32px;border-top:1px solid #d7b9cb;padding-top:28px}
.community-media h3{font-size:1.6rem;color:#641847;margin:8px 0}
.media-submit-grid,.community-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0}
.media-submit-grid form,.community-media-card{min-width:0;padding:22px;border:1px solid #dbc5d2;border-radius:18px;background:#fffaf5}
.community-media h4{font-size:1.1rem;margin:0 0 16px;color:#641847;overflow-wrap:anywhere}
.media-submit-grid label{display:grid;gap:8px;margin:16px 0;font-weight:500}
.media-submit-grid input:not([type=checkbox]){width:100%;box-sizing:border-box;min-width:0;padding:12px;border:1px solid #cba7bf;border-radius:10px;background:white;font:inherit}
.media-submit-grid .media-consent{display:flex;align-items:flex-start;font-size:.85rem}
.community-media button{padding:12px 16px;border:1px solid #641847;border-radius:24px;background:#641847;color:white;cursor:pointer;font:inherit}
.community-media button:disabled{opacity:.5;cursor:not-allowed}
.community-media button:focus-visible{outline:3px solid #b17517;outline-offset:3px}
.community-media-card p,.media-submit-grid p{font-size:.85rem;line-height:1.6}
.community-media-player{margin-top:16px;overflow:hidden}
.community-media-player:empty{display:none}
.community-media-player>iframe{width:100%;height:480px;border:0;border-radius:12px;background:#160e18}
.community-media-player .instagram-media{min-width:0!important;width:100%!important;max-width:100%!important;margin:0!important}
@media(max-width:760px){.media-submit-grid,.community-media-grid{grid-template-columns:1fr}.media-submit-grid form,.community-media-card{padding:16px}}
#photoSlideshow{margin-bottom:24px;text-align:center}
#communitySlide{width:100%;height:380px;object-fit:contain;background:#2f1528;border-radius:16px}
#photoSlideshow .hero-actions{justify-content:center}
#photoSlideshow button{padding:10px 16px;border:1px solid #641847;border-radius:24px;background:white;color:#641847;cursor:pointer}
#photoSlideshow .photo-expand{display:block;position:relative;width:100%;padding:0;border:0;border-radius:16px;background:#2f1528;cursor:zoom-in;overflow:hidden}
.photo-expand #communitySlide{display:block}
.photo-expand-hint{position:absolute;bottom:12px;right:12px;padding:7px 12px;border-radius:20px;background:#261126dd;color:white;font-size:.8rem}
.photo-expand:focus-visible{outline:3px solid #641847;outline-offset:4px}
.photo-viewer-open{overflow:hidden}
.photo-viewer{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;box-sizing:border-box;margin:0;padding:64px 16px 16px;border:0;border-radius:0;background:#160e18;color:white;overflow:auto}
.photo-viewer[open]{display:flex;flex-direction:column;align-items:center;gap:12px}
.photo-viewer::backdrop{background:#160e18}
#fullScreenPhoto{display:block;min-height:0;flex:1;width:100%;object-fit:contain}
#fullScreenCaption{flex-shrink:0;margin:0;text-align:center;overflow-wrap:anywhere;max-width:900px;line-height:1.5}
.photo-viewer-close{position:absolute;top:max(10px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));width:44px;height:44px;border:1px solid #ffffff77;border-radius:50%;background:#ffffff18;color:white;font-size:30px;line-height:1;cursor:pointer}
.photo-viewer-close:focus-visible{outline:3px solid #efbd64;outline-offset:3px}
.update-card p,.notification-copy p{white-space:pre-line}
#archive>section{max-width:100%;margin-top:28px}
#archive>h3{color:#641847}
@media(max-width:700px){.navratri-hero{grid-template-columns:1fr;gap:20px}.navratri-hero>img{aspect-ratio:16/10}.community-photos,#accounts{padding:20px}#communityPhotoForm{grid-template-columns:1fr}#communitySlide{height:260px}.hero-actions .btn{width:100%;text-align:center}.mobile-nav a{padding:16px 6px}}

/* The swatch is the festival colour; the darker accent keeps text readable. */
:root{--day-accent:#641847;--day-pale:#f8edf4;--day-swatch:#efbd64;--festival-ink:var(--day-accent);--festival-accent:var(--day-accent)}
body{background:linear-gradient(180deg,var(--day-pale),#fffcf8 1100px)}
.navratri-hero h1,.festival-name,#accounts .section-heading h2,.community-media h3,.community-media h4,.celebration-share h3,.section-heading h2,.navratri-days h2{color:var(--day-accent)}
.btn-dark,.nav-cta,.welcome-topline,.community-media button,.celebration-share button,.mobile-nav a[aria-current]{background:var(--day-accent);color:#fff}
.priority-notice,.community-photos{background:var(--day-pale)}
.navbar{border-bottom-color:var(--day-swatch)}
.btn-outline{border-color:var(--day-accent);color:var(--day-accent)}
.priority-notice a,.text-link,.quick-card strong{color:var(--day-accent)}
.navratri-days{padding-top:16px;padding-bottom:24px}
.navratri-day-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.navratri-day-card{display:grid;grid-template-columns:36px 1fr;gap:4px 12px;text-align:left;padding:16px;border:1px solid #d5c9d0;border-radius:16px;background:#fff;color:#352b34;font:inherit;cursor:pointer;min-width:0}
.navratri-day-card i{grid-row:1/4;align-self:center;display:block;width:32px;height:32px;background:var(--swatch);border:1px solid #0003;border-radius:50%}
.navratri-day-card span{font-size:.75rem}.navratri-day-card strong{font-size:1rem}
.navratri-day-card[aria-current]{border:2px solid var(--day-accent);background:var(--day-pale)}
.navratri-day-card:focus-visible{outline:3px solid var(--day-accent);outline-offset:3px}
.calendar-note{font-size:.8rem;line-height:1.7;margin-top:16px;color:#5b5058}
.day-dialog-open{overflow:hidden}
.navratri-day-dialog{width:min(540px,calc(100vw - 24px));max-height:calc(100dvh - 24px);margin:auto;padding:0;border:1px solid var(--day-accent);border-radius:22px;background:var(--day-pale);color:#302832;overflow:auto;overscroll-behavior:contain;box-sizing:border-box}
.navratri-day-dialog::backdrop{background:#201622bf;backdrop-filter:blur(4px)}
.day-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;background:var(--day-accent);color:white;position:sticky;top:0;z-index:1}
.day-dialog-header span{font-size:.75rem;letter-spacing:.14em;font-weight:600}
.day-dialog-header button{width:44px;height:44px;border:1px solid #fff9;border-radius:50%;background:transparent;color:white;font-size:28px;cursor:pointer}
#navratriGoddessImage{display:block;width:100%;max-height:45dvh;object-fit:contain;background:#fff8e9}
.day-dialog-copy{padding:18px 24px 24px;text-align:center}
.day-dialog-copy h2{color:var(--day-accent);font-size:1.8rem;margin:8px 0;line-height:1.2}
.day-dialog-copy h2:focus{outline:none}
.day-dialog-copy p{font-size:.88rem;line-height:1.6;margin:8px 0}
#navratriDayColour{font-weight:700;color:var(--day-accent)}
.day-dialog-copy small{display:block;color:#675762;margin:10px 0}
.day-dialog-copy .btn{width:100%;box-sizing:border-box;white-space:normal}
#communityPhotoForm{display:flex;flex-direction:column;gap:16px;margin:20px 0 28px;padding:24px;background:white;border:1px solid #dacbd6;border-radius:20px}
.upload-intro h3{font-size:1.35rem;color:var(--day-accent);margin:6px 0}.upload-intro p{margin:0;font-size:.9rem}
#communityPhotoForm .upload-picker{padding:20px;border:2px dashed var(--day-accent);border-radius:16px;background:var(--day-pale);text-align:center;cursor:pointer}
.upload-picker>span{font-weight:600;color:var(--day-accent)}.upload-picker small{font-size:.78rem;font-weight:400;line-height:1.7}
#communityPhotoForm input[type=file]{border:0;background:transparent;padding:8px 0;font-size:14px;max-width:100%;min-width:0}
#communityPhotoForm input::file-selector-button{border:0;border-radius:8px;padding:10px;background:var(--day-accent);color:white;margin-right:8px}
#uploadFileHelp,#photoStatus{font-size:.85rem;margin:0;line-height:1.6}
#uploadPreview{padding:12px;background:var(--day-pale);border-radius:12px;text-align:center}
#uploadPreview img,#uploadPreview video{max-width:100%;max-height:240px;object-fit:contain;border-radius:10px}
#uploadFileSummary{overflow-wrap:anywhere;font-size:.85rem}
#clearUploadFile{padding:10px;border:1px solid var(--day-accent);background:white;border-radius:10px;color:var(--day-accent);cursor:pointer}
.sharing-details{margin:18px 0;border:1px solid #d7c8d0;border-radius:14px;background:#fffaf7}
.sharing-details>summary{padding:16px;cursor:pointer;font-size:.9rem;font-weight:600;color:var(--day-accent);min-height:48px;box-sizing:border-box}
.sharing-details .celebration-share{margin:0;border:0}.sharing-details .media-submit-grid{display:block;margin:0}.sharing-details .media-submit-grid form{border:0}
[hidden]{display:none!important}
@media(max-width:760px){
 .navratri-day-cards{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 3px 12px;gap:10px}
 .navratri-day-card{flex:0 0 175px;scroll-snap-align:start;padding:14px;grid-template-columns:26px 1fr;gap:5px 8px}
 .navratri-day-card i{width:24px;height:24px}.navratri-day-card span:last-child{grid-column:1/-1;font-size:.75rem}
 .navratri-hero{gap:18px}.navratri-hero h1{font-size:2.25rem;margin:12px 0}.festival-name{font-size:1.35rem}
 .community-photos{padding:18px!important;border-radius:18px}#communityPhotoForm{padding:16px;gap:14px}
 .community-photos input:not([type=checkbox]),.community-photos textarea,.community-photos select{font-size:16px!important}
 .community-photos button{min-height:44px}.community-photos .hero-actions{gap:8px}.celebration-share{padding:16px}.celebration-share .hero-actions{display:grid;grid-template-columns:1fr}
 .photo-consent input,.media-consent input{flex-shrink:0;width:20px;height:20px}.photo-consent{font-size:.85rem;line-height:1.6}
 .section{scroll-margin-top:130px}.community-media h3{font-size:1.3rem}#accounts{padding:18px!important}
 .payment-dashboard{grid-template-columns:minmax(0,1fr)}.payment-dashboard>*,.payment-card,.payment-viz>*{min-width:0}
 .collection-summary,.finance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-summary strong{font-size:23px}
 .payment-card{padding:16px}.payment-toolbar{gap:12px}.payment-table-wrap{max-width:100%}
 .mobile-nav{padding-bottom:env(safe-area-inset-bottom);left:8px;right:8px}.mobile-nav a{min-height:48px;padding:10px 4px}
}
@media(max-width:380px){.navbar{gap:6px;padding-left:10px;padding-right:10px}.brand-logo{max-width:115px}.language-switcher button{padding:7px}.navratri-hero h1{font-size:2rem}.section-heading h2{font-size:1.7rem}}

/* Shared surfaces and controls follow the active Navratri day. */
:root{--ui-line:#e3d8df;--ui-muted:#655b63;--festival-ink:var(--day-accent,#641847);--festival-line:var(--ui-line)}
.btn-dark,.btn-dark:hover,.nav-cta,.language-switcher button[aria-pressed="true"]{background:var(--day-accent,#641847);color:#fff;box-shadow:0 4px 12px #24152512}
.btn,.community-media button,.celebration-share button{min-height:44px;line-height:1.4}
.community-media button,.celebration-share button{background:var(--day-accent,#641847);border-color:var(--day-accent,#641847)}
.section-heading h2,.community-media h3,.community-media h4,.celebration-share h3,#accounts .section-heading h2,.festival-name{color:var(--day-accent,#641847)}
.quick-card{border-color:var(--ui-line);box-shadow:0 4px 16px #24152508;background:#fff}
.quick-card small,.priority-notice p{color:var(--ui-muted)}
.priority-notice,.community-photos{background:var(--day-pale,#f8edf4)}
.welcome-topline{background:var(--day-accent,#641847)}
.committee-welcome h2,#committeeWelcomeMessage p:first-child,#committeeWelcomeMessage p:nth-last-child(2){color:var(--day-accent,#641847)}
input,select,textarea{box-sizing:border-box}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--day-accent,#641847);outline-offset:3px}
@media(max-width:760px){
 .hero-actions>.btn{flex:1 1 180px;text-align:center;justify-content:center}
 .section-heading p{line-height:1.7}.community-media-player>iframe{max-width:100%}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
.navratri-programme{padding-top:24px;padding-bottom:24px}
.navratri-timings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.navratri-timings article{padding:24px;border:1px solid var(--ui-line,#e3d8df);border-radius:18px;background:#fff}
.navratri-timings article>span{font-size:.72rem;letter-spacing:.1em;font-weight:600;color:var(--day-accent,#641847)}
.navratri-timings h3{font-size:clamp(1.3rem,2.5vw,1.8rem);line-height:1.3;margin:12px 0;color:var(--day-accent,#641847)}
.navratri-timings p,.navratri-music p{font-size:.9rem;line-height:1.75;margin:8px 0;color:#554952}
.navratri-music{margin-top:18px;padding:22px 24px;border-radius:18px;background:var(--day-pale,#f8edf4);border-left:4px solid var(--day-accent,#641847)}
.navratri-music h3{margin:0 0 8px;color:var(--day-accent,#641847)}
@media(max-width:760px){.navratri-timings{grid-template-columns:1fr;gap:10px}.navratri-timings article{padding:18px}.navratri-timings h3{margin:6px 0}.navratri-music{padding:18px}}
.raas-rang-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:center}.raas-rang-grid video{display:block;width:100%;max-height:560px;aspect-ratio:9/16;object-fit:contain;background:#211523;border-radius:20px}.raas-rang-invite{padding:28px;background:var(--day-pale,#f8edf4);border-radius:20px}.raas-rang-invite h3{font-size:clamp(1.6rem,3vw,2.3rem);color:var(--day-accent,#641847);line-height:1.25}.raas-rang-invite p{line-height:1.8}.raas-rang-invite a:not(.btn){color:var(--day-accent,#641847)}@media(max-width:760px){.raas-rang-grid{grid-template-columns:1fr;gap:16px}.raas-rang-grid video{max-height:480px}.raas-rang-invite{padding:20px}}
