.fx-root{background:var(--b-bg);color:var(--b-text);word-break:keep-all;overflow-wrap:anywhere}.fx-title{font-family:var(--b-font-title)}.fx-scene{position:absolute;inset:0;overflow:hidden;background:radial-gradient(120% 70% at 50% 18%,#1a2133 0,#0b0e16 55%,var(--b-bg) 100%)}.fx-scene img.fx-media,.fx-scene video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.fx-vignette{inset:0;background:radial-gradient(130% 90% at 50% 45%,transparent 45%,rgba(0,0,0,.85) 100%)}.fx-grain,.fx-vignette{position:absolute;pointer-events:none}.fx-grain{inset:-50%;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:fx-grain 1.2s steps(6) infinite}@keyframes fx-grain{0%{transform:translate(0)}33%{transform:translate(-3%,2%)}66%{transform:translate(2%,-3%)}to{transform:translate(0)}}.fx-moon{position:absolute;top:9%;right:16%;width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#f3f1ea 0,var(--b-moon) 60%,#5b6b88 100%);box-shadow:0 0 40px 10px rgba(159,180,214,.25)}.fx-water{position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(180deg,#0d1422,#05070b);overflow:hidden}.fx-water:before{content:"";position:absolute;inset:0 -50%;background:repeating-linear-gradient(180deg,transparent 0 9px,rgba(159,180,214,.08) 9px 10px);animation:fx-drift 9s linear infinite}@keyframes fx-drift{0%{transform:translateX(0)}to{transform:translateX(12%)}}.fx-moonpath{position:absolute;top:0;right:14%;width:70px;height:100%;background:linear-gradient(180deg,rgba(159,180,214,.35),transparent 85%);filter:blur(6px);animation:fx-shimmer 3.2s ease-in-out infinite}@keyframes fx-shimmer{0%,to{opacity:.55;transform:scaleX(1)}50%{opacity:.9;transform:scaleX(1.25)}}.fx-lantern{position:absolute;width:16px;height:22px;border-radius:5px;background:radial-gradient(circle at 50% 45%,#fff3d6 0,var(--b-accent) 55%,#7a4410 100%);box-shadow:0 0 30px 12px rgba(227,162,74,.45),0 0 120px 40px rgba(227,162,74,.18);animation:fx-flicker 2.6s ease-in-out infinite}@keyframes fx-flicker{0%,to{opacity:1}40%{opacity:.82}55%{opacity:.95}70%{opacity:.78}}.fx-glow{position:absolute;left:50%;top:46%;width:360px;height:360px;margin:-180px 0 0 -180px;border-radius:50%;background:radial-gradient(circle,rgba(227,162,74,.38) 0,rgba(227,162,74,.08) 45%,transparent 70%);animation:fx-breathe 4s ease-in-out infinite}@keyframes fx-breathe{0%,to{transform:scale(.92);opacity:.85}50%{transform:scale(1.06);opacity:1}}.fx-mote{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--b-accent);box-shadow:0 0 8px 2px rgba(227,162,74,.6);animation:fx-rise linear infinite}@keyframes fx-rise{0%{transform:translateY(0);opacity:0}15%{opacity:1}to{transform:translateY(-260px);opacity:0}}.fx-bob{animation:fx-bob 5s ease-in-out infinite}@keyframes fx-bob{0%,to{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(5px) rotate(.6deg)}}.fx-reflect{position:absolute;bottom:18%;width:26px;height:90px;border-radius:50%;filter:blur(7px)}.fx-reflect.a{left:30%;background:rgba(227,162,74,.7);animation:fx-near-a 8s ease-in-out infinite}.fx-reflect.b{right:30%;background:rgba(159,180,214,.6);animation:fx-near-b 8s ease-in-out infinite}@keyframes fx-near-a{0%,to{transform:translateX(0)}50%{transform:translateX(34px)}}@keyframes fx-near-b{0%,to{transform:translateX(0)}50%{transform:translateX(-34px)}}.fx-fade{animation:fx-fade .9s ease-out both}@keyframes fx-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.fx-caption{text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 18px rgba(0,0,0,.8)}.fx-bar{animation:fx-bar var(--fx-dur,6s) cubic-bezier(.3,.6,.4,1) forwards}@keyframes fx-bar{0%{width:4%}to{width:100%}}.fx-talisman{background:linear-gradient(180deg,rgba(227,162,74,.08),transparent 30%),var(--b-panel);border:1px solid rgba(227,162,74,.5);box-shadow:inset 0 0 0 5px var(--b-panel),inset 0 0 0 6px rgba(227,162,74,.25),0 20px 50px rgba(0,0,0,.6)}.fx-sheet{animation:fx-up .28s ease-out both}@keyframes fx-up{0%{transform:translateY(100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){.fx-bob,.fx-fade,.fx-glow,.fx-grain,.fx-lantern,.fx-moonpath,.fx-mote,.fx-reflect,.fx-sheet,.fx-water:before{animation:none!important}}