/* Four EPCOT festival worlds. Append after the existing seasonal rules. */
body[data-season=arts]{--navy:#33264f;--deep:#211b3c;--blue:#b6a9e7;--gold:#f5cd89;--paper:#fcf1dc;--lav:#c9b6e1;--festival-accent:#c586bd;--festival-muted:#d5cce5;--festival-tint:#4b3766;--festival-line:#bf96b26e;--festival-shadow:#1a1530;--festival-magic:#754c86;--festival-wash:radial-gradient(ellipse at 80% 0,#563d75,#2b2347 70%);--festival-hero:radial-gradient(ellipse at 50% 15%,#664c85,#1e1847 75%);background:var(--deep)}
body[data-season=garden]{--navy:#234c46;--deep:#173d3b;--blue:#b3d9b5;--gold:#f4d291;--paper:#fcf3dc;--lav:#edbbc9;--festival-accent:#d49cae;--festival-muted:#d2e1d5;--festival-tint:#315f51;--festival-line:#d0d4a66e;--festival-shadow:#123530;--festival-magic:#416e5a;--festival-wash:radial-gradient(ellipse at 0 0,#396e60,#214b46 70%);--festival-hero:radial-gradient(ellipse at 50% 15%,#4d8478,#245769 80%);background:var(--deep)}
body[data-season=food]{--navy:#4b2c42;--deep:#302334;--blue:#d9b197;--gold:#edc18c;--paper:#fff1d9;--lav:#c4a0b8;--festival-accent:#bd7b80;--festival-muted:#e0cbd0;--festival-tint:#65414d;--festival-line:#ddb07d70;--festival-shadow:#261b29;--festival-magic:#864c57;--festival-wash:radial-gradient(ellipse at 100% 0,#684348,#392738 70%);--festival-hero:radial-gradient(ellipse at 50% 15%,#7c5064,#332540 80%);background:var(--deep)}
body[data-season=holidays]{--navy:#173e50;--deep:#102b40;--blue:#a2cfce;--gold:#edcc8c;--paper:#fff3dc;--lav:#b6d5d6;--festival-accent:#91b9ba;--festival-muted:#c9dcdf;--festival-tint:#285565;--festival-line:#d1bd8470;--festival-shadow:#0b2236;--festival-magic:#2d626c;--festival-wash:radial-gradient(ellipse at 50% 0,#2e616c,#153a4d 70%);--festival-hero:radial-gradient(ellipse at 50% 15%,#326378,#0a2948 80%);background:var(--deep)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) header,
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) footer{background:var(--deep);border-color:var(--festival-line)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .hero{background:var(--festival-hero)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) :is(.christmas-feast,.departures,.journal,.hello,.park-heart){background:var(--festival-wash);border-color:var(--festival-line)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .ticker{background:var(--festival-tint);color:var(--paper);box-shadow:0 -3px var(--gold),0 3px var(--gold)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) :is(.hero-under p,.section-top>p,.journal-heading>p,.journal-copy>p:not(.eyebrow),.hello p,.memory p,.coaster-note p,.park-intro>p){color:var(--festival-muted)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .festive-destinations article{background:linear-gradient(145deg,var(--festival-tint),var(--navy));border-color:var(--festival-line)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .festive-destinations p:not(.eyebrow){color:var(--festival-muted)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) :is(.festive-chips span,.festive-seal){border-color:var(--gold);color:var(--gold)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .sphere-seal{background:repeating-conic-gradient(from 30deg,#d8e7e31f 0 60deg,#f7e2b408 60deg 120deg);font-size:46px;color:var(--blue);border-color:var(--blue)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .small-ticket{background:var(--festival-tint);color:var(--paper);border-color:var(--gold)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .snowfall{display:none!important}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .holiday-garland{height:9px;background:var(--festival-tint);border-color:var(--gold)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .holiday-garland i{height:9px;width:9px;margin-top:7px;background:var(--gold);box-shadow:0 0 12px #f5dba155;animation:none}
body[data-season=arts] .holiday-garland{background:linear-gradient(90deg,#e594a9,#f0c17f,#87c9b4,#80aacd,#b591c9,#e594a9)}
body[data-season=arts] .holiday-garland i{border-radius:1px;transform:rotate(25deg);background:#cdb2e4}
body[data-season=garden] .holiday-garland{background:repeating-linear-gradient(135deg,#427359 0 20px,#4e866b 20px 40px)}
body[data-season=garden] .holiday-garland i{background:#e9b3c5;box-shadow:0 0 0 3px #f0d29b55}
body[data-season=food] .holiday-garland{background:#633a48}
body[data-season=holidays] .holiday-garland{background:linear-gradient(90deg,#193e55,#366879,#193e55)}
body[data-season=holidays] .holiday-garland i:nth-child(3n){background:#c5ded8;box-shadow:0 0 12px #c5ded866}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .magic-section{background:linear-gradient(135deg,var(--festival-magic),var(--navy));border-color:var(--gold);color:var(--paper)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .magic-ticket{background:var(--paper);color:var(--deep);box-shadow:10px 10px var(--festival-shadow);border:5px double var(--festival-accent);border-image:none}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .magic-title h2 span{color:var(--gold)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) :is(.postcard,.journal-photo,.memory-image){border-color:var(--festival-accent);box-shadow:7px 7px var(--festival-shadow)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .postcard{background:var(--paper)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .tape{background:repeating-linear-gradient(45deg,var(--festival-accent) 0 8px,var(--paper) 8px 16px)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .sticker{background:var(--festival-tint);color:var(--paper)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .sticker.round{background:var(--gold);color:var(--deep)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .sticker.blue{background:var(--blue);color:var(--deep)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .treasure-board{background:repeating-linear-gradient(45deg,var(--festival-tint) 0 22px,var(--navy) 22px 44px);border-color:var(--gold)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .hello-photo{border-color:var(--gold)!important;box-shadow:8px 8px var(--festival-shadow)}
body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .hello-sticker{background:var(--festival-accent);color:var(--deep)}
body[data-season=arts] .postcard:after{content:'✦ ✧ ✦';color:#e3b7dc}
body[data-season=garden] .postcard:after{content:'✿ ❀ ✿';color:#f0c6ce}
body[data-season=food] .postcard:after{content:'✧ ♪ ✧';color:#efcf9b}
body[data-season=holidays] .postcard:after{content:'✧ ✦ ✧';color:#c0dce0}
/* Prefer complete scenes on short screens; avoid zooming festival details out of view. */
@media(max-width:640px){body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .christmas-panorama{width:150%;left:-25%;height:360px;object-position:center bottom}body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .festive-seal{font-size:18px}body:is([data-season=arts],[data-season=garden],[data-season=food],[data-season=holidays]) .sphere-seal{font-size:38px}}
