/* Rise of Legends v2.20.146 – Premium Seasonal Editions.
   Decorative CSS and local SVG only. Existing approved layout, imagery and behaviour unchanged.
   No blur / backdrop-filter, no emoji clipart, no intrusive fullscreen illustration. */
:root {--festival-accent:#c9a473;--festival-secondary:#e7d5bb;--festival-light:rgba(204,166,111,.17);--festival-ambient:rgba(198,155,96,.08)}
html[data-festival="christmas"] {
 --festival-accent:#d7c19a;--festival-secondary:#e5eee7;
 --festival-light:rgba(161,197,177,.16);--festival-ambient:rgba(67,113,108,.14);
 --festival-scene:url('/assets/festivals/scene-christmas.svg');
 --festival-hero:url('/assets/festivals/hero-christmas.svg');
 --festival-garland:url('/assets/festivals/garland-christmas.svg');
 --festival-background:#0c1d23;--festival-highlight:#9fb4ad;
}
html[data-festival="halloween"] {
 --festival-accent:#cba47f;--festival-secondary:#ecd2b2;
 --festival-light:rgba(205,139,92,.12);--festival-ambient:rgba(100,59,72,.17);
 --festival-scene:url('/assets/festivals/scene-halloween.svg');
 --festival-hero:url('/assets/festivals/hero-halloween.svg');
 --festival-garland:url('/assets/festivals/garland-halloween.svg');
 --festival-background:#16151d;--festival-highlight:#b68e78;
}
html[data-festival="easter"] {
 --festival-accent:#d4b89b;--festival-secondary:#e7dcdf;
 --festival-light:rgba(193,160,185,.11);--festival-ambient:rgba(99,111,103,.12);
 --festival-scene:url('/assets/festivals/scene-easter.svg');
 --festival-hero:url('/assets/festivals/hero-easter.svg');
 --festival-garland:url('/assets/festivals/garland-easter.svg');
 --festival-background:#182128;--festival-highlight:#c8b6c1;
}
html[data-festival="classic"] #rol-festival-scene{display:none!important}
/* Non-interactive cinematic layer. The large mascot / cartoon assets from v145 aren't used. */
#rol-festival-scene{
 position:fixed;inset:0;z-index:11;overflow:hidden;pointer-events:none;user-select:none;
 contain:layout paint;
}
#rol-festival-scene .rol-festival-corner,
#rol-festival-scene .rol-festival-side-art{display:none!important}
#rol-festival-scene .rol-festival-backdrop{
 position:absolute;inset:0;opacity:.16;
 background-image:var(--festival-scene);background-repeat:no-repeat;
 background-position:center top;background-size:cover;
 -webkit-mask-image:linear-gradient(90deg,#000 0%,transparent 20%,transparent 83%,#000 100%);
 mask-image:linear-gradient(90deg,#000 0%,transparent 20%,transparent 83%,#000 100%);
}
#rol-festival-scene .rol-festival-garland{
 position:absolute;left:0;right:0;top:54px;height:68px;opacity:.69;
 background-image:var(--festival-garland);background-position:top center;
 background-size:100% 100%;background-repeat:no-repeat;
}
#rol-festival-scene .rol-festival-top{
 position:absolute;left:8%;right:8%;top:54px;height:1px;
 background:linear-gradient(90deg,transparent,var(--festival-accent) 28%,transparent 52%,var(--festival-accent) 74%,transparent);
 opacity:.27;
}
#rol-festival-scene .rol-festival-particle{
 position:absolute;top:-22px;left:var(--x);width:var(--size);height:var(--size);
 border-radius:50%;opacity:0;background:#eee8dc;
 box-shadow:0 0 7px rgba(240,245,237,.21);
 animation:rol-festival-drift var(--duration) linear var(--delay) infinite;
 will-change:transform;
}
html[data-festival="christmas"] #rol-festival-scene .rol-festival-particle{
 background:rgba(230,240,240,.94);box-shadow:0 0 5px rgba(214,226,219,.30)
}
html[data-festival="halloween"] #rol-festival-scene .rol-festival-particle{
 background:#d6a47c;box-shadow:0 0 8px rgba(195,117,66,.52)
}
html[data-festival="easter"] #rol-festival-scene .rol-festival-particle{
 background:#d8c3cd;border-radius:90% 8% 90% 8%;transform-origin:center;
 box-shadow:0 0 6px rgba(213,176,193,.23)
}
@keyframes rol-festival-drift{
 0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0deg)}
 14%{opacity:var(--opacity)}
 86%{opacity:var(--opacity)}
 100%{opacity:0;transform:translate3d(var(--drift),105vh,0) rotate(var(--rotate))}
}
#rol-festival-scene .rol-festival-badge{
 position:absolute;right:clamp(12px,2.1vw,36px);bottom:20px;
 display:flex;align-items:center;gap:8px;padding:8px 13px;
 color:var(--festival-secondary);font:600 9px/1.25 Georgia,serif;letter-spacing:.16em;text-transform:uppercase;
 background:rgba(11,15,18,.86);border:1px solid rgba(200,164,110,.23);border-radius:3px;
 box-shadow:0 9px 29px rgba(0,0,0,.22);
}
#rol-festival-scene .rol-festival-badge:before{
 content:"";position:absolute;left:10px;right:10px;top:0;height:1px;
 background:linear-gradient(90deg,transparent,var(--festival-accent),transparent);opacity:.55
}
#rol-festival-scene .rol-festival-badge-icon{font:14px/1 Georgia,serif;opacity:.8}
/* Existing background imagery is NOT replaced: restrained atmosphere adjusts the palette. */
html[data-festival]:not([data-festival="classic"]) body[data-design="legends-120"]{
 background-image:radial-gradient(ellipse 60% 35% at 85% 5%,var(--festival-ambient),transparent 84%),
   radial-gradient(ellipse 56% 38% at 8% 68%,var(--festival-light),transparent 83%),
   linear-gradient(var(--festival-background),#09131b);
}
html[data-festival]:not([data-festival="classic"]) .rol120-home{
 background-image:radial-gradient(ellipse 62% 45% at 95% 2%,var(--festival-ambient),transparent 80%),
  radial-gradient(ellipse 55% 64% at 0% 74%,var(--festival-light),transparent 83%),
  linear-gradient(180deg,#0b151c,#09131b 85%);
}
html[data-festival]:not([data-festival="classic"]) .rol120-hero{
 border-bottom-color:rgba(202,167,120,.43);
 box-shadow:0 10px 29px rgba(0,0,0,.16);
}
html[data-festival]:not([data-festival="classic"]) .rol120-hero::before{
 content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
 background-image:var(--festival-hero),radial-gradient(ellipse at 95% 50%,var(--festival-ambient),transparent 52%);
 background-repeat:no-repeat,no-repeat;
 background-position:right 0 top 0,center;
 background-size:auto 96%,cover;
 opacity:.37;
}
html[data-festival="christmas"] .rol120-hero::before{opacity:.52;background-size:auto 104%,cover;background-position:right 2% top -35px,center}
html[data-festival="halloween"] .rol120-hero::before{opacity:.30;background-size:auto 91%,cover;background-position:right 2% bottom -18px,center}
html[data-festival="easter"] .rol120-hero::before{opacity:.41;background-size:auto 99%,cover;background-position:right 1% top -12px,center}
html[data-festival="christmas"] .rol120-hero-art{filter:saturate(.81) brightness(.95)}
html[data-festival="halloween"] .rol120-hero-art{filter:saturate(.77) sepia(.13) brightness(.88)}
html[data-festival="easter"] .rol120-hero-art{filter:saturate(.83) sepia(.08) brightness(.95)}
/* Interior pages retain their landscape photo, decorated only with a subtle vignette/ornament. */
html[data-festival]:not([data-festival="classic"]) body[data-design="legends-120"].is-subpage
 :is(.page-hero,.subpage-hero,.rol-page-hero,.page-heading,.page-banner,.wiki-hero,.account-hero,.downloads-hero,.news-hero){
 background-image:linear-gradient(90deg,rgba(10,20,26,.94),rgba(10,20,26,.60)),url('/assets/rol120/admin-landscape.webp');
 border-color:rgba(184,153,116,.32);
}
html[data-festival]:not([data-festival="classic"]) .page-hero{position:relative}
html[data-festival]:not([data-festival="classic"]) .page-hero.compact:before{
 content:"";position:absolute;inset:0;pointer-events:none;
 background:var(--festival-hero) right 0 bottom 0/auto 100% no-repeat;opacity:.13;
}
html[data-festival]:not([data-festival="classic"]) .page-hero:after{
 content:"";position:absolute;bottom:0;left:10%;right:10%;height:1px;pointer-events:none;
 background:linear-gradient(90deg,transparent,var(--festival-accent),transparent);opacity:.32;
}
html[data-festival]:not([data-festival="classic"]) .site-header{
 border-bottom-color:rgba(191,154,105,.42);box-shadow:0 6px 25px rgba(0,0,0,.33),0 1px 12px var(--festival-ambient)
}
/* Preserve no-blur preference on festival pages. */
html[data-festival]:not([data-festival="classic"]) body[data-design="legends-120"] .site-header{
 backdrop-filter:none;-webkit-backdrop-filter:none;background:#101a20;
}
html[data-festival]:not([data-festival="classic"]) .page-hero .eyebrow,
html[data-festival]:not([data-festival="classic"]) .rol120-kicker,
html[data-festival]:not([data-festival="classic"]) .rol120-section-title h2{
 color:var(--festival-secondary);
}
html[data-festival]:not([data-festival="classic"]) :is(.rol120-feature,.rol120-news-card,.rol120-promo,.rol120-wiki-card,.rol-pro-panel){
 border-color:rgba(153,133,110,.43)
}
html[data-festival]:not([data-festival="classic"]) .rol120-serverstrip{
 border-color:rgba(168,144,110,.43);
 background-image:linear-gradient(102deg,var(--festival-light),rgba(13,27,32,.73) 40%,rgba(12,26,31,.88));
}
html[data-festival]:not([data-festival="classic"]) .site-footer{
 border-top:1px solid rgba(180,143,97,.31);
 background-image:linear-gradient(160deg,rgba(10,20,24,.90),rgba(10,16,20,.99)),var(--festival-scene);
 background-position:center,center bottom;background-size:cover,cover;background-repeat:no-repeat;
}
/* The registration screen has no data-design, but shares the subtle ornaments & accent. */
html[data-festival]:not([data-festival="classic"]) body:not([data-design]){
 background-image:radial-gradient(ellipse at 90% 6%,var(--festival-ambient),transparent 64%);
}
@media(max-width:1050px){
 #rol-festival-scene .rol-festival-garland{opacity:.45}
 #rol-festival-scene .rol-festival-backdrop{opacity:.09}
 html[data-festival]:not([data-festival="classic"]) .rol120-hero::before{opacity:.22;background-size:auto 78%,cover}
}
@media(max-width:640px){
 #rol-festival-scene .rol-festival-garland{top:63px;height:46px;opacity:.24}
 #rol-festival-scene .rol-festival-backdrop{opacity:.055}
 #rol-festival-scene .rol-festival-particle:nth-of-type(n+12){display:none}
 #rol-festival-scene .rol-festival-badge{right:8px;bottom:10px;padding:6px 9px;font-size:8px;letter-spacing:.1em}
 html[data-festival]:not([data-festival="classic"]) .rol120-hero::before{background-size:auto 56%,cover;background-position:right bottom,center;opacity:.13}
 html[data-festival]:not([data-festival="classic"]) .page-hero.compact:before{opacity:.06}
}
@media(prefers-reduced-motion:reduce){#rol-festival-scene .rol-festival-particle{display:none!important;animation:none!important}}
