/* Trường Nguyễn Music - neon startup splash */
html body web-player:not(.tn-layout-ready){visibility:hidden!important}
html.tn-layout-loading{background:#020b23!important}
#tn-splash{position:fixed;inset:0;z-index:2147483646;display:none;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#10295b 0%,#080e30 46%,#02091e 100%);color:#fff;font-family:system-ui,-apple-system,Segoe UI,sans-serif;pointer-events:none}
html.tn-layout-loading #tn-splash{display:flex}
#tn-splash .tn-glow{position:absolute;width:85vmin;height:85vmin;border-radius:50%;background:radial-gradient(circle,#245cff44,transparent 67%);filter:blur(35px);animation:tn-breathe 3s ease-in-out infinite alternate}
#tn-splash .tn-content{position:relative;z-index:2;width:min(90vw,540px);text-align:center;display:flex;flex-direction:column;align-items:center}
#tn-splash .tn-disc{width:clamp(155px,31vmin,240px);height:clamp(155px,31vmin,240px);border-radius:50%;display:grid;place-items:center;position:relative;background:repeating-radial-gradient(circle,#121c43 0 3px,#0a1434 4px 7px);border:5px solid #4c8dff;box-shadow:0 0 22px #15bfff,0 0 75px #9737ff80,inset 0 0 35px #000;animation:tn-spin 9s linear infinite}
#tn-splash .tn-disc:before{content:'';position:absolute;inset:-17px;border-radius:50%;border:3px dotted #22cfff9c;animation:tn-spin 14s linear infinite reverse}
#tn-splash .tn-note{font-size:clamp(80px,17vmin,133px);font-weight:900;line-height:1;background:linear-gradient(135deg,#14e6ff,#4c8aff,#ff47df);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 13px #14aaff)}
#tn-splash .tn-wave{position:absolute;top:43%;width:130vw;height:85px;opacity:.7;background:repeating-linear-gradient(90deg,transparent 0 9px,#24baffbb 10px 13px,transparent 14px 20px);mask-image:linear-gradient(0deg,transparent,black 50%,transparent);-webkit-mask-image:linear-gradient(0deg,transparent,black 50%,transparent);animation:tn-wave 2s ease-in-out infinite alternate}
#tn-splash h1{margin:38px 0 6px;font-size:clamp(25px,5vw,39px);font-weight:800;letter-spacing:-.5px;text-shadow:0 0 25px #348dff88}
#tn-splash h1 span{background:linear-gradient(90deg,#12caff,#f453e7);background-clip:text;-webkit-background-clip:text;color:transparent}
#tn-splash p{font-size:clamp(13px,3.5vw,17px);color:#bac6ed;margin:5px 0 25px}
#tn-splash .tn-bar{height:7px;width:min(75vw,310px);background:#29335d;border-radius:20px;overflow:hidden}
#tn-splash .tn-progress{height:100%;width:38%;border-radius:inherit;background:linear-gradient(90deg,#03d9ff,#6e74ff,#ff4fda);box-shadow:0 0 15px #27bfff;animation:tn-progress 2.3s ease-in-out infinite}
#tn-splash .tn-dots{display:flex;gap:8px;margin-top:19px}#tn-splash .tn-dots i{width:7px;height:7px;border-radius:50%;background:#20bfff;animation:tn-dot 1s ease-in-out infinite alternate}#tn-splash .tn-dots i:nth-child(2){animation-delay:.25s;background:#7b79ff}#tn-splash .tn-dots i:nth-child(3){animation-delay:.5s;background:#ed58e9}
@keyframes tn-spin{to{transform:rotate(360deg)}}@keyframes tn-breathe{to{transform:scale(1.2);opacity:.6}}@keyframes tn-wave{to{transform:scaleY(.38) translateY(18px);opacity:.3}}@keyframes tn-progress{0%{width:8%}75%{width:92%}100%{width:95%}}@keyframes tn-dot{to{opacity:.2;transform:translateY(-5px)}}
html.tn-layout-start-failed body web-player{visibility:visible!important}
@media(prefers-reduced-motion:reduce){#tn-splash *{animation:none!important}#tn-splash .tn-progress{width:75%}}
