/* Developer splash: Kulich Games logo reveal. */
#dev-splash{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:radial-gradient(circle at 50% 45%,#16202b 0%,#0b0f14 65%);cursor:pointer;transition:opacity .7s ease,filter .7s ease}
#dev-splash.out{opacity:0;filter:blur(6px);pointer-events:none}
.ds-glow{position:absolute;width:60vmin;height:60vmin;border-radius:50%;background:radial-gradient(circle,#e8b54a38 0%,transparent 65%);animation:ds-glow 2.6s ease-out both}
.ds-logo{position:relative;width:min(42vmin,300px);aspect-ratio:1;border-radius:50%;overflow:hidden;animation:ds-pop 1.1s cubic-bezier(.2,1.4,.4,1) both;box-shadow:0 20px 60px #0008}
.ds-logo img{width:118%;height:118%;margin:-9%;display:block;user-select:none}
.ds-shine{position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,#fff8 50%,transparent 65%);transform:translateX(-120%);animation:ds-shine 1s .9s ease-in-out both}
.ds-caption{font-family:Jost,sans-serif;font-weight:300;font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:#9aa5b1;animation:ds-fade .8s 1.2s both}
@keyframes ds-pop{0%{transform:scale(.3) rotate(-25deg);opacity:0;filter:blur(10px)}60%{opacity:1;filter:blur(0)}100%{transform:scale(1) rotate(0)}}
@keyframes ds-shine{to{transform:translateX(120%)}}
@keyframes ds-glow{0%{transform:scale(.2);opacity:0}50%{opacity:1}100%{transform:scale(1.15);opacity:.7}}
@keyframes ds-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Game loading screen. */
#game #loading{position:fixed!important;inset:0;z-index:900;overflow:hidden;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 110%,#13283a 0%,#0b0f14 60%)!important;color:#fff;font-family:Jost,sans-serif}
.ld-snow{position:absolute;inset:-100px 0 0;background-image:radial-gradient(2px 2px at 20px 30px,#fffc 50%,transparent 51%),radial-gradient(1.5px 1.5px at 120px 80px,#fff9 50%,transparent 51%),radial-gradient(2.5px 2.5px at 200px 150px,#fffb 50%,transparent 51%),radial-gradient(1px 1px at 60px 190px,#fff8 50%,transparent 51%);background-size:240px 240px;animation:ld-fall 9s linear infinite;opacity:.6}
.ld-snow-2{background-size:170px 170px;animation-duration:14s;opacity:.35;filter:blur(1px)}
@keyframes ld-fall{to{transform:translate3d(-40px,240px,0)}}
.ld-center{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center}
.ld-tag{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:#7fd1ff;animation:ds-fade .8s both}
#game #loading .ld-title{font-weight:200;font-size:clamp(40px,9vmin,84px);line-height:.95;letter-spacing:-.02em;margin:16px 0 26px;text-transform:uppercase;animation:ds-fade 1s .15s both}
.ld-line{width:min(280px,50vw);height:1px;background:#ffffff22;overflow:hidden;position:relative}
.ld-line i{position:absolute;inset:0;width:35%;background:linear-gradient(90deg,transparent,#7fd1ff,transparent);animation:ld-scan 1.6s ease-in-out infinite}
@keyframes ld-scan{from{transform:translateX(-100%)}to{transform:translateX(300%)}}
#game #loading .ld-status{margin:16px 0 0;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#9aa5b1}
#game #loading .ld-tip{position:absolute;bottom:24px;left:24px;right:24px;margin:0;text-align:center;font-size:12px;color:#9aa5b199;letter-spacing:.03em}
@media(max-height:400px){#game #loading .ld-title{margin:10px 0 16px}#game #loading .ld-tip{bottom:12px;font-size:11px}}
@media(prefers-reduced-motion:reduce){#dev-splash *,#loading *{animation:none!important}}
/* Modal menu lives in the browser top layer; hide it while the splash plays. */
.splash-active #dialog,.splash-active #dialog::backdrop{visibility:hidden}
