/* Welcome: full official wordmark, installation on mobile, Play now on desktop. */
#splash { z-index:25; touch-action:pan-y; -webkit-user-select:text; user-select:text; }
.welcome-layout { display:flex; flex-direction:column; gap:32px; min-height:100svh; min-height:100dvh; max-width:520px; margin:auto; padding:calc(env(safe-area-inset-top,0px) + 24px) max(22px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 20px) max(22px,env(safe-area-inset-left,0px)); }
.welcome-brand { margin:0; line-height:0; }
#splash .rotate-screen__logo { width:100%; max-width:360px; height:auto; }
.welcome-actions { width:100%; max-width:390px; margin-top:auto; align-self:center; padding:26px; background:url('menu_panel.png') 0 0/100% 100%; filter:drop-shadow(0 10px 22px #07111688); }
.welcome-device { display:none; }
body.phone.ios .welcome-device.ios,body.phone.android .welcome-device.android { display:block; }
.welcome-device h2 { margin:0; text-align:center; font:28px/1.15 var(--game-font); color:#f1dfaf; text-wrap:balance; }
.welcome-intro { margin:10px 0 20px; text-align:center; font:14px/1.5 var(--game-font); color:#c7d0c5; }
.welcome-steps { list-style:none; counter-reset:install; padding:0; margin:0; font:14px/1.55 var(--game-font); color:#c7d0c5; }
.welcome-steps li { counter-increment:install; position:relative; padding-left:34px; margin:18px 0; }
.welcome-steps li::before { content:counter(install); position:absolute; left:0; top:0; display:grid; place-items:center; width:23px; height:23px; border:1px solid #a18c5777; border-radius:50%; color:#dfc88e; font:12px/1 var(--game-font); }
.welcome-steps b { color:#eee1bf; font-weight:600; }
.welcome-steps small { display:block; margin-top:3px; font-size:11px; line-height:1.5; color:#aebbb3; }
.welcome-share { vertical-align:-4px; margin-left:3px; color:#dfc88e; }
.welcome-launch { display:flex; align-items:center; gap:10px; }
.welcome-launch img { flex:0 0 42px; border-radius:9px; border:1px solid #a18c5744; }
.welcome-play,.welcome-install { display:none; width:100%; min-height:56px; margin:16px 0 0; padding:12px 16px; border:3px double #eed69c; border-radius:4px; background:linear-gradient(#e2c88c,#b49253); box-shadow:0 3px 12px #0005; color:#24281f; font:22px/1.2 var(--game-font); cursor:pointer; }
body.desktop:not(.standalone) .welcome-play:not([hidden]),body.phone.android .welcome-install:not([hidden]) { display:block; }
.welcome-play:hover:not(:disabled),.welcome-install:hover { filter:brightness(1.1); }
.welcome-play:active:not(:disabled),.welcome-install:active { transform:translateY(1px); }
.welcome-play:disabled { opacity:.65; cursor:wait; }
#splash :focus-visible { outline:2px solid #f2dfac; outline-offset:5px; }
.welcome-status,.welcome-install-status { margin:16px 0 0; text-align:center; color:#b0beb4; font:12px/1.5 var(--game-font); }
.welcome-status:empty,.welcome-install-status:empty,body.phone .welcome-status { display:none; }
.welcome-spinner { display:inline-block; width:10px; height:10px; margin-right:8px; border:2px solid #d2b77955; border-top-color:#d2b779; border-radius:50%; vertical-align:-2px; animation:welcome-spin 1s linear infinite; }
.welcome-legal { max-width:280px; margin:0 auto; text-align:center; font:10px/1.6 var(--game-font); color:#a3b3aa; }
body.phone .welcome-legal { border-top:1px solid #a18c5744; padding-top:14px; margin-top:20px; }
@keyframes welcome-spin { to { transform:rotate(360deg); } }
@media(max-width:350px) { .welcome-layout { padding-inline:14px; } .welcome-actions { padding-inline:22px; } .welcome-device h2 { font-size:25px; } .welcome-steps { font-size:13px; } }
@media(max-height:650px) { .welcome-layout { padding-top:calc(env(safe-area-inset-top,0px) + 16px); padding-bottom:calc(env(safe-area-inset-bottom,0px) + 16px); gap:20px; } #splash .rotate-screen__logo { max-width:260px; } .welcome-actions { padding-block:22px; } .welcome-steps li { margin:14px 0; } .welcome-intro { margin-bottom:14px; } }
@media(orientation:landscape) and (max-height:500px) { .welcome-layout { max-width:620px; } #splash .rotate-screen__logo { max-width:260px; } .welcome-actions { max-width:420px; } }
@media(prefers-reduced-motion:reduce) { .welcome-spinner { animation:none; } }

/* Mobile install review: consistent text column and responsive breathing room. */
body.phone #splash .welcome-layout {
  max-width:480px;
  gap:24px;
  padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px));
}
body.phone #splash .welcome-actions {
  flex-shrink:0;
  max-width:408px;
  margin-block:auto;
  padding:28px 24px;
}
body.phone .welcome-device h2 { font-size:clamp(24px,6.8vw,28px); line-height:1.2; }
body.phone .welcome-intro { margin:8px 0 22px; }
body.phone .welcome-steps { font-size:14px; line-height:1.5; }
body.phone .welcome-steps li { min-height:24px; padding-left:34px; margin:0 0 18px; }
body.phone .welcome-steps li:last-child { margin-bottom:0; }
body.phone .welcome-steps small { font-size:12px; line-height:1.45; margin-top:5px; }
body.phone .welcome-launch { gap:12px; }
body.phone .welcome-launch span { flex:1; min-width:0; }
body.phone .welcome-launch img { order:1; }
body.phone .welcome-legal { margin-top:22px; padding-top:16px; font-size:11px; line-height:1.45; }
@media(max-height:650px) {
  body.phone #splash .welcome-layout { gap:16px; padding-block:calc(env(safe-area-inset-top,0px) + 12px) calc(env(safe-area-inset-bottom,0px) + 12px); }
  body.phone #splash .rotate-screen__logo { max-width:230px; }
  body.phone #splash .welcome-actions { padding:22px; }
  body.phone .welcome-intro { margin-bottom:16px; }
  body.phone .welcome-steps li { margin-bottom:14px; }
  body.phone .welcome-legal { margin-top:16px; padding-top:12px; }
}
@media(orientation:landscape) and (max-height:500px) {
  body.phone #splash .welcome-layout { max-width:820px; flex-direction:row; align-items:center; gap:24px; }
  body.phone #splash .rotate-screen__brand { flex:1; min-width:0; }
  body.phone #splash .welcome-actions { flex:0 1 408px; }
}
