/* Main-website background and particles, faithfully ported from base-theme.css.
   This file loads after the legacy Unity theme to defeat its blue dark-mode styling. */
html,html.vp-dark,body,body.vp-dark,body.dark-mode,body.theme-dark {
  background:radial-gradient(circle at 16% 5%,rgba(98,191,64,.24),transparent 34rem),radial-gradient(circle at 88% 34%,rgba(141,220,83,.16),transparent 30rem),radial-gradient(circle at 48% 92%,rgba(56,133,68,.12),transparent 38rem),linear-gradient(145deg,#061009 0%,#0b1b10 46%,#07140b 100%)!important;
  background-attachment:fixed!important;
}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(181,242,131,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(181,242,131,.018) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(circle at 50% 35%,#000,transparent 76%)}
.fr-page-noise{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.20;background:radial-gradient(circle at 50% 50%,transparent 0 1px,rgba(255,255,255,.024) 1px 2px);background-size:7px 7px;mix-blend-mode:soft-light}
.fr-ambient{position:fixed;border-radius:999px;filter:blur(95px);pointer-events:none;opacity:.26;z-index:0}
.fr-ambient-one{width:430px;height:430px;background:#5ea63b;left:-170px;top:28%;animation:ambientFloat 12s ease-in-out infinite}
.fr-ambient-two{width:360px;height:360px;background:#72c845;right:-155px;top:10%;animation:ambientFloat 15s ease-in-out infinite reverse}
/* Keep Unity and header above decorative layers. */
#vp-header.fr-main-header,#game-root{position:relative;z-index:2}
#game-root,#unity-container{background:transparent!important}
body.vp-dark #game-root,body.vp-dark #unity-container,html.vp-dark #game-root{background:transparent!important}
/* The black/blue stage remains the live Unity canvas itself; do not overlay the game. */
#unity-stage{position:relative;z-index:2}
.fr-leaf-field { position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: 1; }
.fr-leaf {
  --size: 11px;
  --duration: 15s;
  --delay: 0s;
  --drift: 55px;
  --opacity: .82;
  position: absolute;
  top: -10vh;
  left: var(--x, 50%);
  width: var(--size);
  height: calc(var(--size) * .58);
  border-radius: 100% 0 100% 0;
  background: linear-gradient(135deg, rgba(194,255,125,.96), rgba(97,210,58,.66) 55%, rgba(52,148,39,.42));
  border: 1px solid rgba(201,255,149,.30);
  box-shadow: 0 0 15px rgba(113,226,71,.18);
  transform: rotate(35deg);
  opacity: 0;
  animation: leafDrift var(--duration) linear infinite;
  animation-delay: var(--delay);
}
.fr-leaf:nth-child(3n) { filter: blur(.15px); }
.fr-leaf:nth-child(4n) { background: linear-gradient(135deg, rgba(166,244,92,.88), rgba(74,185,46,.50)); }
.fr-leaf:nth-child(5n) { box-shadow: 0 0 20px rgba(141,220,83,.24); }
.fr-l1{--x:1%;--size:8px;--duration:14s;--delay:-2s;--drift:42px}.fr-l2{--x:4%;--size:13px;--duration:18s;--delay:-11s;--drift:67px}
.fr-l3{--x:7%;--size:7px;--duration:12s;--delay:-6s;--drift:35px}.fr-l4{--x:10%;--size:11px;--duration:19s;--delay:-15s;--drift:72px}
.fr-l5{--x:13%;--size:9px;--duration:15s;--delay:-4s;--drift:50px}.fr-l6{--x:16%;--size:15px;--duration:20s;--delay:-13s;--drift:85px}
.fr-l7{--x:19%;--size:7px;--duration:13s;--delay:-8s;--drift:43px}.fr-l8{--x:22%;--size:12px;--duration:18s;--delay:-17s;--drift:70px}
.fr-l9{--x:25%;--size:8px;--duration:16s;--delay:-9s;--drift:60px}.fr-l10{--x:28%;--size:15px;--duration:21s;--delay:-18s;--drift:94px}
.fr-l11{--x:31%;--size:9px;--duration:15s;--delay:-7s;--drift:58px}.fr-l12{--x:34%;--size:12px;--duration:19s;--delay:-3s;--drift:76px}
.fr-l13{--x:37%;--size:7px;--duration:13s;--delay:-12s;--drift:38px}.fr-l14{--x:40%;--size:14px;--duration:22s;--delay:-20s;--drift:88px}
.fr-l15{--x:43%;--size:9px;--duration:16s;--delay:-5s;--drift:49px}.fr-l16{--x:46%;--size:11px;--duration:18s;--delay:-14s;--drift:65px}
.fr-l17{--x:49%;--size:7px;--duration:14s;--delay:-10s;--drift:40px}.fr-l18{--x:52%;--size:13px;--duration:20s;--delay:-19s;--drift:79px}
.fr-l19{--x:55%;--size:8px;--duration:15s;--delay:-1s;--drift:45px}.fr-l20{--x:58%;--size:12px;--duration:17s;--delay:-16s;--drift:74px}
.fr-l21{--x:61%;--size:9px;--duration:19s;--delay:-8s;--drift:62px}.fr-l22{--x:64%;--size:6px;--duration:12s;--delay:-5s;--drift:32px}
.fr-l23{--x:67%;--size:10px;--duration:15s;--delay:-10s;--drift:30px}.fr-l24{--x:70%;--size:7px;--duration:13s;--delay:-2s;--drift:36px}
.fr-l25{--x:73%;--size:12px;--duration:18s;--delay:-9s;--drift:65px}.fr-l26{--x:76%;--size:8px;--duration:14s;--delay:-4s;--drift:44px}
.fr-l27{--x:79%;--size:14px;--duration:21s;--delay:-16s;--drift:82px}.fr-l28{--x:82%;--size:7px;--duration:13s;--delay:-7s;--drift:34px}
.fr-l29{--x:85%;--size:11px;--duration:17s;--delay:-12s;--drift:68px}.fr-l30{--x:88%;--size:8px;--duration:15s;--delay:-3s;--drift:46px}
.fr-l31{--x:91%;--size:13px;--duration:19s;--delay:-14s;--drift:78px}.fr-l32{--x:94%;--size:7px;--duration:12s;--delay:-6s;--drift:33px}
.fr-l33{--x:97%;--size:10px;--duration:16s;--delay:-11s;--drift:56px}.fr-l34{--x:99%;--size:6px;--duration:13s;--delay:-2s;--drift:29px}
.fr-l35{--x:6%;--size:10px;--duration:17s;--delay:-13s;--drift:74px}.fr-l36{--x:14%;--size:7px;--duration:14s;--delay:-1s;--drift:39px}
.fr-l37{--x:23%;--size:13px;--duration:20s;--delay:-18s;--drift:88px}.fr-l38{--x:32%;--size:8px;--duration:15s;--delay:-8s;--drift:47px}
.fr-l39{--x:41%;--size:11px;--duration:18s;--delay:-15s;--drift:70px}.fr-l40{--x:50%;--size:7px;--duration:13s;--delay:-5s;--drift:37px}
.fr-l41{--x:59%;--size:14px;--duration:22s;--delay:-20s;--drift:95px}.fr-l42{--x:68%;--size:8px;--duration:15s;--delay:-10s;--drift:49px}
.fr-l43{--x:77%;--size:12px;--duration:19s;--delay:-17s;--drift:79px}.fr-l44{--x:86%;--size:7px;--duration:14s;--delay:-4s;--drift:35px}
.fr-l45{--x:93%;--size:11px;--duration:17s;--delay:-12s;--drift:62px}.fr-l46{--x:36%;--size:6px;--duration:12s;--delay:-9s;--drift:31px}
.fr-l47{--x:72%;--size:9px;--duration:16s;--delay:-6s;--drift:53px}.fr-l48{--x:18%;--size:12px;--duration:18s;--delay:-14s;--drift:76px}


@keyframes leafDrift {
  0% { transform: translate3d(0,-10vh,0) rotate(15deg); opacity:0; }
  8% { opacity:var(--opacity); }
  48% { transform: translate3d(var(--drift),52vh,0) rotate(205deg); opacity:.66; }
  100% { transform: translate3d(calc(var(--drift) * -.55),110vh,0) rotate(410deg); opacity:0; }
}
@keyframes ambientFloat { 0%,100% { transform:translate3d(0,0,0) scale(1); } 50% { transform:translate3d(22px,-20px,0) scale(1.05); } }

.fr-leaf-field{z-index:1!important;opacity:.30!important;pointer-events:none!important}
.fr-leaf{opacity:.55!important;filter:saturate(.72)!important;box-shadow:none!important}
@media(prefers-reduced-motion:reduce){.fr-leaf,.fr-ambient{animation:none!important}.fr-leaf-field{display:none}}
