/* CJK Dynamic Font Handling & Letter-Spacing Overrides */
html[lang="ja"] { font-family: 'Noto Sans JP', sans-serif; }
html[lang="ko"] { font-family: 'Noto Sans KR', sans-serif; }
html[lang="zh"] { font-family: 'Noto Sans SC', sans-serif; }

html[lang="ja"] .dynamic-serif { font-family: 'Noto Serif JP', serif; }
html[lang="ko"] .dynamic-serif { font-family: 'Noto Serif KR', serif; }
html[lang="zh"] .dynamic-serif { font-family: 'Noto Serif SC', serif; }

/* CJK ideograms look cleaner with reduced letter spacing */
html:not([lang="en"]) .tracking-widest2x,
html:not([lang="en"]) .tracking-widest3x,
html:not([lang="en"]) .tracking-widest4x {
    letter-spacing: 0.12em !important;
}

/* Hide scrollbars */
::-webkit-scrollbar {
    display: none;
}
html, body {
    -ms-overflow-style: none;
    scrollbar-width: none;
    height: 100%;
    overflow: hidden;
}

/* Mobile-friendly viewport: sections always fill the *visible* screen */
.h-screen { height: 100vh !important; height: 100dvh !important; }
html, body { overscroll-behavior: none; }
* { -webkit-tap-highlight-color: transparent; }

/* Releases carousel (mobile swipe) */
.no-scrollbar { scrollbar-width: none; -ms-overflow-style: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }
#releases-track { touch-action: pan-x; }

.transition-theme {
    transition: background-color 0.8s cubic-bezier(0.16, 1, 0.3, 1), color 0.8s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.glass-panel {
    background: rgba(226, 232, 240, 0.03);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(226, 232, 240, 0.12);
}

.light .glass-panel {
    background: rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.12);
}

.dynamic-serif { font-family: 'Cormorant Garamond', serif; }

@keyframes float-dot {
    0%, 100% {
        transform: translateY(0px) scale(1);
        opacity: 0.5;
    }
    50% {
        transform: translateY(-35px) scale(1.3);
        opacity: 0.95;
    }
}

.animated-dot {
    animation: float-dot ease-in-out infinite alternate;
}