:root {
  color-scheme: light;
  --paper: #F5F1EB;
  --ink: #30332e;
  --muted: #6b6d66;
  --line: #d5d1c7;
  --red: #9F3D2C;
  --brand-ink: #1A1917;
  --sans: 'Instrument Sans', 'Noto Sans JP', sans-serif;
  --serif: 'Newsreader', Georgia, serif;
  --japanese: 'Noto Serif JP', 'Yu Mincho', serif;
}
* { box-sizing: border-box; }
html { background: var(--paper); scroll-behavior: smooth; scroll-padding-top: 32px; }
body { margin: 0; color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
::selection { background: #ded2c4; color: var(--ink); }
a:focus-visible { outline: 2px solid var(--red); outline-offset: 8px; }
.skip-link { position: fixed; top: 12px; left: 16px; z-index: 10; padding: 12px; background: var(--ink); color: var(--paper); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.page { max-width: 1600px; margin: auto; padding: 0 clamp(24px, 5.55vw, 88px); }
.masthead { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 33px 0 27px; border-bottom: 1px solid var(--line); }
.wordmark { display: flex; align-items: baseline; gap: 17px; flex-shrink: 0; line-height: 1; }
.wordmark>span { color: var(--brand-ink); font: 500 20px/1 'EB Garamond', Georgia, serif; letter-spacing: .26em; white-space: nowrap; }
.wordmark em { font: italic 300 54px/.85 'Cormorant Garamond', Georgia, serif; letter-spacing: -.04em; color: var(--red); transform: translateY(3px); }
.header-meta { display: flex; align-items: center; gap: 52px; font-size: 11px; }
.location { color: var(--muted); text-transform: uppercase; letter-spacing: .1em; }
.contact-nav { display: flex; align-items: center; gap: 16px; }
.nav-copy { display: grid; gap: 4px; font-size: 10px; }
.nav-copy>span[lang=en] { color: var(--muted); font-size: 10px; letter-spacing: .04em; }
.contact-nav:hover { color: var(--red); }
.contact-nav>span:last-child { font-size: 17px; }
.announcement { position: relative; display: grid; grid-template-columns: 1.25fr 1fr; column-gap: 5%; padding: 64px 0 0; }
.announcement-copy { position: relative; z-index: 1; padding-top: 22px; }
.eyebrow { display: flex; align-items: center; gap: 13px; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 48px; }
.seal { width: 7px; height: 7px; background: var(--red); flex-shrink: 0; }
h1 { margin: 0 0 38px; font: 300 clamp(78px, 8.4vw, 131px)/.96 var(--serif); letter-spacing: -.045em; }
h1>span, h1>em { display: block; white-space: nowrap; }
h1 em { font-weight: 300; letter-spacing: -.055em; margin-left: .1em; }
.launch-note { margin-left: 5px; }
.japanese-title { font: 400 17px/1.9 var(--japanese); letter-spacing: .025em; margin: 0 0 14px; }
.english-note { color: var(--muted); font: 400 15px/1.65 var(--sans); margin: 0; }
.discover-link { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 5px 18px; font-size: 10px; letter-spacing: .025em; border-bottom: 1px solid var(--line); margin: 34px 0 0 5px; padding-bottom: 12px; }
.discover-link>span[lang=en] { color: var(--muted); }
.discover-link svg { width: 16px; height: 16px; margin-left: 7px; fill: none; stroke: var(--red); stroke-width: 1; transition: transform .25s; }
.discover-link:hover { border-color: var(--red); }
.discover-link:hover svg { transform: translateY(3px); }
.hero-figure { margin: 0; padding: 0 0 0 18px; align-self: start; }
.figure-image { position: relative; overflow: hidden; background: #d3d0ca; }
.figure-image img { display: block; width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; }
figcaption { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; padding-top: 13px; color: var(--muted); font-size: 10px; line-height: 1.7; letter-spacing: .02em; }
figcaption>span:first-child { font-family: var(--japanese); font-size: 12px; color: var(--ink); }
.concept-caption { display: grid; text-align: right; font-size: 9px; line-height: 1.6; }
.hero-bottom { grid-column: 1/-1; display: flex; align-items: center; gap: 24px; color: var(--muted); font-size: 10px; line-height: 1.8; padding: 40px 0 26px; }
.bottom-mark { margin-left: auto; color: var(--red); font: 400 18px/1 var(--serif); letter-spacing: -.05em; }
.programme { display: grid; grid-template-columns: .9fr 1.25fr 1.15fr; gap: 5%; padding: 42px 0 45px; border-top: 1px solid var(--line); }
.section-label { display: flex; align-items: flex-start; gap: 20px; }
.index { color: var(--red); font-size: 10px; line-height: 2.3; }
.section-label h2 { margin: 0; font: 400 25px/1.1 var(--serif); letter-spacing: -.015em; }
.section-japanese { display: block; font: 400 10px/1.8 var(--sans); margin-top: 13px; color: var(--muted); letter-spacing: .025em; }
.programme-copy h3 { font: 400 17px/1.9 var(--japanese); letter-spacing: .01em; margin: 0 0 14px; }
.programme-copy p { font-size: 12px; line-height: 2.1; color: var(--muted); margin: 0; }
.english h3 { font: 400 25px/1.3 var(--serif); letter-spacing: -.01em; margin: 0 0 16px; }
.english p { font-size: 13px; line-height: 1.85; }
.contact { display: grid; grid-template-columns: .9fr 2.55fr; gap: 5%; align-items: center; border-top: 1px solid var(--line); padding: 32px 0 38px; }
.contact h2 { display: grid; gap: 7px; font-size: 11px; font-weight: 400; letter-spacing: .035em; color: var(--muted); margin: 0; }
.contact h2>span[lang=en] { font-family: var(--serif); font-size: 17px; font-style: italic; color: var(--ink); }
.email { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 20px; font: 300 clamp(28px, 3.3vw, 48px)/1.4 var(--serif); letter-spacing: -.025em; }
.email>span:first-child { background: linear-gradient(var(--red),var(--red)) 0 100%/0 1px no-repeat; transition: background-size .3s; }
.email:hover>span:first-child { background-size: 100% 1px; }
.email-arrow { display: grid; place-items: center; width: 46px; height: 46px; flex-shrink: 0; border: 1px solid #bfbdb1; border-radius: 50%; color: var(--red); transition: color .25s,background-color .25s,border-color .25s; }
.email-arrow svg { width: 17px; height: 17px; stroke: currentColor; stroke-width: 1; fill: none; }
.email:hover .email-arrow { background: var(--red); border-color: var(--red); color: var(--paper); }
footer { border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 24px; padding: 22px 0 28px; font-size: 9px; letter-spacing: .07em; color: var(--muted); }
.footer-languages { margin-left: auto; margin-right: auto; letter-spacing: .02em; }
@media (min-width: 1500px) { .announcement { padding-top: 82px; } .announcement-copy { padding-top: 42px; } .eyebrow { margin-bottom: 60px; } .launch-note { margin-top: 46px; } .discover-link { margin-top: 44px; } }
@media (max-width: 1100px) { .wordmark>span { font-size: 17px; } .wordmark em { font-size: 47px; } .announcement { column-gap: 4%; } .hero-figure { padding-left: 0; } .announcement-copy { padding-top: 9px; } .eyebrow { margin-bottom: 33px; } h1 { font-size: 8.3vw; margin-bottom: 28px; } .japanese-title { font-size: 15px; } .english-note { font-size: 13px; } .discover-link { margin-top: 25px; gap: 5px 10px; font-size: 9px; } .programme { gap: 4%; grid-template-columns: .8fr 1.25fr 1.15fr; } .section-label { gap: 12px; } .programme-copy h3 { font-size: 15px; } .english h3 { font-size: 23px; } .desktop-break { display: none; } }
@media (max-width: 760px) {
  .masthead { padding: 28px 0 24px; }
  .wordmark { gap: 9px; } .wordmark>span { font-size: 14px; letter-spacing: .18em; } .wordmark em { font-size: 42px; }
  .header-meta { gap: 0; } .location { display: none; } .contact-nav { gap: 8px; font-size: 10px; }
  .announcement { grid-template-columns: 1fr; padding-top: 38px; }
  .announcement-copy { padding-top: 0; } .eyebrow { margin-bottom: 34px; font-size: 9px; }
  h1 { font-size: clamp(71px, 12.9vw, 106px); margin-bottom: 31px; }
  h1 em { margin-left: .08em; }
  .launch-note { margin-left: 2px; } .japanese-title { font-size: 16px; } .english-note { font-size: 14px; }
  .discover-link { font-size: 10px; margin: 25px 0 0 2px; gap: 5px 14px; }
  .hero-figure { width: 72%; max-width: 350px; margin: 44px 0 0 auto; padding: 0; }
  figcaption { font-size: 9px; padding-top: 11px; } figcaption>span:first-child { font-size: 11px; } .concept-caption { font-size: 8px; }
  .hero-bottom { padding: 30px 0 24px; flex-wrap: wrap; gap: 3px 12px; font-size: 9px; }
  .hero-bottom>span:first-child { flex-basis: 100%; } .bottom-mark { font-size: 16px; }
  .programme { grid-template-columns: 1fr 1fr; gap: 29px 6%; padding: 32px 0 35px; }
  .section-label { grid-column: 1/-1; gap: 15px; } .section-label h2 { font-size: 25px; } .section-label h2 br { display: none; }
  .section-japanese { margin-top: 8px; } .programme-copy h3 { font-size: 16px; line-height: 1.9; } .english h3 { font-size: 24px; line-height: 1.3; }
  .contact { grid-template-columns: 1fr; gap: 20px; padding: 28px 0 33px; }
  .contact h2 { display: flex; align-items: baseline; gap: 15px; font-size: 10px; }
  .contact h2>span[lang=en] { font-size: 15px; } .email { font-size: clamp(27px,5.4vw,40px); gap: 12px; }
  .email-arrow { width: 35px; height: 35px; } .email-arrow svg { width: 14px; height: 14px; }
  footer { gap: 16px; padding: 20px 0 25px; font-size: 8px; letter-spacing: .025em; } .footer-languages { display: none; }
}
@media (max-width: 440px) {
  .masthead { flex-wrap: wrap; gap: 14px 12px; } .header-meta { margin-left: auto; }
  .contact-nav { font-size: 9px; gap: 6px; } .contact-nav>span:last-child { font-size: 14px; }
  h1 { font-size: clamp(64px,17vw,76px); }
  .japanese-title { font-size: 15px; } .hero-figure { width: 80%; }
  .programme { grid-template-columns: 1fr; gap: 27px; } .section-label { margin-bottom: 1px; }
  .programme-copy p { max-width: 30em; } .english p { font-size: 13px; }
  .email { font-size: clamp(23px,6.3vw,28px); } .email-arrow { width: 32px; height: 32px; }
  footer>span:last-child { max-width: 130px; text-align: right; }
}
@media (max-width: 370px) { .wordmark>span { font-size: 12px; } .wordmark em { font-size: 37px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
