:root{--sky-top:#010810;--sky-mid:#03142a;--sky-bot:#163a5e;--mtn-back:#0b1e38;--mtn-front:#06111f;--forest-back:#04090e;--forest-front:#020507;--ground:#01030a;--glass-bg:rgba(4,14,30,.72);--glass-border:hsla(0,0%,100%,.08);--text-main:#e8f0f8;--text-muted:rgba(148,178,210,.65);--accent:#f97316;--accent-2:#ea580c;--shadow-str:0.75;--card-glow:rgba(249,115,22,.18)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}.fc-login-body{background:var(--sky-top);color:var(--text-main);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,system-ui,sans-serif;min-height:100vh;overflow:hidden}.fc-scene{height:100%;inset:0;position:fixed;width:100%;z-index:0}.fc-city-dots circle{animation:cityFlicker 3s ease-in-out infinite alternate}.fc-city-dots circle:nth-child(odd){animation-delay:-1s;animation-duration:2.4s}.fc-city-dots circle:nth-child(3n){animation-delay:-.5s;animation-duration:4.1s}.fc-city-dots circle:nth-child(5n){animation-duration:3.7s}@keyframes cityFlicker{0%{opacity:.3}40%{opacity:1}70%{opacity:.6}to{opacity:.9}}.fc-star{animation:starTwinkle 4s ease-in-out infinite alternate}.fc-star.s1{animation-duration:3.2s}.fc-star.s2{animation-delay:-1.5s;animation-duration:5.1s}.fc-star.s3{animation-delay:-2.2s;animation-duration:4.4s}.fc-star.s4{animation-delay:-.8s;animation-duration:6s}.fc-star.s5{animation-delay:-3.1s;animation-duration:3.8s}@keyframes starTwinkle{0%{opacity:.4}45%{opacity:1}to{opacity:.55}}.fc-cloud{animation:cloudDrift linear infinite}@keyframes cloudDrift{0%{transform:translateX(-250px)}to{transform:translateX(1700px)}}.fc-rain-line{animation:rainFall linear infinite;opacity:.55}@keyframes rainFall{0%{transform:translateY(-120px) translateX(0)}to{transform:translateY(960px) translateX(80px)}}.fc-snowflake{animation:snowFall linear infinite;opacity:.7}@keyframes snowFall{0%{transform:translateY(-60px) translateX(0) rotate(0deg)}33%{transform:translateY(300px) translateX(12px) rotate(120deg)}66%{transform:translateY(620px) translateX(-8px) rotate(240deg)}to{transform:translateY(960px) translateX(15px) rotate(1turn)}}.fc-lightning-bolt{animation:boltFlash .15s ease-out forwards}@keyframes boltFlash{0%{opacity:0}10%{opacity:1}40%{opacity:.6}60%{opacity:.9}to{opacity:0}}.fc-lightning-screen{animation:screenFlash .2s ease-out forwards;background:hsla(0,0%,100%,.06);inset:0;pointer-events:none;position:fixed;z-index:100}@keyframes screenFlash{0%{opacity:1}to{opacity:0}}#sun-group{animation:sunPulse 5s ease-in-out infinite}@keyframes sunPulse{0%,to{filter:drop-shadow(0 0 20px rgba(251,191,36,.5))}50%{filter:drop-shadow(0 0 35px rgba(251,191,36,.75))}}#moon-group{animation:moonDrift 12s ease-in-out infinite}@keyframes moonDrift{0%,to{transform:translate(0)}50%{transform:translateY(-10px)}}.fc-wrap{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:2rem 1rem;position:relative;z-index:10}.fc-card{animation:cardAppear .7s cubic-bezier(.16,1,.3,1) both;backdrop-filter:blur(32px) saturate(1.5);-webkit-backdrop-filter:blur(32px) saturate(1.5);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:24px;box-shadow:0 0 0 1px hsla(0,0%,100%,.03),0 32px 80px rgba(0,0,0,calc(var(--shadow-str)*.6)),inset 0 1px 0 hsla(0,0%,100%,.06),0 0 80px -20px var(--card-glow);overflow:hidden;width:clamp(320px,90vw,420px)}@keyframes cardAppear{0%{opacity:0;transform:translateY(28px) scale(.965)}to{opacity:1;transform:translateY(0) scale(1)}}.fc-card-header{border-bottom:1px solid hsla(0,0%,100%,.06);padding:2.25rem 2rem 1.75rem;text-align:center}.fc-logo{height:36px;width:auto}.fc-title{color:var(--text-main);font-size:1.35rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.35rem}.fc-subtitle{color:var(--text-muted);font-size:.82rem;letter-spacing:.01em;transition:color 1.5s ease}.fc-card-body{padding:1.75rem 2rem}.fc-alert{align-items:flex-start;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.22);border-radius:11px;color:#fca5a5;display:flex;font-size:.85rem;gap:.5rem;line-height:1.4;margin-bottom:1.25rem;padding:.75rem 1rem}.fc-alert-icon{flex-shrink:0}.fc-field{margin-bottom:1rem;position:relative}.fc-input{-webkit-appearance:none;background:hsla(0,0%,100%,.055);border:1px solid hsla(0,0%,100%,.09);border-radius:13px;color:var(--text-main);font-family:inherit;font-size:.92rem;outline:none;padding:.875rem 1.05rem;transition:border-color .18s,box-shadow .18s,background .18s;width:100%}.fc-input::placeholder{color:rgba(148,178,210,.45)}.fc-input:focus{background:hsla(0,0%,100%,.08);border-color:rgba(249,115,22,.45);box-shadow:0 0 0 3px rgba(249,115,22,.12)}.fc-input.is-invalid{border-color:rgba(239,68,68,.5);box-shadow:0 0 0 3px rgba(239,68,68,.1)}.fc-invalid-msg{color:#fca5a5;display:none;font-size:.78rem;margin-top:.3rem;padding-left:.25rem}.fc-invalid-msg.visible{display:block}.fc-meta-row{justify-content:space-between;margin-bottom:1.25rem}.fc-check-label,.fc-meta-row{align-items:center;display:flex;gap:.5rem}.fc-check-label{color:var(--text-muted);cursor:pointer;font-size:.84rem;user-select:none}.fc-check-label input[type=checkbox]{accent-color:var(--accent);flex-shrink:0;height:1rem;width:1rem}.fc-btn{background:linear-gradient(140deg,var(--accent) 0,var(--accent-2) 100%);border:none;border-radius:13px;box-shadow:0 4px 22px rgba(249,115,22,.38);color:#fff;cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:600;letter-spacing:.01em;overflow:hidden;padding:.9rem;position:relative;transition:transform .15s ease,box-shadow .15s ease,background .3s ease;width:100%}.fc-btn:hover{box-shadow:0 7px 30px rgba(249,115,22,.52);transform:translateY(-1px)}.fc-btn:active{transform:translateY(0)}.fc-btn:disabled{cursor:not-allowed;opacity:.75;transform:none}.fc-btn.loading{background:linear-gradient(140deg,#64748b,#475569);box-shadow:none}.fc-btn.success{background:linear-gradient(140deg,#16a34a,#15803d);box-shadow:0 4px 22px rgba(22,163,74,.38)}.fc-sep{align-items:center;color:rgba(148,178,210,.4);display:flex;font-size:.75rem;gap:.75rem;letter-spacing:.06em;margin:1.25rem 0}.fc-sep:after,.fc-sep:before{background:hsla(0,0%,100%,.07);content:"";flex:1;height:1px}.g-wrap{display:flex;justify-content:center}.fc-label{color:var(--text-muted);display:block;font-size:.78rem;font-weight:600;letter-spacing:.07em;margin-bottom:.45rem;text-transform:uppercase}.fc-providers{color:var(--text-muted);font-size:.84rem;margin-bottom:1.1rem}.fc-providers a{color:#fb923c;text-decoration:none}.fc-providers a:hover{text-decoration:underline}.fc-cancel{color:var(--text-muted);display:block;font-size:.84rem;margin-top:1.1rem;text-align:center;text-decoration:none;transition:color .15s}.fc-cancel:hover{color:var(--accent)}.fc-status{align-items:center;border-top:1px solid hsla(0,0%,100%,.05);color:rgba(148,178,210,.5);display:flex;flex-wrap:wrap;font-size:.72rem;gap:.25rem;justify-content:center;letter-spacing:.02em;padding:.65rem 1.5rem .9rem}.fc-dot{opacity:.4}body.weather-rain .fc-card,body.weather-storm .fc-card{--glass-bg:rgba(2,10,22,.78)}body.weather-snow .fc-card{--glass-bg:rgba(8,18,35,.72)}body.weather-fog .fc-card{--glass-bg:rgba(15,22,38,.65);backdrop-filter:blur(40px) saturate(1.2)}@media (max-width:480px){.fc-card-header{padding:1.75rem 1.5rem 1.25rem}.fc-card-body{padding:1.5rem}.fc-title{font-size:1.2rem}.fc-logo{height:30px}.fc-status{font-size:.68rem;gap:.2rem;padding:.5rem 1rem .75rem}.fc-meta-row{align-items:flex-start;flex-direction:column;gap:.6rem}}@media (max-width:360px){.fc-card{border-radius:18px}.fc-input{padding:.75rem .9rem}}@media (prefers-reduced-motion:reduce){#moon-group,#sun-group,.fc-card,.fc-city-dots circle,.fc-cloud,.fc-rain-line,.fc-snowflake,.fc-star{animation:none!important;transition:none!important}.fc-card{opacity:1;transform:none}}.fc-pumpkin-face,.fc-pumpkin-glow{animation:pumpkinFlicker 1.6s ease-in-out infinite}@keyframes pumpkinFlicker{0%,to{opacity:1}20%{opacity:.7}35%{opacity:.95}55%{opacity:.6}75%{opacity:.9}}.fc-skeleton{animation:skeletonRun 18s linear 3s infinite both}@keyframes skeletonRun{0%{transform:translate(-200px)}55%,to{transform:translate(1640px)}}.fc-skel-bounce{animation:skeletonBounce .2s ease-in-out infinite alternate}@keyframes skeletonBounce{0%{transform:translate(0)}to{transform:translateY(-4px)}}.fc-skel-limb{transform-box:fill-box;transform-origin:0 0}.fc-skel-arm{transform-origin:33% 0}.fc-skel-limb-a{animation:skeletonLimb .4s ease-in-out infinite alternate}.fc-skel-limb-b{animation:skeletonLimb .4s ease-in-out infinite alternate-reverse}@keyframes skeletonLimb{0%{transform:rotate(35deg)}to{transform:rotate(-35deg)}}@media (prefers-reduced-motion:reduce){.fc-skeleton{display:none}}#seasonal-layer{pointer-events:none}.fc-witch{animation:witchFly 22s linear 1s infinite both}.fc-witch-reverse{animation-name:witchFlyReverse}@keyframes witchFly{0%{transform:translate(1700px)}60%,to{transform:translate(-300px,-60px)}}@keyframes witchFlyReverse{0%{transform:translate(-300px,-40px)}60%,to{transform:translate(1700px,20px)}}.fc-witch-bob{animation:witchBob 2.4s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}@keyframes witchBob{0%{transform:translateY(-14px) rotate(-3deg)}to{transform:translateY(14px) rotate(3deg)}}.fc-ribbon{animation:ribbonFlutter 1.3s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 0}@keyframes ribbonFlutter{0%{transform:rotate(-14deg) skewY(-4deg)}to{transform:rotate(10deg) skewY(4deg)}}@media (prefers-reduced-motion:reduce){.fc-witch{display:none}#seasonal-layer *{animation:none!important}}.fc-light{animation:lightBlink 1.8s step-end infinite}@keyframes lightBlink{0%,to{opacity:1}50%{opacity:.25}}.fc-ornament{animation:ornamentSwing 3.2s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 0}@keyframes ornamentSwing{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}.fc-tree-star{animation:starGlow 2s ease-in-out infinite alternate}@keyframes starGlow{0%{opacity:.75}to{opacity:1}}.fc-rudolph-glow{animation:noseGlow 1.4s ease-in-out infinite alternate}@keyframes noseGlow{0%{opacity:.3}to{opacity:1}}.fc-santa{animation:santaFly 26s linear 1.5s infinite both}@keyframes santaFly{0%{transform:translate(-450px,70px)}62%,to{transform:translate(1800px,-50px)}}.fc-santa-bob{animation:santaBob 2.8s ease-in-out infinite alternate}@keyframes santaBob{0%{transform:translateY(-12px)}to{transform:translateY(12px)}}.fc-sparkle{animation:sparkleTwinkle .9s ease-in-out infinite alternate}@keyframes sparkleTwinkle{0%{opacity:.1}to{opacity:1}}@media (prefers-reduced-motion:reduce){.fc-santa{display:none}}.fc-rocket{animation:rocketRise 5s ease-out infinite both}@keyframes rocketRise{0%{opacity:1;transform:translateY(var(--rise))}28%{opacity:1;transform:translateY(0)}30%,to{opacity:0;transform:translateY(0)}}.fc-burst{animation:fireworkBurst 5s ease-out infinite both;transform-box:fill-box;transform-origin:center}@keyframes fireworkBurst{0%,28%{opacity:0;transform:scale(.05)}31%{opacity:1;transform:scale(.3)}65%{opacity:.9;transform:scale(1)}85%,to{opacity:0;transform:scale(1.12)}}.fc-pf{animation:pfPulse 3s ease-in-out infinite alternate}@keyframes pfPulse{0%{opacity:.8}to{opacity:1}}.fc-bubble{animation:bubbleRise 1.8s linear infinite}@keyframes bubbleRise{0%{opacity:.9;transform:translateY(0)}to{opacity:0;transform:translateY(-24px)}}.fc-cork{animation:corkPop 7s ease-out 1s infinite both;transform-box:fill-box;transform-origin:center}@keyframes corkPop{0%,12%{opacity:1;transform:translate(0) rotate(0)}40%{opacity:1;transform:translate(-30px,-300px) rotate(2turn)}46%{opacity:0;transform:translate(-36px,-330px) rotate(800deg)}47%,to{opacity:0;transform:translate(0) rotate(0)}}.fc-foam{animation:foamBurst 7s ease-out 1s infinite both;transform-box:fill-box;transform-origin:50% 100%}@keyframes foamBurst{0%,12%{opacity:0;transform:scale(0)}16%{opacity:1;transform:scale(1.4)}40%{opacity:.9;transform:scale(1)}55%,to{opacity:0;transform:scale(.6)}}@media (prefers-reduced-motion:reduce){.fc-rocket{display:none}.fc-burst{opacity:1;transform:none}}.fc-bunny{animation:bunnyRun 18s linear 1s infinite both}@keyframes bunnyRun{0%{transform:translate(-150px)}65%,to{transform:translate(1250px)}}.fc-bunny-hop{animation:bunnyHop .7s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}@keyframes bunnyHop{0%,to{transform:translateY(0) scale(1.08,.92)}50%{transform:translateY(-26px) scale(.95,1.05)}}@media (prefers-reduced-motion:reduce){.fc-bunny{display:none}}.fc-flame{animation:flameFlicker .6s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 100%}.fc-flame-2{animation-delay:-.2s;animation-duration:.45s}.fc-flame-3{animation-delay:-.1s;animation-duration:.35s}@keyframes flameFlicker{0%{opacity:.95;transform:scale(1) skewX(0)}50%{opacity:1;transform:scale(.94,1.1) skewX(4deg)}to{opacity:.85;transform:scale(1.05,.92) skewX(-4deg)}}.fc-fire-glow{animation:fireGlow .9s ease-in-out infinite alternate}@keyframes fireGlow{0%{opacity:.6}to{opacity:1}}.fc-spark{animation:sparkRise 2.5s ease-out infinite}@keyframes sparkRise{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--dx),-240px)}}.fc-effigy{animation:effigySway 3s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 100%}@keyframes effigySway{0%{transform:rotate(-1.5deg)}to{transform:rotate(1.5deg)}}@media (prefers-reduced-motion:reduce){.fc-spark{display:none}}.fc-procession{animation:processionWalk 26s linear 1s infinite both}@keyframes processionWalk{0%{transform:translate(-150px)}70%,to{transform:translate(1300px)}}.fc-walker{animation:walkerBob .6s ease-in-out infinite alternate}@keyframes walkerBob{0%{transform:translate(0)}to{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.fc-procession{transform:translate(560px)}}.fc-heart{animation:heartRise 10s ease-in infinite}@keyframes heartRise{0%{opacity:0;transform:translate(0)}10%{opacity:1}80%{opacity:.9}to{opacity:0;transform:translate(var(--dx),-720px)}}.fc-heart-beat{animation:heartBeat 1.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes heartBeat{0%,40%,to{transform:scale(1)}20%{transform:scale(1.15)}}@media (prefers-reduced-motion:reduce){.fc-heart{transform:translateY(-300px)}}.fc-april-fools .fc-scene{animation:sceneFlip 1.6s cubic-bezier(.6,-.3,.4,1.3) 1.5s both}@keyframes sceneFlip{0%{transform:rotate(0)}to{transform:rotate(180deg)}}@media (prefers-reduced-motion:reduce){.fc-april-fools .fc-scene{animation:none;transform:rotate(180deg)}}.fc-cat{animation:catWalk 24s linear 1s infinite both}@keyframes catWalk{0%{transform:translate(1100px)}70%,to{transform:translate(-150px)}}.fc-cat-leg{transform-box:fill-box;transform-origin:50% 0}.fc-cat-leg-a{animation:catLeg .45s ease-in-out infinite alternate}.fc-cat-leg-b{animation:catLeg .45s ease-in-out infinite alternate-reverse}@keyframes catLeg{0%{transform:rotate(25deg)}to{transform:rotate(-25deg)}}.fc-crow-head{animation:crowLook 4s ease-in-out infinite;transform-box:fill-box;transform-origin:70% 90%}@keyframes crowLook{0%,40%,to{transform:rotate(0)}50%,85%{transform:rotate(-14deg)}}.fc-crow-beak{animation:crowCaw 4s step-end infinite;transform-box:fill-box;transform-origin:0 50%}@keyframes crowCaw{0%,60%,66%,to{transform:rotate(0)}62%,64%{transform:rotate(18deg)}}@media (prefers-reduced-motion:reduce){.fc-cat{transform:translate(400px)}}.fc-bit{animation:bitTwinkle 3s ease-in-out infinite alternate}@keyframes bitTwinkle{0%{opacity:.1}to{opacity:.75}}.fc-cursor{animation:cursorBlink 1s step-end infinite}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}