html:is([lang=ja],[lang=zh-Hans]){--font-body:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;--font-heading:var(--font-body)}html:is([lang=ja],[lang=zh-Hans]) body{font-family:var(--font-body);line-height:1.9}html:is([lang=ja],[lang=zh-Hans]) h1,html:is([lang=ja],[lang=zh-Hans]) h2,html:is([lang=ja],[lang=zh-Hans]) h3{line-height:1.5;letter-spacing:.01em;overflow-wrap:anywhere}html:is([lang=ja],[lang=zh-Hans]) em{font-style:normal}html:is([lang=ja],[lang=zh-Hans]) .eyebrow{letter-spacing:.08em;text-transform:none;line-height:1.7}html:is([lang=ja],[lang=zh-Hans]) .home-hero h1{font-size:clamp(40px,4.8vw,68px)}html:is([lang=ja],[lang=zh-Hans]) .event-card h3{font-size:24px}html:is([lang=ja],[lang=zh-Hans]) .detail-copy h1{font-size:clamp(34px,4vw,55px)}html:is([lang=ja],[lang=zh-Hans]) .guide-hero h1{font-size:clamp(34px,4.5vw,60px)}html:is([lang=ja],[lang=zh-Hans]) .winter-intro h1{font-size:clamp(36px,4.4vw,60px)}html:is([lang=ja],[lang=zh-Hans]) .button{white-space:normal}html:is([lang=ja],[lang=zh-Hans]) #main-nav{gap:20px}html:is([lang=ja],[lang=zh-Hans]) .camera-caption strong{font-family:var(--font-body);font-size:16px}html:is([lang=ja],[lang=zh-Hans]) .gallery-grid figcaption{font-style:normal;line-height:1.7}
@media(min-width:761px) and (max-width:1100px){#main-nav{gap:16px}#main-nav>a{font-size:12px}#main-nav>.button{padding-inline:14px}.nav-shell{gap:22px}}
@media(max-width:760px){html:is([lang=ja],[lang=zh-Hans]) .home-section-heading h2,html:is([lang=ja],[lang=zh-Hans]) .spiritual-intro h2,html:is([lang=ja],[lang=zh-Hans]) .film-copy h2{font-size:34px}html:is([lang=ja],[lang=zh-Hans]) .home-wayfinding{line-height:1.8}}
html:is([lang=ja],[lang=zh-Hans]) .art-date{font-size:25px;line-height:1.3;letter-spacing:0}html:is([lang=ja],[lang=zh-Hans]) .art-top{font-size:10px;letter-spacing:.03em}html:is([lang=ja],[lang=zh-Hans]) .art-year{font-size:11px;line-height:1.3}
html:is([lang=ja],[lang=zh-Hans]) .events-intro h1{font-size:clamp(34px,4.8vw,64px)}html:is([lang=ja],[lang=zh-Hans]) .events-intro h1 em{display:inline-block}

/* Native Simplified Chinese fonts keep the site readable without another font download. */
html[lang=zh-Hans]{--font-body:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;--font-heading:var(--font-body)}

/* A single language control stays visible beside the main navigation on every screen. */
.nav-shell #main-nav{margin-left:auto}
.language-menu{position:relative;flex:none;color:var(--ink);font-family:var(--font-body);font-size:13px;line-height:1.4}
.language-menu>summary{list-style:none;display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:999px;cursor:pointer;background:transparent;white-space:nowrap;transition:background .15s,border-color .15s}
.language-menu>summary::-webkit-details-marker{display:none}
.language-menu>summary:hover,.language-menu[open]>summary{background:var(--white);border-color:var(--accent-text)}
.language-menu>summary:focus-visible,.language-options a:focus-visible{outline:2px solid var(--forest);outline-offset:3px}
.language-globe{width:18px;height:18px;flex:none;opacity:.8}
.language-chevron{width:14px;height:14px;transition:transform .15s}
.language-menu[open] .language-chevron{transform:rotate(180deg)}
.language-options{position:absolute;right:0;top:calc(100% + 12px);z-index:30;width:224px;max-width:calc(100vw - 40px);padding:10px;background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:0 14px 40px #383a301c}
.language-options p{margin:4px 10px 8px;color:var(--muted);font-size:11px;font-weight:500;letter-spacing:.02em}
.language-options a{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:10px 12px;border-radius:9px;color:var(--ink);text-decoration:none;font-size:14px;font-weight:400}
.language-options a:hover{background:var(--ivory)}
.language-options a[aria-current=true]{background:var(--sage);font-weight:600}
.language-options a[aria-current=true]::after{content:'✓';color:var(--forest);font-size:15px}
html:is([lang=de],[lang=es]) h1,html:is([lang=de],[lang=es]) h2,html:is([lang=de],[lang=es]) h3{hyphens:auto;overflow-wrap:break-word}
html:is([lang=de],[lang=es]) .home-hero h1{font-size:clamp(38px,4.6vw,65px)}
html:is([lang=de],[lang=es]) .button{white-space:normal}
@media(min-width:761px) and (max-width:1180px){.nav-shell{gap:16px}.nav-shell #main-nav{gap:16px;font-size:12px}.nav-shell #main-nav>.button{padding-inline:15px}.language-menu>summary{padding-inline:10px;font-size:12px}}
@media(max-width:760px){.nav-shell{gap:12px}.nav-shell>.brand{margin-right:auto}.nav-shell>.language-menu{order:2}.nav-shell>.menu-toggle{order:3}.nav-shell #main-nav{margin-left:0}.language-menu>summary{padding:9px 10px;font-size:12px;gap:6px}.language-options{top:calc(100% + 9px)}.language-options a{min-height:46px}.language-options p{font-size:12px}}
@media(max-width:360px){.nav-shell{gap:8px}.nav-shell>.menu-toggle{width:44px;min-height:44px;justify-content:center;padding:9px;flex:none}.menu-toggle>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.language-menu>summary,.language-chevron{transition:none}}

/* Korean uses native Hangul fonts and keeps words together where space allows. */
html[lang=ko]{--font-body:"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif;--font-heading:var(--font-body)}
html[lang=ko] body{line-height:1.8;word-break:keep-all;overflow-wrap:anywhere}
html[lang=ko] :is(h1,h2,h3){line-height:1.35;letter-spacing:-.025em}
html[lang=ko] em{font-style:normal}
html[lang=ko] .eyebrow{letter-spacing:.04em;text-transform:none}
html[lang=ko] .home-hero h1{font-size:clamp(38px,4.6vw,64px)}
html[lang=ko] :is(.detail-copy,.winter-intro,.guide-hero,.events-intro) h1{font-size:clamp(34px,4.4vw,58px)}
html[lang=ko] .button{white-space:normal}
html[lang=ko] .art-date{font-size:25px;letter-spacing:0}
html[lang=ko] .art-top{letter-spacing:.02em}
@media(max-width:760px){html[lang=ko] :is(.home-section-heading,.spiritual-intro,.film-copy) h2{font-size:34px}}

/* Keep the program link readable instead of wrapping the navigation on tablets. */
@media(min-width:761px) and (max-width:1000px){
 html{scroll-padding-top:95px}.nav-shell{min-height:76px;gap:16px}.nav-shell>.brand{margin-right:auto}
 .menu-toggle{display:flex;align-items:center;gap:11px;background:none;border:0;font-size:13px;padding:9px 0 9px 10px;order:3}.menu-toggle svg{width:22px}
 .nav-shell>.language-menu{order:2}.nav-shell #main-nav{display:none;position:absolute;left:0;right:0;top:76px;margin-left:0;padding:18px 32px 25px;background:var(--ivory);box-shadow:0 12px 20px #263c3212;border-top:1px solid var(--line);font-size:15px}
 .nav-shell #main-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:10px}.nav-shell #main-nav>a{font-size:15px}.nav-shell #main-nav .button{margin-top:8px;justify-content:space-between}
}
