
.festival-card{position:relative!important;isolation:isolate;border-color:color-mix(in srgb,var(--occasion-accent) 24%,#dce5f1)!important}
.festival-ornament{position:absolute;right:12px;top:12px;width:44px;height:44px;pointer-events:none;z-index:1;filter:drop-shadow(0 3px 4px #18344612)}
.festival-symbol{display:block;width:100%;height:100%}.festival-card .card-arrow{right:66px}.festival-card h3:first-child,.festival-card .heading{padding-right:40px}
.festival-card[data-festival-trim=lights]{border-top:3px solid #326c50!important}
.festival-lights{position:absolute;top:0;left:10px;right:10px;height:15px;display:flex;justify-content:space-around;pointer-events:none;border-top:1px solid #538969}
.festival-lights i,.festival-header-lights i{width:6px;height:9px;border-radius:40% 40% 50% 50%;background:#df535d;box-shadow:0 0 8px #df535d55;position:relative;animation:festival-light 5s ease-in-out infinite;animation-delay:calc(var(--bulb)*-.7s)}
.festival-lights i:before,.festival-header-lights i:before{content:"";position:absolute;width:3px;height:3px;background:#496957;top:-2px;left:1.5px}
.festival-lights i:nth-child(3n+2),.festival-header-lights i:nth-child(3n+2){background:#dfba62;box-shadow:0 0 8px #dfba6270}
.festival-lights i:nth-child(3n),.festival-header-lights i:nth-child(3n){background:#71ae94;box-shadow:0 0 8px #71ae9470}
.festival-header-lights{position:absolute;bottom:-7px;left:0;right:0;display:flex;justify-content:space-around;border-top:1px solid #36694f;pointer-events:none;height:12px;z-index:2}
.festival-header-lights i{width:7px;height:11px}
.festival-scene{position:absolute;right:5%;bottom:0;display:flex;align-items:end;gap:3px;height:95px;pointer-events:none;z-index:1}
.festival-character{width:70px;height:85px;filter:drop-shadow(0 4px 4px #18344612)}.festival-character:nth-child(2){width:85px;height:98px}.festival-character:nth-child(3){width:65px;height:80px}
body:not([data-celebration=default]) .hero{padding-bottom:115px}
body[data-celebration=christmas] .hero:after{content:"";position:absolute;bottom:0;left:0;right:0;height:13px;background:radial-gradient(ellipse at 50% 100%,#e1edf5 70%,transparent 72%) 0 0/48px 18px repeat-x;pointer-events:none}
body[data-celebration=halloween] .festival-ghost{animation:festival-ghost 8s ease-in-out infinite}
body:is([data-celebration=memorial],[data-celebration=holy-week]) .festival-candle{animation:festival-candle 7s ease-in-out infinite}
.festival-card[data-festival-trim=hearts]{background-image:radial-gradient(ellipse at 100% 0,#fff1f5,transparent 55%)}
.festival-card[data-festival-trim=flowers]{background-image:radial-gradient(ellipse at 100% 0,#fff0ec,transparent 55%)}
.festival-card[data-festival-trim=gold]{border-top:3px solid #d2ac58!important;background-image:radial-gradient(ellipse at 100% 0,#fff8dc,transparent 55%)}
.festival-card[data-festival-trim=stars]{background-image:radial-gradient(ellipse at 100% 0,#e7f4ff,transparent 55%)}
.festival-card[data-festival-trim=school]{border-bottom:3px solid #89b3c7!important}
.festival-card[data-festival-trim=health]{background-image:radial-gradient(ellipse at 100% 0,#e6f6ef,transparent 55%)}
.festival-card[data-festival-trim=quiet]{border-bottom:2px solid #d7c8a5!important}
.festival-card[data-festival-trim=food]{background-image:radial-gradient(ellipse at 100% 0,#fff0d9,transparent 55%)}
.festival-card[data-festival-trim=data]{border-top:3px solid #84bad8!important}
.festival-card[data-festival-trim=web]:before{content:"";position:absolute;left:0;top:0;width:65px;height:65px;pointer-events:none;opacity:.35;background:repeating-radial-gradient(circle at 0 0,transparent 0 12px,#9780a5 13px,transparent 14px),linear-gradient(45deg,transparent 49%,#9780a5 50%,transparent 51%)}
.festival-particles{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:3;contain:strict}
.festival-particles>span{position:absolute;left:var(--x);top:-55px;width:var(--size);height:var(--size);animation:festival-fall var(--duration) linear infinite;animation-delay:var(--delay)}
.festival-snow>span{border-radius:50%;background:#fff;box-shadow:0 0 2px 1px #688db944;opacity:.8}
.festival-confetti>span{width:5px;height:11px;background:#dcae5a;opacity:.5}.festival-confetti>span:nth-child(3n){background:#dd738c}.festival-confetti>span:nth-child(3n+1){background:#629db7}
.festival-particle-symbol{width:100%;height:100%;display:block}
.festival-particles:not(.festival-snow):not(.festival-confetti)>span{width:22px;height:22px;opacity:.18}
.festival-bats>span{animation-name:festival-bat;opacity:.25!important;width:35px!important}
.festival-hearts>span,.festival-petals>span{animation-name:festival-rise;top:auto;bottom:-40px}
body[data-celebration=christmas] .occasion-decoration,body:is([data-celebration=valentine],[data-celebration=mother],[data-celebration=halloween],[data-celebration=new-year],[data-celebration=school],[data-celebration=book],[data-celebration=purisima]) .occasion-decoration{display:none}
.festival-paused .festival-particles>span,.festival-paused .festival-lights i,.festival-paused .festival-header-lights i,.festival-paused .festival-character{animation-play-state:paused}
@keyframes festival-fall{from{transform:translate3d(0,-10px,0) rotate(0)}to{transform:translate3d(var(--sway),calc(100vh + 100px),0) rotate(160deg)}}
@keyframes festival-rise{from{transform:translate3d(0,0,0) rotate(-12deg)}to{transform:translate3d(var(--sway),calc(-100vh - 90px),0) rotate(30deg)}}
@keyframes festival-bat{0%{transform:translate3d(-30px,10vh,0) rotate(-6deg)}50%{transform:translate3d(40px,45vh,0) rotate(10deg)}100%{transform:translate3d(-20px,100vh,0) rotate(-6deg)}}
@keyframes festival-light{0%,100%{opacity:.85;filter:brightness(1)}50%{opacity:.65;filter:brightness(.8)}}
@keyframes festival-ghost{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes festival-candle{0%,100%{opacity:1}50%{opacity:.83}}
@media(max-width:640px){.festival-ornament{width:36px;height:36px;right:10px;top:11px}.festival-card .card-arrow{right:54px}.festival-scene{right:5%;height:68px}.festival-character{width:48px;height:61px}.festival-character:nth-child(2){width:60px;height:72px}.festival-character:nth-child(3){width:44px;height:59px}body:not([data-celebration=default]) .hero{padding-bottom:95px}.festival-header-lights i:nth-child(even){display:none}}
@media(prefers-reduced-motion:reduce){.festival-particles{display:none}.festival-lights i,.festival-header-lights i,.festival-character{animation:none!important}.festival-lights i,.festival-header-lights i{opacity:.85}}

/* Ribbons, seasonal palettes and occasional screen crossings. */
body:is([data-celebration=christmas],[data-celebration=halloween]) .section-heading h2{display:inline-block;position:relative;padding:16px 27px;background:var(--ribbon);color:#fff!important;box-shadow:0 5px 0 var(--ribbon-fold);border-radius:3px;isolation:isolate}
body:is([data-celebration=christmas],[data-celebration=halloween]) .section-heading h2:before,body:is([data-celebration=christmas],[data-celebration=halloween]) .section-heading h2:after{content:"";position:absolute;top:9px;bottom:-9px;width:22px;background:var(--ribbon-fold);z-index:-1}
body:is([data-celebration=christmas],[data-celebration=halloween]) .section-heading h2:before{left:-14px;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,40% 50%)}
body:is([data-celebration=christmas],[data-celebration=halloween]) .section-heading h2:after{right:-14px;clip-path:polygon(0 0,100% 0,60% 50%,100% 100%,0 100%)}
body[data-celebration=christmas]{--ribbon:#a9233d;--ribbon-fold:#73192b;--occasion-accent:#a9233d;background:#f6faf5}
body[data-celebration=christmas] .site-header{background:#174b3b;color:#fff;border-bottom:3px solid #d9bc71}
body[data-celebration=christmas] .site-nav a:not(.button){color:#fff!important}
body[data-celebration=christmas] .site-nav .button,body[data-celebration=christmas] .button:not(.secondary){background:#a9233d;border-color:#a9233d;color:#fff}
body[data-celebration=christmas] .site-footer{background:#123c30;color:#fff}
body[data-celebration=christmas] .process-section,body[data-celebration=christmas] .plans-section{background:#edf5ed}
body[data-celebration=christmas] .festival-card{background-color:#fffdf8}
body[data-celebration=halloween]{--ribbon:#a5450c;--ribbon-fold:#6c2c07;--occasion-accent:#f4ac52;--occasion-soft:#292036;--occasion-dark:#372044;background:#17131f;color:#f8eee0}
body[data-celebration=halloween] .site-header,body[data-celebration=halloween] .site-footer{background:#21172e;color:#fff;border-color:#65407c}
body[data-celebration=halloween] .hero{background:radial-gradient(ellipse at 85% 15%,#553168,transparent 65%),linear-gradient(125deg,#17131f,#292036)}
body[data-celebration=halloween] :is(.section,.process-section,.plans-section,.legacy-content){background-color:#17131f;color:#f8eee0}
body[data-celebration=halloween] :is(.festival-card,.contact-details>div,#project-inquiry){background:#2a2035;color:#f8eee0}
body[data-celebration=halloween] :is(h1,h2,h3,h4,.site-nav a,.card-arrow,.service-card a){color:#fff0d8!important}
body[data-celebration=halloween] :is(main p,main li,.site-footer p,.site-footer a){color:#dfd0e7}
body[data-celebration=halloween] :is(.button:not(.secondary),.hero .button){background:#a5450c;border-color:#a5450c;color:#fff!important}
body[data-celebration=halloween] .eyebrow{color:#ffc078!important}
body[data-celebration=halloween] .festival-card[data-festival-trim=web]:before{opacity:.6}
.festival-crossings{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:4;contain:strict}
.festival-traveler{position:absolute;left:0;display:flex;align-items:center;pointer-events:none;animation:festival-cross 38s linear infinite;transform:translate3d(-450px,0,0)}
.festival-vehicle{width:110px;height:100px;flex-shrink:0}.festival-reindeer{width:90px;height:85px;flex-shrink:0}
.festival-traveler-sleigh{top:20%;animation-duration:48s;animation-delay:-3s}.festival-traveler-sleigh:after{content:"";position:absolute;left:94px;right:8px;top:59%;height:1px;background:#dfbf74;z-index:-1}
.festival-traveler-witch{top:28%;animation-delay:-8s}.festival-traveler-cat{bottom:12px;animation-duration:32s;animation-delay:-15s}.festival-traveler-cat .festival-vehicle{width:78px;height:74px}
.festival-paused .festival-traveler{animation-play-state:paused}
@keyframes festival-cross{0%,8%{transform:translate3d(-450px,0,0)}42%{transform:translate3d(calc(100vw + 100px),-18px,0)}42.01%,100%{transform:translate3d(calc(100vw + 100px),0,0)}}
@media(max-width:640px){.festival-traveler-sleigh .festival-vehicle{width:72px;height:65px}.festival-traveler-sleigh .festival-reindeer{width:58px;height:55px}.festival-traveler-witch .festival-vehicle{width:82px;height:76px}.festival-traveler-cat .festival-vehicle{width:60px;height:58px}body:is([data-celebration=christmas],[data-celebration=halloween]) .section-heading h2{padding:13px 18px}.festival-traveler{animation-duration:45s}}
@media(prefers-reduced-motion:reduce){.festival-crossings{display:none}.festival-traveler{animation:none!important}}

body:is([data-celebration=christmas],[data-celebration=halloween]) .language-switch{background:#ffffff12;border-color:#ffffff55}body:is([data-celebration=christmas],[data-celebration=halloween]) .language-switch a[aria-current=true]{background:#ffffff22}.festival-traveler-cat .festival-vehicle{transform:scaleX(-1)}

body[data-celebration=halloween] .studio-board p{color:#425773}body[data-celebration=halloween] .studio-board .eyebrow{color:#9a400e!important}body[data-celebration=halloween] .share-dialog{background:#2a2035;color:#f8eee0}body[data-celebration=halloween] .share-dialog p{color:#dfd0e7}body[data-celebration=halloween] .site-menu a:after{background:#f4ac52}body[data-celebration=halloween] .festival-traveler-cat{filter:drop-shadow(0 0 2px #f4ac52)}

/* A grounded walk: alternating legs, a small body bob and a swaying tail. */
.festival-traveler-cat{bottom:3px;animation-name:festival-cat-cross;animation-duration:42s}
.cat-leg{transform-origin:var(--hip);animation:festival-cat-step .65s ease-in-out infinite}.cat-leg-1,.cat-leg-2{animation-delay:-.325s}.cat-body{animation:festival-cat-body .325s ease-in-out infinite}.cat-tail{transform-origin:72px 57px;animation:festival-cat-tail 1.3s ease-in-out infinite}
@keyframes festival-cat-step{0%,100%{transform:rotate(-22deg)}50%{transform:rotate(22deg)}}
@keyframes festival-cat-body{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
@keyframes festival-cat-tail{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@keyframes festival-cat-cross{0%,5%{transform:translate3d(-110px,0,0)}65%,100%{transform:translate3d(calc(100vw + 110px),0,0)}}
.festival-ingredients>span{opacity:.42!important;width:32px!important;height:32px!important}.festival-medical>span{opacity:.2!important;width:30px!important;height:30px!important}
body[data-celebration=purisima]{--ribbon:#236a9f;--ribbon-fold:#174b76;--festival-surface:#edf6ff;--festival-secondary:#dcecff;--festival-nav:#16486e;--festival-gold:#d8b768}
body[data-celebration=school]{--ribbon:#245c9d;--ribbon-fold:#173e6a;--festival-surface:#f1f7ff;--festival-secondary:#e1edfb;--festival-nav:#173f69;--festival-gold:#f2be55}
body[data-celebration=pizza]{--ribbon:#a83820;--ribbon-fold:#742717;--festival-surface:#fff8ed;--festival-secondary:#fbead4;--festival-nav:#6b2b1e;--festival-gold:#efc567}
body[data-celebration=burger]{--ribbon:#966016;--ribbon-fold:#694211;--festival-surface:#fff9e9;--festival-secondary:#f8edcd;--festival-nav:#53361d;--festival-gold:#f2cc56}
body[data-celebration=hot-dog]{--ribbon:#ad3931;--ribbon-fold:#792822;--festival-surface:#fff4e9;--festival-secondary:#fbe3cf;--festival-nav:#71332b;--festival-gold:#f1c765}
body[data-celebration=health]{--ribbon:#12777d;--ribbon-fold:#0c5156;--festival-surface:#effaf8;--festival-secondary:#daf1ed;--festival-nav:#174d56;--festival-gold:#9bdbcf}
body[data-celebration=pharmacist]{--ribbon:#23764e;--ribbon-fold:#174f35;--festival-surface:#f0f9ef;--festival-secondary:#dff0df;--festival-nav:#214d39;--festival-gold:#b7d69a}
body:is([data-celebration=purisima],[data-celebration=school],[data-celebration=pizza],[data-celebration=burger],[data-celebration=hot-dog],[data-celebration=health],[data-celebration=pharmacist]){background:var(--festival-surface)}
body:is([data-celebration=purisima],[data-celebration=school],[data-celebration=pizza],[data-celebration=burger],[data-celebration=hot-dog],[data-celebration=health],[data-celebration=pharmacist]) :is(.site-header,.site-footer){background:var(--festival-nav);color:#fff;border-bottom:3px solid var(--festival-gold)}
body:is([data-celebration=purisima],[data-celebration=school],[data-celebration=pizza],[data-celebration=burger],[data-celebration=hot-dog],[data-celebration=health],[data-celebration=pharmacist]) .site-nav a{color:#fff!important}
body:is([data-celebration=purisima],[data-celebration=school],[data-celebration=pizza],[data-celebration=burger],[data-celebration=hot-dog],[data-celebration=health],[data-celebration=pharmacist]) .language-switch{background:#ffffff12;border-color:#ffffff55}
body:is([data-celebration=purisima],[data-celebration=school],[data-celebration=pizza],[data-celebration=burger],[data-celebration=hot-dog],[data-celebration=health],[data-celebration=pharmacist]) :is(.process-section,.plans-section){background:var(--festival-secondary)}
body:is([data-celebration=purisima],[data-celebration=school],[data-celebration=pizza],[data-celebration=burger],[data-celebration=hot-dog],[data-celebration=health],[data-celebration=pharmacist]) .section-heading h2{display:inline-block;padding:15px 24px;background:var(--ribbon);color:#fff;box-shadow:0 5px 0 var(--ribbon-fold);border-radius:4px 20px 4px 20px;border-left:5px solid var(--festival-gold)}
body:is([data-celebration=purisima],[data-celebration=school],[data-celebration=pizza],[data-celebration=burger],[data-celebration=hot-dog],[data-celebration=health],[data-celebration=pharmacist]) .button:not(.secondary){background:var(--ribbon);border-color:var(--ribbon);color:#fff}
body[data-celebration=purisima] .hero{background:radial-gradient(ellipse at 80% 10%,#fff9df,transparent 50%),linear-gradient(135deg,#eaf4ff,#dbeaff)}
body[data-celebration=purisima] .festival-card{border-top:3px solid #d8b768!important;background-image:radial-gradient(ellipse at 100% 0,#e7f4ff,transparent 65%)}
body[data-celebration=school] .hero{background:linear-gradient(90deg,#91b6d012 1px,transparent 1px),linear-gradient(#91b6d012 1px,transparent 1px),linear-gradient(135deg,#fffdf3,#e5f1ff);background-size:28px 28px,28px 28px,auto}
body[data-celebration=school] .festival-card{border-bottom:4px solid #f2be55!important}
body:is([data-celebration=pizza],[data-celebration=burger],[data-celebration=hot-dog]) .festival-card{background-color:#fffdf5;border-bottom:3px solid var(--festival-gold)!important}
body:is([data-celebration=health],[data-celebration=pharmacist]) .festival-card{border-top:3px solid var(--ribbon)!important}
.festival-paused :is(.cat-leg,.cat-body,.cat-tail){animation-play-state:paused}
@media(max-width:640px){.festival-ingredients>span{width:25px!important;height:25px!important}.festival-medical>span{width:24px!important;height:24px!important}}
@media(prefers-reduced-motion:reduce){.cat-leg,.cat-body,.cat-tail{animation:none!important}}

/* Full-page tributes with readable surfaces and decorative title bands. */
body[data-celebration=new-year]{--ribbon:#796020;--ribbon-fold:#4d3e16;--festival-surface:#fffaf0;--festival-secondary:#f4ead0;--festival-nav:#22243c;--festival-gold:#e5c57a}
body[data-celebration=valentine]{--ribbon:#ab315f;--ribbon-fold:#762341;--festival-surface:#fff1f5;--festival-secondary:#f9dfe9;--festival-nav:#6e294a;--festival-gold:#f1b6c8}
body[data-celebration=mother]{--ribbon:#934366;--ribbon-fold:#66304a;--festival-surface:#fff6f0;--festival-secondary:#f9e7e2;--festival-nav:#63364f;--festival-gold:#ebbd91}
body[data-celebration=holy-week]{--ribbon:#675278;--ribbon-fold:#473952;--festival-surface:#f8f4eb;--festival-secondary:#eee6da;--festival-nav:#413449;--festival-gold:#d5bf89}
body[data-celebration=memorial]{--ribbon:#655b46;--ribbon-fold:#443d30;--festival-surface:#f8f5ed;--festival-secondary:#eee8da;--festival-nav:#383830;--festival-gold:#cfbf94}
body[data-celebration=book]{--ribbon:#715334;--ribbon-fold:#4d3926;--festival-surface:#faf3e6;--festival-secondary:#eee3cd;--festival-nav:#3f382e;--festival-gold:#d4b577}
body[data-celebration=backup]{--ribbon:#205b88;--ribbon-fold:#153e5f;--festival-surface:#edf5fc;--festival-secondary:#dceaf6;--festival-nav:#14334c;--festival-gold:#87c6db}
body[data-festival-immersive=true]{background-color:var(--festival-surface);color:#17304c}
body[data-festival-immersive=true] :is(.site-header,.site-footer){background:var(--festival-nav);color:#fff;border-bottom:3px solid var(--festival-gold)}
body[data-festival-immersive=true] .site-nav a{color:#fff!important}
body[data-festival-immersive=true] .language-switch{background:#ffffff12;border-color:#ffffff55}
body[data-festival-immersive=true] :is(.process-section,.plans-section){background:var(--festival-secondary)}
body[data-festival-immersive=true] .section-heading h2{display:inline-block;padding:15px 24px;background:var(--ribbon);color:#fff;box-shadow:0 5px 0 var(--ribbon-fold);border-radius:4px 20px 4px 20px;border-left:5px solid var(--festival-gold)}
body[data-festival-immersive=true] .button:not(.secondary){background:var(--ribbon);border-color:var(--ribbon);color:#fff}
body[data-celebration=purisima] .process-grid article :is(h3,p){color:#173b5e!important}body[data-celebration=purisima] .process-grid article>span{color:#214d76!important;background:#dceaff}
body[data-celebration=purisima] .process-grid article{background-color:#e8f3ff!important}
body[data-celebration=new-year] .festival-card{border-top:3px solid #d6b565!important;background-image:radial-gradient(ellipse at top right,#fff1cb,transparent 65%)}
body[data-celebration=new-year] .hero{background:radial-gradient(ellipse at 90% 5%,#efd8a9,transparent 55%),linear-gradient(125deg,#fffaf1,#f7edda)}
.festival-bunting{position:absolute;left:0;right:0;bottom:-19px;height:28px;display:flex;justify-content:space-around;pointer-events:none;border-top:1px solid #d6b565;z-index:2}.festival-pennant{width:19px;height:26px;background:#b49048;clip-path:polygon(0 0,100% 0,100% 70%,50% 100%,0 70%)}.festival-pennant:nth-child(2n){background:#343753}
body[data-celebration=valentine] .section-heading h2{border-radius:24px 4px 24px 4px;border-left-color:#f1b6c8}
body[data-celebration=mother] .festival-card{background-image:radial-gradient(ellipse at top right,#ffe7df,transparent 65%);border-bottom:3px solid #ebbd91!important}
body:is([data-celebration=holy-week],[data-celebration=memorial]) .festival-card{background-color:#fffdf5;border-top:2px solid var(--festival-gold)!important}
body[data-celebration=school] .section-heading h2{color:#234e76;background:repeating-linear-gradient(transparent 0 29px,#aac9de80 30px,transparent 31px),#fffef5;border-left:7px solid #d88585;border-radius:2px 10px 10px 2px;box-shadow:4px 4px 0 #b4c6d3;position:relative;padding-right:52px}
body[data-celebration=school] .section-heading h2:after{content:"";position:absolute;right:20px;bottom:12px;width:7px;height:50px;background:linear-gradient(#e19f9f 0 14%,#dedbce 14% 21%,#efc355 21% 85%,#b98b4f 85% 94%,#374c5d 94%);transform:rotate(28deg);border-radius:3px 3px 0 0}
body[data-celebration=book] .section-heading h2{background:linear-gradient(90deg,#563e28 0 6px,#715334 6px 12px,#efe2c5 12px 15px,#715334 15px);border-radius:3px 12px 12px 3px;box-shadow:3px 5px 0 #c9b48e}
body[data-celebration=book] .festival-card{background:#fffcf4;border-bottom:4px double #bda67c!important}
.festival-lights i,.festival-header-lights i{animation:festival-bright-light var(--twinkle-duration,6s) ease-in-out infinite;animation-delay:var(--twinkle-delay,0s);box-shadow:0 0 5px 2px currentColor,0 0 14px 4px currentColor;color:#ff5c67}
.festival-lights i:nth-child(3n+2),.festival-header-lights i:nth-child(3n+2){color:#ffd15e;box-shadow:0 0 5px 2px currentColor,0 0 14px 4px currentColor}.festival-lights i:nth-child(3n),.festival-header-lights i:nth-child(3n){color:#77e2b0;box-shadow:0 0 5px 2px currentColor,0 0 14px 4px currentColor}
@keyframes festival-bright-light{0%,25%,80%,100%{opacity:.35;filter:brightness(.75)}38%,52%{opacity:1;filter:brightness(1.8)}}
.festival-glint{position:absolute;width:18px;height:18px;left:58%;top:17px;pointer-events:none;animation:festival-glint 9s ease-in-out infinite;animation-delay:var(--glint-delay)}
@keyframes festival-glint{0%,32%,65%,100%{opacity:0;transform:scale(.3) rotate(0)}45%,50%{opacity:.95;transform:scale(1.2) rotate(40deg)}}
.festival-traveler-cupid{top:26%;animation-duration:24s}.festival-traveler-arrow{top:32%;animation-duration:24s;animation-delay:-4s}.festival-traveler-arrow .festival-vehicle{width:85px;height:40px}
.festival-love-finale{position:absolute;left:50%;top:42%;width:200px;height:200px;transform:translateX(-50%);pointer-events:none}.festival-heart-trace{width:100%;height:100%;overflow:visible}.festival-heart-trace path{fill:none;stroke:#ca537e;stroke-width:3;stroke-dasharray:540;stroke-dashoffset:540;animation:festival-heart-draw 24s linear infinite}
.festival-heart-arrow{position:absolute;left:0;top:0;width:24px;height:24px;offset-path:path('M100 170C-15 95 20 0 100 55C180 0 215 95 100 170');animation:festival-heart-arrow 24s linear infinite}
.festival-love-spark{position:absolute;left:86px;top:95px;width:24px;height:24px;animation:festival-love-burst 24s ease-out infinite;opacity:0}
@keyframes festival-heart-draw{0%,35%{stroke-dashoffset:540;opacity:0}36%{opacity:.7}62%,66%{stroke-dashoffset:0;opacity:.8}71%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes festival-heart-arrow{0%,35%{offset-distance:0;opacity:0}36%{opacity:1}62%{offset-distance:100%;opacity:1}63%,100%{offset-distance:100%;opacity:0}}
@keyframes festival-love-burst{0%,65%{opacity:0;transform:rotate(var(--angle)) translateX(0) rotate(calc(-1 * var(--angle))) scale(.4)}67%{opacity:.8}75%{opacity:0;transform:rotate(var(--angle)) translateX(105px) rotate(calc(-1 * var(--angle))) scale(1)}100%{opacity:0}}
.festival-traveler-syringe{top:38%;animation-duration:35s}.festival-traveler-syringe .festival-vehicle{width:66px;height:66px}
.festival-data-background{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:linear-gradient(90deg,#539ac014 1px,transparent 1px),linear-gradient(#539ac014 1px,transparent 1px);background-size:44px 44px}.festival-data-lane{position:absolute;left:0;right:0;top:calc(7% + var(--lane)*9%);border-top:1px dashed #497daa25}.festival-data-packet{position:absolute;left:-45px;top:-20px;width:30px;height:34px;opacity:.18;animation:festival-data-transfer calc(22s + var(--lane)*2s) linear infinite;animation-delay:calc(var(--lane)*-3s)}
@keyframes festival-data-transfer{to{transform:translateX(calc(100vw + 60px))}}
body[data-celebration=backup] :is(.section,.process-section,.plans-section){background-color:#edf5fcaa}body[data-celebration=backup] .festival-card{background:#ffffffdd}
.festival-paused :is(.festival-glint,.festival-heart-trace path,.festival-heart-arrow,.festival-love-spark,.festival-data-packet){animation-play-state:paused}
@media(max-width:640px){.festival-pennant:nth-child(even){display:none}.festival-love-finale{scale:.8;transform-origin:top left}.festival-traveler-cupid .festival-vehicle{width:76px;height:70px}.festival-data-lane:nth-child(even){display:none}}
@media(prefers-reduced-motion:reduce){.festival-glint{display:none}.festival-data-packet,.festival-lights i,.festival-header-lights i{animation:none!important}.festival-data-packet{left:15%;opacity:.12}}

.festival-plunger{animation:festival-injection 4s ease-in-out infinite}@keyframes festival-injection{0%,100%{transform:translateY(0)}50%{transform:translateY(12px)}}.festival-paused .festival-plunger{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.festival-plunger{animation:none!important}}

body[data-festival-immersive=true] .process-section .section-heading>p{color:#385573}body[data-festival-immersive=true] .process-grid article{background-color:var(--festival-surface)!important}body[data-festival-immersive=true] .process-grid article :is(h3,p){color:#173b5e!important}body[data-festival-immersive=true] .process-grid article>span{color:#214d76!important}body[data-celebration=christmas] .process-grid article :is(h3,p),body[data-celebration=christmas] .process-section .section-heading>p{color:#254f40!important}

/* Contrast verified against the actual festive surfaces. */
body[data-festival-immersive=true] .eyebrow{color:var(--ribbon-fold)!important}body:not([data-celebration=default]) .footer-bottom{color:#e9f0f7}body[data-celebration=halloween] .service-strip{background:#21172e;border-color:#65407c}body[data-celebration=halloween] .service-strip span{color:#eadff3}body[data-celebration=christmas] .process-grid article>span{color:#254f40;background:#e7f2e8}

/* Keep every decoration; pause only while it is outside the viewport. */
.festival-lights.festival-offscreen i,.festival-glint.festival-offscreen{animation-play-state:paused}
