/* Night landscape, shared by every flelk.com page (except Yuki).
   Load after golden.css + winter.css; scripts in order: scene.js, winter.js, landscape.js.
   landscape.js draws the layers; this file gives them their sky, sizes and animations. */
.aurora { position:absolute; inset:0; width:100%; height:100%; display:block; filter:blur(3px) saturate(1.15); mix-blend-mode:screen; opacity:.9;
  -webkit-mask:linear-gradient(180deg, #000 0%, #000 50%, transparent 72%); mask:linear-gradient(180deg, #000 0%, #000 50%, transparent 72%); }
/* Night landscape (landscape.js): layered mountains, forests, mist and foreground pines */
body { background:
    radial-gradient(55% 40% at 82% 10%, rgba(140,172,240,.22), transparent 70%),
    radial-gradient(120% 40% at 50% 58%, rgba(84,140,210,.22), transparent 70%),
    linear-gradient(180deg, #01040d 0%, #040b21 26%, #0a1839 48%, #183262 66%, #2a4a82 80%, #1b3263 100%) fixed;
  background-color:#040b21; }
.land { position:absolute; display:block; pointer-events:none; will-change:transform; }
.land > svg { position:absolute; inset:0; width:100%; height:100%; display:block; }
.mist { position:absolute; inset:0 -30%; pointer-events:none; filter:blur(16px);
  background:radial-gradient(28% 55% at 14% 62%, rgba(186,208,246,.6), transparent 70%), radial-gradient(24% 48% at 42% 55%, rgba(186,208,246,.45), transparent 70%),
             radial-gradient(30% 58% at 72% 62%, rgba(186,208,246,.55), transparent 70%), radial-gradient(22% 45% at 94% 55%, rgba(186,208,246,.4), transparent 70%),
             linear-gradient(180deg, transparent 10%, rgba(150,180,230,.35) 60%, transparent);
  animation:mist 80s ease-in-out infinite alternate; }
.mist.slow { animation-duration:120s; animation-direction:alternate-reverse; }
@keyframes mist { to { transform:translateX(14%); } }
.cabin { position:absolute; width:80px; will-change:transform; }
.cabin svg { display:block; width:80px; height:auto; position:relative; }
.cabin .win { fill:#ffcf7a; filter:drop-shadow(0 0 4px #ffb347) drop-shadow(0 0 10px rgba(255,170,70,.8)); animation:flicker 5s ease-in-out infinite; }
@keyframes flicker { 40% { fill:#ffd88f; } 45% { fill:#ffc266; } 50% { fill:#ffd27d; } }
.cabin .spill { position:absolute; left:-40px; right:-40px; bottom:-12px; height:40px; border-radius:50%;
  background:radial-gradient(closest-side, rgba(255,185,90,.35), transparent); }
.cabin .smoke { position:absolute; left:61px; top:-2px; }
.cabin .smoke b { position:absolute; left:-6px; top:0; width:14px; height:14px; border-radius:50%; background:rgba(215,226,243,.75); filter:blur(3.5px);
  animation:smoke 6s ease-out infinite; animation-delay:calc(var(--k) * -1.5s); }
.cabin .smoke b:nth-child(1) { --k:0; } .cabin .smoke b:nth-child(2) { --k:1; } .cabin .smoke b:nth-child(3) { --k:2; } .cabin .smoke b:nth-child(4) { --k:3; }
@keyframes smoke { from { transform:translate(0, 0) scale(.5); opacity:0; } 15% { opacity:.8; } to { transform:translate(26px, -70px) scale(2.6); opacity:0; } }
.cursor-glow { position:fixed; left:-260px; top:-260px; width:520px; height:520px; border-radius:50%; pointer-events:none; z-index:0; opacity:0; transition:opacity .4s;
  background:radial-gradient(closest-side, rgba(159,211,255,.10), rgba(159,211,255,.04) 50%, transparent); mix-blend-mode:screen; will-change:transform; }
