@font-face{font-family:'Noto Serif KR';src:url('assets/fonts/notoserifkr-900.woff2') format('woff2');font-style:normal;font-weight:900;font-display:swap}
/* Preserve the approved scene. Text wraps only at words or authored phrase boundaries. */
@font-face{font-family:'Noto Serif SC';src:url('assets/fonts/notoserifsc-900.woff2') format('woff2');font-style:normal;font-weight:900;font-display:swap}
@font-face{font-family:'Noto Serif TC';src:url('assets/fonts/notoseriftc-900.woff2') format('woff2');font-style:normal;font-weight:900;font-display:swap}
@font-face{font-family:'Noto Serif JP';src:url('assets/fonts/notoserifjp-900.woff2') format('woff2');font-style:normal;font-weight:900;font-display:swap}
html{--locale-display:Cinzel,Georgia,serif;--locale-ui:Optima,'Segoe UI',sans-serif}
html:lang(zh-Hans){--locale-display:'Noto Serif SC','Songti SC',serif;--locale-ui:'PingFang SC','Microsoft YaHei',sans-serif}
html:lang(zh-Hant){--locale-display:'Noto Serif TC','Songti TC',serif;--locale-ui:'PingFang TC','Microsoft JhengHei',sans-serif}
html:lang(ja){--locale-display:'Noto Serif JP','Hiragino Mincho ProN',serif;--locale-ui:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}
html:lang(ko){--locale-display:'Noto Serif KR','AppleMyungjo',serif;--locale-ui:'Apple SD Gothic Neo','Malgun Gothic',sans-serif}
h1,h2,h3,p{overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:pretty}
.locale-phrase{display:inline-block;white-space:nowrap;max-width:100%;word-break:keep-all;overflow-wrap:normal}
.a-lower h1 .locale-phrase,#download h2 .locale-phrase{display:block}
html:is(:lang(ja),:lang(en)) #download h2 .locale-phrase{display:inline-block}
html:is(:lang(ja),:lang(en)) #download h2 .locale-phrase:first-child{display:block}
#download .center,#download h2{min-width:0;width:100%;max-width:100%}
.hero-nav .nav-downloads{align-items:center}
.language-picker{position:relative;display:flex;align-items:center;min-height:44px;border:1px solid #b99a6066;background:#101b2d;border-radius:4px;color:#e7d4aa;margin-left:6px}
.language-picker .language-mark{display:flex;padding-left:12px;color:#e8cd92;pointer-events:none;flex:none}.language-mark svg{width:22px;height:22px}.language-picker:focus-within{outline:2px solid #ffe4a3;outline-offset:3px;border-color:#ffe4a3}
.language-picker select{appearance:auto;color:#dce8f4;background:transparent;font:500 14px/1.4 var(--locale-ui);border:0;padding:10px 8px;min-height:44px;max-width:125px;cursor:pointer;border-radius:4px}
.language-picker select:focus{outline:none}
.language-picker option{background:#101b2d;color:#f0e9db}
.hero-nav nav{max-width:calc(100% - 610px);gap:clamp(18px,2vw,38px)}
.hero-nav nav a{white-space:nowrap;word-break:keep-all;overflow-wrap:normal;font-family:var(--locale-display);letter-spacing:.015em;font-size:16px}
.a-hero>p{max-width:90%;font-family:var(--locale-display);text-transform:none;letter-spacing:.08em;word-break:keep-all}
.a-lower h1,#rhythm .a-section-title h2,#soundtrack .intro h2,#download h2{font-family:var(--locale-display);letter-spacing:0;line-height:1.4}
.a-lower h1{max-width:none}
.game-cta .cta-label,.journey-cta,#rhythm .soundtrack-link{font-family:var(--locale-display);font-weight:900;text-transform:none;letter-spacing:0;white-space:nowrap;font-synthesis:none}
.game-cta .cta-label{max-width:74%;line-height:1.45}
.journey-cta>span{max-width:100%;white-space:nowrap}
#soundtrack .stage-invitation p,#soundtrack .intro>p:last-child,#soundtrack #announcement{font-family:var(--locale-ui);font-style:normal;line-height:1.7;max-width:calc(100% - 36px)}
#soundtrack .intro>p:last-child .locale-phrase{display:block}
#soundtrack .preview,#soundtrack #rotation,#soundtrack .song-card .caption,#soundtrack .cover-retry{font-family:var(--locale-ui);letter-spacing:.02em;white-space:nowrap}
#soundtrack .preview{font-weight:600;font-size:14px}
html:is(:lang(zh),:lang(ja),:lang(ko)) :is(.a-lower h1,#rhythm .a-section-title h2,#soundtrack .intro h2,#download h2,#rhythm .beat-key>span){font-weight:900;font-synthesis:none}
html:is(:lang(zh),:lang(ja),:lang(ko)) #soundtrack .preview{font-family:var(--locale-display);font-weight:900;font-size:15px;font-synthesis:none}
#soundtrack .song-card h2{display:block;text-wrap:balance;overflow-wrap:normal;word-break:normal;hyphens:none;font-size:16px;line-height:1.45}
#soundtrack .dots{gap:clamp(2px,1vw,10px);padding-inline:16px;flex-wrap:wrap}
#soundtrack .catalog-retry{display:block;margin:12px auto;padding:12px 20px;max-width:calc(100% - 32px);border:1px solid #b99a60;background:#101b2d;color:#f0d296;font:500 14px/1.4 var(--locale-ui);white-space:nowrap}
#rhythm .beat-key>span{font-family:var(--locale-display);font-weight:700;white-space:nowrap}
#rhythm .beat-key small{font-family:var(--locale-ui);font-weight:500;white-space:nowrap}
.rhythm-score,.hero-retry,.product-footer,.stage-eyebrow,.a-hero .eyebrow{font-family:var(--locale-ui);letter-spacing:.06em}
html:lang(zh) .a-hero>p,html:is(:lang(ja),:lang(ko)) .a-hero>p{font-weight:700;font-size:18px;letter-spacing:.12em}
html:lang(zh) .game-cta .cta-label,html:is(:lang(ja),:lang(ko)) .game-cta .cta-label{font-size:21px;letter-spacing:.1em}
html:lang(zh) #rhythm .soundtrack-link,html:lang(ja) #rhythm .soundtrack-link{font-size:19px;letter-spacing:.08em}
html:lang(zh) .stage-invitation .journey-cta,html:is(:lang(ja),:lang(ko)) .stage-invitation .journey-cta{font-size:20px;letter-spacing:.08em}
@media(max-width:1279px){
 .hero-nav{height:112px;align-items:end}.hero-nav nav{width:100%;max-width:none;height:48px;gap:28px;padding:0 12px}.hero-nav .nav-downloads{top:8px;right:16px}
 #top .music-controls{top:130px}#rhythm{padding-top:130px}#soundtrack{padding-top:136px}#soundtrack #rotation{top:122px}
 .theme-a #download{scroll-margin-top:112px}
}
@media(max-width:767px){
 .hero-nav nav{gap:clamp(12px,3.8vw,25px)}.hero-nav nav a{font-size:14px;min-height:44px;letter-spacing:0}
 .hero-nav .nav-downloads a{width:44px;min-height:44px}.language-picker select{font-size:14px;max-width:121px}
 .a-hero>p{max-width:94%;font-size:12px;letter-spacing:.04em}
 html:lang(zh) .a-hero>p,html:is(:lang(ja),:lang(ko)) .a-hero>p{font-size:14px;letter-spacing:.04em}
 .a-lower h1{font-size:30px;line-height:1.5;max-width:100%}
 #rhythm .a-section-title h2{font-size:23px;line-height:1.5}
 #rhythm .beat-key small{font-size:12px}
 .game-cta .cta-label{font-size:14px}
 html:lang(zh) .game-cta .cta-label,html:is(:lang(ja),:lang(ko)) .game-cta .cta-label{font-size:18px}
 #rhythm .soundtrack-link{font-size:14px}
 html:lang(zh) #rhythm .soundtrack-link,html:lang(ja) #rhythm .soundtrack-link{font-size:17px}
 .stage-invitation .journey-cta{font-size:15px}
 html:lang(zh) .stage-invitation .journey-cta,html:is(:lang(ja),:lang(ko)) .stage-invitation .journey-cta{font-size:18px}
 #soundtrack .intro h2{font-size:28px;line-height:1.4}
 #soundtrack .intro>p:last-child,#soundtrack #announcement{font-size:13px}
 #soundtrack .stage-invitation p{font-size:14px}
 #soundtrack .preview{font-size:13px}
 #soundtrack .song-card h2{font-size:15px}
 #download h2{font-size:30px;line-height:1.5}.product-footer nav{gap:20px}.product-footer a{white-space:nowrap}
}
@media(max-width:359px){#download h2{font-size:27px}.hero-nav nav{gap:12px}.hero-nav nav a{font-size:13px}.a-lower h1{font-size:26px}.game-cta .cta-label{font-size:13px}}

html:lang(ko) p{word-break:keep-all}
/* The platform glyphs use a gold fill; the official globe remains an outlined icon. */
.language-picker .language-mark svg path{fill:none}

/* Readable game context sits beneath the legal links, outside the main scene. */
.product-footer .game-introduction{max-width:920px;margin:24px auto 0;padding:0 24px;font:400 14px/1.85 var(--locale-ui);letter-spacing:normal;color:#c3cbd7;white-space:normal;word-break:normal;overflow-wrap:normal;line-break:strict}
.product-footer .locale-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 20px;margin:20px auto 0;max-width:920px;padding:0 24px}
html:lang(ko) .product-footer .game-introduction{word-break:keep-all}
