/* Shared desktop/mobile language control, beside the floating menu. */
.language-switch{position:absolute;top:12px;right:12px;z-index:1100;display:flex;align-items:center;gap:1px;padding:0;border:0;border-radius:0;background:transparent;color:#183b29;font:600 12px/1 'Barlow',sans-serif;box-shadow:none}
.language-switch button{min-width:34px;min-height:32px;padding:6px;border:0;border-radius:3px;background:transparent;color:inherit;font:inherit;cursor:pointer}
.language-switch button[aria-pressed=true]{background:transparent;color:#183b29;text-decoration:underline;text-underline-offset:4px}
.language-switch button:focus-visible{outline:2px solid #183b29;outline-offset:2px}
html[lang=en] .talk-facts>div{grid-template-columns:90px minmax(0,1fr)}
html[lang=en] .story-copy p{overflow-wrap:normal;word-break:normal;line-height:1.9}
html[lang=en] .member-list dt,html[lang=en] .access-details p{overflow-wrap:anywhere}
html[lang=en] #announce .event-notice{grid-template-columns:92px minmax(0,1fr) 18px}
html[lang=en] #announce .event-notice .notice-title{overflow-wrap:normal}
html[lang=en] .works-desktop-filters,html[lang=en] .works-mobile-filters{flex-wrap:wrap}
@media(max-width:700px){
 .language-switch{top:8px;right:8px;font-size:11px}
 .language-switch button{min-width:32px;min-height:32px}
 html[lang=en] #announce .talk-facts>div{grid-template-columns:80px minmax(0,1fr)}
 html[lang=en] .story-copy br{display:none}
}

.language-switch-dialog{position:static;width:max-content;margin:18px 0 0 auto;box-shadow:none}
@media(max-width:700px){
 html[lang=en] .hero-venue-list{width:92vw;font-size:3vw}
 html[lang=en] .hero-venue-list li{white-space:normal}
 html[lang=en] .hero-venue-tag{width:5em}
}
/* Section-only previews also reserve room for the floating controls. */
html[data-prototype=works] #works{padding-top:72px}

.language-switch[hidden]{display:none}
#announce .announce-talk{padding-bottom:64px;min-height:fit-content}
#announce .announce-fund{padding-top:48px}
html[lang=en] #announce .talk-facts>div{grid-template-columns:100px minmax(0,1fr);gap:18px}
html[lang=en] #announce .talk-facts dt{white-space:nowrap;font-size:14px}
#announce .talk-register{margin-bottom:18px}
#announce .fund-card-bottom{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
#announce .fund-card-bottom p{flex:1 1 300px;max-width:none;line-height:1.7}
@media(max-width:700px){
 .hero-composition .hero-title-ja{left:4vw!important;top:60px!important;width:72vw!important;height:auto!important}
 .hero-composition .hero-wordmark{left:4vw;top:calc(60px + 34.97vw + 14px);bottom:auto;width:58.5vw}
 .top-menu-toggle{top:53px}
 html[lang=en] .hero-venue-list{font-size:clamp(11px,3.15vw,14px);width:92vw;bottom:14svh}
 html[lang=en] .hero-venue-building{font-size:1.05em;white-space:nowrap}
 html[lang=en] .hero-venue-list li{display:flex;flex-wrap:nowrap;white-space:nowrap;line-height:1.7}
 html[lang=en] .hero-venue-tag{width:auto;min-width:48px;white-space:nowrap;font-size:9px;margin-right:8px;line-height:1.4}
 html[lang=en] #works .works-mobile-tag{min-width:0;white-space:nowrap;height:auto;min-height:22px;padding:4px 6px;font-size:10px;letter-spacing:0;box-sizing:border-box}
 html[lang=en] #works .works-mobile-tags{gap:5px;flex-wrap:wrap}
 html[lang=en] #announce .talk-facts>div{grid-template-columns:90px minmax(0,1fr);gap:12px}
 #announce .fund-card-bottom p{flex-basis:100%}
}

html[lang=en] .member-list dd{overflow-wrap:normal;word-break:normal}

/* Keep the original reservation artwork on the Japanese first view only. */


/* Let talk details determine their own height before the next chapter. */
#announce .announce-talk .announce-intro{height:auto}
#announce .announce-fund{margin-top:24px}

.works-upcoming{margin:24px 24px 0;text-align:center;color:#183b29;font:500 15px/1.8 'Zen Kaku Gothic Antique',sans-serif}
#announce .announce-fund{margin-top:0}


@media(min-width:701px){
 html[lang=en] .hero-composition .hero-venue{width:calc(425 * var(--fv-unit))}
 html[lang=en] .hero-composition .hero-dates{width:calc(265 * var(--fv-unit))}
}
@media(max-width:700px){
 html[lang=en] .hero-composition .hero-dates{width:40vw;max-width:none}
 html[lang=en] .hero-venue-list{font-size:clamp(12px,3.4vw,15px)}
}

#announce .fund-card img{object-fit:contain;background:#fff}

.hero-reservation{position:absolute;z-index:5;left:calc(14 * var(--fv-unit));bottom:calc(7 * var(--fv-unit));width:calc(190 * var(--fv-unit));display:block;pointer-events:auto}
.hero-reservation .hero-ticket{display:block;width:100%;height:auto}
.hero-reservation:focus-visible{outline:3px solid #183b29;outline-offset:4px}
@media(max-width:700px){.hero-reservation{left:auto;right:1vw;bottom:3.8svh;width:50.6vw}}

/* Keep chapter height tied to the remaining fund content. */
#announce.announce-normal-flow{min-height:0;padding-bottom:70px}
#announce .announce-fund{min-height:0;padding-bottom:24px}
#announce .announce-fund .announce-intro{height:auto}
#announce .fund-card figure{height:auto!important;min-height:0;max-height:none;aspect-ratio:1302/686}
#announce .fund-card img,#announce .fund-card:hover img{transform:none!important;transition:none!important;width:100%;height:100%;object-fit:contain}
.announce-fixed-label{opacity:.34}
#access::after,#members::after,#works::after,#archives::before{filter:brightness(0);opacity:.25}
@media(min-width:701px) and (max-width:1100px){
 .top-header:not(.is-menu-open) nav a:nth-child(n){margin-left:-24px}
 .top-header:not(.is-menu-open) nav a:nth-child(2){top:calc(18 * var(--fv-unit) + 30px)}
 .top-header:not(.is-menu-open) nav a:nth-child(3){top:calc(18 * var(--fv-unit) + 60px)}
 .top-header:not(.is-menu-open) nav a:nth-child(4){top:calc(18 * var(--fv-unit) + 90px)}
 .top-header:not(.is-menu-open) nav a:nth-child(5){top:calc(18 * var(--fv-unit) + 120px)}
 .top-header:not(.is-menu-open) nav a:nth-child(6){top:calc(18 * var(--fv-unit) + 150px)}
}

/* Consistent pale green section lettering with space below member artwork. */
:root{--section-letter-height:clamp(40px,5vw,68px);--section-letter-filter:brightness(0) saturate(100%) invert(79%) sepia(12%) saturate(389%) hue-rotate(91deg)}
.announce-fixed-label{width:100vw;height:var(--section-letter-height);background-size:auto 100%;filter:var(--section-letter-filter);opacity:.14;transform:none}
#access::after,#members::after,#works::after,#archives::before{width:100%;height:var(--section-letter-height);background-size:auto 100%;filter:var(--section-letter-filter);opacity:.3;pointer-events:none}
#members.members-natural{padding-bottom:calc(var(--section-letter-height) + 28px)}
#members::after{right:0;bottom:8px}
#access::after{left:0;bottom:8px}
#archives::before{left:0;bottom:8px;top:auto}
@media(max-width:700px){
 .hero-composition .hero-title-ja{top:min(60px,7svh)!important;width:min(72vw,300px,36svh)!important}
 .hero-composition .hero-wordmark{top:calc(min(60px,7svh) + min(34.97vw,145.7px,17.485svh) + 14px);width:min(58.5vw,244px,29svh)}
 .hero-composition .hero-dates,html[lang=en] .hero-composition .hero-dates{top:38svh;width:min(38vw,160px,20svh);max-width:none}
 .hero-venue-list,html[lang=en] .hero-venue-list{font-size:clamp(10px,2.8vw,13px);bottom:18svh;width:92vw}
 .hero-venue-building,html[lang=en] .hero-venue-building{font-size:1.05em}
 .hero-reservation{width:min(50.6vw,210px,25svh)}
 .birth-pin{height:100dvh}
 .birth-intro #top{height:100dvh}
 .concept-final{min-height:100svh}
}
