/* Red Moon cinematic global page transition */
html.rm-loading,html.rm-loading body{overflow:hidden!important}
html.rm-loading body>*:not(#pageTransition){visibility:hidden!important}
#pageTransition{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;background:radial-gradient(circle at 50% 46%,rgba(194,12,43,.24),transparent 25%),radial-gradient(circle at 50% 50%,#1b070c 0,#090405 48%,#020102 100%);opacity:1;visibility:visible;pointer-events:all;transition:opacity .65s ease,visibility .65s ease;overflow:hidden}
#pageTransition.ready{opacity:0;visibility:hidden;pointer-events:none}
#pageTransition.leaving{opacity:1;visibility:visible;pointer-events:all}
#pageTransition .rm-transition-inner{position:relative;min-width:330px;min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;animation:rmTransitionIn .75s cubic-bezier(.16,.84,.28,1) both}
#pageTransition .rm-transition-logo{width:210px;height:210px;object-fit:contain;position:relative;z-index:3;filter:drop-shadow(0 0 16px rgba(255,45,75,.55)) drop-shadow(0 0 55px rgba(205,8,42,.38));animation:rmLogoCinematic 1.55s cubic-bezier(.2,.8,.2,1) infinite}
#pageTransition .rm-transition-ring{position:absolute;z-index:2;left:50%;top:50%;width:292px;height:292px;border-radius:50%;transform:translate(-50%,-58%);box-sizing:border-box;pointer-events:none}
#pageTransition .rm-transition-ring-top{border:2px solid transparent;border-top-color:rgba(255,65,91,.9);border-right-color:rgba(255,65,91,.32);filter:drop-shadow(0 0 8px rgba(255,35,70,.65));animation:rmSpinTop 1.55s linear infinite}
#pageTransition .rm-transition-ring-bottom{width:316px;height:316px;border:2px solid transparent;border-bottom-color:rgba(255,65,91,.82);border-left-color:rgba(255,65,91,.28);filter:drop-shadow(0 0 10px rgba(255,35,70,.5));animation:rmSpinBottom 1.55s linear infinite}
#pageTransition .rm-transition-title{font:700 13px Cinzel,serif;letter-spacing:9px;color:#ef3450;text-shadow:0 0 14px rgba(255,40,70,.65),0 0 40px rgba(210,10,45,.32);animation:rmTitle 1.45s ease-in-out infinite}
#pageTransition .rm-transition-line{width:170px;height:1px;background:linear-gradient(90deg,transparent,#ff3855 45%,#ff7187 50%,#ff3855 55%,transparent);box-shadow:0 0 12px rgba(255,35,70,.55);transform-origin:center;animation:rmLine 1.3s ease-in-out infinite}
#pageTransition .rm-transition-status{font:600 8px system-ui,sans-serif;letter-spacing:5px;color:rgba(255,255,255,.38);margin-top:-7px;animation:rmStatus 1.2s ease-in-out infinite}
#pageTransition:before{content:"";position:absolute;inset:0;pointer-events:none}
#pageTransition:before{background:repeating-linear-gradient(90deg,transparent 0 119px,rgba(255,255,255,.018) 120px),repeating-linear-gradient(0deg,transparent 0 119px,rgba(255,255,255,.012) 120px);mask-image:radial-gradient(circle at center,#000,transparent 72%)}
body.rm-page-arriving main{animation:rmPageArrive .9s cubic-bezier(.16,.84,.28,1) both}
@keyframes rmLogoCinematic{0%{transform:scale(.86);opacity:.55}42%{transform:scale(1.08);opacity:1;filter:drop-shadow(0 0 26px rgba(255,45,75,.75)) drop-shadow(0 0 75px rgba(205,8,42,.45))}72%{transform:scale(1);opacity:1}100%{transform:scale(.95);opacity:.78}}
@keyframes rmSpinTop{from{transform:translate(-50%,-58%) rotate(0deg)}to{transform:translate(-50%,-58%) rotate(360deg)}}
@keyframes rmSpinBottom{from{transform:translate(-50%,-58%) rotate(0deg)}to{transform:translate(-50%,-58%) rotate(-360deg)}}
@keyframes rmTitle{0%,100%{opacity:.42;letter-spacing:8px}50%{opacity:1;letter-spacing:11px}}
@keyframes rmLine{0%,100%{transform:scaleX(.18);opacity:.2}50%{transform:scaleX(1);opacity:1}}
@keyframes rmStatus{0%,100%{opacity:.25}50%{opacity:.7}}
@keyframes rmTransitionIn{from{transform:translateY(18px) scale(.88);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes rmPageArrive{from{opacity:.05;transform:translateY(22px) scale(.992);filter:blur(9px)}to{opacity:1;transform:none;filter:none}}
@media (max-width:640px){#pageTransition .rm-transition-inner{min-width:270px;min-height:315px}#pageTransition .rm-transition-logo{width:160px;height:160px}#pageTransition .rm-transition-ring{width:225px;height:225px}#pageTransition .rm-transition-ring-bottom{width:245px;height:245px}#pageTransition .rm-transition-title{font-size:10px;letter-spacing:7px}#pageTransition .rm-transition-line{width:130px}}
@media (prefers-reduced-motion:reduce){#pageTransition,#pageTransition *{animation:none!important;transition-duration:.12s!important}body.rm-page-arriving main{animation:none!important}}


/* V6 — one full slide-in orbit in each opposite corner */
#pageTransition .rm-corner-orbit{
  position:absolute;
  width:min(42vw,520px);height:min(42vw,520px);
  border-radius:50%;box-sizing:border-box;pointer-events:none;
  opacity:0;
  filter:drop-shadow(0 0 12px rgba(255,35,70,.5));
}
#pageTransition .rm-corner-orbit-tl{
  left:-180px;top:-180px;
  border:2px solid transparent;
  border-right-color:rgba(255,48,78,.82);
  border-bottom-color:rgba(255,48,78,.20);
  animation:rmCornerSlideTL 2.65s cubic-bezier(.35,.02,.18,1) infinite;
}
#pageTransition .rm-corner-orbit-br{
  right:-180px;bottom:-180px;
  border:2px solid transparent;
  border-left-color:rgba(255,48,78,.82);
  border-top-color:rgba(255,48,78,.20);
  animation:rmCornerSlideBR 2.65s cubic-bezier(.35,.02,.18,1) infinite;
}
@keyframes rmCornerSlideTL{
  0%{transform:translate(-42%,-42%) rotate(-35deg);opacity:0}
  15%{opacity:.82}
  46%{transform:translate(0,0) rotate(25deg);opacity:.82}
  72%{transform:translate(12%,12%) rotate(72deg);opacity:.48}
  100%{transform:translate(34%,34%) rotate(115deg);opacity:0}
}
@keyframes rmCornerSlideBR{
  0%{transform:translate(42%,42%) rotate(35deg);opacity:0}
  15%{opacity:.82}
  46%{transform:translate(0,0) rotate(-25deg);opacity:.82}
  72%{transform:translate(-12%,-12%) rotate(-72deg);opacity:.48}
  100%{transform:translate(-34%,-34%) rotate(-115deg);opacity:0}
}
@media(max-width:640px){
  #pageTransition .rm-corner-orbit{width:330px;height:330px}
  #pageTransition .rm-corner-orbit-tl{left:-205px;top:-205px}
  #pageTransition .rm-corner-orbit-br{right:-205px;bottom:-205px}
}
\n\n/* V7 — corner sweep only: no small closed circle */
#pageTransition .rm-corner-orbit{border:none!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important}
#pageTransition .rm-corner-orbit-tl{border-top:2px solid rgba(255,48,78,.16)!important;border-right:2px solid rgba(255,48,78,.78)!important}
#pageTransition .rm-corner-orbit-br{border-bottom:2px solid rgba(255,48,78,.16)!important;border-left:2px solid rgba(255,48,78,.78)!important}

/* V16 — mobile-first loader: stable, light, no flashing decorative layers */
@media (max-width:768px), (pointer:coarse){
  #pageTransition{background:radial-gradient(circle at 50% 45%,rgba(132,12,32,.16),transparent 34%),#050304;transition:opacity .22s ease,visibility .22s ease;contain:strict}
  #pageTransition:before,.rm-corner-orbit,#pageTransition .rm-transition-ring{display:none!important}
  #pageTransition .rm-transition-inner{min-width:0;min-height:0;width:100%;height:auto;gap:12px;animation:none!important;transform:none!important}
  #pageTransition .rm-transition-logo{width:116px;height:116px;animation:rmMobileLogo 1.15s ease-in-out infinite!important;filter:drop-shadow(0 0 18px rgba(255,45,75,.32))}
  #pageTransition .rm-transition-title{font-size:10px;letter-spacing:6px;animation:none!important;text-shadow:0 0 12px rgba(255,40,70,.34)}
  #pageTransition .rm-transition-line{width:92px;animation:rmMobileLine 1.15s ease-in-out infinite!important;box-shadow:0 0 8px rgba(255,35,70,.32)}
  #pageTransition .rm-transition-status{font-size:7px;letter-spacing:3px;animation:none!important;margin-top:-4px}
  body.rm-page-arriving main{animation:none!important}
}
@keyframes rmMobileLogo{0%,100%{opacity:.72;transform:scale(.98)}50%{opacity:1;transform:scale(1.025)}}
@keyframes rmMobileLine{0%,100%{opacity:.3;transform:scaleX(.55)}50%{opacity:.85;transform:scaleX(1)}}

/* V38 — perfectly mirrored public page-transition corner sweeps.
   Top-left and bottom-right now use identical geometry, timing and motion,
   rotated 180 degrees across the viewport. */
@media (min-width:769px) and (pointer:fine){
  #pageTransition .rm-corner-orbit{
    width:min(42vw,520px)!important;
    height:min(42vw,520px)!important;
    opacity:0;
    filter:drop-shadow(0 0 12px rgba(255,35,70,.50))!important;
    animation-duration:2.65s!important;
    animation-timing-function:cubic-bezier(.35,.02,.18,1)!important;
    animation-iteration-count:infinite!important;
  }
  #pageTransition .rm-corner-orbit-tl{
    left:-180px!important;top:-180px!important;right:auto!important;bottom:auto!important;
    border-top:2px solid rgba(255,48,78,.16)!important;
    border-right:2px solid rgba(255,48,78,.78)!important;
    border-bottom:0!important;border-left:0!important;
    animation-name:rmCornerMirrorTL!important;
  }
  #pageTransition .rm-corner-orbit-br{
    right:-180px!important;bottom:-180px!important;left:auto!important;top:auto!important;
    border-bottom:2px solid rgba(255,48,78,.16)!important;
    border-left:2px solid rgba(255,48,78,.78)!important;
    border-top:0!important;border-right:0!important;
    animation-name:rmCornerMirrorBR!important;
  }
}
@keyframes rmCornerMirrorTL{
  0%{transform:translate(-42%,-42%) rotate(-35deg);opacity:0}
  15%{opacity:.82}
  46%{transform:translate(0,0) rotate(25deg);opacity:.82}
  72%{transform:translate(12%,12%) rotate(72deg);opacity:.48}
  100%{transform:translate(34%,34%) rotate(115deg);opacity:0}
}
@keyframes rmCornerMirrorBR{
  0%{transform:translate(42%,42%) rotate(-35deg);opacity:0}
  15%{opacity:.82}
  46%{transform:translate(0,0) rotate(25deg);opacity:.82}
  72%{transform:translate(-12%,-12%) rotate(72deg);opacity:.48}
  100%{transform:translate(-34%,-34%) rotate(115deg);opacity:0}
}

/* V39 — true mirrored corner ornaments.
   Both corners are built from the exact same two-ring geometry. */
@media (min-width:769px) and (pointer:fine){
  #pageTransition .rm-corner-orbit{
    width:min(42vw,520px)!important;height:min(42vw,520px)!important;
    border:0!important;border-radius:50%!important;background:transparent!important;
    box-shadow:none!important;filter:drop-shadow(0 0 12px rgba(255,35,70,.42))!important;
  }
  #pageTransition .rm-corner-orbit::before{
    content:"";position:absolute;inset:0;border-radius:50%;box-sizing:border-box;
    border:1.5px solid rgba(255,48,78,.62);
    border-left-color:rgba(255,48,78,.10);border-bottom-color:rgba(255,48,78,.18);
  }
  #pageTransition .rm-corner-orbit::after{
    content:"";position:absolute;width:44%;height:44%;left:28%;top:28%;
    border-radius:50%;box-sizing:border-box;border:1px solid rgba(255,48,78,.30);
    border-left-color:rgba(255,48,78,.08);border-bottom-color:rgba(255,48,78,.12);
  }
  #pageTransition .rm-corner-orbit-tl{
    left:-180px!important;top:-180px!important;right:auto!important;bottom:auto!important;
    animation:rmCornerV39TL 2.65s cubic-bezier(.35,.02,.18,1) infinite!important;
  }
  #pageTransition .rm-corner-orbit-br{
    right:-180px!important;bottom:-180px!important;left:auto!important;top:auto!important;
    animation:rmCornerV39BR 2.65s cubic-bezier(.35,.02,.18,1) infinite!important;
  }
  #pageTransition .rm-corner-orbit-br::before,
  #pageTransition .rm-corner-orbit-br::after{transform:rotate(180deg)}
}
@keyframes rmCornerV39TL{
  0%{transform:translate(-42%,-42%) rotate(-35deg);opacity:0}
  15%{opacity:.82}46%{transform:translate(0,0) rotate(25deg);opacity:.82}
  72%{transform:translate(12%,12%) rotate(72deg);opacity:.48}
  100%{transform:translate(34%,34%) rotate(115deg);opacity:0}
}
@keyframes rmCornerV39BR{
  0%{transform:translate(42%,42%) rotate(145deg);opacity:0}
  15%{opacity:.82}46%{transform:translate(0,0) rotate(205deg);opacity:.82}
  72%{transform:translate(-12%,-12%) rotate(252deg);opacity:.48}
  100%{transform:translate(-34%,-34%) rotate(295deg);opacity:0}
}
