/* Reference-informed institutional layout */
.institution-hero { min-height: 680px; }
.institution-mark { position:absolute; right:clamp(120px,14vw,190px); top:49%; width:min(25vw,370px); transform:translateY(-49%); opacity:.075; }
.institution-mark img { display:block; width:100%; }
.institution-hero .hero-content { z-index:2; }
main > .section { min-height:100svh; }
main > .section:not(.contact) { display:flex; flex-direction:column; }
main > .overview-section .editorial-grid,
main > .direction-section .direction-grid,
main > .name-section .name-grid { flex:1; align-items:center; }
main > .contact { justify-content:flex-start; }
main > .contact .contact-layout { flex:1; margin-top:0; align-items:center; }
.brand img { width:38px; height:auto; }
.brand span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.institution-hero .wordmark { display:block; width:min(80vw,1040px); max-width:none; margin:0; line-height:1; }
.institution-hero .wordmark img { display:block; width:100%; height:auto; }

.notice-bar { min-height:72px; padding:0 var(--pad); display:grid; grid-template-columns:110px 1fr auto; align-items:center; gap:24px; background:#deddd8; color:var(--ink); border-bottom:1px solid rgba(11,11,11,.18); }
.notice-bar > span { font:600 10px/1 var(--display); letter-spacing:.14em; text-transform:uppercase; }
.notice-bar p { margin:0; font-size:13px; font-weight:400; }
.notice-bar time { color:rgba(11,11,11,.5); font:500 10px/1 var(--display); letter-spacing:.1em; }

.editorial-grid { display:grid; grid-template-columns:minmax(150px,1fr) 3.3fr; gap:5vw; }
.section-kicker { margin:8px 0 0; color:rgba(11,11,11,.48); font:500 10px/1.7 var(--display); letter-spacing:.15em; }
.editorial-copy h2 { margin:0; max-width:1000px; white-space:pre-line; font-size:clamp(43px,5.6vw,86px); font-weight:500; line-height:1.2; letter-spacing:-.055em; text-wrap:balance; }
.overview-body { width:min(100%,650px); margin:72px 0 0 auto; display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.overview-body p { margin:0; font-size:15px; line-height:1.9; letter-spacing:-.015em; }
.overview-body p+ p { color:rgba(11,11,11,.55); }

.status-section { background:var(--ink); }
.status-heading { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:62px; }
.status-heading h2 { margin:0; font-size:clamp(48px,6vw,90px); font-weight:400; line-height:1; letter-spacing:-.05em; }
.status-heading p { margin:0; color:var(--muted); font-size:12px; }
.status-table { margin:0; border-top:1px solid var(--line); }
.status-table > div { min-height:116px; display:grid; grid-template-columns:1fr 2fr 140px; gap:30px; align-items:center; border-bottom:1px solid var(--line); }
.status-table dt { color:var(--muted); font-size:13px; }
.status-table dd { margin:0; font:400 clamp(25px,3vw,44px)/1.1 var(--body); letter-spacing:-.035em; }
.status-table span { justify-self:end; min-width:88px; padding:8px 10px; border:1px solid var(--line); color:var(--muted); text-align:center; font:500 9px/1 var(--display); letter-spacing:.12em; text-transform:uppercase; }

.direction-section { overflow:hidden; }
.direction-grid { display:grid; grid-template-columns:1.65fr 1fr; gap:8vw; align-items:end; }
.direction-title > span { color:rgba(11,11,11,.5); font:500 10px/1 var(--display); letter-spacing:.15em; }
.direction-title h2 { margin:16px 0 -1.3vw; font:400 clamp(76px,11.6vw,180px)/.78 var(--display); letter-spacing:-.07em; }
.direction-copy { padding-top:50px; border-top:1px solid rgba(11,11,11,.25); }
.direction-copy p { margin:0; font-size:15px; line-height:1.9; }
.direction-facts { margin-top:48px; display:flex; flex-wrap:wrap; gap:9px; }
.direction-facts span { padding:9px 11px; border:1px solid rgba(11,11,11,.25); font:500 9px/1 var(--display); letter-spacing:.12em; }

.name-section { background:#171717; }
.name-grid { display:grid; grid-template-columns:1.55fr 1fr; gap:8vw; align-items:end; }
.name-sequence { display:grid; grid-template-columns:auto 1fr auto 1fr auto; gap:18px; align-items:center; }
.name-sequence span { font:500 clamp(25px,3.3vw,52px)/1 var(--body); letter-spacing:-.04em; }
.name-sequence i { height:1px; background:var(--line); }
.name-grid h2 { margin:0 0 24px; font-size:clamp(42px,5vw,76px); font-weight:400; line-height:1; letter-spacing:-.05em; }
.name-grid p { margin:0; color:var(--muted); font-size:14px; line-height:1.9; }

html:lang(en) .editorial-copy h2 { max-width:800px; font-size:clamp(42px,5.2vw,80px); line-height:1.1; }
html:lang(ja) .editorial-copy h2 { max-width:900px; font-size:clamp(39px,5vw,76px); line-height:1.35; }
html:lang(en) .status-table dd { font-family:var(--display); letter-spacing:-.02em; }
html:lang(ja) .status-table dd { font-family:"Noto Sans JP",sans-serif; }

.contact-layout .official-links { margin:34px 0 0; padding:0; list-style:none; border-top:1px solid rgba(11,11,11,.22); }
.contact-layout .official-links li { border-bottom:1px solid rgba(11,11,11,.22); }
.contact-layout .official-links a { display:grid; grid-template-columns:1fr auto; align-items:center; gap:24px; width:auto; padding:16px 0; border:0; font:500 11px/1 var(--display); letter-spacing:.12em; text-transform:uppercase; }
.contact-layout .official-links a::after { display:none; }
.contact-layout .official-links a b { color:rgba(11,11,11,.58); font:400 11px/1.3 var(--body); letter-spacing:0; text-align:right; text-transform:none; }
.contact-layout .official-links a:hover b { color:var(--ink); }

.channel-cta { display:flex; align-items:center; gap:18px; margin-right:24px; padding:10px 13px; border:1px solid rgba(255,255,255,.3); font:500 9px/1 var(--display); letter-spacing:.11em; text-transform:uppercase; transition:background .2s,color .2s; }
.channel-cta b { font-weight:400; }
.channel-cta:hover { background:var(--paper); color:var(--ink); }
.hero-social { position:absolute; z-index:6; top:25%; right:var(--pad); display:flex; flex-direction:column; gap:10px; }
.hero-social a { width:46px; min-width:0; height:46px; display:grid; place-items:center; opacity:.82; filter:saturate(.9); transition:opacity .2s,filter .2s,transform .2s; }
.hero-social a:hover { opacity:1; filter:saturate(1.08); transform:translateX(-4px) scale(1.04); }
.hero-social svg { display:block; width:40px; height:40px; }
:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.hero-social a:focus-visible { opacity:1; filter:saturate(1.08); }

/* Keep chapters single-step in ordinary browser windows and ultrawide displays. */
@media (min-width:761px) and (max-height:1000px) {
  .section { padding-top:clamp(58px,8svh,84px); padding-bottom:clamp(58px,8svh,84px); }
  .status-section { justify-content:center; }
  .section-label { margin-bottom:clamp(30px,5svh,48px); }
  .status-heading { margin-bottom:clamp(24px,4svh,38px); }
  .status-heading h2 { font-size:clamp(40px,7svh,68px); }
  .status-table > div { min-height:clamp(72px,11svh,98px); }
  .status-table dd { font-size:clamp(24px,4.5svh,38px); }
  .overview-body { margin-top:clamp(38px,6svh,58px); }
  .contact-layout h2 { margin-bottom:clamp(26px,4svh,38px); }
  .contact-layout .official-links { margin-top:clamp(22px,3.5svh,30px); }
  .contact-layout .official-links a { padding-top:clamp(11px,1.7svh,15px); padding-bottom:clamp(11px,1.7svh,15px); }
}

@media (max-width:760px) {
  main > .section { min-height:0; }
  main > .section:not(.contact), main > .contact { display:block; }
  .site-header { padding-left:18px; padding-right:18px; }
  .brand { gap:0; }
  .brand img { width:32px; }
  .language-switcher { gap:3px; }
  .language-switcher button { padding:6px 2px; font-size:8px; }
  .menu-button { width:26px; height:28px; margin-left:10px; padding:0; font-size:0; }
  .menu-button::before, .menu-button::after { content:""; position:absolute; right:0; width:22px; height:1px; background:currentColor; transition:transform .25s,top .25s; }
  .menu-button::before { top:9px; }
  .menu-button::after { top:18px; }
  .menu-button i { display:none; }
  .menu-button[aria-expanded="true"]::before { top:14px; transform:rotate(45deg); }
  .menu-button[aria-expanded="true"]::after { top:14px; transform:rotate(-45deg); }
  .institution-hero { min-height:660px; }
  .institution-mark { right:24vw; top:45.5%; width:62vw; opacity:.055; }
  .institution-hero .wordmark { width:91vw; max-width:none; }
  .notice-bar { min-height:92px; grid-template-columns:58px 1fr; gap:14px; padding-top:18px; padding-bottom:18px; }
  .notice-bar p { font-size:12px; line-height:1.6; }
  .notice-bar time { display:none; }
  .editorial-grid { grid-template-columns:1fr; }
  .section-kicker { display:none; }
  .editorial-copy h2, html:lang(en) .editorial-copy h2, html:lang(ja) .editorial-copy h2 { font-size:10vw; line-height:1.35; }
  .overview-body { margin-top:46px; grid-template-columns:1fr; gap:24px; }
  .overview-body p { font-size:14px; }
  .status-heading { align-items:flex-start; flex-direction:column; gap:18px; margin-bottom:42px; }
  .status-heading h2 { font-size:11vw; }
  .status-table > div { min-height:108px; grid-template-columns:1fr auto; gap:10px 16px; padding:18px 0; }
  .status-table dt { grid-column:1; }
  .status-table dd { grid-column:1; font-size:7vw; }
  .status-table span { grid-column:2; grid-row:1 / span 2; min-width:75px; }
  .direction-grid { grid-template-columns:1fr; gap:60px; }
  .direction-title h2 { margin-top:20px; font-size:20vw; }
  .direction-copy { padding-top:32px; }
  .direction-copy p { font-size:14px; }
  .name-grid { grid-template-columns:1fr; gap:66px; }
  .name-sequence { gap:9px; }
  .name-sequence span { font-size:6.4vw; }
  .name-grid h2 { font-size:11vw; }
  .contact-layout .official-links { margin-top:28px; }
  .contact-layout .official-links a { gap:12px; padding:15px 0; font-size:10px; }
  .contact-layout .official-links a b { font-size:10px; }
  .channel-cta { display:none; }
  .hero-social { top:23%; right:16px; gap:8px; }
  .hero-social a { width:42px; height:42px; }
  .hero-social svg { width:38px; height:38px; }
}
