@font-face { font-family:"FC Korean"; src:url('../assets/korean.woff2') format('woff2'); font-weight:100 900; font-display:swap; }
@font-face { font-family:"FC Traditional"; src:url('../assets/traditional.woff2') format('woff2'); font-weight:100 900; font-display:swap; }
.site-preferences { display:flex; align-items:center; flex-shrink:0; gap:16px; padding-inline-start:20px; border-inline-start:1px solid color-mix(in srgb,currentColor 20%,transparent); }
.site-language-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; flex-shrink:0; min-height:44px; padding:0 4px; border:0; background:transparent; color:inherit; font:500 12px/1.3 "FC Sans","FC Korean","FC Traditional",Arial,sans-serif; cursor:pointer; white-space:nowrap; }
.site-language-button svg { width:17px; height:17px; }
.site-language-button .language-chevron { width:10px; height:10px; }
.site-language-button:hover { opacity:.7; }
.site-language-button:focus-visible,.site-language-dialog a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.site-language-dialog { position:fixed; inset:auto; top:var(--language-top,90px); left:var(--language-left,calc(100% - 296px)); width:280px; max-width:calc(100% - 24px); max-height:calc(100dvh - 32px); margin:0; padding:8px 18px 12px; border:1px solid #191b1833; background:#eae7df; color:#191b18; box-shadow:0 12px 40px #0003; }
.site-language-dialog::backdrop { background:#11150f30; }
.language-dialog-heading { display:flex; justify-content:space-between; align-items:center; min-height:52px; border-bottom:1px solid #191b1826; }
.site-language-dialog .dialog-close { position:static; width:44px; height:44px; margin-right:-10px; border:0; background:none; color:inherit; font:24px Arial,sans-serif; cursor:pointer; }
.site-language-dialog h2 { margin:0; font:700 16px/1.4 "FC Sans","FC Korean","FC Traditional",Arial,sans-serif; letter-spacing:0; }
.site-language-dialog nav { display:grid; gap:2px; padding-top:6px; }
.site-language-dialog a { display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:50px; padding:8px 10px; color:inherit; text-decoration:none; font:400 15px/1.4 "FC Sans",Arial,sans-serif; }
.site-language-dialog a:lang(ko) { font-family:"FC Korean",sans-serif; }
.site-language-dialog a:lang(zh-Hant) { font-family:"FC Traditional",sans-serif; }
.site-language-dialog a[aria-current=true] { font-weight:700; background:#191b180a; }
.site-language-dialog a:hover { background:#191b1810; }
.language-selected { width:20px; height:20px; display:grid; place-items:center; font:14px Arial; }
.site-language-dialog [aria-current=true] .language-selected { background:#191b18; color:#eae7df; border-radius:50%; }
.mobile-menu-settings .site-language-button { font-family:inherit; justify-content:flex-start; }
.mobile-menu-settings .site-language-code { margin-left:auto; color:#606258; }
.community-discord { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 18px; margin:0 0 20px; padding:16px 0; border-block:1px solid #191b1833; font:400 13px/1.5 "FC Sans","FC Korean","FC Traditional",Arial,sans-serif; }
.community-discord strong { padding:4px 9px; border:1px solid #191b1833; font-size:11px; font-weight:500; }
html:lang(ko) { --locale-font:"FC Korean","Apple SD Gothic Neo",sans-serif; }
html:lang(zh-Hant) { --locale-font:"FC Traditional","PingFang TC",sans-serif; }
html:is(:lang(ko),:lang(zh-Hant)) body,html:is(:lang(ko),:lang(zh-Hant)) :is(button,input,select,h1,h2,h3,.role-poster strong,.console-title strong,.record-sleeve strong,.archive-ticket-body>strong,.chapter-copy p,.entry-label strong) { font-family:var(--locale-font); font-synthesis:none; }
html:lang(ko) body { word-break:keep-all; overflow-wrap:break-word; }
html:lang(zh-Hant) :is(h1,h2,h3) { font-weight:800; letter-spacing:-.025em; }
html:not(:lang(zh)) .hero-title { font-size:clamp(62px,8vw,138px); }
/* The English headline is one lockup; its spacing must follow its own type sizes. */
html:lang(en) .arrival { --arrival-en-top:32%; --arrival-en-passion:min(12.2vw,23svh,320px); --arrival-en-home:min(7.7vw,13svh,180px); --arrival-en-gap:clamp(12px,2svh,26px); }
html:lang(en) .arrival-title h1 { position:absolute; top:var(--arrival-en-top); left:var(--gutter); display:flex; flex-direction:column; align-items:flex-start; gap:var(--arrival-en-gap); }
html:lang(en) :is(.word-passion,.word-home) { position:static; line-height:1.06; letter-spacing:-.02em; }
html:lang(en) .word-passion { font-size:var(--arrival-en-passion); }
html:lang(en) .word-home { font-size:var(--arrival-en-home); }
html:lang(ko) .word-passion { font-size:19vw; }
html:lang(ko) .word-home { font-size:10.5vw; }
html:not(:lang(zh)) .hero-copy h1 { font-size:clamp(48px,5.9vw,120px); }
html:not(:lang(zh)) .hero-copy h1 > span { white-space:normal; }
html:not(:lang(zh)) .hero-stage .hero-copy h1 { white-space:normal; }
html:lang(en) .hero-stage .hero-copy h1 { font-size:4.35vw; }
html:lang(ko) .hero-stage .hero-copy h1 { font-size:4.8vw; }
html:not(:lang(zh)) .hero-description { max-width:38em; }
html:not(:lang(zh)) .chapter-heading h2 { font-size:clamp(45px,6.5vw,110px); line-height:1.02; }
html:not(:lang(zh)) .people-heading h2,html:not(:lang(zh)) .records-heading h2 { font-size:clamp(44px,6vw,100px); }
html:not(:lang(zh)) .participate h2 { font-size:clamp(65px,9vw,150px); }
html:not(:lang(zh)) .period,html:not(:lang(zh)) .title-period { margin-left:0; transform:none; }
html:lang(ko) h1,html:lang(ko) h2,html:lang(ko) h3 { font-family:var(--locale-font); letter-spacing:-.035em; line-height:1.2; }
html:not(:lang(zh)) .top-nav { gap:20px; }
html:not(:lang(zh)) .top-nav a { font-size:12px; }
html:not(:lang(zh)) .event-nav { gap:16px; }
html:not(:lang(zh)) .site-signoff { font-size:11px; }
.journal-scroll { container-type:inline-size; }
html:lang(en) .journal-dialog h2 { font-size:min(13.5cqw,66px); line-height:1.12; letter-spacing:-.03em; overflow-wrap:break-word; }
@media(max-width:1100px) {
  .masthead { gap:14px; }
  .masthead .top-nav,.masthead .site-preferences { display:none; }
  .masthead .mobile-menu-toggle { display:flex; flex-shrink:0; align-items:center; justify-content:center; gap:7px; min-width:60px; min-height:44px; padding:0; border:0; background:none; font-size:12px; }
  .masthead .menu-glyph { display:grid; gap:5px; width:15px; }
  .masthead .menu-glyph i { width:100%; height:1px; background:currentColor; }
  .masthead .menu-glyph i:last-child { width:10px; margin-left:auto; }
}
@media(max-width:760px) {
  .site-preferences { gap:8px; padding-inline-start:10px; }
  .site-language-dialog { inset:auto 12px max(12px,env(safe-area-inset-bottom)); width:auto; max-width:none; padding:8px 18px 14px; }
  .site-language-dialog::backdrop { background:#11150f70; }
  .site-language-dialog a { min-height:54px; }
  .event-header { gap:8px; }
  .event-header .site-language-button { padding:0 2px; min-width:38px; gap:4px; }
  .event-header .site-language-button svg { display:none; }
  .event-header .site-language-button .language-chevron { display:block; }
  .event-header .event-nav { gap:8px; }
  .event-header .event-nav .header-join { display:none; }
  html:not(:lang(zh)) .event-header .brand-context { display:none; }
  html:not(:lang(zh)) .event-header .event-nav a { font-size:11px; }
  html:not(:lang(zh)) .hero-title { font-size:clamp(42px,11vw,80px); line-height:1; }
  html:lang(ko) .word-passion { font-size:22vw; }
  html:lang(ko) .word-home { font-size:14vw; }
  html:not(:lang(zh)) .hero-copy h1 { font-size:clamp(29px,8.3vw,56px); line-height:1.2; }
  html:not(:lang(zh)) .hero-copy h1 > span { white-space:normal; }
  html:not(:lang(zh)) .weekly-hero .hero-copy h1 { font-size:12vw; }
  html:not(:lang(zh)) .weekly-hero .hero-copy h1 > span:last-child { margin-left:8%; }
  html:lang(en) .hero-stage .hero-copy h1 { font-size:8.1vw; }
  html:lang(ko) .hero-stage .hero-copy h1 { font-size:8.3vw; }
  html:not(:lang(zh)) .weekly-hero .hero-foot { align-items:flex-start; font-size:9px; }
  html:not(:lang(zh)) .weekly-hero .hero-foot { flex-direction:column; gap:8px; }
  html:not(:lang(zh)) .weekly-hero .hero-foot .text-link { align-self:flex-end; }
  html:not(:lang(zh)) .five-heading h2 { font-size:8vw; white-space:normal; }
  html:not(:lang(zh)) .join-layout > *,html:not(:lang(zh)) .entry-facts > * { min-width:0; }
  html:lang(en) .entry-facts strong { font-size:18px; overflow-wrap:anywhere; }
  html:not(:lang(zh)) .join-heading h2 { font-size:9vw; white-space:normal; }
  html:not(:lang(zh)) .weekly-chapters a { font-size:9px; padding:8px 6px; }
  html:not(:lang(zh)) .weekly-hero .hero-foot .text-link { font-size:10px; }
  html:not(:lang(zh)) .chapter-heading h2 { font-size:clamp(35px,9vw,65px); line-height:1.06; }
  html:not(:lang(zh)) .participate h2 { font-size:min(13vw,8svh); max-width:58%; }
  html:lang(en) .participate h2 { font-size:min(16.8vw,9svh); }
  html:not(:lang(zh)) .participate .join-copy > p { font-size:12px; line-height:1.65; }
  html:not(:lang(zh)) .participate .entry-label strong { font-size:18px; }
  html:not(:lang(zh)) .mobile-menu-links strong { font-size:24px; }
  html:not(:lang(zh)) .chapter-heading .eyebrow { font-size:9px; }
  html:not(:lang(zh)) .event-header .event-brand { --brand-wordmark-width:102px; --brand-symbol-width:20px; gap:7px; }
  html:not(:lang(zh)) .event-nav .desktop-word { display:none; }
}
@media(max-width:460px) {
  .event-header .event-nav,.wp-header nav { display:none; }
  .event-header .event-brand { --brand-wordmark-width:102px; --brand-symbol-width:20px; gap:7px; }
}
@media(max-width:420px) { .masthead { gap:6px; } }
@media(max-width:360px) {
  .masthead { gap:4px; }
  .masthead .mobile-menu-toggle { min-width:50px; }
}
@media(min-width:1101px) {
  html:lang(en) .arrival-description { left:36%; max-width:20%; }
}
@media(min-width:481px) and (max-width:1100px) {
  html:lang(en) .arrival-description { top:calc(var(--arrival-en-top) + var(--arrival-en-passion) * 1.06 + var(--arrival-en-gap) + var(--arrival-en-home) * 1.06 + 36px); }
  html:lang(en) .arrival-side { display:none; }
}
/* Match the scene's 480px switch from side-by-side to stacked artwork. */
@media(max-width:480px) {
  html:lang(en) .arrival { --arrival-en-top:24%; --arrival-en-passion:18.3vw; --arrival-en-home:12vw; }
  html:lang(en) .arrival-title h1 { left:7%; }
}
@media(min-width:600px) and (max-height:600px) {
  html:lang(en) .arrival { --arrival-en-top:calc(76px + 8%); --arrival-en-passion:min(12.2vw,21svh); --arrival-en-home:min(7.7vw,12svh); --arrival-en-gap:10px; }
  html:lang(en) .arrival-description { top:auto; bottom:20%; }
}

/* Editorial type sizes follow each scene's text area and viewport height. */
html:not(:lang(zh)) .explore :is(.chapter-heading,.explore-head) h2 { font-size:clamp(40px,min(5.6vw,8.6svh),92px); line-height:1.13; letter-spacing:-.045em; }
html:lang(ko) .explore :is(.chapter-heading,.explore-head) h2 { font-size:clamp(40px,min(5.3vw,7.8svh),84px); letter-spacing:-.035em; line-height:1.25; }
html:lang(zh-Hant) :is(.explore :is(.chapter-heading,.explore-head) h2,.participate h2,.intro-copy h1,.scene-copy h2) { font-weight:800; letter-spacing:-.025em; }
html:lang(zh-Hant) .participate .period { font-size:.6em; }
html:not(:lang(zh)) .people-panel .chapter-heading h2 { font-size:clamp(38px,min(5.2vw,7.8svh),82px); }
html:lang(en) .records-panel .chapter-heading h2 { font-size:clamp(36px,min(4.5vw,7.4svh),76px); }
html:not(:lang(zh)) .people-panel .chapter-heading h2 span + span { margin-left:.12em; }
html:not(:lang(zh)) .role-poster strong { font-size:clamp(23px,3vw,43px); line-height:1.2; }
html:not(:lang(zh)) .archive-ticket-body>strong { font-size:clamp(27px,3.3vw,65px); line-height:1.15; }
html:not(:lang(zh)) .archive-sheet>strong { font-size:clamp(25px,3.4vw,68px); }
html:lang(en) .record-title > strong { line-height:1.12; }
html:lang(ko) .console-title strong,html:lang(ko) .record-sleeve strong { letter-spacing:-.025em; line-height:1.25; }
html:not(:lang(zh)) .weekend-stamp strong { font-size:17px; line-height:1.1; text-align:center; }
html:not(:lang(zh)) .hero-period { margin-left:0; }
html:not(:lang(zh)) .catalog-heading h1 { font-size:clamp(54px,7vw,108px); line-height:1.08; }
html:not(:lang(zh)) .sound-intro h1 { font-size:clamp(50px,6vw,100px); line-height:1.08; letter-spacing:-.045em; }
html:not(:lang(zh)) .sound-intro h1>span { margin-left:0; }
html:lang(ko) .sound-intro h1 { line-height:1.25; letter-spacing:-.035em; }
html:not(:lang(zh)) .section-heading h2 { font-size:clamp(44px,5.5vw,100px); }
html:not(:lang(zh)) .community-name h3 { font-size:clamp(24px,3.1vw,49px); }
html:not(:lang(zh)) .account-link h3 { font-size:clamp(24px,2.9vw,46px); }
html:lang(ko) .rendezvous-copy h2 { font-size:clamp(32px,4.5vw,72px); }
html:lang(en) .intro-copy h1 { font-size:clamp(50px,min(6.8vw,10svh),116px); }
html:not(:lang(zh)) .scene-copy h2 { font-size:clamp(42px,min(5.1vw,8svh),84px); line-height:1.12; }
html:lang(ko) .scene-copy h2 { line-height:1.25; }
html:lang(en) .role-label small { display:none; }
@media(max-width:760px) {
  html:not(:lang(zh)) .scene-copy h2 { font-size:clamp(29px,min(9vw,6svh),52px); }
  html:not(:lang(zh)) .scene-copy h2 br { display:block; }
  html:not(:lang(zh)) .explore :is(.chapter-heading,.explore-head) h2 { font-size:clamp(27px,min(8.1vw,5.7svh),48px); line-height:1.15; }
  html:lang(ko) .explore :is(.chapter-heading,.explore-head) h2 { font-size:clamp(28px,min(8.4vw,5.8svh),48px); line-height:1.25; }
  html:lang(en) .records-panel .chapter-heading h2 { font-size:clamp(27px,min(8.1vw,5.7svh),48px); }
  html:not(:lang(zh)) .people-panel .chapter-heading h2 span + span { margin-left:0; }
  html:not(:lang(zh)) .role-poster strong { font-size:24px; }
  html:lang(ko) .role-poster strong { font-size:22px; }
  html:not(:lang(zh)) .catalog-heading h1 { font-size:clamp(37px,10.5vw,72px); }
  html:not(:lang(zh)) .sound-intro h1 { font-size:clamp(34px,9vw,58px); }
  html:not(:lang(zh)) .sound-intro h1 br { display:block; }
  html:not(:lang(zh)) .sound-making h2 { font-size:clamp(28px,8vw,40px); }
  html:not(:lang(zh)) .section-heading h2 { font-size:clamp(32px,8vw,56px); }
  html:not(:lang(zh)) .community-name h3,html:not(:lang(zh)) .account-link h3 { font-size:clamp(26px,7vw,42px); }
  html:not(:lang(zh)) .event-companion small { line-height:1.4; }
  html:lang(ko) .featured-event-roles { font-size:9px; }
}
@media(max-width:480px) {
  html:not(:lang(zh)) .records-panel .chapter-copy { top:33%; width:86%; max-width:86%; }
  html:not(:lang(zh)) .records-panel .chapter-copy>p:first-child { font-size:12px; line-height:1.6; }
  html:not(:lang(zh)) .archive-switches { position:static; display:flex; width:100%; margin-top:10px; }
  html:not(:lang(zh)) .archive-switches button { flex:1; min-height:38px; padding:7px 5px; font-size:11px; white-space:nowrap; }
  html:not(:lang(zh)) .archive-preview-copy { max-width:none; min-height:3.2em; margin-top:8px; font-size:11px; line-height:1.6; }
  html:not(:lang(zh)) .archive-release { margin-top:6px; font-size:10px; }
  html:not(:lang(zh)) .archive-collection { top:65%; height:23%; }
  html:not(:lang(zh)) .archive-ticket-body>strong { font-size:22px; }
  html:not(:lang(zh)) .archive-sheet>strong { font-size:22px; }
  html:not(:lang(zh)) .making-panel .chapter-copy { top:35%; }
  html:not(:lang(zh)) .making-panel .chapter-copy p { font-size:12px; line-height:1.7; }
  html:not(:lang(zh)) .making-panel .chapter-text-action { font-size:12px; }
  html:not(:lang(zh)) .record-sleeve { padding:13px 10px; }
  html:not(:lang(zh)) .record-action { font-size:8px; }
  html:not(:lang(zh)) .making-console .console-tools small { font-size:8px; line-height:1.4; }
  html:not(:lang(zh)) .work-in-progress { font-size:8px; }
  html:lang(en) .intro-copy h1 { font-size:min(11.8vw,6.5svh); }
}
@media(max-width:480px) and (max-height:740px) {
  html:not(:lang(zh)) .records-panel .chapter-copy { top:34%; }
  html:not(:lang(zh)) .records-panel .chapter-copy>p:first-child { font-size:11px; }
  html:not(:lang(zh)) .archive-switches { margin-top:5px; }
  html:not(:lang(zh)) .archive-preview-copy { font-size:10px; margin-top:5px; }
  html:not(:lang(zh)) .archive-collection { top:69%; height:19%; }
  html:not(:lang(zh)) .archive-ticket-kicker { display:none; }
  html:not(:lang(zh)) .archive-ticket-body>strong { font-size:18px; }
  html:not(:lang(zh)) .archive-release { margin-top:2px; }
}
@media(max-width:480px) and (max-height:720px) {
  html:not(:lang(zh)) :is(.scene-art,.team-handoff) { top:54%; height:25%; }
  html:not(:lang(zh)) .scene-copy { top:17%; }
  html:not(:lang(zh)) .scene-copy h2 { font-size:clamp(27px,8vw,32px); }
  html:not(:lang(zh)) .scene-description { line-height:1.6; }
  html:not(:lang(zh)) .scene-detail { line-height:1.5; }
  html:not(:lang(zh)) .handoff-note strong { font-size:11px; }
  html:not(:lang(zh)) .handoff-note small { font-size:7px; }
  html:not(:lang(zh)) .coach-art .tactics-board { bottom:10%; padding:8px; }
  html:not(:lang(zh)) .tactics-map { margin:8px 0; min-height:32px; }
  html:not(:lang(zh)) .tactics-cues li { padding-top:6px; }
  html:not(:lang(zh)) .tactics-cues strong { font-size:9px; }
  html:not(:lang(zh)) .coach-reminder { left:38%; right:-2%; bottom:-7%; padding:5px 10px; gap:6px; transform:rotate(2deg); }
  html:not(:lang(zh)) .coach-reminder>span { font-size:18px; }
  html:not(:lang(zh)) .coach-reminder p { display:flex; align-items:center; gap:4px; white-space:nowrap; }
  html:not(:lang(zh)) .coach-reminder strong { display:inline; font-size:10px; line-height:1.2; }
}

/* Keep localized headlines inside the shorter landscape text column. */
@media(min-width:600px) and (max-height:600px) {
  html:not(:lang(zh)) .explore :is(.chapter-heading,.explore-head) h2 { font-size:clamp(24px,7svh,42px); line-height:1.12; }
  html:lang(ko) .explore :is(.chapter-heading,.explore-head) h2 { line-height:1.25; }
  html:not(:lang(zh)) .explore-panel:not(.people-panel) .chapter-copy { top:43%; }
}

/* Small translated scene cards keep their rows and labels inside the paper. */
.convergence-grid > span { min-width:0; }
.convergence-grid :is(b,small) { min-width:0; }
.convergence-grid small { white-space:normal; overflow-wrap:break-word; line-height:1.35; }
@media(max-width:480px) and (max-height:720px) {
  html:not(:lang(zh)) .manager-panel .manager-art { top:54%; height:27%; }
  html:not(:lang(zh)) .roster-sheet { padding:9px 12px; }
  html:not(:lang(zh)) .roster-sheet h3 { font-size:18px; margin:6px 0; }
  html:not(:lang(zh)) .roster-list > div { font-size:8px; line-height:1.3; }
  html:not(:lang(zh)) .roster-list b { font-size:8px; white-space:nowrap; }
  html:not(:lang(zh)) .sheet-footer { font-size:8px; margin-top:6px; }
  html:not(:lang(zh)) .room-teams { padding:6px 10px; }
  html:not(:lang(zh)) .room-teams > div { padding:5px; }
  html:not(:lang(zh)) .room-teams strong { font-size:24px; }
  html:not(:lang(zh)) .room-teams div > span { font-size:8px; }
  html:not(:lang(zh)) .room-checks > span { font-size:8px; line-height:1.25; padding:4px 2px; }
  html:not(:lang(zh)) .room-status { padding:6px 10px; font-size:8px; }
  html:not(:lang(zh)) .window-bar { padding:7px 10px; font-size:8px; }
  html:not(:lang(zh)) .convergence-grid > span { grid-template-columns:14px minmax(0,1fr); gap:3px; }
  html:not(:lang(zh)) .convergence-grid b { font-size:9px; }
  html:not(:lang(zh)) .convergence-grid small { font-size:8px; }
}
@media(max-width:480px) and (max-height:720px) {
  html:not(:lang(zh)) .manager-art .handoff-note { bottom:-1%; left:52%; right:-1%; padding:7px 10px; }
  html:not(:lang(zh)) .manager-art .handoff-note small { font-size:7px; margin-bottom:4px; }
  html:not(:lang(zh)) .manager-art .handoff-note strong { font-size:11px; }
  html:not(:lang(zh)) .room-label { top:-32%; right:-2%; font-size:20px; }
}
@media(max-width:360px) {
  .event-header { gap:6px; }
  .event-header .event-brand,html:not(:lang(zh)) .event-header .event-brand { --brand-wordmark-width:90px; }
  .event-header .site-preferences { gap:6px; padding-inline-start:6px; }
}
