/* Snake Doctor Cast: quiet waiting state, video takes over at first frame. */
:root { color-scheme: dark; }
html,body { margin:0; width:100%; height:100%; overflow:hidden; background:#05080f; color:#eaf5f5; font-family:system-ui,-apple-system,Segoe UI,sans-serif; }
body { position:relative; }
body::before { content:""; position:absolute; inset:0; background: radial-gradient(ellipse 62% 48% at 50% 39%,rgba(18,81,96,.30),transparent 78%), linear-gradient(140deg,#09111e 0%,#04080e 74%); pointer-events:none; }
#status { position:absolute; z-index:4; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:30px; box-sizing:border-box; padding:6vw; text-align:center; pointer-events:none; }
#status::before { content:""; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,#39c9c0,transparent); opacity:.7; }
.logo { font-size:clamp(23px,2.8vw,48px); font-weight:730; letter-spacing:.24em; color:#58d4cb; text-shadow:0 0 42px rgba(65,225,206,.20); }
#message { font-size:clamp(17px,1.55vw,25px); font-weight:400; color:#a5b4bc; letter-spacing:.015em; }
#message::after { content:""; display:block; height:2px; width:100px; margin:24px auto 0; background:linear-gradient(90deg,transparent,#58d4cb,transparent); animation:sd-breathe 1.8s ease-in-out infinite; }
@keyframes sd-breathe { 0%,100%{opacity:.20;transform:scaleX(.55)} 50%{opacity:1;transform:scaleX(1)} }
#diagnostics { color:#98b2ba; font:400 clamp(11px,.9vw,15px)/1.5 system-ui,sans-serif; max-width:85vw; overflow-wrap:anywhere; }
/* CAF continues to initialize and render; hide only its default waiting controls. */
cast-media-player { position:absolute; inset:0; z-index:1; display:block; width:100%; height:100%; opacity:0; overflow:hidden; }
body.sd-playing cast-media-player { opacity:1; }
body.sd-playing::before { display:none; }
video.castMediaElement,cast-media-player video { object-fit:contain !important; max-width:100%; max-height:100%; }
@media (prefers-reduced-motion:reduce) { #message::after { animation:none; opacity:.8; } }

#snake-subtitles { position:absolute; z-index:3; left:7%; right:7%; bottom:8%; text-align:center; pointer-events:none; white-space:pre-line; font:600 clamp(24px,2.7vw,44px)/1.24 system-ui,sans-serif; color:white; text-shadow:0 2px 5px #000,0 0 12px #000; overflow-wrap:break-word; }
#snake-subtitles[hidden] { display:none; }
