/* Welcome after unlocking (welcome-splash.js): big waving Strippi, the letters fly out of him into "Strippi.",
   on leaving the word turns into drifting particles. Only transform and opacity are animated, so it stays smooth on phones. */
#welcome-splash{position:fixed;inset:0;z-index:200;display:grid;place-items:center;cursor:pointer;
 background:radial-gradient(700px 500px at 50% 45%,rgba(217,164,65,.14),transparent 65%),var(--n-bg,#082326);animation:ws-in .5s ease-out both}
html:not(.night) #welcome-splash{background:radial-gradient(700px 500px at 50% 45%,rgba(19,86,90,.12),transparent 65%),#f6f0e4}
#welcome-splash.leaving{animation:ws-out .75s cubic-bezier(.4,0,.2,1) .15s forwards;pointer-events:none}
.ws-stage{display:grid;justify-items:center;gap:12px}
.ws-float{animation:ws-hover 3.2s ease-in-out .9s infinite;will-change:transform}
.ws-bot{display:block;width:190px;height:190px;animation:ws-pop .9s cubic-bezier(.16,1,.3,1) both;will-change:transform,opacity}
#welcome-splash.leaving .ws-float{animation:ws-away .7s cubic-bezier(.55,0,.75,.3) forwards}
.ws-word{display:flex;font-weight:800;font-size:clamp(44px,9vw,76px);letter-spacing:-1px;color:var(--ink,#13565a)}
html.night .ws-word{color:#f3eadb}
.ws-word span{display:inline-block;opacity:0;will-change:transform,opacity;animation:ws-fly .95s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.55s + var(--i)*65ms)}
.ws-word .dot{color:#d9a441}
.ws-dust{position:fixed;inset:0;width:100vw;height:100vh;z-index:201;pointer-events:none}
@keyframes ws-in{from{opacity:0}to{opacity:1}}
@keyframes ws-out{to{opacity:0}}
@keyframes ws-pop{from{opacity:0;transform:scale(.55) translateY(24px)}to{opacity:1;transform:none}}
@keyframes ws-hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes ws-away{to{opacity:0;transform:translateY(-60px) scale(.85)}}
/* each letter starts small inside the robot (above) and glides to its place */
@keyframes ws-fly{from{opacity:0;transform:translateY(-140px) scale(.25) rotate(-18deg)}60%{opacity:1}to{opacity:1;transform:none}}
