.dl-welcome{position:fixed;inset:0;z-index:2147483000;overflow:hidden;display:grid;place-items:center;color:#fff8ee;background:radial-gradient(ellipse at 45% 38%,#797ea0 0%,#5e658c 38%,#42496f 76%,#343654);isolation:isolate;transition:opacity 0.210s 0.180s,visibility 0.210s 0.180s}
.dl-welcome.dl-leave{opacity:0;visibility:hidden;pointer-events:none}
.dl-aurora{position:absolute;inset:-20%;background:radial-gradient(ellipse at 12% 60%,#9ed7c763,transparent 42%),radial-gradient(ellipse at 89% 22%,#e8b7df63,transparent 43%),radial-gradient(ellipse at 55% 90%,#bfaad84d,transparent 40%);animation:dl-color 2.100s ease both}
.dl-floral-frame{position:absolute;inset:-3%;background:url('images/welcome-botanical.svg') center/cover no-repeat;transform-origin:50% 50%;animation:dl-frame 0.750s cubic-bezier(.16,.8,.3,1) both;transition:transform 0.390s cubic-bezier(.65,0,.3,1),opacity 0.360s;z-index:2;pointer-events:none}
.dl-opening-bloom{position:absolute;width:145vmax;height:145vmax;background:conic-gradient(from 0deg,#c4dfe0 0deg 50deg,#fff0db 52deg 59deg,#d8badf 60deg 110deg,#f5e6b9 112deg 119deg,#a3d2ce 120deg 170deg,#fff3e1 172deg 179deg,#dac5e4 180deg 230deg,#f8dbce 232deg 239deg,#bad5e4 240deg 290deg,#f5eacb 292deg 299deg,#c6e3cf 300deg 350deg,#fff5e9 352deg);border-radius:43%;z-index:5;pointer-events:none;animation:dl-open 0.495s cubic-bezier(.7,0,.25,1) forwards}
.dl-welcome-copy{position:relative;z-index:3;text-align:center;padding:20px 24px;width:min(860px,86vw);box-sizing:border-box;text-shadow:0 2px 20px #252d5255;transition:transform 0.270s ease,opacity 0.180s ease}
.dl-crest{display:block;width:clamp(170px,27vw,290px);height:auto;margin:0 auto 14px;animation:dl-crest-in 0.420s 0.210s both}
.dl-welcome-kicker{font-size:11px;letter-spacing:.4em;color:#f4e7cb;margin:0 0 22px;animation:dl-copy 0.300s 0.360s both}
.dl-welcome h2{font-family:Georgia,'Songti SC','Noto Serif CJK SC','SimSun',serif;font-size:clamp(32px,5.7vw,68px);font-weight:500;letter-spacing:.13em;line-height:1.3;margin:0 0 22px;color:#fff8e9;animation:dl-copy 0.360s 0.450s both}
.dl-welcome-rule{width:160px;height:1px;margin:0 auto 23px;background:linear-gradient(90deg,transparent,#f3dcb3,transparent);position:relative;animation:dl-copy 0.300s 0.540s both}
.dl-welcome-rule::after{content:'';position:absolute;width:5px;height:5px;background:#f5dfb6;left:50%;top:-2px;transform:rotate(45deg)}
.dl-welcome-lines{font-size:clamp(14px,1.5vw,18px);line-height:2;color:#f7f0f2;margin:0;animation:dl-copy 0.300s 0.600s both}
.dl-welcome-petals,.dl-stars{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.dl-welcome-petals{z-index:4;transition:transform 0.360s ease,opacity 0.300s}
.dl-leave .dl-floral-frame{transform:scale(1.7) rotate(14deg);opacity:0}
.dl-leave .dl-welcome-petals{transform:scale(2);opacity:0}
.dl-leave .dl-welcome-copy{transform:scale(1.08);opacity:0}
.dl-petal{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:calc(var(--size)*1.2);opacity:0;animation:dl-flight var(--duration) var(--delay) cubic-bezier(.15,.5,.6,1) both}
.dl-petal::before{content:'';position:absolute;inset:0;clip-path:polygon(50% 100%,15% 73%,0 37%,12% 8%,38% 0,50% 11%,63% 0,88% 8%,100% 37%,85% 73%);background:radial-gradient(ellipse at 38% 20%,#fffb,transparent 55%),linear-gradient(135deg,var(--light),var(--color));animation:dl-flutter var(--flutter) ease-in-out infinite alternate}
.dl-petal:nth-child(4n){filter:blur(.7px)}
.dl-star{position:absolute;left:var(--x);top:var(--y);width:3px;height:3px;background:var(--color);border-radius:50%;box-shadow:0 0 7px var(--color);animation:dl-twinkle var(--duration) var(--delay) ease-in-out infinite alternate}
.dl-welcome-progress{display:none}
@keyframes dl-open{0%{transform:scale(1) rotate(-35deg);opacity:1}65%{opacity:1}100%{transform:scale(0) rotate(100deg);opacity:0}}
@keyframes dl-frame{0%{transform:scale(1.7) rotate(-22deg);opacity:0}35%{opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes dl-crest-in{from{opacity:0;transform:translateY(24px) scale(.65)}to{opacity:1;transform:none}}
@keyframes dl-flight{0%{opacity:0;transform:translate3d(var(--start),24vh,0) rotate(var(--angle)) scale(.6)}20%{opacity:.75}60%{opacity:.85;transform:translate3d(12vw,-5vh,0) rotate(calc(var(--angle) + 90deg)) scale(1)}100%{opacity:0;transform:translate3d(var(--end),-65vh,0) rotate(calc(var(--angle) + 250deg)) scale(1.7)}}
@keyframes dl-flutter{from{transform:rotateY(-40deg) rotateZ(-12deg)}to{transform:rotateY(60deg) rotateZ(20deg)}}
@keyframes dl-twinkle{from{opacity:.1;transform:translateY(0)}to{opacity:.6;transform:translateY(-22px)}}
@keyframes dl-copy{from{opacity:0;transform:translateY(16px);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes dl-color{from{transform:rotate(-8deg);opacity:.5}to{transform:rotate(8deg);opacity:1}}
@media(max-width:600px){.dl-welcome-copy{width:94vw;padding:22px 20px}.dl-welcome-kicker{font-size:10px;letter-spacing:.2em}.dl-welcome h2{letter-spacing:.05em}.dl-welcome-lines{font-size:14px;line-height:2}.dl-floral-frame{background-size:auto 100%;inset:-5% -45%;opacity:.75}.dl-petal:nth-child(2n){display:none}.dl-crest{width:180px;margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){.dl-welcome-petals,.dl-stars,.dl-opening-bloom{display:none}.dl-aurora,.dl-floral-frame,.dl-welcome-copy>*,.dl-crest{animation:none}.dl-welcome{transition:opacity 0.060s}.dl-leave .dl-floral-frame,.dl-leave .dl-welcome-copy{transform:none;transition:none}}

/* Welcome text stays behind petals and is revealed only during their burst. */
.dl-welcome-copy{z-index:3;animation:dl-text-uncover 0.240s 1.095s both}
.dl-welcome-petals{z-index:4}
.dl-welcome-kicker,.dl-welcome h2,.dl-welcome-rule,.dl-welcome-lines{animation:none}
@keyframes dl-text-uncover{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.dl-welcome-copy{animation:none}}
