/* Scoped to the optional greeting; existing layout and input remain available. */
.season-welcome{position:fixed;inset:0;z-index:65;display:grid;place-items:center;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% 42%,#42244ffa,#170d25fa 70%);color:#fff5e8;animation:sw-reveal .45s ease-out both;isolation:isolate}
.season-welcome__art{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.season-welcome__art i{display:block;position:absolute}
.season-welcome__moon{width:clamp(150px,24vw,290px);aspect-ratio:1;right:12%;top:8%;background:url('/seasonal-moon.svg') center/contain no-repeat;opacity:.5;filter:drop-shadow(0 0 35px #f0c18b50);animation:sw-moon 3.4s ease-out both}
.season-welcome__halo{width:min(75vw,640px);aspect-ratio:1;left:50%;top:40%;border-radius:50%;background:radial-gradient(circle,#ed873e40,transparent 65%);transform:translate(-50%,-50%);animation:sw-halo 3.4s ease-out both}
.season-welcome__pumpkin{width:clamp(120px,23vw,200px);aspect-ratio:1;left:50%;top:calc(50% - 220px);background:url('/seasonal-pumpkin.svg') center/contain no-repeat;filter:drop-shadow(0 0 24px #f69b4d70);animation:sw-pumpkin 3.4s cubic-bezier(.16,1,.3,1) both}
.season-welcome__web{width:clamp(120px,24vw,280px);aspect-ratio:1;left:0;top:0;background:url('/seasonal-web.svg') center/contain no-repeat;opacity:.45}
.season-welcome__fog{inset:auto -30% -90px;height:42%;background:radial-gradient(ellipse at 20% 85%,#baa2d54d,transparent 50%),radial-gradient(ellipse at 75% 95%,#e9a96355,transparent 48%);animation:sw-fog 3.4s ease-out both}
.season-welcome__bat{width:70px;height:42px;left:0;top:0;opacity:0;animation:sw-flight 2.7s cubic-bezier(.25,.45,.55,.9) .15s both}
.season-welcome__bat span{display:block;width:100%;height:100%;background:url('/seasonal-bat.svg') center/contain no-repeat;filter:brightness(.6);animation:season-flap .22s ease-in-out infinite}
.season-welcome__bat--2{width:45px;animation-delay:.4s;top:16%}
.season-welcome__bat--3{width:90px;animation-delay:.65s;top:-12%}
.season-welcome__bat--4{width:38px;animation-delay:.3s;top:38%}
.season-welcome__bat--5{width:54px;animation-delay:.75s;top:20%}
.season-welcome__copy{position:relative;max-width:580px;width:calc(100% - 40px);margin-top:160px;text-align:center;animation:sw-copy .6s cubic-bezier(.16,1,.3,1) .22s both}
.season-welcome__brand{display:inline-block;color:#ffd0a0;font-size:.68rem;font-weight:750;letter-spacing:.18em;margin-bottom:16px}
.season-welcome__greeting h2{margin:0;font-size:clamp(1.9rem,5vw,3.3rem);font-weight:750;letter-spacing:-.04em;line-height:1.12;color:#fff5e8;text-shadow:0 4px 24px #13081b80}
.season-welcome__name{font-size:clamp(1.1rem,3vw,1.5rem);line-height:1.3;color:#ffc078;margin:10px 0 0;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.season-welcome__message{font-size:.86rem;color:#e8d5ef;line-height:1.5;margin:18px 0 24px}
.season-welcome__progress{display:block;width:104px;height:3px;margin:auto;background:#ffffff1a;border-radius:99px;overflow:hidden}
.season-welcome__progress i{display:block;width:100%;height:100%;background:#ffc078;transform-origin:left;animation:sw-progress 3s linear both}
.season-welcome__skip{position:absolute;top:max(24px,env(safe-area-inset-top));right:max(24px,env(safe-area-inset-right));pointer-events:auto;min-height:44px;padding:10px 18px;border-radius:99px;border:1px solid #b897c0;background:#281831;color:#fff5e8;font:inherit;font-size:.82rem;cursor:pointer}
.season-welcome__skip:hover{background:#493050}.season-welcome__skip:focus-visible{outline:3px solid #ffc078;outline-offset:4px}
.season-welcome.is-leaving{animation:sw-leave .4s ease-in both}.season-welcome.is-leaving .season-welcome__skip{pointer-events:none}
@keyframes sw-reveal{from{opacity:0}to{opacity:1}}
@keyframes sw-leave{to{opacity:0}}
@keyframes sw-copy{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes sw-pumpkin{0%{opacity:0;transform:translate(-50%,30px) scale(.65) rotate(-14deg)}25%{opacity:1;transform:translate(-50%,0) scale(1.05) rotate(3deg)}60%{transform:translate(-50%,-8px) scale(1) rotate(-2deg)}100%{opacity:1;transform:translate(-50%,0) scale(1) rotate(1deg)}}
@keyframes sw-moon{from{opacity:0;transform:translate(25px,-20px) rotate(-10deg)}to{opacity:.5;transform:translate(0,0) rotate(0)}}
@keyframes sw-halo{from{opacity:0;transform:translate(-50%,-50%) scale(.6)}to{opacity:1;transform:translate(-50%,-50%) scale(1.3)}}
@keyframes sw-fog{from{transform:translateX(-5%)}to{transform:translateX(5%)}}
@keyframes sw-flight{0%{opacity:0;transform:translate(-15vw,70vh) rotate(-20deg)}12%{opacity:.85}30%{transform:translate(20vw,35vh) rotate(14deg)}50%{transform:translate(48vw,23vh) rotate(-12deg)}70%{transform:translate(70vw,40vh) rotate(15deg)}90%{opacity:.85}100%{opacity:0;transform:translate(115vw,8vh) rotate(-16deg)}}
@keyframes sw-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:719px){.season-welcome__moon{right:-30px;top:10%}.season-welcome__pumpkin{top:calc(50% - 150px)}.season-welcome__copy{margin-top:125px}.season-welcome__brand{font-size:.58rem;letter-spacing:.13em}.season-welcome__bat--3,.season-welcome__bat--5{display:none}.season-welcome__skip{right:16px;top:max(16px,env(safe-area-inset-top))}}
@media(max-height:540px){.season-welcome__pumpkin{width:86px;top:16px}.season-welcome__copy{margin-top:80px}.season-welcome__brand{margin-bottom:8px}.season-welcome__message{margin:10px 0}.season-welcome__moon{top:-50px}}
@media(prefers-reduced-motion:reduce){.season-welcome{display:none}.season-welcome,.season-welcome *{animation:none!important}}
