.welcome{position:fixed;inset:0;z-index:1000;pointer-events:none;overflow:hidden;animation:welcome-clear 0s 4s forwards}
.welcome-half{position:absolute;inset:0;background:#f6efe3 url('/assets/welcome-bow.webp') center/cover no-repeat;transition:transform 3.4s cubic-bezier(.22,.61,.36,1);will-change:transform}
.welcome-left{clip-path:inset(0 50% 0 0)}
.welcome-right{clip-path:inset(0 0 0 50%)}
.welcome-mark{position:absolute;top:3%;bottom:auto;left:50%;transform:translateX(-50%);width:min(clamp(230px,38vw,320px),30vh);transition:opacity .8s ease;}
.welcome-mark img{display:block;width:100%;height:auto;clip-path:ellipse(48% 46.5% at 49.5% 49%)}
.welcome.is-opening .welcome-left{transform:translateX(-50%)}
.welcome.is-opening .welcome-right{transform:translateX(50%)}
.welcome.is-opening .welcome-mark{opacity:0}
@keyframes welcome-clear{to{visibility:hidden}}
.welcome-glitter{position:fixed;inset:0;z-index:1001;pointer-events:none;overflow:hidden;animation:glitter-fade 5s linear forwards}
.welcome-spark{position:absolute;width:var(--spark-size);height:var(--spark-size);border-radius:50%;background:#fffbea;box-shadow:0 0 2px 1px #b98735,0 0 8px 2px #ecc779;opacity:0;animation:spark-shimmer 2.6s ease-in-out var(--spark-delay) infinite}
@keyframes spark-shimmer{0%,100%{opacity:.2;transform:translateY(5px) scale(.65)}50%{opacity:1;transform:translateY(-5px) scale(1)}}
@keyframes glitter-fade{0%{opacity:0}8%{opacity:.95}60%{opacity:.95}80%{opacity:.4}100%{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.welcome,.welcome-glitter{display:none}}
@media(min-width:851px){
 .welcome-half{background-image:url('/assets/welcome-bow-desktop-full.png?v=3');background-size:100% 100%;background-position:center}
 .welcome-mark{top:2%;width:min(460px,34vh)}
}
