.faq{background:var(--color-background);color:var(--color-primary);padding:clamp(5rem,10vw,9rem) 0;position:relative;overflow:hidden}.faq:before{content:"";aspect-ratio:1;background:var(--color-highlight);opacity:.25;border-radius:50%;width:24rem;position:absolute;top:-10rem;right:-8rem}.faq:after{content:"";aspect-ratio:1;background:var(--color-accent);opacity:.35;border-radius:50%;width:28rem;position:absolute;bottom:-12rem;left:-10rem}.faq .container{z-index:2;position:relative}.faq__eyebrow{color:var(--color-secondary);letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:.85rem;font-weight:700}.faq__title{font-family:var(--font-heading);text-transform:uppercase;margin-top:.5rem;font-size:clamp(3.5rem,9vw,8rem);line-height:.9}.faq__list{flex-direction:column;gap:1rem;margin-top:4rem;display:flex}.faq__item{border:2px solid var(--color-primary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb3;border-radius:24px;transition:transform .3s;overflow:hidden}.faq__icon--open{transform:rotate(45deg)}.faq__button{cursor:pointer;width:100%;color:var(--color-primary);background:0 0;border:none;justify-content:space-between;align-items:center;padding:1.5rem;font-family:inherit;font-size:1.1rem;font-weight:700;display:flex}.faq__item:hover{transform:translateY(-3px);box-shadow:0 15px 30px #1466eb26}.faq__icon{font-size:2rem;font-weight:300;transition:all .3s}.faq__answer{color:var(--color-text-muted);padding:0 1.5rem 1.5rem;line-height:1.7;animation:.25s faqFade}@keyframes faqFade{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (width<=700px){.faq{padding:4rem 0}.faq__button{padding:1.25rem;font-size:1rem}.faq__icon{font-size:1.5rem}}.festival-essentials{color:#fff;background:var(--color-secondary);padding:clamp(5rem,10vw,9rem) 0;position:relative;overflow:hidden}.festival-essentials:before{content:"";aspect-ratio:1;background:var(--color-highlight);opacity:.7;border-radius:50%;width:26rem;position:absolute;top:-10rem;right:-8rem}.festival-essentials:after{content:"";aspect-ratio:1;background:var(--color-accent);opacity:.75;border-radius:50%;width:28rem;position:absolute;bottom:-12rem;left:-8rem}.festival-essentials__container{z-index:1;position:relative}.festival-essentials__header{max-width:760px}.festival-essentials__eyebrow{color:var(--color-accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .75rem;font-size:.85rem;font-weight:800}.festival-essentials__title{max-width:1000px;font-family:var(--font-heading);text-transform:uppercase;text-wrap:balance;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;margin:0;font-size:clamp(3rem,7vw,6.5rem);font-weight:400;line-height:.92}.festival-essentials__intro{width:100%;max-width:1050px}.festival-essentials__layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:1.25rem;margin-top:clamp(3rem,7vw,5rem);display:grid}.festival-essentials__location-card,.festival-essentials__packing{border-radius:var(--border-radius);-webkit-backdrop-filter:blur(10px);background:#ffffff1f;border:2px solid #ffffffb3}.festival-essentials__location-card{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1.25rem;min-height:360px;padding:clamp(1.5rem,3vw,2.25rem);display:grid}.festival-essentials__location-icon{width:3.5rem;height:3.5rem;color:var(--color-secondary);background:var(--color-accent);border-radius:50%;place-items:center;font-size:1.4rem;display:grid}.festival-essentials__card-label{color:var(--color-accent);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:800}.festival-essentials__location-title,.festival-essentials__packing-title{font-family:var(--font-heading);text-transform:uppercase;margin:.5rem 0 0;font-size:clamp(2rem,4vw,3.25rem);font-weight:400;line-height:1}.festival-essentials__address{margin-top:1.5rem;font-style:normal;font-weight:700;line-height:1.6}.festival-essentials__location-description{color:#ffffffd1;max-width:520px;margin:1rem 0 0;line-height:1.7}.festival-essentials__maps-link{width:fit-content;color:var(--color-secondary);background:#fff;border:2px solid #fff;border-radius:999px;align-items:center;margin-top:2rem;padding:.85rem 1.4rem;font-weight:800;text-decoration:none;transition:transform .18s,color .18s,background-color .18s;display:inline-flex}.festival-essentials__maps-link:hover{color:#fff;background:0 0;transform:translateY(-3px)}.festival-essentials__location-content{min-width:0}.festival-essentials__map-wrapper{flex-direction:column;grid-column:1/-1;align-items:center;width:100%;margin-top:1rem;display:flex}.festival-essentials__map{border:2px solid var(--color-primary);border-radius:var(--border-radius);width:min(100%,570px);overflow:hidden;box-shadow:0 20px 45px #1466eb2e}.festival-essentials__map iframe{border:0;width:100%;height:420px;display:block}.festival-essentials__map-button{width:fit-content;color:var(--color-secondary);background:#fff;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;margin-top:2rem;padding:.85rem 1.4rem;font-weight:800;text-decoration:none;transition:transform .18s,color .18s,background-color .18s;display:inline-flex}.festival-essentials__map-button:hover{color:#fff;background:0 0;transform:translateY(-3px)}.festival-essentials__packing{padding:clamp(1.5rem,3vw,2.25rem)}.festival-essentials__packing-list{gap:.8rem;margin:2rem 0 0;padding:0;list-style:none;display:grid}.festival-essentials__packing-item{color:var(--color-secondary);background:#ffffffe6;border-radius:999px;align-items:center;gap:.9rem;padding:1rem 1.1rem;font-weight:800;transition:transform .18s,background-color .18s;display:flex}.festival-essentials__packing-item:nth-child(2n){background:var(--color-accent)}.festival-essentials__packing-item:hover{transform:translate(5px)rotate(-.5deg)}.festival-essentials__packing-icon{color:var(--color-primary);flex:none;font-size:1.2rem}@media (width<=900px){.festival-essentials__layout{grid-template-columns:1fr}}@media (width<=600px){.festival-essentials{padding:4.5rem 0}.festival-essentials__location-card{grid-template-columns:1fr;min-height:auto}.festival-essentials__location-icon{width:3rem;height:3rem}.festival-essentials__packing-item{border-radius:1rem}}@media (width<=700px){.festival-essentials__map iframe{height:320px}}.festival-info{color:#fff;background:var(--color-primary);padding:clamp(5rem,10vw,9rem) 0;position:relative;overflow:hidden}.festival-info:before{content:"";aspect-ratio:1;background:var(--color-accent);opacity:.9;border-radius:50%;width:24rem;position:absolute;top:-8rem;right:-8rem}.festival-info:after{content:"";aspect-ratio:1;background:var(--color-highlight);opacity:.85;border-radius:50%;width:22rem;position:absolute;bottom:-10rem;left:-7rem}.festival-info__container{z-index:1;position:relative}.festival-info__intro{width:100%;max-width:1050px}.festival-info__title{max-width:1000px;font-family:var(--font-heading);text-transform:uppercase;text-wrap:balance;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;margin:0;font-size:clamp(3rem,7vw,6.5rem);font-weight:400;line-height:.92}.festival-info__eyebrow{color:var(--color-accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .75rem;font-size:.85rem;font-weight:800}.festival-info__description{max-width:620px;margin:1.5rem 0 0;font-size:clamp(1rem,2vw,1.25rem);line-height:1.7}.festival-info__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:clamp(3rem,7vw,5rem);display:grid}.festival-info__card{border-radius:var(--border-radius);-webkit-backdrop-filter:blur(10px);background:#ffffff1f;border:2px solid #ffffffa6;flex-direction:column;min-height:310px;padding:1.5rem;transition:transform .18s,background-color .18s;display:flex;position:relative}.festival-info__card:hover{background:#ffffff2e;transform:translateY(-6px)rotate(-.5deg)}.festival-info__number{color:var(--color-accent);font-family:var(--font-heading);font-size:1.5rem}.festival-info__label{color:#ffffffb8;letter-spacing:.16em;text-transform:uppercase;margin:auto 0 0;font-size:.75rem;font-weight:800}.festival-info__card-title{font-family:var(--font-heading);text-transform:uppercase;margin:.5rem 0 0;font-size:clamp(1.8rem,3vw,2.75rem);font-weight:400;line-height:1}.festival-info__text{color:#ffffffd1;margin:1rem 0 0;line-height:1.6}@media (width<=850px){.festival-info__grid{grid-template-columns:1fr}.festival-info__card{min-height:230px}}@media (width<=600px){.festival-info{padding:4.5rem 0}.festival-info:before{width:15rem;top:-7rem;right:-7rem}.festival-info:after{width:16rem;bottom:-8rem;left:-8rem}}.festival-recap{color:#fff;background:radial-gradient(circle at 15% 20%, #ffd44747, transparent 32%), radial-gradient(circle at 85% 75%, #ef91b659, transparent 34%), var(--color-primary);width:100%;max-width:100%;padding-block:clamp(5rem,12vw,11rem);padding-inline:clamp(1.25rem,5vw,3rem);position:relative;overflow:hidden}.festival-recap,.festival-recap *{box-sizing:border-box}.festival-recap:before{content:"";aspect-ratio:1;background:var(--color-accent);opacity:.3;pointer-events:none;border-radius:50%;width:24rem;max-width:70vw;position:absolute;top:-8rem;right:-7rem}.festival-recap:after{content:"";aspect-ratio:1;background:var(--color-highlight);opacity:.35;pointer-events:none;border-radius:50%;width:30rem;max-width:85vw;position:absolute;bottom:-12rem;left:-8rem}.festival-recap__container{z-index:1;width:100%;min-width:0;max-width:1200px;margin-inline:auto;position:relative}.festival-recap__content{text-align:center;width:100%;min-width:0;max-width:960px;margin-inline:auto}.festival-recap__eyebrow{color:var(--color-accent);letter-spacing:.18em;text-transform:uppercase;overflow-wrap:anywhere;margin:0 0 1rem;font-size:clamp(.75rem,2.8vw,.85rem);font-weight:800;line-height:1.4}.festival-recap__title{width:100%;max-width:100%;font-family:var(--font-heading);text-transform:uppercase;overflow-wrap:anywhere;word-break:normal;text-wrap:balance;margin:0;font-size:clamp(2.25rem,8vw,8rem);font-weight:400;line-height:.95}.festival-recap__intro{overflow-wrap:anywhere;width:100%;max-width:720px;margin:2rem auto 0;font-size:clamp(1rem,4vw,1.45rem);line-height:1.7}.festival-recap__thank-you{color:#ffffffc7;overflow-wrap:anywhere;width:100%;max-width:680px;margin:1.25rem auto 0;line-height:1.7}.festival-recap__highlights{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;width:100%;min-width:0;margin-top:3rem;display:grid}.festival-recap__highlight{border-radius:var(--border-radius);-webkit-backdrop-filter:blur(10px);background:#ffffff1a;border:2px solid #ffffffa6;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-width:0;min-height:150px;padding:1.5rem;display:flex}.festival-recap__highlight svg{color:var(--color-accent);flex-shrink:0;font-size:2rem}.festival-recap__highlight span{overflow-wrap:anywhere;max-width:100%;font-weight:800}.festival-recap__gallery-link{width:fit-content;max-width:100%;color:var(--color-primary);text-align:center;overflow-wrap:anywhere;background:#fff;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;margin-top:3rem;padding:.95rem 1.6rem;font-weight:800;line-height:1.3;text-decoration:none;transition:transform .18s,color .18s,background-color .18s;display:inline-flex}.festival-recap__gallery-link:hover{color:#fff;background:0 0;transform:translateY(-3px)}@media (width<=700px){.festival-recap{padding-block:4.5rem;padding-inline:1.25rem}.festival-recap:before{width:15rem;top:-4rem;right:-5rem}.festival-recap:after{width:18rem;bottom:-7rem;left:-6rem}.festival-recap__eyebrow{letter-spacing:.14em;margin-bottom:.75rem;font-size:.72rem}.festival-recap__title{font-size:clamp(2.1rem,10.5vw,3.5rem);line-height:1}.festival-recap__intro{margin-top:1.5rem;font-size:1rem;line-height:1.6}.festival-recap__thank-you{font-size:.95rem;line-height:1.6}.festival-recap__highlights{grid-template-columns:1fr;margin-top:2.25rem}.festival-recap__highlight{min-height:110px;padding:1.25rem}.festival-recap__gallery-link{width:100%;margin-top:2.25rem;padding:.9rem 1.25rem}}@media (width<=380px){.festival-recap{padding-inline:1rem}.festival-recap__title{font-size:clamp(1.9rem,10vw,2.5rem)}}.footer{color:#fff;background:var(--color-primary);padding:clamp(5rem,10vw,8rem) 0 2rem;position:relative;overflow:hidden}.footer:before{content:"";aspect-ratio:1;background:var(--color-highlight);opacity:.7;border-radius:50%;width:26rem;position:absolute;top:-10rem;right:-8rem}.footer:after{content:"";aspect-ratio:1;background:var(--color-accent);opacity:.75;border-radius:50%;width:30rem;position:absolute;bottom:-12rem;left:-8rem}.footer__container{z-index:1;position:relative}.footer__content{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:420px;display:flex}.footer__eyebrow{color:var(--color-accent);letter-spacing:.18em;text-transform:uppercase;margin:0 0 1rem;font-size:.85rem;font-weight:800}.footer__logo{filter:brightness(0)invert();width:min(86vw,560px);height:auto;display:block}.footer__date{color:#ffffffe6;font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;margin:1.5rem 0 0;font-size:clamp(1.4rem,3vw,2.2rem)}.footer__back-to-top{color:var(--color-primary);background:#fff;border:2px solid #fff;border-radius:999px;align-items:center;gap:.6rem;margin-top:2.5rem;margin-bottom:4rem;padding:.9rem 1.5rem;font-weight:800;text-decoration:none;transition:transform .18s,color .18s,background-color .18s;display:inline-flex}.footer__back-to-top:hover{color:#fff;background:0 0;transform:translateY(-3px)}.footer__back-to-top span{font-size:1.1rem}.footer__bottom{color:#ffffffbf;border-top:1px solid #ffffff59;justify-content:space-between;align-items:center;gap:1rem;padding-top:1.5rem;font-size:.85rem;display:flex}.footer__made-with,.footer__copyright{margin:0}.footer__made-with{align-items:center;gap:.4rem;display:inline-flex}.footer__made-with svg{color:var(--color-highlight)}.footer__back-to-top:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}@media (width<=600px){.footer{padding-top:4.5rem}.footer__content{min-height:360px}.footer__logo{width:min(92vw,430px)}.footer__bottom{text-align:center;flex-direction:column}}.hero{isolation:isolate;color:#fff;background-color:var(--color-background);place-items:center;width:100%;max-width:100%;min-height:100svh;padding:4rem 1.5rem 6rem;display:grid;position:relative;overflow:hidden}.hero,.hero *,.hero:before,.hero:after{box-sizing:border-box}.hero__background{z-index:0;object-fit:cover;object-position:center;pointer-events:none;width:100%;max-width:100%;height:100%;animation:20s ease-in-out infinite alternate hero-background-drift;display:block;position:absolute;inset:0}.hero:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(#0f122633,#0f12268c);position:absolute;inset:0}.hero:after{content:"";z-index:2;aspect-ratio:1;filter:blur(25px);pointer-events:none;background:radial-gradient(circle,#ffd44740,#ff8cc81f 45%,#0000 70%);border-radius:50%;width:min(80vw,750px);max-width:100%;position:absolute}.hero__content{z-index:10;text-align:center;flex-direction:column;align-items:center;width:100%;min-width:0;max-width:760px;margin-inline:auto;display:flex;position:relative}.hero--recap .hero__content{max-width:950px}.hero__logo{transform-origin:50%;width:min(86vw,620px);max-width:100%;height:auto;animation:1s cubic-bezier(.22,1,.36,1) both hero-logo-enter;display:block}.hero:has(.countdown--started) .hero__logo{animation:1s cubic-bezier(.22,1,.36,1) both hero-logo-enter,4.5s ease-out .3s birthday-logo-glow}.hero__eyebrow{color:#fff;max-width:100%;font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;overflow-wrap:break-word;word-break:normal;text-shadow:0 3px 15px #00000073;margin:.75rem 0 0;font-size:clamp(1rem,2vw,1.5rem);line-height:1.3;animation:.7s ease-out .25s both hero-content-enter}.hero__event-details{width:min(48vw,250px);max-width:100%;height:auto;margin-top:1.25rem;animation:.7s ease-out .4s both hero-content-enter;display:block}.countdown{width:100%;min-width:0;max-width:100%;animation:.7s ease-out .55s both hero-content-enter}.hero__button{border:2px solid var(--color-primary);color:#fff;background:var(--color-primary);width:fit-content;max-width:100%;font-family:var(--font-heading);letter-spacing:.06em;text-align:center;text-transform:uppercase;white-space:normal;overflow-wrap:break-word;word-break:normal;border-radius:999px;justify-content:center;align-items:center;margin-top:1.75rem;padding:.95rem 2.2rem;font-size:clamp(1rem,1.8vw,1.25rem);line-height:1.25;text-decoration:none;transition:transform .18s,background-color .18s,color .18s,box-shadow .18s;animation:.7s ease-out .7s both hero-content-enter;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #1466eb47}.hero__button span{z-index:1;max-width:100%;position:relative}.hero__button:before{content:"";background:#ffffff2e;transition:transform .45s;position:absolute;inset:0;transform:translate(-105%)skew(-18deg)}.hero__button:hover{color:var(--color-primary);background:#fff;transform:translateY(-3px);box-shadow:0 14px 36px #1466eb61}.hero__button:hover:before{transform:translate(105%)skew(-18deg)}.hero__button:focus-visible,.hero__scroll-indicator:focus-visible{outline:3px solid var(--color-accent);outline-offset:5px}.hero__decoration{z-index:3;pointer-events:none;-webkit-user-select:none;user-select:none;max-width:none;height:auto;display:block;position:absolute}.hero__decoration--left{opacity:.9;width:clamp(16rem,30vw,30rem);animation:12s ease-in-out infinite hero-float-left;bottom:-10rem;left:-7rem}.hero__decoration--right{opacity:.78;width:clamp(15rem,25vw,26rem);animation:15s ease-in-out infinite hero-float-right;top:-8rem;right:-8rem}.hero__star{z-index:3;opacity:.75;pointer-events:none;-webkit-user-select:none;user-select:none;width:clamp(4rem,7vw,6.5rem);max-width:none;height:auto;display:block;position:absolute}.hero__star--top{animation:60s linear infinite hero-star-spin;top:3%;left:6%}.hero__star--bottom{animation:70s linear infinite hero-star-spin-reverse;bottom:10%;right:10%}.hero__scroll-indicator{z-index:20;color:#fff;letter-spacing:.18em;text-align:center;text-transform:uppercase;white-space:normal;overflow-wrap:break-word;word-break:normal;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:fit-content;max-width:100%;margin-top:2rem;font-size:.78rem;font-weight:700;line-height:1.3;text-decoration:none;transition:transform .18s,opacity .18s;animation:.7s ease-out .85s both hero-content-enter;display:flex;position:relative}.hero__scroll-indicator:hover{transform:translateY(3px)}.hero__scroll-arrow{font-size:1.9rem;line-height:1;animation:1.8s ease-in-out infinite hero-scroll-arrow}.hero--recap:before{background:linear-gradient(#0f12264d,#0f1226b8)}.hero--recap:after{background:radial-gradient(circle,#ffd44759,#ef91b633 42%,#0000 72%)}.hero__recap{text-align:center;flex-direction:column;align-items:center;width:100%;min-width:0;max-width:950px;margin-top:1.5rem;animation:.8s ease-out .3s both hero-content-enter;display:flex}.hero__recap-eyebrow{max-width:100%;color:var(--color-accent);letter-spacing:.18em;text-transform:uppercase;white-space:normal;overflow-wrap:break-word;word-break:normal;margin:0;font-size:.8rem;font-weight:800;line-height:1.4}.hero__recap-title{color:#fff;width:100%;min-width:0;max-width:950px;font-family:var(--font-heading);text-transform:uppercase;white-space:normal;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;text-wrap:balance;text-shadow:0 8px 30px #00000052;margin:.9rem 0 0;font-size:clamp(2.8rem,7vw,6rem);font-weight:400;line-height:.92}.hero__recap-title span{display:block}.hero__recap-description{color:#ffffffdb;white-space:normal;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:auto;hyphens:auto;width:100%;min-width:0;max-width:650px;margin:1.5rem auto 0;font-size:clamp(1rem,2vw,1.2rem);line-height:1.7}.hero__recap-actions{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:.9rem;width:100%;min-width:0;max-width:760px;margin-top:2rem;display:flex}.hero__recap-actions .hero__button{margin-top:0}.hero__secondary-button{color:#fff;width:fit-content;max-width:100%;font-family:var(--font-heading);letter-spacing:.06em;text-align:center;text-transform:uppercase;white-space:normal;overflow-wrap:break-word;word-break:normal;background:0 0;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;padding:.95rem 1.7rem;font-size:clamp(1rem,1.8vw,1.25rem);line-height:1.25;text-decoration:none;transition:transform .18s,color .18s,background-color .18s;display:inline-flex}.hero__secondary-button:hover{color:var(--color-primary);background:#fff;transform:translateY(-3px)}.hero__secondary-button:focus-visible{outline:3px solid var(--color-accent);outline-offset:5px}@keyframes birthday-logo-glow{0%{filter:drop-shadow(0 0 #ffd44700)drop-shadow(0 0 #ef91b600);transform:scale(1)}25%{filter:drop-shadow(0 0 1.2rem #ffd447f2)drop-shadow(0 0 2.5rem #ef91b699);transform:scale(1.035)}55%{filter:drop-shadow(0 0 1.8rem #ffd447bf)drop-shadow(0 0 3.2rem #1466eb80);transform:scale(1.02)}to{filter:drop-shadow(0 0 #ffd44700)drop-shadow(0 0 #ef91b600);transform:scale(1)}}@keyframes hero-logo-enter{0%{opacity:0;transform:translateY(2rem)scale(.9)}70%{opacity:1;transform:translateY(-.3rem)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes hero-content-enter{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes hero-float-left{0%,to{transform:translate(0,0)rotate(-5deg)}33%{transform:translate(1rem,-1.2rem)rotate(-2deg)}66%{transform:translate(-.5rem,-.4rem)rotate(-7deg)}}@keyframes hero-float-right{0%,to{transform:translate(0,0)rotate(18deg)}33%{transform:translate(-.8rem,1rem)rotate(14deg)}66%{transform:translate(.5rem,-.6rem)rotate(21deg)}}@keyframes hero-star-spin{0%{opacity:.65;transform:rotate(0)scale(1)}50%{opacity:.9;transform:rotate(180deg)scale(1.08)}to{opacity:.65;transform:rotate(360deg)scale(1)}}@keyframes hero-star-spin-reverse{0%{opacity:.6;transform:rotate(360deg)scale(.7)}50%{opacity:.85;transform:rotate(180deg)scale(.77)}to{opacity:.6;transform:rotate(0)scale(.7)}}@keyframes hero-scroll-arrow{0%,to{transform:translateY(0)}50%{transform:translateY(.4rem)}}@keyframes hero-background-drift{0%{transform:scale(1.03)}to{transform:scale(1.07)}}@media (height<=850px) and (width>=701px){.hero{padding-top:1.5rem;padding-bottom:4rem}.hero__logo{width:min(60vw,500px)}.hero__eyebrow{margin-top:.4rem}.hero__event-details{width:190px;margin-top:.75rem}.countdown{margin-top:1rem}.countdown__unit{padding-block:.7rem}.hero__button{margin-top:1rem}.hero__scroll-indicator{margin-top:1.25rem}.hero--recap .hero__logo{width:min(52vw,460px)}.hero__recap{margin-top:.75rem}.hero__recap-title{font-size:clamp(2.4rem,5.5vw,4.6rem)}.hero__recap-description{margin-top:1rem;line-height:1.5}.hero__recap-actions{margin-top:1.25rem}}@media (width<=700px){.hero{min-height:100svh;padding:max(2rem, env(safe-area-inset-top)) 1rem max(4rem, env(safe-area-inset-bottom));place-items:center}.hero__content{width:100%;min-width:0;max-width:100%}.hero__background{animation-duration:24s}.hero__logo{width:min(100%,25rem);max-width:100%}.hero--recap .hero__logo{width:min(82vw,20rem)}.hero__event-details{width:min(62vw,245px);max-width:100%;margin-top:1.5rem}.hero__button{max-width:100%;margin-top:2rem}.hero__scroll-indicator{margin-top:1.5rem}.hero__decoration--left{opacity:.6;width:19rem;animation-duration:18s;bottom:-4rem;left:-8rem}.hero__decoration--right{opacity:.55;width:18rem;animation-duration:18s;top:-4rem;right:-8rem}.hero__star{width:clamp(3.25rem,14vw,4.5rem);animation-duration:32s}.hero__star--top{top:18%;left:-1.25rem}.hero__star--bottom{bottom:16%;right:-1rem}.hero__recap{width:100%;min-width:0;max-width:100%;margin-top:1rem}.hero__recap-eyebrow{letter-spacing:.14em;width:100%;font-size:clamp(.68rem,3vw,.8rem)}.hero__recap-title{white-space:normal;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;text-wrap:balance;width:100%;max-width:22rem;margin:.75rem auto 0;font-size:clamp(1.65rem,7.6vw,2.3rem);line-height:1.04}.hero__recap-title span{display:block}.hero__recap-description{width:100%;max-width:34rem;margin-top:1.25rem;font-size:clamp(.95rem,4.2vw,1.1rem);line-height:1.55}.hero__recap-actions{flex-flow:column;align-items:stretch;width:100%;max-width:22rem;margin-top:1.75rem}.hero__recap-actions .hero__button,.hero__secondary-button{letter-spacing:.04em;white-space:normal;overflow-wrap:break-word;word-break:normal;width:100%;min-width:0;max-width:100%;margin:0;padding:.9rem 1rem;font-size:clamp(.9rem,4vw,1.05rem);line-height:1.25}}@media (width<=480px){.hero{padding-inline:1rem}.hero--recap .hero__logo{width:min(76vw,18rem)}.hero__recap{margin-top:.75rem}.hero__recap-title{max-width:20.5rem;font-size:clamp(1.5rem,7.1vw,2.05rem);line-height:1.05}.hero__recap-description{font-size:.95rem}.hero__recap-actions{max-width:100%}.hero__decoration--left,.hero__decoration--right{opacity:.45}.hero__star{opacity:.5}.festival-info:before,.festival-info:after,.running-order:before,.running-order:after,.festival-essentials:before,.festival-essentials:after,.faq:before,.faq:after,.footer:before,.footer:after{opacity:.35}}@media (width<=360px){.hero{padding-inline:.85rem}.hero--recap .hero__logo{width:min(72vw,16rem)}.hero__recap-title{max-width:18.5rem;font-size:clamp(1.4rem,6.8vw,1.85rem);line-height:1.06}.hero__recap-eyebrow{letter-spacing:.11em;font-size:.65rem}.hero__recap-actions .hero__button,.hero__secondary-button{padding-inline:.75rem;font-size:.86rem}}@media (prefers-reduced-motion:reduce){.hero__background,.hero__logo,.hero__eyebrow,.hero__event-details,.hero__button,.hero__decoration,.hero__star,.hero__scroll-indicator,.hero__scroll-arrow,.countdown,.hero__recap,.birthday-balloon{animation:none}.hero:has(.countdown--started) .hero__logo{animation:none}.hero__button,.hero__button:before,.hero__secondary-button,.hero__scroll-indicator{transition:none}}.countdown{width:min(100%,700px);margin-top:2rem}.countdown__title{color:var(--color-primary);font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .75rem;font-size:clamp(1rem,1.8vw,1.35rem)}.countdown__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.5rem,1.5vw,1rem);display:grid}.countdown__unit{border:2px solid var(--color-primary);-webkit-backdrop-filter:blur(8px);background:#ffffffb8;border-radius:1.25rem;flex-direction:column;align-items:center;min-width:0;padding:clamp(.8rem,2vw,1.25rem) .5rem;transition:transform .18s,box-shadow .18s;display:flex;position:relative;box-shadow:0 10px 25px #1466eb1f}.countdown__unit:hover{transform:translateY(-3px);box-shadow:0 16px 35px #1466eb2e}.countdown__value{color:var(--color-primary);font-family:var(--font-heading);font-variant-numeric:tabular-nums;font-size:clamp(1.8rem,4vw,3.25rem);line-height:1}.countdown__label{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin-top:.45rem;font-size:clamp(.55rem,1vw,.75rem);font-weight:700}.countdown--started{border-radius:var(--border-radius);color:#fff;-webkit-backdrop-filter:blur(12px);text-align:center;background:linear-gradient(135deg,#1466eb38,#8f4ba038);border:2px solid #ffffffbf;margin-top:2rem;padding:1.75rem 2rem;animation:.7s cubic-bezier(.22,1,.36,1) both countdown-celebration-enter;position:relative;overflow:hidden;box-shadow:0 25px 60px #1466eb2e,inset 0 0 35px #ffffff14}.countdown__started-eyebrow{color:var(--color-accent);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:800}.countdown__started-title{z-index:2;justify-content:center;align-items:center;gap:1rem;margin-top:.75rem;display:flex;position:relative}.countdown__party{flex:none;font-size:clamp(2rem,4vw,3rem);line-height:1}.countdown__started-text{color:#fff;font-family:var(--font-heading);letter-spacing:.04em;text-align:center;text-transform:uppercase;text-shadow:0 5px 20px #00000040;margin:0;font-size:clamp(1.8rem,5vw,3rem);line-height:1}.birthday-effects{z-index:2500;pointer-events:none;position:fixed;inset:0;overflow:hidden}.birthday-balloon{aspect-ratio:.78;opacity:0;will-change:transform, opacity;backface-visibility:hidden;border-radius:50% 50% 46% 46%;width:clamp(2.2rem,4vw,3.4rem);animation-name:birthday-balloon-rise;animation-timing-function:linear;animation-iteration-count:1;animation-fill-mode:forwards;position:absolute;bottom:-8rem;transform:translate(0,0);box-shadow:inset -.4rem -.55rem .8rem #0000001a,inset .35rem .45rem .75rem #ffffff61}.birthday-balloon:before{content:"";background:#ffffffb8;width:1px;height:clamp(3rem,7vw,5rem);position:absolute;top:100%;left:50%;transform:translate(-50%)}.birthday-balloon:after{content:"";background:inherit;width:.5rem;height:.5rem;position:absolute;bottom:-.3rem;left:50%;transform:translate(-50%)rotate(45deg)}.birthday-balloon--1{background:#1466eb;animation-duration:8.2s;animation-delay:.1s;left:5%}.birthday-balloon--2{background:#ffd447;animation-duration:9s;animation-delay:.7s;left:20%}.birthday-balloon--3{background:#ef91b6;animation-duration:8.5s;animation-delay:1.2s;left:38%}.birthday-balloon--4{background:#8f4ba0;animation-duration:8.8s;animation-delay:.4s;right:35%}.birthday-balloon--5{background:#1466eb;animation-duration:8.4s;animation-delay:1.5s;right:18%}.birthday-balloon--6{background:#ffd447;animation-duration:9.2s;animation-delay:.9s;right:4%}@keyframes birthday-balloon-rise{0%{opacity:0;transform:translate(0,0)rotate(-5deg)}6%{opacity:.95}15%{transform:translate(-.25rem,-18vh)rotate(-1deg)}30%{transform:translate(.35rem,-38vh)rotate(4deg)}45%{transform:translate(-.45rem,-58vh)rotate(0)}60%{transform:translate(.4rem,-78vh)rotate(-4deg)}75%{transform:translate(-.3rem,-98vh)rotate(1deg)}90%{opacity:.95;transform:translate(.25rem,-118vh)rotate(4deg)}to{opacity:0;transform:translateY(-135vh)rotate(0)}}@keyframes countdown-enter{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes countdown-celebration-enter{0%{opacity:0;transform:translateY(1.2rem)scale(.95)}70%{opacity:1;transform:translateY(-.15rem)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes balloon-float{0%{opacity:0;transform:translateY(0)translate(0)rotate(-8deg)}10%{opacity:1}30%{transform:translateY(-70px)translate(-8px)rotate(5deg)}55%{transform:translateY(-170px)translate(8px)rotate(-5deg)}80%{opacity:1;transform:translateY(-280px)translate(-5px)rotate(4deg)}to{opacity:0;transform:translateY(-420px)translate(6px)rotate(-6deg)}}@media (width<=600px){.countdown{width:min(100%,430px);margin-top:1.5rem}.countdown__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.countdown__unit{border-radius:1rem}.countdown--started{padding:1.4rem}.countdown__started-title{gap:.6rem}.countdown__party{font-size:1.8rem}.countdown__started-text{font-size:clamp(1.6rem,7vw,2.4rem)}.balloon{width:32px;height:42px}.balloon:before{height:40px}}@media (width<=380px){.countdown__grid{gap:.4rem}.countdown__unit{padding:.7rem .35rem}.countdown__value{font-size:1.65rem}.countdown__label{letter-spacing:.04em;font-size:.5rem}}@media (prefers-reduced-motion:reduce){.countdown,.countdown__unit,.countdown--started,.countdown__party,.balloon{transition:none;animation:none}.countdown__unit:hover{transform:none}}.navigation{z-index:1000;padding:1rem 0;transition:background-color .25s,-webkit-backdrop-filter .25s,backdrop-filter .25s,box-shadow .25s,padding .25s;position:fixed;top:0;left:0;right:0}.navigation--scrolled{-webkit-backdrop-filter:blur(16px);background:#fffcefd1;padding:.7rem 0;box-shadow:0 12px 30px #1466eb1a}.navigation__container{justify-content:space-between;align-items:center;display:flex}.navigation__brand{z-index:1002;align-items:center;text-decoration:none;display:inline-flex;position:relative}.navigation__logo{filter:brightness(0)invert();width:clamp(6.5rem,10vw,9rem);height:auto;transition:width .25s,filter .25s,transform .18s;display:block}.navigation__brand:hover .navigation__logo{transform:scale(1.04)}.navigation--scrolled .navigation__logo{filter:none;width:clamp(5.5rem,8vw,7.5rem)}.navigation--scrolled .navigation__brand{color:var(--color-primary)}.navigation__menu{display:flex}.navigation__list{gap:2rem;margin:0;padding:0;list-style:none;display:flex}.navigation__link{color:#fff;letter-spacing:.15em;text-transform:uppercase;font-size:.82rem;font-weight:700;text-decoration:none;transition:color .25s;position:relative}.navigation--scrolled .navigation__link{color:var(--color-primary)}.navigation__link--active{color:var(--color-accent)}.navigation--scrolled .navigation__link--active{color:var(--color-secondary)}.navigation__link:after{content:"";transform-origin:100%;background:currentColor;height:2px;transition:transform .25s;position:absolute;bottom:-.45rem;left:0;right:0;transform:scaleX(0)}.navigation__link:hover:after,.navigation__link:focus-visible:after,.navigation__link--active:after{transform-origin:0;transform:scaleX(1)}.navigation__toggle{color:#fff;cursor:pointer;z-index:1002;background:0 0;border:none;border-radius:50%;place-items:center;width:3rem;height:3rem;font-size:1.5rem;transition:color .25s,transform .2s;display:none}.navigation__toggle:hover{transform:scale(1.08)}.navigation--scrolled .navigation__toggle{color:var(--color-primary)}@media (width<=900px){.navigation__toggle{display:grid}.navigation__menu{opacity:0;visibility:hidden;pointer-events:none;background:linear-gradient(#1466ebf5,#5935c2f7);place-items:center;transition:opacity .25s,visibility .25s;display:grid;position:fixed;inset:0}.navigation__menu--open{opacity:1;visibility:visible;pointer-events:auto}.navigation__list{text-align:center;flex-direction:column;gap:2rem}.navigation__link{font-family:var(--font-heading);letter-spacing:.05em;color:#fff;font-size:clamp(2.4rem,8vw,4rem)}.navigation__link--active{color:var(--color-accent)}.navigation__brand,.navigation__toggle{color:#fff}}.navigation__brand:focus-visible,.navigation__link:focus-visible,.navigation__toggle:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}@media (prefers-reduced-motion:reduce){.navigation,.navigation__menu,.navigation__toggle,.navigation__link:after{transition:none}.navigation__logo,.navigation--scrolled .navigation__logo{filter:brightness(0)invert();width:7rem}}@media (width<=380px){.navigation__logo,.navigation--scrolled .navigation__logo{width:5.75rem}.navigation__toggle{width:2.65rem;height:2.65rem}.navigation__list{gap:1.25rem}.navigation__link{font-size:clamp(2rem,11vw,3rem)}}.photo-gallery{color:#fff;background:var(--color-primary);padding:clamp(5rem,10vw,9rem) 0;position:relative;overflow:hidden}.photo-gallery__container{z-index:1;position:relative}.photo-gallery__header{justify-content:space-between;align-items:flex-end;gap:2rem;display:flex}.photo-gallery__eyebrow{color:var(--color-accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .75rem;font-size:.85rem;font-weight:800}.photo-gallery__title{font-family:var(--font-heading);text-transform:uppercase;margin:0;font-size:clamp(3.5rem,9vw,8rem);font-weight:400;line-height:.9}.photo-gallery__intro{color:#ffffffd1;max-width:620px;margin:1.5rem 0 0;font-size:clamp(1rem,2vw,1.2rem);line-height:1.7}.photo-gallery__actions{flex-wrap:wrap;gap:.75rem;display:flex}.photo-gallery__action-button,.photo-gallery__admin-button,.photo-gallery__delete-button{cursor:pointer;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;gap:.55rem;font-weight:800;transition:transform .18s,color .18s,background-color .18s;display:inline-flex}.photo-gallery__action-button,.photo-gallery__admin-button{min-height:3rem;color:var(--color-primary);background:#fff;padding:.75rem 1.1rem}.photo-gallery__action-button:hover:not(:disabled),.photo-gallery__admin-button:hover{color:#fff;background:0 0;transform:translateY(-3px)}.photo-gallery__admin-panel{border-radius:var(--border-radius);-webkit-backdrop-filter:blur(10px);background:#ffffff1f;border:2px solid #ffffffb3;max-width:520px;margin-top:2rem;padding:1.25rem}.photo-gallery__admin-panel label{letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:800;display:block}.photo-gallery__admin-panel input{width:100%;min-height:3rem;color:var(--color-primary);font:inherit;background:#fff;border:2px solid #fff;border-radius:999px;outline:none;margin-top:.5rem;padding:.75rem 1rem}.photo-gallery__admin-panel input:focus{box-shadow:0 0 0 5px #ffe76a47}.photo-gallery__admin-panel p{color:#ffffffb8;margin:.75rem 0 0;font-size:.8rem}.photo-gallery__message{border-radius:1rem;margin:1.5rem 0 0;padding:1rem 1.2rem;font-weight:700}.photo-gallery__message--error{color:#8f1b13;background:#fde8e6}.photo-gallery__message--success{color:#17633a;background:#e2f5e9}.photo-gallery__empty{border-radius:var(--border-radius);color:#ffffffd1;text-align:center;border:2px dashed #ffffffa6;flex-direction:column;align-items:center;gap:.75rem;margin:3rem 0 0;padding:3rem 1.5rem;display:flex}.photo-gallery__empty p{margin:0}.photo-gallery__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:clamp(3rem,7vw,5rem);display:grid}.photo-gallery__item{border-radius:var(--border-radius);background:#ffffff1f;border:2px solid #ffffffb8;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden}.photo-gallery__item:hover{transform:translateY(-5px);box-shadow:0 20px 45px #0f122640}.photo-gallery__image-button{aspect-ratio:4/3;cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}.photo-gallery__image{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}.photo-gallery__video-thumbnail{pointer-events:none;background:#07091880}.photo-gallery__item:hover .photo-gallery__image{transform:scale(1.04)}.photo-gallery__play-indicator{color:#fff;filter:drop-shadow(0 5px 15px #0000008c);pointer-events:none;place-items:center;font-size:clamp(3rem,7vw,4.5rem);display:grid;position:absolute;inset:0}.photo-gallery__item-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;min-height:4rem;padding:.85rem 1rem;display:flex}.photo-gallery__metadata{flex-direction:column;gap:.2rem;min-width:0;display:flex}.photo-gallery__metadata time,.photo-gallery__metadata span{color:#ffffffb8;font-size:.78rem}.photo-gallery__delete-button{border-color:var(--color-highlight);color:#fff;background:var(--color-highlight);padding:.55rem .85rem;font-size:.8rem}.photo-gallery__delete-button:hover:not(:disabled){color:var(--color-highlight);background:#fff}.photo-gallery__delete-button:disabled,.photo-gallery__action-button:disabled{cursor:not-allowed;opacity:.55}.photo-gallery__count{color:#ffffffbf;letter-spacing:.12em;text-transform:uppercase;margin:2rem 0 0;font-size:.85rem;font-weight:800}.photo-gallery__refresh-icon--active,.photo-gallery__loading-icon{animation:.9s linear infinite photo-gallery-spin}.photo-gallery__loading-icon{font-size:1.5rem}.photo-gallery__selection-toolbar{border-radius:var(--border-radius);-webkit-backdrop-filter:blur(10px);background:#ffffff1f;border:2px solid #ffffffb3;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;padding:1rem 1.15rem;display:flex}.photo-gallery__selection-summary{align-items:center;gap:.6rem;font-weight:800;display:inline-flex}.photo-gallery__selection-actions,.photo-gallery__item-actions,.photo-gallery__lightbox-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.photo-gallery__selection-button,.photo-gallery__selection-download-button,.photo-gallery__item-download-button,.photo-gallery__lightbox-download-button{font:inherit;cursor:pointer;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;font-weight:800;transition:transform .18s,color .18s,background-color .18s,opacity .18s;display:inline-flex}.photo-gallery__selection-button{color:#fff;background:0 0;min-height:2.75rem;padding:.65rem 1rem}.photo-gallery__selection-button:hover:not(:disabled){color:var(--color-primary);background:#fff;transform:translateY(-2px)}.photo-gallery__selection-download-button{border-color:var(--color-accent);min-height:2.75rem;color:var(--color-primary);background:var(--color-accent);padding:.65rem 1rem}.photo-gallery__selection-download-button:hover:not(:disabled){color:#fff;background:0 0;transform:translateY(-2px)}.photo-gallery__selection-download-button:disabled,.photo-gallery__item-download-button:disabled,.photo-gallery__lightbox-download-button:disabled{cursor:not-allowed;opacity:.55}.photo-gallery__item--selected{border-color:var(--color-accent);box-shadow:0 0 0 4px #ffe76a4d,0 20px 45px #0f122640}.photo-gallery__image-button--selecting{cursor:pointer}.photo-gallery__selection-indicator{z-index:2;width:2.5rem;height:2.5rem;color:var(--color-primary);-webkit-backdrop-filter:blur(8px);background:#0f1226b8;border:3px solid #fff;border-radius:50%;place-items:center;font-size:1rem;transition:transform .18s,background-color .18s;display:grid;position:absolute;top:.8rem;right:.8rem;box-shadow:0 5px 18px #00000047}.photo-gallery__selection-indicator--selected{background:var(--color-accent);transform:scale(1.08)}.photo-gallery__item-download-button{min-height:2.5rem;color:var(--color-primary);background:#fff;padding:.5rem .75rem;font-size:.8rem}.photo-gallery__item-download-button:hover:not(:disabled){color:#fff;background:0 0;transform:translateY(-2px)}.photo-gallery__lightbox{z-index:2000;-webkit-backdrop-filter:blur(12px);background:#070918f0;place-items:center;padding:clamp(1rem,4vw,3rem);display:grid;position:fixed;inset:0}.photo-gallery__lightbox-content{border-radius:var(--border-radius);background:#0f1226f0;border:2px solid #ffffff59;flex-direction:column;width:min(100%,1200px);max-height:calc(100svh - 4rem);display:flex;overflow:hidden;box-shadow:0 30px 90px #00000080}.photo-gallery__lightbox-image{object-fit:contain;background:#070918;width:100%;max-height:calc(100svh - 10rem);display:block}.photo-gallery__lightbox-video{min-height:min(60vh,36rem)}.photo-gallery__lightbox-footer{color:#ffffffc7;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-height:4rem;padding:.85rem 1rem;display:flex}.photo-gallery__lightbox-metadata{flex-wrap:wrap;align-items:center;gap:1rem;min-width:0;display:flex}.photo-gallery__lightbox-download-button{min-height:2.75rem;color:var(--color-primary);background:#fff;padding:.65rem 1rem}.photo-gallery__lightbox-download-button:hover:not(:disabled){color:#fff;background:0 0;transform:translateY(-2px)}.photo-gallery__lightbox-close,.photo-gallery__lightbox-navigation{z-index:2001;color:#fff;cursor:pointer;background:#ffffff1f;border:2px solid #ffffffbf;border-radius:50%;place-items:center;width:3.25rem;height:3.25rem;font-size:1.25rem;transition:transform .18s,background-color .18s;display:grid;position:fixed}.photo-gallery__lightbox-close:hover,.photo-gallery__lightbox-navigation:hover{background:var(--color-primary);transform:scale(1.07)}.photo-gallery__lightbox-close{top:1rem;right:1rem}.photo-gallery__lightbox-navigation{top:50%;transform:translateY(-50%)}.photo-gallery__lightbox-navigation:hover{transform:translateY(-50%)scale(1.07)}.photo-gallery__lightbox-navigation--previous{left:1rem}.photo-gallery__lightbox-navigation--next{right:1rem}@keyframes photo-gallery-spin{to{transform:rotate(360deg)}}@media (width<=900px){.photo-gallery__header,.photo-gallery__selection-toolbar{flex-direction:column;align-items:flex-start}.photo-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-gallery__selection-actions{width:100%}}@media (width<=700px){.photo-gallery__selection-actions{flex-direction:column;align-items:stretch}.photo-gallery__selection-button,.photo-gallery__selection-download-button{width:100%}.photo-gallery__lightbox{padding:4.5rem .75rem 1rem}.photo-gallery__lightbox-navigation{top:auto;bottom:1rem}.photo-gallery__lightbox-navigation--previous{left:1rem}.photo-gallery__lightbox-navigation--next{right:1rem}.photo-gallery__lightbox-footer{flex-direction:column;align-items:flex-start;padding-bottom:5rem}.photo-gallery__lightbox-actions{width:100%}.photo-gallery__lightbox-download-button,.photo-gallery__lightbox-actions .photo-gallery__delete-button{flex:1}}@media (width<=600px){.photo-gallery{padding:4.5rem 0}.photo-gallery__grid{grid-template-columns:1fr}.photo-gallery__actions{width:100%}.photo-gallery__action-button,.photo-gallery__admin-button{flex:1}}@media (width<=420px){.photo-gallery__item-download-label{display:none}.photo-gallery__item-download-button{width:2.6rem;padding:0}}@media (prefers-reduced-motion:reduce){.photo-gallery__refresh-icon--active,.photo-gallery__loading-icon{animation:none}}.photo-upload{color:var(--color-primary);background:var(--color-background);padding:clamp(5rem,10vw,9rem) 0;position:relative;overflow:hidden}.photo-upload:before{content:"";aspect-ratio:1;background:var(--color-highlight);opacity:.35;border-radius:50%;width:25rem;position:absolute;top:-10rem;right:-8rem}.photo-upload:after{content:"";aspect-ratio:1;background:var(--color-accent);opacity:.45;border-radius:50%;width:28rem;position:absolute;bottom:-12rem;left:-8rem}.photo-upload__container{z-index:1;position:relative}.photo-upload__header{max-width:800px}.photo-upload__eyebrow{color:var(--color-secondary);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .75rem;font-size:.85rem;font-weight:800}.photo-upload__title{font-family:var(--font-heading);text-transform:uppercase;text-wrap:balance;margin:0;font-size:clamp(3.5rem,9vw,8rem);font-weight:400;line-height:.9}.photo-upload__intro{max-width:700px;color:var(--color-text-muted);margin:1.5rem 0 0;font-size:clamp(1rem,2vw,1.2rem);line-height:1.7}.photo-upload__form{max-width:950px;margin-top:clamp(3rem,7vw,5rem)}.photo-upload__dropzone{border:3px dashed var(--color-primary);border-radius:var(--border-radius);text-align:center;-webkit-backdrop-filter:blur(12px);background:#ffffffad;flex-direction:column;justify-content:center;align-items:center;min-height:320px;padding:clamp(2rem,5vw,4rem) 1.5rem;transition:transform .18s,border-color .18s,background-color .18s,box-shadow .18s;display:flex;box-shadow:0 18px 45px #1466eb1a}.photo-upload__dropzone--active{border-color:var(--color-secondary);background:#ef91b633;transform:scale(1.01);box-shadow:0 24px 55px #1466eb2e}.photo-upload__dropzone-icon{color:var(--color-secondary);font-size:clamp(3rem,8vw,5rem)}.photo-upload__dropzone-title{font-family:var(--font-heading);text-transform:uppercase;margin:1.25rem 0 0;font-size:clamp(1.8rem,4vw,3rem);font-weight:400}.photo-upload__dropzone-text{color:var(--color-text-muted);margin:.5rem 0 0}.photo-upload__select-button,.photo-upload__submit-button,.photo-upload__clear-button{cursor:pointer;border-radius:999px;font-weight:800;transition:transform .18s,color .18s,background-color .18s,opacity .18s,box-shadow .18s}.photo-upload__select-button{border:2px solid var(--color-primary);color:#fff;background:var(--color-primary);margin-top:1.5rem;padding:.85rem 1.5rem}.photo-upload__select-button:hover:not(:disabled),.photo-upload__submit-button:hover:not(:disabled){color:var(--color-primary);background:#fff;transform:translateY(-3px);box-shadow:0 14px 36px #1466eb38}.photo-upload__select-button:disabled,.photo-upload__submit-button:disabled,.photo-upload__clear-button:disabled,.photo-upload__remove-button:disabled{cursor:not-allowed;opacity:.55}.photo-upload__input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.photo-upload__limit{color:var(--color-text-muted);margin:1rem 0 0;font-size:.8rem}.photo-upload__selection{border-radius:var(--border-radius);background:#ffffffb8;border:2px solid #1466eb40;margin-top:2rem;padding:clamp(1rem,3vw,1.5rem)}.photo-upload__selection-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.photo-upload__selection-header h3{font-family:var(--font-heading);text-transform:uppercase;margin:0;font-size:1.7rem;font-weight:400}.photo-upload__selection-header p{color:var(--color-text-muted);margin:.25rem 0 0;font-size:.85rem}.photo-upload__clear-button{border:2px solid var(--color-primary);color:var(--color-primary);background:0 0;padding:.7rem 1rem}.photo-upload__clear-button:hover:not(:disabled){color:#fff;background:var(--color-primary)}.photo-upload__overall-progress{margin-top:1.5rem}.photo-upload__progress-heading{color:var(--color-primary);justify-content:space-between;gap:1rem;margin-bottom:.55rem;font-size:.85rem;display:flex}.photo-upload__progress-heading span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.photo-upload__progress-track,.photo-upload__file-progress{background:#1466eb26;border-radius:999px;overflow:hidden}.photo-upload__progress-track{height:.75rem}.photo-upload__progress-track span,.photo-upload__file-progress span{border-radius:inherit;background:var(--color-primary);height:100%;transition:width .12s linear;display:block}.photo-upload__preview-list{gap:.75rem;max-height:38rem;margin:1.5rem 0 0;padding:0 .25rem 0 0;list-style:none;display:grid;overflow-y:auto}.photo-upload__preview-item{background:#ffffffe6;border:2px solid #0000;border-radius:1rem;grid-template-columns:4.5rem minmax(0,1fr) auto;align-items:center;gap:1rem;min-width:0;padding:.75rem;display:grid}.photo-upload__preview-item--uploading{border-color:#1466eb73}.photo-upload__preview-item--success{background:#e2f5e9d1;border-color:#17633a6b}.photo-upload__preview-item--error{background:#fde8e6d1;border-color:#b423186b}.photo-upload__preview-image{object-fit:cover;background:#1466eb1a;border-radius:.75rem;width:4.5rem;height:4.5rem}.photo-upload__preview-video{display:block}.photo-upload__preview-info{flex-direction:column;gap:.2rem;min-width:0;display:flex}.photo-upload__preview-name{text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.photo-upload__preview-size{color:var(--color-text-muted);font-size:.8rem}.photo-upload__file-progress{width:100%;height:.35rem;margin-top:.4rem}.photo-upload__file-error{color:#8f1b13;margin-top:.35rem;font-size:.78rem;line-height:1.4}.photo-upload__preview-action{place-items:center;min-width:2.75rem;display:grid}.photo-upload__remove-button{color:#fff;background:var(--color-highlight);cursor:pointer;border:0;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;transition:transform .18s;display:grid}.photo-upload__remove-button:hover:not(:disabled){transform:scale(1.08)}.photo-upload__status-icon{font-size:1.4rem}.photo-upload__status-icon--success{color:#17633a}.photo-upload__status-icon--error{color:#b42318}.photo-upload__message{border-radius:1rem;margin:1.25rem 0 0;padding:1rem 1.2rem;font-weight:700;line-height:1.5}.photo-upload__message--error{color:#8f1b13;background:#fde8e6}.photo-upload__message--success{color:#17633a;background:#e2f5e9}.photo-upload__storage-info{color:var(--color-text-muted);margin:1rem 0 0;font-size:.85rem}.photo-upload__submit-button{border:2px solid var(--color-primary);color:#fff;background:var(--color-primary);min-height:3.5rem;font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;justify-content:center;align-items:center;gap:.65rem;margin-top:1.5rem;padding:.9rem 1.7rem;font-size:1.15rem;display:inline-flex}.photo-upload__select-button:focus-visible,.photo-upload__submit-button:focus-visible,.photo-upload__clear-button:focus-visible,.photo-upload__remove-button:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}@media (width<=600px){.photo-upload{padding:4.5rem 0}.photo-upload__dropzone{min-height:270px}.photo-upload__selection-header{flex-direction:column;align-items:flex-start}.photo-upload__preview-item{grid-template-columns:3.75rem minmax(0,1fr) auto;gap:.7rem}.photo-upload__preview-image{width:3.75rem;height:3.75rem}.photo-upload__submit-button,.photo-upload__clear-button{width:100%}}@media (prefers-reduced-motion:reduce){.photo-upload__dropzone,.photo-upload__select-button,.photo-upload__submit-button,.photo-upload__clear-button,.photo-upload__remove-button,.photo-upload__progress-track span,.photo-upload__file-progress span{transition:none}}.running-order{color:var(--color-primary);background:var(--color-background);padding:clamp(5rem,10vw,9rem) 0;position:relative;overflow:hidden}.running-order:before{content:"";aspect-ratio:1;background:var(--color-highlight);opacity:.45;filter:blur(2px);border-radius:50%;width:25rem;position:absolute;top:-10rem;left:-8rem}.running-order:after{content:"";aspect-ratio:1;background:var(--color-accent);opacity:.55;border-radius:50%;width:28rem;position:absolute;bottom:-12rem;right:-8rem}.running-order__container{z-index:1;position:relative}.running-order__header{max-width:760px}.running-order__eyebrow{color:var(--color-secondary);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .75rem;font-size:.85rem;font-weight:800}.running-order__title{font-family:var(--font-heading);text-transform:uppercase;text-wrap:balance;overflow-wrap:normal;word-break:normal;margin:0;font-size:clamp(3.5rem,9vw,8rem);font-weight:400;line-height:.9}.running-order__intro{max-width:620px;color:var(--color-text-muted);margin:1.5rem 0 0;font-size:clamp(1rem,2vw,1.2rem);line-height:1.7}.running-order__days{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:1.25rem;margin-top:clamp(3rem,7vw,5rem);display:grid}.running-order__day{border:2px solid var(--color-primary);border-radius:var(--border-radius);-webkit-backdrop-filter:blur(10px);background:#ffffffad;min-width:0;transition:transform .18s,box-shadow .18s;overflow:hidden;box-shadow:0 18px 40px #1466eb1f}.running-order__day:hover{transform:translateY(-6px);box-shadow:0 24px 48px #1466eb2e}.running-order__day-header{color:#fff;background:var(--color-primary);padding:1.5rem}.running-order__date{color:var(--color-accent);letter-spacing:.15em;text-transform:uppercase;margin:0 0 .35rem;font-size:.75rem;font-weight:800}.running-order__day-title{font-family:var(--font-heading);text-transform:uppercase;margin:0;font-size:clamp(2.2rem,4vw,3.3rem);font-weight:400;line-height:1}.running-order__events{padding:0 1.25rem}.running-order__event{border-bottom:1px solid #1466eb33;grid-template-columns:minmax(7rem,8rem) minmax(0,1fr);align-items:start;gap:1rem;padding:1.4rem 0;display:grid}.running-order__event:last-child{border-bottom:0}.running-order__time{min-width:0;color:var(--color-secondary);font-family:var(--font-heading);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;font-size:1.15rem;line-height:1.2}.running-order__event-content{min-width:0}.running-order__event-title{min-width:0;color:var(--color-primary);font-family:var(--font-heading);text-transform:uppercase;overflow-wrap:break-word;word-break:normal;align-items:flex-start;gap:.55rem;margin:0;font-size:1.35rem;font-weight:400;line-height:1.05;display:flex}.running-order__event-title span{min-width:0}.running-order__icon{width:1.15rem;color:var(--color-highlight);flex:none;margin-top:.08rem;font-size:1.1rem}.running-order__description{color:var(--color-text-muted);margin:.55rem 0 0;font-size:.9rem;line-height:1.55}@media (width<=1250px) and (width>=1001px){.running-order__event{grid-template-columns:1fr;gap:.5rem}.running-order__time{font-size:1.05rem}}@media (width<=1000px){.running-order__days{grid-template-columns:1fr}.running-order__day{width:100%;max-width:760px}.running-order__event{grid-template-columns:minmax(7rem,9rem) minmax(0,1fr)}}@media (width<=600px){.running-order{padding:4.5rem 0}.running-order__events{padding-inline:1rem}.running-order__day-header{padding:1.25rem}.running-order__event{grid-template-columns:1fr;gap:.45rem}.running-order__time{font-size:1.05rem}.running-order__event-title{font-size:1.2rem}.running-order__description{font-size:.88rem}}@media (prefers-reduced-motion:reduce){.running-order__day{transition:none}.running-order__day:hover{transform:none}}.password-gate{isolation:isolate;min-height:100svh;color:var(--color-primary);background:var(--color-background);place-items:center;padding:2rem 1rem;display:grid;position:relative;overflow:hidden}.password-gate__background{z-index:-4;object-fit:cover;object-position:center;width:100%;height:100%;animation:22s ease-in-out infinite alternate password-gate-background;position:absolute;inset:0}.password-gate:before{content:"";z-index:-3;background:linear-gradient(#0f12264d,#0f122694);position:absolute;inset:0}.password-gate:after{content:"";z-index:-2;aspect-ratio:1;filter:blur(25px);background:radial-gradient(circle,#ffe76a59,#ef91b62e 45%,#0000 70%);border-radius:50%;width:min(90vw,760px);position:absolute}.password-gate__card{z-index:5;text-align:center;-webkit-backdrop-filter:blur(18px);background:#fffcefd6;border:2px solid #ffffffbf;border-radius:clamp(1.5rem,4vw,2.5rem);width:min(100%,650px);padding:clamp(1.5rem,5vw,3rem);animation:.8s cubic-bezier(.22,1,.36,1) both password-gate-card-enter;position:relative;box-shadow:0 25px 70px #0f122652}.password-gate__logo{width:min(85%,420px);height:auto;margin-inline:auto;display:block}.password-gate__eyebrow{color:var(--color-secondary);letter-spacing:.18em;text-transform:uppercase;margin:1.5rem 0 0;font-size:.8rem;font-weight:800}.password-gate__title{color:var(--color-primary);font-family:var(--font-heading);text-transform:uppercase;text-wrap:balance;margin:.75rem 0 0;font-size:clamp(2.1rem,7vw,4rem);font-weight:400;line-height:.95}.password-gate__description{max-width:500px;color:var(--color-text-muted);margin:1.25rem auto 0;line-height:1.65}.password-gate__form{flex-direction:column;align-items:stretch;max-width:430px;margin:2rem auto 0;display:flex}.password-gate__label{color:var(--color-primary);letter-spacing:.14em;text-align:left;text-transform:uppercase;margin-bottom:.5rem;font-size:.75rem;font-weight:800}.password-gate__input{border:2px solid var(--color-primary);width:100%;min-height:3.5rem;color:var(--color-primary);font:inherit;text-align:center;letter-spacing:.1em;background:#ffffffd1;border-radius:999px;outline:none;padding:.8rem 1.15rem;font-size:1.1rem;transition:border-color .18s,box-shadow .18s,background-color .18s}.password-gate__input:focus{background:#fff;box-shadow:0 0 0 5px #1466eb29}.password-gate__input--error{border-color:#b42318}.password-gate__error{color:#9f1c13;margin:.65rem 0 0;font-size:.9rem;font-weight:700}.password-gate__button{border:2px solid var(--color-primary);color:#fff;background:var(--color-primary);min-height:3.5rem;font-family:var(--font-heading);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;border-radius:999px;margin-top:1rem;padding:.9rem 1.5rem;font-size:1.1rem;transition:transform .18s,color .18s,background-color .18s,box-shadow .18s;box-shadow:0 12px 30px #1466eb40}.password-gate__button:hover:not(:disabled){color:var(--color-primary);background:#fff;transform:translateY(-3px);box-shadow:0 16px 38px #1466eb57}.password-gate__button:disabled{cursor:wait;opacity:.65}.password-gate__hint{color:var(--color-text-muted);margin:1.5rem 0 0;font-size:.82rem}.password-gate__decoration,.password-gate__star{z-index:-1;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}.password-gate__decoration--left{width:clamp(18rem,35vw,34rem);animation:14s ease-in-out infinite password-gate-float-left;bottom:-9rem;left:-8rem}.password-gate__decoration--right{width:clamp(17rem,30vw,30rem);animation:17s ease-in-out infinite password-gate-float-right;top:-8rem;right:-9rem}.password-gate__star{width:clamp(4rem,8vw,7rem)}.password-gate__star--top{animation:50s linear infinite password-gate-spin;top:8%;left:7%}.password-gate__star--bottom{animation:60s linear infinite password-gate-spin-reverse;bottom:10%;right:8%}@keyframes password-gate-card-enter{0%{opacity:0;transform:translateY(2rem)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes password-gate-background{0%{transform:scale(1.03)}to{transform:scale(1.08)}}@keyframes password-gate-float-left{0%,to{transform:translate(0,0)rotate(-5deg)}50%{transform:translate(1rem,-1rem)rotate(1deg)}}@keyframes password-gate-float-right{0%,to{transform:translate(0,0)rotate(16deg)}50%{transform:translate(-1rem,1rem)rotate(10deg)}}@keyframes password-gate-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes password-gate-spin-reverse{0%{transform:rotate(360deg)scale(.8)}to{transform:rotate(0)scale(.8)}}@media (width<=600px){.password-gate{padding:1rem}.password-gate__card{padding:1.5rem 1.1rem}.password-gate__decoration--left{opacity:.5;bottom:-5rem;left:-10rem}.password-gate__decoration--right{opacity:.5;top:-5rem;right:-11rem}.password-gate__star{opacity:.55}}@media (prefers-reduced-motion:reduce){.password-gate__background,.password-gate__card,.password-gate__decoration,.password-gate__star{animation:none}.password-gate__input,.password-gate__button{transition:none}}:root{--color-background:#fffcef;--color-surface:#f6e7d2;--color-primary:#1466eb;--color-secondary:#8d4a94;--color-accent:#f5e960;--color-highlight:#ef91b6;--color-text:#1466eb;--color-text-muted:#665b72;--color-text-on-primary:#fff;--font-heading:"High Cruiser", sans-serif;--font-body:"Montserrat", Arial, sans-serif;--max-width:1280px;--border-radius:24px;--shadow-glow-blue:0 0 30px #1f7cff59;--shadow-glow-purple:0 0 30px #8c52ff59;--transition:.3s ease}.reveal{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(2.5rem)}.reveal.is-visible{opacity:1;transform:translateY(0)}.reveal--left{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.22,1,.36,1);transform:translate(-2.5rem)}.reveal--left.is-visible{opacity:1;transform:translate(0)}.reveal--right{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.22,1,.36,1);transform:translate(2.5rem)}.reveal--right.is-visible{opacity:1;transform:translate(0)}.reveal--scale{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.22,1,.36,1);transform:scale(.94)}.reveal--scale.is-visible{opacity:1;transform:scale(1)}@media (prefers-reduced-motion:reduce){.reveal,.reveal--left,.reveal--right,.reveal--scale{opacity:1;transition:none;transform:none}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;width:100%;max-width:100%;overflow-x:hidden}body{width:100%;max-width:100%;min-height:100%;color:var(--color-text);background:var(--color-background);font-family:var(--font-body);margin:0;line-height:1.5;overflow-x:hidden}#root{width:100%;max-width:100%;min-height:100vh;overflow-x:hidden}img,svg{max-width:100%;display:block}img{height:auto}button,a{font:inherit}button{cursor:pointer}.container{width:min(100% - 2rem, var(--max-width));min-width:0;margin-inline:auto}@media (width<=480px){.container{width:min(100% - 1.5rem, var(--max-width))}}.placeholder-section{color:#fff;background:var(--color-primary);text-align:center;place-items:center;min-height:70vh;padding:6rem 0;display:grid}.placeholder-section h2{font-family:var(--font-heading);margin:0;font-size:clamp(2.5rem,7vw,6rem);font-weight:400}section{scroll-margin-top:5rem}h1,h2,h3,h4{overflow-wrap:break-word;word-break:normal;-webkit-hyphens:none;hyphens:none}.festival-info__title,.running-order__title,.festival-essentials__title,.faq__title{text-wrap:balance}
