/* Rise of Legends v2.20.182 — audited consolidated CSS. */


/* === assets/rol138/rol138-public.css: kept in original load order === */
/* Rise of Legends v2.20.138 – scoped layout corrections, no gameplay/DB changes. */
/* Skill Builder: a previous global rule colored the entire grid background.
   Empty final grid cells must not form a large opaque rectangle. */
body[data-design="legends-120"].is-subpage .wiki-builder-page .db-skill-grid {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px; background:transparent!important; border:0!important;
  padding:0!important; min-height:0; align-items:stretch;
}
body[data-design="legends-120"].is-subpage .wiki-builder-page .db-skill-section,
body[data-design="legends-120"].is-subpage .wiki-builder-content .rol-skill-category-panel{
  background:transparent; min-height:0; padding-bottom:0;
}
body[data-design="legends-120"].is-subpage .wiki-builder-page .db-skill-card{
  min-width:0; min-height:102px; box-sizing:border-box; border-radius:7px;
  background:linear-gradient(120deg,#182833,#111e27); border:1px solid #405661;
  padding:14px; overflow:visible;
}
body[data-design="legends-120"].is-subpage .wiki-builder-page .db-skill-card .rol-skill-info{
  flex:1 1 auto; min-width:0; overflow:hidden;
}
body[data-design="legends-120"].is-subpage .wiki-builder-page .db-skill-card .rol-skill-info strong,
body[data-design="legends-120"].is-subpage .wiki-builder-page .db-skill-card .rol-skill-info small{
  overflow-wrap:anywhere; line-height:1.4;
}
/* Builder and community CTA controls: consistent sizes & wrapping, not highlighted text. */
body[data-design="legends-120"].is-subpage :is(.wiki-builder-page,.wiki-page) :is(a.db-button,button.db-button){
  display:inline-flex!important; align-items:center; justify-content:center;
  box-sizing:border-box; min-height:46px; width:auto; max-width:100%;
  border:1px solid #aa8654; border-radius:7px;
  padding:10px 18px; line-height:1.35; font-size:14px;
  font-weight:700; text-transform:none; letter-spacing:0;
  text-align:center; white-space:normal; overflow-wrap:break-word;
  color:#1b211f; background:linear-gradient(180deg,#e4c78f,#bf9358);
  text-decoration:none!important; cursor:pointer; vertical-align:middle;
  box-shadow:none; flex:0 1 auto;
}
body[data-design="legends-120"].is-subpage :is(.wiki-builder-page,.wiki-page) :is(a.db-button.secondary,button.db-button.secondary){
  background:#253943; color:#f1e5cf; border-color:#68808c;
}
body[data-design="legends-120"].is-subpage :is(.wiki-builder-page,.wiki-page) :is(a.db-button,button.db-button):hover{
  filter:brightness(1.08); transform:none;
}
body[data-design="legends-120"].is-subpage :is(.wiki-builder-page,.wiki-page) :is(a.db-button,button.db-button):focus-visible{
  outline:2px solid #efc987; outline-offset:3px;
}
body[data-design="legends-120"].is-subpage .wiki-builder-page .db-build-actions{
  display:flex; flex-wrap:wrap; gap:11px; align-items:stretch;
  margin:20px 0; min-height:0;
}
body[data-design="legends-120"].is-subpage .wiki-builder-page .db-build-actions>*{
  margin:0; flex:0 1 auto;
}
body[data-design="legends-120"].is-subpage .rol-community-intro-card{
  align-items:center; min-width:0; gap:22px;
}
body[data-design="legends-120"].is-subpage .rol-community-intro-copy{
  flex:1 1 350px; min-width:0;
}
body[data-design="legends-120"].is-subpage .rol-community-actions{
  display:flex; flex:0 1 400px; min-width:0; align-items:center;
  justify-content:flex-end; flex-wrap:wrap; gap:12px;
}
body[data-design="legends-120"].is-subpage .rol-community-actions .db-button{
  min-width:160px; flex:1 1 170px;
}
body[data-design="legends-120"].is-subpage .rol-community-empty{
  padding:28px; text-align:center; min-width:0;
}
body[data-design="legends-120"].is-subpage .rol-community-empty .db-button{
  min-width:180px; margin:8px auto 0;
}
/* PvP: five real controls, not a 7-column grid that stretches Reset. */
body[data-design="legends-120"].is-subpage .arena-page .arena-filter-toolbar{
  display:grid!important;
  grid-template-columns:minmax(150px,195px) minmax(195px,330px) minmax(112px,140px) minmax(92px,115px) minmax(100px,1fr)!important;
  gap:12px; align-items:end; padding:20px 22px;
  border:1px solid #465761; background:#172732;
}
body[data-design="legends-120"].is-subpage .arena-page .arena-filter-toolbar>*{
  min-width:0; width:100%; grid-column:auto!important; margin:0;
}
body[data-design="legends-120"].is-subpage .arena-page .arena-filter-field>span{
  font-size:12px; line-height:1.3; color:#dac49f;
}
body[data-design="legends-120"].is-subpage .arena-page .arena-filters :is(select,input){
  min-width:0; width:100%; height:44px; font-size:14px; border-radius:6px;
  background:#101c26; color:#f1e5d6; border-color:#586876;
}
body[data-design="legends-120"].is-subpage .arena-page :is(.arena-search-button,.arena-reset-button){
  display:inline-flex; align-items:center; justify-content:center;
  height:44px; min-width:0; padding:0 16px; border-radius:6px;
  font-size:13px; font-family:inherit; font-weight:700; letter-spacing:0;
  line-height:1.3; white-space:nowrap; box-sizing:border-box;
}
body[data-design="legends-120"].is-subpage .arena-page .arena-last-updated{
  align-self:center; justify-self:end; text-align:right; padding:0;
  white-space:normal; line-height:1.45; font-size:12px; color:#b9c7ca;
}
body[data-design="legends-120"].is-subpage .arena-page .arena-table-wrap{
  overflow-x:auto; max-width:100%;
}
/* Referral: only its lengthy rewards card should be tall; code card remains compact. */
body[data-design="legends-120"].is-subpage .rol-referral-hero-grid{
  align-items:start; gap:22px;
}
body[data-design="legends-120"].is-subpage .rol-referral-hero-grid>.rol-referral-code-panel{
  align-self:start; height:auto; min-height:0; margin-bottom:0;
}
body[data-design="legends-120"].is-subpage .rol-referral-hero-grid>.rol-referral-reward-panel{
  align-self:start; height:auto; min-height:0; margin-bottom:0;
}
body[data-design="legends-120"].is-subpage .rol-referral-code-card{
  max-width:100%; margin-bottom:0;
}
body[data-design="legends-120"].is-subpage .rol-referral-link-row{
  grid-template-columns:minmax(0,1fr) auto;
}
body[data-design="legends-120"].is-subpage .rol-referral-link-row input{
  min-width:0; max-width:100%;
}
@media(max-width:1200px){
  body[data-design="legends-120"].is-subpage .arena-page .arena-filter-toolbar{
    grid-template-columns:minmax(150px,1fr) minmax(190px,1.6fr) 130px 110px!important;
  }
  body[data-design="legends-120"].is-subpage .arena-page .arena-last-updated{
    grid-column:1/-1!important; justify-self:start; text-align:left;
  }
}
@media(max-width:1000px){
  body[data-design="legends-120"].is-subpage .wiki-builder-page .db-skill-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body[data-design="legends-120"].is-subpage .rol-community-intro-card{
    flex-direction:column; align-items:stretch;
  }
  body[data-design="legends-120"].is-subpage .rol-community-actions{
    flex:0 1 auto; justify-content:flex-start;
  }
}
@media(max-width:760px){
  body[data-design="legends-120"].is-subpage .arena-page .arena-filter-toolbar{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body[data-design="legends-120"].is-subpage .arena-page .arena-last-updated{
    grid-column:1/-1!important;
  }
  body[data-design="legends-120"].is-subpage .rol-referral-hero-grid{
    grid-template-columns:minmax(0,1fr);
  }
  body[data-design="legends-120"].is-subpage .rol-referral-link-row{
    grid-template-columns:minmax(0,1fr);
  }
  body[data-design="legends-120"].is-subpage .rol-referral-copy-button{width:100%}
}
@media(max-width:620px){
  body[data-design="legends-120"].is-subpage .wiki-builder-page .db-skill-grid,
  body[data-design="legends-120"].is-subpage .arena-page .arena-filter-toolbar{
    grid-template-columns:minmax(0,1fr)!important;
  }
  body[data-design="legends-120"].is-subpage .wiki-builder-page .db-build-actions>*{
    width:100%; flex-basis:100%;
  }
  body[data-design="legends-120"].is-subpage .rol-community-actions .db-button{
    flex:1 1 100%;
  }
  body[data-design="legends-120"].is-subpage .arena-page .arena-last-updated{
    grid-column:1!important;
  }
}

/* === assets/rol139/referral-status.css: kept in original load order === */
/* v2.20.139 – referral reward explanations */
.rol-referral-player-reason {
    margin-top: 14px;
    padding: 14px 17px;
    border-radius: 6px;
    border: 1px solid rgba(218,174,104,.28);
    background: linear-gradient(110deg,rgba(207,151,54,.12),rgba(17,30,39,.72));
    color: #e6e4df;
}
.rol-referral-player-reason strong { display:block; font-size:14px; line-height:1.4; color:#f5d59a; margin-bottom:6px; }
.rol-referral-player-reason p {font-size:13px; line-height:1.65; margin:0; color:#c9d4d9; white-space:normal; overflow-wrap:anywhere;}
.rol-referral-player-reason a {display:inline-flex; margin-top:10px; min-height:34px; align-items:center; font-size:13px; font-weight:700; color:#f0c47e; text-decoration:underline; text-underline-offset:3px;}
.rol-referral-player-reason a:hover,.rol-referral-player-reason a:focus-visible {color:#fff1d6;}
.rol-referral-player-reason.tone-blocked {border-color:rgba(222,104,92,.44);background:linear-gradient(110deg,rgba(134,46,39,.20),rgba(17,30,39,.72));}
.rol-referral-player-reason.tone-blocked strong {color:#ffc2b4;}
.rol-referral-player-reason.tone-rewarded {border-color:rgba(100,187,134,.36);background:linear-gradient(110deg,rgba(44,116,79,.18),rgba(17,30,39,.72));}
.rol-referral-player-reason.tone-rewarded strong {color:#b8ebc6;}
.rol-referral-incoming-panel .rol-referral-player-reason {margin-top:18px;}
@media(max-width:600px){.rol-referral-player-reason {padding:12px;}.rol-referral-player-reason p {font-size:13px;}}

/* === assets/festivals/festivals.css: kept in original load order === */
/* 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}}

/* ================================================================
   RISE OF LEGENDS v2.20.148 | HALLOWEEN: THE BLACK VEIL
   Gothic horror, hand-drawn cobweb filaments, anatomical skulls,
   shaded jack-o'-lanterns and suspended spiders. NO cartoon art.
   Scoped to Halloween only; original layout and other themes intact.
   ================================================================ */
html[data-festival="halloween"] {
 --festival-accent:#bf9269;
 --festival-secondary:#d6b99e;
 --festival-light:rgba(155,79,53,.15);
 --festival-ambient:rgba(109,51,43,.22);
 --festival-highlight:#b78362;
 --festival-background:#11151b;
 --festival-scene:url('/assets/festivals/scene-halloween.webp');
 --festival-hero:url('/assets/festivals/hero-halloween.webp');
 --festival-garland:url('/assets/festivals/garland-halloween.svg');
}
/* Rich but dark: webs and ornaments are limited to the page edges. */
html[data-festival="halloween"] #rol-festival-scene .rol-festival-backdrop {
 opacity:.64;
 background-position:center center;
 background-size:100% 100%;
 -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 11%,transparent 25%,transparent 76%,#000 91%,#000 100%);
 mask-image:linear-gradient(90deg,#000 0%,#000 11%,transparent 25%,transparent 76%,#000 91%,#000 100%);
}
html[data-festival="halloween"] #rol-festival-scene .rol-festival-garland {
 top:52px;height:105px;
 opacity:.87;
 background-size:100% 100%;
}
html[data-festival="halloween"] #rol-festival-scene .rol-festival-top {
 opacity:.12;
}
html[data-festival="halloween"] #rol-festival-scene .rol-festival-particle {
 background:#cb8a5f;
 opacity:0;
 box-shadow:0 0 6px rgba(231,127,68,.40),0 0 14px rgba(190,74,40,.18);
}
html[data-festival="halloween"] #rol-festival-scene .rol-festival-badge {
 color:#dbc3a8;
 border-color:rgba(183,113,75,.40);
 background:linear-gradient(120deg,#101316ed,#201917ed);
 box-shadow:0 12px 24px #0009, inset 0 0 25px rgba(123,67,45,.13);
}
html[data-festival="halloween"] #rol-festival-scene .rol-festival-badge-icon {color:#c99865}
html[data-festival="halloween"] #rol-festival-scene .rol-halloween-mist {
 position:absolute;left:-15%;bottom:-35px;width:75%;height:230px;
 opacity:.15;
 background:radial-gradient(ellipse at 35% 100%,rgba(179,125,99,.45),transparent 65%),
            radial-gradient(ellipse at 74% 105%,rgba(136,116,122,.36),transparent 63%);
 animation:rol-halloween-fog 30s ease-in-out infinite alternate;
}
html[data-festival="halloween"] #rol-festival-scene .rol-halloween-mist.is-right {
 left:auto;right:-16%;bottom:-8px;transform:scaleX(-1);
 animation-duration:38s;animation-delay:-14s;
}
@keyframes rol-halloween-fog{from{translate:-3% 0;opacity:.08}to{translate:4% -14px;opacity:.24}}
html[data-festival="halloween"] body[data-design="legends-120"] {
 background-image:radial-gradient(ellipse 60% 36% at 92% 0%,rgba(120,65,42,.21),transparent 74%),
   radial-gradient(ellipse 65% 52% at 2% 76%,rgba(89,43,45,.15),transparent 78%),
   linear-gradient(180deg,#13161b 0%,#0b1219 73%,#0d1116 100%);
}
html[data-festival="halloween"] .rol120-home {
 background-image:radial-gradient(ellipse 70% 37% at 96% 2%,rgba(154,82,50,.15),transparent 82%),
   radial-gradient(ellipse 55% 50% at 0% 75%,rgba(78,38,48,.19),transparent 79%),
   linear-gradient(180deg,#10151b,#0a1218 88%);
}
/* The main castle is still the original photo. Gothic decor occupies the right. */
html[data-festival="halloween"] .rol120-hero {
 background:#161719;
 border-bottom:1px solid rgba(174,101,66,.75);
 box-shadow:inset 0 -35px 70px rgba(9,7,10,.17), 0 15px 38px #0005;
}
html[data-festival="halloween"] .rol120-hero-art {
 filter:saturate(.77) sepia(.15) brightness(.79) contrast(1.07);
}
html[data-festival="halloween"] .rol120-hero::before {
 background-image:var(--festival-hero),
  radial-gradient(ellipse 42% 80% at 88% 75%,rgba(163,72,40,.31),transparent 79%);
 background-size:auto 122%,cover;
 background-position:right 0 bottom -30px,center;
 background-repeat:no-repeat;
 opacity:.58;
}
html[data-festival="halloween"] .rol120-hero::after {
 background:linear-gradient(0deg,#0a1217 0%,transparent 14%),
  linear-gradient(90deg,rgba(6,13,19,.90) 0%,rgba(8,15,20,.49) 41%,transparent 76%);
}
html[data-festival="halloween"] .rol120-hero-copy {
 text-shadow:0 3px 15px #000b;
}
html[data-festival="halloween"] .rol120-kicker,
html[data-festival="halloween"] .rol120-section-title h2 {
 color:#ddb18a;
}
html[data-festival="halloween"] .rol120-hero h1 {
 color:#f1e8df;
 text-shadow:0 3px 7px #000,0 0 32px rgba(202,112,69,.14);
}
html[data-festival="halloween"] .rol120-hero-side {
 color:#d2a781;
 text-shadow:0 2px 9px #000;
}
html[data-festival="halloween"] .rol120-feature,
html[data-festival="halloween"] .rol120-news-card,
html[data-festival="halloween"] .rol120-promo,
html[data-festival="halloween"] .rol120-wiki-card,
html[data-festival="halloween"] .rol-pro-panel {
 border-color:rgba(139,95,76,.57);
 box-shadow:inset 0 1px rgba(228,169,118,.055),0 9px 22px rgba(0,0,0,.24);
}
html[data-festival="halloween"] .rol120-feature:hover,
html[data-festival="halloween"] .rol120-news-card:hover {
 border-color:rgba(190,126,83,.74);
}
html[data-festival="halloween"] .rol120-serverstrip {
 background:linear-gradient(100deg,rgba(58,32,31,.65),rgba(14,23,26,.88) 35%,rgba(15,21,26,.93));
 border-color:rgba(163,106,75,.60);
}
html[data-festival="halloween"] .site-header {
 border-bottom-color:rgba(176,108,72,.61);
 box-shadow:0 6px 25px #0008,0 1px 15px rgba(151,78,42,.15);
}
html[data-festival="halloween"] .site-footer {
 background-image:linear-gradient(160deg,rgba(11,15,20,.88),rgba(9,13,17,.97)),
 url('/assets/festivals/scene-halloween.webp');
 background-position:center,center bottom;
 background-size:cover,cover;
 border-top-color:rgba(174,108,70,.40);
}
/* A framed antique web illustration on the RIGHT of interior page heroes.
   This only adds a decoration and does not replace their existing content. */
html[data-festival="halloween"] body.is-subpage :is(.page-hero,.subpage-hero,.rol-page-hero,.page-heading,.page-banner,.wiki-hero,.account-hero,.downloads-hero,.news-hero) {
 border-color:rgba(161,110,83,.49);
}
html[data-festival="halloween"] .page-hero.compact:before {
 background-image:url('/assets/festivals/ornament-halloween.webp');
 background-position:right top;
 background-size:auto 120%;
 background-repeat:no-repeat;
 opacity:.27;
}
html[data-festival="halloween"] .page-hero:after {
 background:linear-gradient(90deg,transparent,#b47b57,transparent);
 opacity:.62;
}
html[data-festival="halloween"] :is(.rol120-news-card,.rol120-wiki-card,.rol120-feature) a:focus-visible {
 outline:2px solid #cba47f;
 outline-offset:3px;
}
@media (max-width:1050px) {
 html[data-festival="halloween"] #rol-festival-scene .rol-festival-backdrop {opacity:.43}
 html[data-festival="halloween"] .rol120-hero::before {background-size:auto 110%,cover;opacity:.50}
 html[data-festival="halloween"] #rol-festival-scene .rol-festival-garland {opacity:.55;height:76px}
}
@media (max-width:640px) {
 html[data-festival="halloween"] #rol-festival-scene .rol-festival-backdrop {opacity:.18}
 html[data-festival="halloween"] #rol-festival-scene .rol-festival-garland {top:62px;height:44px;opacity:.40}
 html[data-festival="halloween"] .rol120-hero::before {background-size:auto 57%,cover;background-position:right bottom,center;opacity:.23}
 html[data-festival="halloween"] #rol-festival-scene .rol-halloween-mist {display:none}
 html[data-festival="halloween"] .page-hero.compact:before {background-size:auto 70%;opacity:.10}
}
@media (prefers-reduced-motion:reduce) {
 html[data-festival="halloween"] #rol-festival-scene .rol-halloween-mist {animation:none}
}

/* === assets/festivals/halloween-premium.css: kept in original load order === */
/* Rise of Legends v2.20.150 — Halloween / NOCTURNE.
   Top-web overlap fix: one corner-web layer only, no doubled webs.
   Decorative presentation only. The existing site layout, contents, links,
   components and winter/spring themes stay exactly as they were.
   New artwork is self-hosted SVG. No emoji stickers. No backdrop-filter. */
html[data-festival="halloween"]{
  --festival-accent:#b7835b;
  --festival-secondary:#e2c0a0;
  --festival-highlight:#af7b54;
  --festival-light:rgba(132,72,48,.13);
  --festival-ambient:rgba(104,53,42,.18);
  --festival-hero:url('/assets/festivals/premium-halloween-hero.svg');
  --festival-scene:url('/assets/festivals/premium-halloween-edges.svg');
  --festival-garland:url('/assets/festivals/premium-halloween-garland.svg');
}
/* The drawing is pinned to the sides: page content remains fully legible. */
html[data-festival="halloween"] #rol-festival-scene .rol-festival-backdrop{
  opacity:.76;
  background-image:url('/assets/festivals/premium-halloween-edges.svg');
  background-size:100% 100%;
  background-position:center;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 9%,rgba(0,0,0,.22) 19%,transparent 30%,transparent 70%,rgba(0,0,0,.22) 81%,#000 91%,#000 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 9%,rgba(0,0,0,.22) 19%,transparent 30%,transparent 70%,rgba(0,0,0,.22) 81%,#000 91%,#000 100%);
}
html[data-festival="halloween"] #rol-festival-scene .rol-festival-garland{
  background-image:url('/assets/festivals/premium-halloween-garland.svg');
  top:52px;height:184px;opacity:.74;
  background-size:100% auto;background-position:top center;
}
html[data-festival="halloween"] #rol-festival-scene .rol-festival-badge{
  border-color:rgba(199,137,87,.42);
  background:#171716ee;
  color:#e8c9a9;
}
html[data-festival="halloween"] body[data-design="legends-120"]{
  background-image:radial-gradient(ellipse 52% 45% at 5% 35%,rgba(100,54,47,.12),transparent 78%),
    radial-gradient(ellipse 43% 33% at 96% 20%,rgba(115,63,41,.16),transparent 75%),
    linear-gradient(#10151a,#0b1016 60%,#0b1015);
}
html[data-festival="halloween"] .rol120-home{
  background-image:radial-gradient(ellipse 40% 24% at 3% 28%,rgba(127,63,43,.09),transparent 80%),
    radial-gradient(ellipse 55% 33% at 100% 72%,rgba(104,51,39,.10),transparent 83%),
    linear-gradient(180deg,#10161b 0%,#0c1217 70%,#101115);
}
/* Hero still uses the ORIGINAL Rise of Legends castle and content. */
html[data-festival="halloween"] .rol120-hero-art{
  filter:saturate(.79) sepia(.12) brightness(.79) contrast(1.1);
}
html[data-festival="halloween"] .rol120-hero::before{
  background-image:url('/assets/festivals/premium-halloween-hero.svg'),
     radial-gradient(ellipse 43% 75% at 89% 95%,rgba(168,82,41,.28),transparent 76%);
  background-size:auto 155%,cover;
  background-position:right -3px bottom -96px,center;
  background-repeat:no-repeat;
  opacity:.80;
}
html[data-festival="halloween"] .rol120-hero::after{
  background:linear-gradient(0deg,#0a1116 0%,transparent 21%),
    linear-gradient(90deg,rgba(7,14,20,.92) 0%,rgba(8,13,19,.55) 36%,transparent 66%,rgba(8,12,15,.20));
}
html[data-festival="halloween"] .rol120-hero{border-bottom:1px solid #8f5839}
html[data-festival="halloween"] .rol120-hero-copy{position:relative;z-index:1}
html[data-festival="halloween"] .rol120-hero-side{z-index:1;position:relative;color:#e2b992}
/* A copper glow on all familiar cards, without changing their dimensions. */
html[data-festival="halloween"] :is(.rol120-feature,.rol120-news-card,.rol120-rank-box,.rol120-wiki-cover,.rol120-promo,.rol120-event-grid article){
  border-color:rgba(149,98,67,.62);
  box-shadow:inset 0 1px rgba(213,162,103,.075),0 5px 18px rgba(0,0,0,.23);
}
html[data-festival="halloween"] :is(.rol120-feature,.rol120-news-card,.rol120-wiki-cover,.rol120-promo):hover{
  border-color:rgba(205,147,92,.86)
}
/* Delicate filigree at the corners of the feature row. */
html[data-festival="halloween"] .rol120-feature-row{
  position:relative;isolation:isolate;
}
html[data-festival="halloween"] .rol120-feature-row::after{
  content:"";pointer-events:none;position:absolute;
  right:-64px;top:-60px;width:165px;height:145px;z-index:2;
  background:url('/assets/festivals/premium-halloween-branch.svg') right top/contain no-repeat;
  opacity:.45;
}
html[data-festival="halloween"] .rol120-feature:first-child{
  background-image:linear-gradient(90deg,#14222be9,#0e1a20ed 78%),url('/assets/rol120/news-1.webp');
}
/* Ornate separators sit OUTSIDE the existing grid items. */
html[data-festival="halloween"] .rol120-home-grid,
html[data-festival="halloween"] .rol120-bottom-promos,
html[data-festival="halloween"] .rol120-event-schedule{position:relative;isolation:isolate}
html[data-festival="halloween"] .rol120-home-grid::before{
  content:"";pointer-events:none;position:absolute;
  top:-39px;left:calc(50% - 153px);width:306px;height:34px;
  background:url('/assets/festivals/premium-halloween-divider.svg') center/contain no-repeat;
  opacity:.70;
}
html[data-festival="halloween"] .rol120-home-grid::after{
  content:"";pointer-events:none;position:absolute;z-index:-1;
  right:-127px;bottom:-100px;width:250px;height:270px;
  background:url('/assets/festivals/premium-halloween-stilllife.svg') bottom right/contain no-repeat;
  opacity:.30;
}
html[data-festival="halloween"] .rol120-home-news,
html[data-festival="halloween"] .rol120-home-rank,
html[data-festival="halloween"] .rol120-home-wiki{position:relative;min-width:0}
html[data-festival="halloween"] .rol120-home-news::before{
  content:"";pointer-events:none;position:absolute;z-index:2;
  left:-46px;top:15px;width:102px;height:115px;
  background:url('/assets/festivals/premium-halloween-edges.svg') left top/600px auto no-repeat;
  opacity:.29;
}
html[data-festival="halloween"] .rol120-home-rank::before,
html[data-festival="halloween"] .rol120-home-wiki::before{
  content:"";pointer-events:none;position:absolute;right:0;top:-14px;
  width:88px;height:17px;
  background:url('/assets/festivals/premium-halloween-divider.svg') right center/auto 17px no-repeat;
  opacity:.44;
}
html[data-festival="halloween"] .rol120-section-title h2{
  color:#dfae7b;text-shadow:0 0 20px rgba(159,80,46,.12)
}
html[data-festival="halloween"] .rol120-section-title{
  border-bottom:1px solid rgba(169,108,64,.22);padding-bottom:5px;margin-bottom:10px;
}
html[data-festival="halloween"] .rol120-news-card .rol120-news-image{
  border-bottom:1px solid rgba(199,124,71,.25)
}
html[data-festival="halloween"] .rol120-bottom-promos{margin-top:30px}
html[data-festival="halloween"] .rol120-bottom-promos::before{
  content:"";position:absolute;left:calc(50% - 126px);top:-30px;
  width:252px;height:32px;pointer-events:none;
  background:url('/assets/festivals/premium-halloween-divider.svg') center/contain no-repeat;opacity:.58;
}
html[data-festival="halloween"] .rol120-bottom-promos::after{
  content:"";position:absolute;right:-108px;top:24px;width:146px;height:165px;pointer-events:none;
  background:url('/assets/festivals/premium-halloween-stilllife.svg') bottom right/contain no-repeat;opacity:.30;
}
html[data-festival="halloween"] .rol120-event-schedule{
  padding-top:22px;border-top:1px solid rgba(152,89,52,.26);margin-top:40px;
}
html[data-festival="halloween"] .rol120-event-schedule::before{
  content:"";position:absolute;top:-15px;left:calc(50% - 130px);
  width:260px;height:31px;pointer-events:none;
  background:url('/assets/festivals/premium-halloween-divider.svg') center/contain no-repeat;opacity:.72;
}
html[data-festival="halloween"] .rol120-event-grid article{
  background:linear-gradient(128deg,#1e2225,#131820 85%);
  border-top-color:rgba(182,112,70,.68);
}
/* Footer is framed by cemetery silhouettes, candles and web filaments. */
html[data-festival="halloween"] .site-footer{
  position:relative;isolation:isolate;
  background-image:radial-gradient(ellipse 65% 45% at 70% 100%,rgba(117,67,43,.14),transparent 78%),
    linear-gradient(170deg,#12181bee,#080e12 88%);
  border-top:1px solid rgba(176,111,71,.62);
}
html[data-festival="halloween"] .site-footer::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:url('/assets/festivals/premium-halloween-footer.svg') center bottom/100% auto no-repeat;
  opacity:.48;
}
html[data-festival="halloween"] .site-footer::after{
  content:"";position:absolute;left:calc(50% - 170px);top:-19px;width:340px;height:40px;
  background:url('/assets/festivals/premium-halloween-divider.svg') center/contain no-repeat;
  pointer-events:none;opacity:.72;
}
/* Interior pages retain their original structure; a smaller gothic illustration
   appears at the far edge of the header and a fine border unifies the cards. */
html[data-festival="halloween"] .page-hero.compact::before{
  background-image:url('/assets/festivals/premium-halloween-stilllife.svg');
  background-size:auto 115%;background-position:right bottom;
  opacity:.16;
}
html[data-festival="halloween"] body.is-subpage :is(.panel,.news-card,.faq-card,.account-card,.download-card,.wiki-category-card){
  border-color:rgba(158,101,74,.38)
}
/* The registration page has a different body layout; only ambient decoration. */
html[data-festival="halloween"] body:not([data-design]){
  background-image:radial-gradient(ellipse 40% 30% at 96% 12%,rgba(130,69,43,.16),transparent 84%),
    linear-gradient(140deg,#10151a,#0b1218);
}
html[data-festival="halloween"] body:not([data-design]) #rol-festival-scene .rol-festival-backdrop{opacity:.28}
/* Responsive: section graphics retreat rather than obscure text. */
@media(max-width:1100px){
 html[data-festival="halloween"] .rol120-hero::before{background-size:auto 132%,cover;background-position:right bottom -76px,center;opacity:.65}
 html[data-festival="halloween"] #rol-festival-scene .rol-festival-garland{height:135px;opacity:.62}
 html[data-festival="halloween"] .rol120-feature-row::after{right:-22px;width:105px;height:100px;opacity:.3}
 html[data-festival="halloween"] .rol120-home-grid::after{right:-15px;width:160px;opacity:.22}
}
@media(max-width:700px){
 html[data-festival="halloween"] #rol-festival-scene .rol-festival-backdrop{opacity:.33}
 html[data-festival="halloween"] #rol-festival-scene .rol-festival-garland{top:64px;height:88px;opacity:.44}
 html[data-festival="halloween"] .rol120-hero::before{background-size:auto 80%,cover;background-position:right bottom -30px,center;opacity:.34}
 html[data-festival="halloween"] .rol120-feature-row::after,
 html[data-festival="halloween"] .rol120-home-grid::after,
 html[data-festival="halloween"] .rol120-bottom-promos::after,
 html[data-festival="halloween"] .rol120-home-news::before{display:none}
 html[data-festival="halloween"] .rol120-section-title{padding-bottom:3px;margin-bottom:7px}
 html[data-festival="halloween"] .rol120-home-grid::before{opacity:.45}
 html[data-festival="halloween"] .site-footer::before{background-size:auto 70%;opacity:.26}
}
@media(prefers-reduced-motion:reduce){
 html[data-festival="halloween"] #rol-festival-scene .rol-halloween-mist{animation:none}
}
