#session-launch-screen{
 --launch-bg:#081d31;--launch-ink:#eaf6ff;--launch-muted:#b0cbdc;--launch-accent:#51d8d1;--launch-line:rgba(126,197,220,.1);
 display:none;position:fixed;inset:0;z-index:100000;overflow:hidden;isolation:isolate;
 padding:calc(32px + env(safe-area-inset-top)) 24px calc(32px + env(safe-area-inset-bottom));box-sizing:border-box;
 background:radial-gradient(ellipse at 18% 14%,rgba(32,129,188,.28),transparent 55%),radial-gradient(ellipse at 90% 85%,rgba(15,135,128,.2),transparent 52%),linear-gradient(145deg,#102b46,var(--launch-bg) 60%,#0b293b);
 color:var(--launch-ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
}
html[data-launch-theme="day"] #session-launch-screen{
 --launch-bg:#f0f6f8;--launch-ink:#173c55;--launch-muted:#476c80;--launch-accent:#087f9b;--launch-line:rgba(35,117,143,.1);
 background:radial-gradient(ellipse at 10% 10%,rgba(131,206,239,.33),transparent 56%),radial-gradient(ellipse at 95% 88%,rgba(88,198,182,.21),transparent 50%),linear-gradient(145deg,#fcfdfd,var(--launch-bg) 62%,#dceef1);
}
html.session-restoring #session-launch-screen{display:flex;align-items:center;justify-content:center;}
#session-launch-screen::before,#session-launch-screen::after{content:"";position:absolute;z-index:-1;pointer-events:none;box-sizing:border-box;}
#session-launch-screen::before{width:820px;height:820px;right:-660px;top:-280px;border:1px solid var(--launch-line);border-radius:50%;box-shadow:0 0 0 52px var(--launch-line),0 0 0 104px var(--launch-line);transform:rotate(-20deg);}
#session-launch-screen::after{width:720px;height:720px;left:-550px;bottom:-420px;border:1px solid var(--launch-line);border-radius:50%;box-shadow:0 0 0 45px var(--launch-line),0 0 0 90px var(--launch-line);}
.launch-brand{width:min(100%,480px);display:flex;align-items:center;flex-direction:column;text-align:center;transform:translateY(-20px);}
#session-launch-screen .launch-logo{display:block;width:100%;max-width:440px;height:auto;filter:drop-shadow(0 12px 20px rgba(0,13,31,.2));animation:launch-arrive .65s cubic-bezier(.2,.75,.3,1) both;}
html[data-launch-theme="day"] #session-launch-screen .launch-logo{filter:drop-shadow(0 12px 16px rgba(29,87,120,.13));}
.launch-loading{margin-top:44px;display:flex;align-items:center;flex-direction:column;gap:18px;animation:launch-arrive .6s .12s ease both;}
.launch-loading p{margin:0;font-size:14px;font-weight:500;letter-spacing:.02em;color:var(--launch-muted);}
.launch-track{width:150px;height:3px;background:var(--launch-line);overflow:hidden;border-radius:3px;}
.launch-track::after{content:"";display:block;width:45%;height:100%;border-radius:inherit;background:linear-gradient(90deg,transparent,var(--launch-accent),transparent);animation:launch-progress 1.8s ease-in-out infinite;}
.launch-footer{position:absolute;bottom:calc(38px + env(safe-area-inset-bottom));left:24px;right:24px;text-align:center;font-size:10px;font-weight:600;letter-spacing:.22em;color:var(--launch-muted);text-transform:uppercase;}
@keyframes launch-arrive{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes launch-progress{0%{transform:translateX(-115%)}100%{transform:translateX(345%)}}
@media(prefers-reduced-motion:reduce){#session-launch-screen *,#session-launch-screen *::after{animation:none!important}.launch-track::after{width:100%;opacity:.65;}}
@media(max-height:480px){.launch-brand{max-width:340px;transform:none}.launch-loading{margin-top:18px;gap:10px}.launch-footer{bottom:calc(16px + env(safe-area-inset-bottom));font-size:9px;}}

/* Keep the desktop splash vertically stacked at every window size. */
@media(min-width:640px) and (min-height:481px){
 #session-launch-screen .launch-brand{width:min(80vw,560px);max-width:560px;}
 #session-launch-screen .launch-logo{max-width:560px;}
}

/* Official CT branding, retaining the theme-aware animated launch screen. */
#session-launch-screen .launch-logo{filter:drop-shadow(0 2px 3px rgba(0,25,45,.55));}
html[data-launch-theme="day"] #session-launch-screen .launch-logo{filter:drop-shadow(0 1px 2px rgba(8,40,62,.8)) drop-shadow(0 4px 12px rgba(8,40,62,.25));}
#session-launch-screen .launch-loading{margin-top:12px;}

/* Size the stacked brand while retaining the existing launch animation. */
#session-launch-screen .launch-logo{width:min(100%,420px);height:auto;max-height:45svh;object-fit:contain;}
