/* JR Platform Theme Halloween layer — decorative only, deliberately GPU-friendly. */
:root{--jrh-orange:#ff7a18;--jrh-amber:#ffb347;--jrh-purple:#8d5cff;--jrh-moon:#bcecff;--jrh-fog:rgba(210,220,230,.08)}
body.jr-halloween-active{--jr-halloween-accent:var(--jrh-orange)}
body.jr-halloween-active.jr-halloween-off .jr-halloween-layer,
body.jr-halloween-active.jr-halloween-off .jr-halloween-music-toggle{display:none!important}
.jr-halloween-layer{position:fixed;inset:0;z-index:8;pointer-events:none;overflow:hidden;contain:strict}
.jr-halloween-toggle{position:fixed;right:max(10px,env(safe-area-inset-right));bottom:max(74px,calc(env(safe-area-inset-bottom) + 14px));z-index:100010;width:42px;height:42px;border:1px solid rgba(255,140,35,.4);border-radius:999px;background:rgba(18,12,20,.82);color:#fff;font-size:21px;line-height:1;backdrop-filter:blur(8px);box-shadow:0 0 18px rgba(255,90,0,.18);cursor:pointer;touch-action:manipulation}
.jr-halloween-toggle:focus-visible{outline:2px solid var(--jrh-amber);outline-offset:2px}
.jr-halloween-ghost,.jr-halloween-pumpkin,.jr-halloween-bat{position:absolute;will-change:transform,opacity;transform:translate3d(0,0,0)}
.jr-halloween-ghost{width:auto;height:auto;background:none;font-style:normal;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:44px;line-height:1;filter:drop-shadow(0 0 10px rgba(210,235,255,.22));opacity:.38;animation:jrhGhost 22s linear infinite}
.jr-halloween-pumpkin{width:auto;height:auto;background:none;font-style:normal;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:27px;line-height:1;filter:drop-shadow(0 0 8px rgba(255,112,20,.24));opacity:.72;animation:jrhPumpkin 18s linear infinite}
.jr-halloween-bat{width:28px;height:12px;opacity:.22;background:linear-gradient(150deg,transparent 38%,#111 39% 63%,transparent 64%),linear-gradient(30deg,transparent 38%,#111 39% 63%,transparent 64%);animation:jrhBat 18s ease-in-out infinite}
.jr-halloween-fog{position:absolute;left:-12%;right:-12%;bottom:-8%;height:28%;opacity:.55;background:radial-gradient(ellipse at 25% 70%,rgba(230,235,240,.09),transparent 58%),radial-gradient(ellipse at 70% 80%,rgba(180,190,205,.07),transparent 55%);filter:blur(14px);animation:jrhFog 28s ease-in-out infinite alternate;will-change:transform}
@keyframes jrhGhost{0%{transform:translate3d(-80px,14vh,0) rotate(-3deg)}45%{transform:translate3d(48vw,6vh,0) rotate(4deg)}100%{transform:translate3d(110vw,18vh,0) rotate(-2deg)}}
@keyframes jrhPumpkin{0%{transform:translate3d(0,-45px,0) rotate(-8deg)}35%{transform:translate3d(4vw,35vh,0) rotate(8deg)}70%{transform:translate3d(-3vw,75vh,0) rotate(-6deg)}100%{transform:translate3d(5vw,110vh,0) rotate(10deg)}}
@keyframes jrhBat{0%,100%{transform:translate3d(-60px,0,0) scale(.9)}50%{transform:translate3d(55vw,28px,0) scale(1.05)}99%{transform:translate3d(110vw,-10px,0)}}
@keyframes jrhFog{from{transform:translate3d(-3%,0,0) scale(1)}to{transform:translate3d(4%,-2%,0) scale(1.04)}}

/* Shared highlights */
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-nav a:hover,body.jr-halloween-active:not(.jr-halloween-off) .jrpt-mobile-drawer a:hover{box-shadow:inset 2px 0 0 var(--jrh-orange)}
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-widget,body.jr-halloween-active:not(.jr-halloween-off) .jrpt-quick-card{border-color:rgba(255,122,24,.14)}
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-fallback-header{box-shadow:0 1px 0 rgba(255,122,24,.16),0 6px 24px rgba(0,0,0,.22)}

/* Activity: ember glow with drifting jack-o'-lanterns as the dominant motion. */
body.jr-halloween-page-activity{background-image:radial-gradient(circle at 82% 12%,rgba(255,92,0,.055),transparent 24%),radial-gradient(circle at 14% 75%,rgba(130,35,0,.045),transparent 26%)}
body.jr-halloween-page-activity .jrpt-widget h2,body.jr-halloween-page-activity .jrpt-quick-card h3{color:#ffd0a6}

/* Messenger / rooms: colder haunted palette, ghost emphasis, no orange overload. */
body.jr-halloween-page-messenger .jrchat-app,body.jr-halloween-page-chat-rooms .jrchat-app{box-shadow:0 0 0 1px rgba(141,92,255,.16),0 22px 60px rgba(25,0,40,.18)}
body.jr-halloween-page-messenger .jrchat-incoming,body.jr-halloween-page-chat-rooms .jrchat-incoming{border-color:rgba(174,126,255,.55)!important;box-shadow:0 0 34px rgba(133,64,255,.28)!important}
body.jr-halloween-page-messenger .jrchat-incoming:before,body.jr-halloween-page-chat-rooms .jrchat-incoming:before{content:"👻";position:absolute;right:14px;top:-20px;font-size:34px;filter:drop-shadow(0 0 10px rgba(200,220,255,.25))}

/* Games: strongest seasonal treatment; still below game overlays. */
body.jr-halloween-page-games .jrgames-container,body.jr-halloween-page-games [class*="jrgames-"]{--jrh-game-glow:rgba(255,105,20,.22)}
body.jr-halloween-page-games .jrgames-card,body.jr-halloween-page-games .jrgames-game-card{border-color:rgba(255,122,24,.28)!important;box-shadow:0 8px 28px rgba(90,28,0,.14)}
body.jr-halloween-page-games .jrgames-card:hover,body.jr-halloween-page-games .jrgames-game-card:hover{box-shadow:0 0 0 1px rgba(255,153,60,.4),0 14px 38px rgba(120,38,0,.24)}
body.jr-halloween-page-games .jrpt-main:before{content:"🎃  HALLOWEEN GAMES";display:block;margin:0 auto 14px;max-width:1600px;padding:9px 14px;border:1px solid rgba(255,122,24,.2);border-radius:12px;background:linear-gradient(90deg,rgba(255,96,0,.10),rgba(80,28,120,.08));color:#ffd2a8;font-weight:800;letter-spacing:.08em;text-align:center}

/* Videos: cinematic red-orange edge glow with rare bats. */
body.jr-halloween-page-videos .jrpt-stream-header{background:linear-gradient(180deg,rgba(24,9,13,.98),rgba(8,8,10,.96));box-shadow:0 1px 0 rgba(255,100,25,.18),0 8px 30px rgba(100,0,0,.12)}
body.jr-halloween-page-videos .jrpt-stream-brand{text-shadow:0 0 14px rgba(255,83,30,.38)}

/* Music: moonlit purple, restrained because audio UI needs visual calm. */
body.jr-halloween-page-music{background-image:radial-gradient(circle at 86% 8%,rgba(150,180,255,.08),transparent 16%),radial-gradient(circle at 8% 88%,rgba(105,55,170,.08),transparent 22%)}
body.jr-halloween-page-music .jrpt-main{filter:drop-shadow(0 0 18px rgba(100,60,180,.05))}

/* Groups: web-like corner detail. */
/* Emoji cobwebs: visible but tucked into the corners so they never cover controls. */
.jr-halloween-web{position:absolute;z-index:1;font-style:normal;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:58px;line-height:1;opacity:.22;filter:grayscale(.18) drop-shadow(0 0 7px rgba(230,235,245,.12));transform:none!important;animation:none!important}
.jr-halloween-web-a{left:-10px;top:-8px;transform:rotate(90deg)!important}.jr-halloween-web-b{right:-10px;top:-8px}
body.jr-halloween-page-messenger .jr-halloween-web-a,body.jr-halloween-page-chat-rooms .jr-halloween-web-b,body.jr-halloween-page-music .jr-halloween-web-a{opacity:.12}
/* Rare spider: one DOM node, created only when needed, then removed on animation end. */
.jr-halloween-spider{position:absolute;top:-90px;z-index:2;width:32px;height:32px;font-style:normal;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:29px;line-height:1;text-align:center;opacity:.72;filter:drop-shadow(0 0 7px rgba(255,120,35,.12));will-change:transform,opacity;animation:jrhSpider linear 1 both}
.jr-halloween-spider:before{content:"";position:absolute;left:50%;bottom:24px;width:1px;height:100vh;background:linear-gradient(to top,rgba(225,225,235,.34),rgba(225,225,235,.06));transform:translateX(-50%)}
@keyframes jrhSpider{0%{transform:translate3d(0,-28px,0);opacity:0}7%{opacity:.72}72%{transform:translate3d(0,68vh,0);opacity:.72}88%{transform:translate3d(0,76vh,0);opacity:.7}100%{transform:translate3d(0,-60px,0);opacity:0}}

/* Forums: candle/amber rather than purple. */
body.jr-halloween-page-forums .jrpt-main{background-image:radial-gradient(circle at 92% 10%,rgba(255,165,54,.055),transparent 18%)}

/* Profile/community areas: pale moonlit accents. */
body.jr-halloween-page-profile .jrpt-main,body.jr-halloween-page-community-profile .jrpt-main,body.jr-halloween-page-members .jrpt-main,body.jr-halloween-page-friends .jrpt-main{background-image:radial-gradient(circle at 100% 0,rgba(188,236,255,.045),transparent 24%)}

/* Saved/library: aged, dusty warmth. */
body.jr-halloween-page-saved .jrpt-main,body.jr-halloween-page-library .jrpt-main{background-image:linear-gradient(135deg,rgba(139,75,26,.025),transparent 34%)}

/* Utility/settings pages stay intentionally subtle. */
body.jr-halloween-page-settings .jr-halloween-ghost,body.jr-halloween-page-account .jr-halloween-ghost,body.jr-halloween-page-search .jr-halloween-ghost,body.jr-halloween-page-notifications .jr-halloween-ghost{display:none}

body.jr-halloween-subtle .jr-halloween-ghost:nth-of-type(n+2),body.jr-halloween-subtle .jr-halloween-pumpkin:nth-of-type(n+3),body.jr-halloween-subtle .jr-halloween-bat{display:none}
body.jr-halloween-subtle .jr-halloween-fog{opacity:.3}
@media(max-width:780px){.jr-halloween-toggle{width:38px;height:38px;font-size:18px;bottom:max(68px,calc(env(safe-area-inset-bottom) + 10px))}.jr-halloween-ghost:nth-of-type(n+2),.jr-halloween-pumpkin:nth-of-type(n+3),.jr-halloween-bat:nth-of-type(n+2){display:none}.jr-halloween-fog{opacity:.26}}
@media(prefers-reduced-motion:reduce){.jr-halloween-ghost,.jr-halloween-pumpkin,.jr-halloween-bat,.jr-halloween-fog,.jr-halloween-spider{animation:none!important}.jr-halloween-pumpkin,.jr-halloween-bat,.jr-halloween-spider{display:none!important}.jr-halloween-ghost{left:auto!important;right:4vw!important;top:16vh!important;opacity:.16!important}}
.jr-halloween-music-toggle{position:fixed;right:max(10px,env(safe-area-inset-right));bottom:max(122px,calc(env(safe-area-inset-bottom) + 62px));z-index:100010;width:38px;height:38px;border:1px solid rgba(141,92,255,.35);border-radius:999px;background:rgba(18,12,20,.78);color:#e8dcff;font-size:17px;line-height:1;backdrop-filter:blur(8px);box-shadow:0 0 16px rgba(100,50,180,.12);cursor:pointer;touch-action:manipulation}
.jr-halloween-music-toggle.is-on{border-color:rgba(255,122,24,.55);box-shadow:0 0 20px rgba(255,100,20,.20)}
.jr-halloween-music-toggle:focus-visible{outline:2px solid var(--jrh-amber);outline-offset:2px}
@media(max-width:780px){.jr-halloween-music-toggle{width:34px;height:34px;bottom:max(112px,calc(env(safe-area-inset-bottom) + 54px));font-size:15px}}

/* V2.5.12: restrained orange navigation glow. Text remains readable and existing active states stay intact. */
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-left a span,
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-mobile-nav a,
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-mobile-nav button,
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-mobile-drawer a,
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-stream-nav a,
body.jr-halloween-active:not(.jr-halloween-off) .jrmh-nav{
 text-shadow:0 0 7px rgba(255,112,20,.34),0 0 14px rgba(255,76,0,.12);
}
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-left a:hover span,
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-left a.is-active span,
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-mobile-nav .is-active,
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-stream-nav a:hover,
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-stream-nav a.is-active,
body.jr-halloween-active:not(.jr-halloween-off) .jrmh-nav:hover{
 color:#ffd8b3!important;text-shadow:0 0 6px rgba(255,151,58,.72),0 0 16px rgba(255,92,0,.42),0 0 26px rgba(255,72,0,.18);
}
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-nav-section,
body.jr-halloween-active:not(.jr-halloween-off) .jrpt-widget h2{color:#eeb98c;text-shadow:0 0 10px rgba(255,112,20,.18)}
body.jr-halloween-subtle .jrpt-left a span,body.jr-halloween-subtle .jrpt-mobile-nav a,body.jr-halloween-subtle .jrpt-mobile-nav button,body.jr-halloween-subtle .jrpt-mobile-drawer a,body.jr-halloween-subtle .jrpt-stream-nav a,body.jr-halloween-subtle .jrmh-nav{text-shadow:0 0 6px rgba(255,112,20,.20)}

/* V2.5.14 emoji seasonal refinements. */
body.jr-halloween-subtle .jr-halloween-web{opacity:.12}
body.jr-halloween-off .jr-halloween-web,body.jr-halloween-off .jr-halloween-spider{display:none!important}
@media(max-width:780px){.jr-halloween-web{font-size:42px;opacity:.15}.jr-halloween-pumpkin{font-size:23px}.jr-halloween-spider{font-size:25px}}

/* V2.5.15: integration safety. Seasonal controls must never obscure JR Chat calls. */
body.jrchat-call-active .jr-halloween-toggle,
body.jrchat-call-active .jr-halloween-music-toggle,
body.jrchat-incoming-call-active .jr-halloween-toggle,
body.jrchat-incoming-call-active .jr-halloween-music-toggle{display:none!important}


/* V2.5.16: reduce drifting pumpkin density so only a couple are visible instead of a flurry. */
