@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;1,300&family=Noto+Serif+JP:wght@300;400&display=swap');

:root{--ink:#15211d;--paper:#f4f6f3;--mist:#dce7e2;--glass:rgba(246,249,247,.78);--line:rgba(21,33,29,.2);--serif:"Cormorant Garamond","Times New Roman",serif;--jp:"Noto Serif JP","Yu Mincho",serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--jp);font-weight:300;line-height:2;letter-spacing:.06em}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{color:inherit;font:inherit}
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:100;background:#fff;padding:.5rem 1rem}.skip-link:focus{top:1rem}
.site-header{position:fixed;inset:0 0 auto;z-index:20;height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;color:#fff;mix-blend-mode:difference}
.brand{display:flex;gap:1rem;align-items:baseline}.brand span{font-size:1.15rem;letter-spacing:.22em}.brand small{font-family:var(--serif);font-size:.78rem;letter-spacing:.18em}
.site-nav{display:flex;gap:2.2rem;font:400 .68rem/1 var(--serif);letter-spacing:.16em}.site-nav a{position:relative}.site-nav a:after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:1px;background:currentColor;transition:width .3s}.site-nav a:hover:after,.site-nav a:focus-visible:after{width:100%}
.menu-button{display:none;background:none;border:0}
.hero{position:relative;min-height:100svh;overflow:hidden;background:#87998b;color:#fff}
.hero-image{position:absolute;inset:0}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:50% 43%;filter:saturate(.68) contrast(.92)}
.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,25,18,.46) 0%,rgba(20,30,24,.08) 52%,rgba(237,244,237,.12)),linear-gradient(0deg,rgba(8,20,15,.35),transparent 50%)}
.hero-copy{position:absolute;left:8vw;top:50%;transform:translateY(-45%);text-shadow:0 2px 30px rgba(0,0,0,.25)}
.hero-kicker{font:400 clamp(.63rem,.9vw,.78rem)/1 var(--serif);letter-spacing:.28em;margin:0 0 2rem}
.hero h1{margin:0;font-weight:300;line-height:1}.hero h1 span{display:block;font-size:clamp(5rem,12vw,11rem);letter-spacing:.18em}.hero h1 small{display:block;margin:1rem 0 2.5rem .4em;font-size:clamp(1.3rem,2.2vw,2.2rem);letter-spacing:.5em}
.hero-date{font-family:var(--serif);font-size:1rem;letter-spacing:.18em;margin:0}.hero-date strong{font-size:1.8rem;font-weight:400}.hero-place{font:400 .68rem/1.7 var(--serif);letter-spacing:.15em;margin:1rem 0 0}
.scroll-cue{position:absolute;bottom:2.5rem;left:50%;display:flex;flex-direction:column;align-items:center;gap:.7rem;font:400 .58rem/1 var(--serif);letter-spacing:.2em}.scroll-cue i{height:50px;width:1px;background:rgba(255,255,255,.8);animation:scroll 1.8s infinite;transform-origin:top}
.hero-index{position:absolute;right:2vw;bottom:8rem;writing-mode:vertical-rl;font:400 .6rem/1 var(--serif);letter-spacing:.25em}
@keyframes scroll{0%{transform:scaleY(0)}45%{transform:scaleY(1)}100%{transform:scaleY(0);transform-origin:bottom}}
.section{padding:clamp(6rem,12vw,12rem) 8vw}.section-head{display:grid;grid-template-columns:1fr 2fr;align-items:end;border-bottom:1px solid var(--line);padding-bottom:2rem}.section-no{font:400 .7rem/1 var(--serif);letter-spacing:.18em;margin:0}.section-head h2{font-weight:300;font-size:clamp(2.8rem,6vw,6rem);letter-spacing:.12em;line-height:1.15;margin:0}.section-en{grid-column:2;font:italic 300 1.1rem/1.2 var(--serif);margin:1rem 0 0;letter-spacing:.08em}
.about{background:linear-gradient(140deg,#f7f8f5,#e8efeb)}.about-lead{display:grid;grid-template-columns:1fr 1fr;align-items:end;margin:9rem 0}.about-lead>p{font-size:clamp(2rem,4.4vw,4.8rem);line-height:1.6;letter-spacing:.12em;margin:0}.about-lead>span{justify-self:end;font-size:.9rem;line-height:2.2}
.concepts{display:grid;gap:2px}.concept{display:grid;grid-template-columns:.3fr 1fr 1.5fr;gap:3vw;padding:5rem 4vw;background:rgba(255,255,255,.55);border-top:1px solid var(--line)}.concept-no{font:italic 300 3rem/1 var(--serif);opacity:.4}.concept-label{font-size:.67rem;letter-spacing:.12em;margin:0 0 1.4rem}.concept h3{font-size:clamp(1.8rem,3vw,3rem);font-weight:300;letter-spacing:.16em;margin:0}.concept-copy p{margin:0 0 1.3rem}.concept-dark{background:var(--ink);color:#eef5f1;border:0}
.interlude{height:90vh;min-height:620px;position:relative;overflow:hidden}.interlude img{width:100%;height:100%;object-fit:cover;filter:saturate(.65)}.interlude:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,24,18,.48),transparent 50%)}.interlude p{position:absolute;z-index:1;left:7vw;bottom:6vw;color:#fff;font-size:1.1rem;letter-spacing:.2em}.interlude p span{display:block;font:italic 300 clamp(2.6rem,6vw,6rem)/1 var(--serif);letter-spacing:.02em;margin-bottom:1.5rem}
.profile{display:grid;grid-template-columns:minmax(300px,.9fr) 1.1fr;gap:10vw;align-items:center}.profile-photo{position:relative}.profile-photo img{width:100%;max-height:850px;object-fit:cover}.profile-photo span{display:block;font:400 .6rem/1 var(--serif);letter-spacing:.18em;margin-top:1rem}.profile-copy h2{font-size:clamp(3rem,6vw,6rem);font-weight:300;line-height:1.2;letter-spacing:.08em;margin:2.5rem 0 0}.profile-copy h2 small{display:block;font:italic 300 .4em/1 var(--serif);letter-spacing:.03em}.profile-reading{font:400 .65rem/1 var(--serif);letter-spacing:.25em;margin:1rem 0 4rem}.profile-lead{font-size:clamp(1.4rem,2.4vw,2.2rem);line-height:1.8;letter-spacing:.13em}.placeholder-note{font-size:.68rem;opacity:.62;margin-top:2.5rem}
.gallery{background:#e5ece8}.gallery-grid{display:grid;grid-template-columns:1.15fr .7fr;gap:3vw;margin-top:7rem;align-items:start}.gallery-item{border:0;padding:0;background:none;text-align:left;cursor:zoom-in;overflow:hidden}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .7s,filter .7s}.gallery-item:hover img{transform:scale(1.02);filter:brightness(.9)}.gallery-item span{display:block;font:400 .6rem/1 var(--serif);letter-spacing:.2em;margin-top:1rem}.gallery-wide{grid-row:span 2}.gallery-wide img{aspect-ratio:3/2}.gallery-tall img,.gallery-portrait img{aspect-ratio:2/3}.gallery-portrait{width:70%;margin:7rem 0 0 -25%}.gallery-note{text-align:right;margin:6rem 0 0;font-size:.8rem}
.photographers{background:#f8f8f5}.photographers-intro{max-width:610px;margin:6rem 0 5rem auto;font-size:1.05rem}.photographer-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr}.photographer-list li{min-height:120px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:3rem 1fr auto;align-items:center;padding:1.2rem 2rem 1.2rem 0}.photographer-list li:nth-child(odd){border-right:1px solid var(--line);padding-right:2rem}.photographer-list li:nth-child(even){padding-left:2rem}.photographer-list span{font:400 .65rem/1 var(--serif);opacity:.5}.photographer-list strong{font-weight:300;font-size:clamp(1.1rem,2vw,1.6rem);letter-spacing:.08em}.photographer-list small{font:400 .52rem/1 var(--serif);letter-spacing:.15em;opacity:.45}
.information{background:var(--ink);color:#eff4f1;display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw;padding:clamp(6rem,11vw,11rem) 8vw}.info-heading h2{font-size:clamp(3rem,6vw,6rem);font-weight:300;letter-spacing:.12em;margin:2rem 0 4rem}.info-heading>p:last-child{font:400 .68rem/1.8 var(--serif);letter-spacing:.2em}.info-date{border-top:1px solid rgba(255,255,255,.3)}.info-date p{display:grid;grid-template-columns:4rem 1fr auto;align-items:baseline;border-bottom:1px solid rgba(255,255,255,.3);margin:0;padding:1.5rem 0;font-family:var(--serif)}.info-date span{font-size:.7rem;letter-spacing:.18em}.info-date strong{font-size:clamp(2rem,4vw,3.8rem);font-weight:300}.info-date time{font-size:.9rem;letter-spacing:.12em}.info-details{margin:4rem 0}.info-details>div{display:grid;grid-template-columns:9rem 1fr;padding:1.2rem 0;border-bottom:1px solid rgba(255,255,255,.2)}.info-details dt{font:400 .65rem/1.8 var(--serif);letter-spacing:.18em}.info-details dd{margin:0;font-size:.9rem}.map-link{display:flex;justify-content:space-between;border:1px solid rgba(255,255,255,.5);padding:1rem 1.5rem;font:400 .68rem/1 var(--serif);letter-spacing:.18em;transition:.3s}.map-link:hover{background:#fff;color:var(--ink)}
.closing{position:relative;overflow:hidden;text-align:center;padding:clamp(8rem,15vw,15rem) 5vw;background:linear-gradient(135deg,#dce7e2,#f7f7f3)}.closing-en{font:italic 300 clamp(3rem,9vw,9rem)/.85 var(--serif);color:rgba(21,33,29,.18);margin:0}.closing h2{font-weight:300;font-size:clamp(1.6rem,3.3vw,3.2rem);line-height:1.8;letter-spacing:.14em;margin:-1rem 0 2rem;position:relative}.closing>p:not(.closing-en){font-size:.85rem}.closing>a{display:inline-block;font:400 .7rem/1 var(--serif);letter-spacing:.2em;border-bottom:1px solid;padding-bottom:.5rem;margin-top:2rem}.closing-mark{position:absolute;right:-.1em;bottom:-.35em;font-size:clamp(9rem,25vw,25rem);line-height:1;color:rgba(255,255,255,.42);writing-mode:vertical-rl;pointer-events:none}
.site-footer{min-height:130px;display:flex;align-items:center;justify-content:space-between;padding:2rem 4vw;background:#f8f8f5;font:400 .6rem/1.5 var(--serif);letter-spacing:.15em}.site-footer>a:first-child{font-family:var(--jp);font-size:1rem}.site-footer small{font-size:.6rem;margin-left:.8rem}.back-top{border-bottom:1px solid}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s,transform .9s}.reveal.is-visible{opacity:1;transform:none}
.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;border:0;padding:5vh;background:rgba(7,14,11,.95);color:#fff}.lightbox::backdrop{background:rgba(7,14,11,.95)}.lightbox img{width:100%;height:90vh;object-fit:contain}.lightbox-close{position:fixed;right:2rem;top:1.5rem;z-index:2;border:0;background:none;color:#fff;font:400 .65rem/1 var(--serif);letter-spacing:.2em;cursor:pointer}
@media(max-width:800px){
  .site-header{height:72px;padding:0 5vw}.brand small{display:none}.menu-button{display:flex;align-items:center;gap:.45rem;color:inherit}.menu-button .menu-label{font:400 .58rem/1 var(--serif);letter-spacing:.15em}.menu-button i{width:18px;height:1px;background:currentColor}.menu-button i:last-child{display:none}
  .site-nav{position:fixed;inset:0;background:rgba(16,29,23,.97);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2.2rem;opacity:0;visibility:hidden;transition:.3s;font-size:1rem;mix-blend-mode:normal}.site-nav.open{opacity:1;visibility:visible}.menu-button{z-index:1}
  .hero-copy{left:7vw;right:7vw;top:auto;bottom:15vh;transform:none}.hero h1 span{font-size:clamp(4.4rem,22vw,7rem)}.hero h1 small{font-size:1.2rem;margin-top:.8rem}.hero-image img{object-position:53% center}.hero-index{display:none}.scroll-cue{left:auto;right:6vw}
  .section{padding:6rem 6vw}.section-head{display:block}.section-head h2{margin-top:1.3rem}.section-en{margin-top:.6rem}.about-lead{grid-template-columns:1fr;margin:5rem 0;gap:3rem}.about-lead>p{font-size:2rem}.about-lead>span{justify-self:start}.concept{grid-template-columns:2.5rem 1fr;padding:3rem 5vw}.concept-copy{grid-column:2}.concept-no{font-size:2rem}
  .interlude{height:75vh;min-height:520px}.interlude p{bottom:3rem}.interlude p span{font-size:2.8rem}
  .profile{grid-template-columns:1fr;gap:4rem}.profile-photo{width:82%}.profile-reading{margin-bottom:2.5rem}
  .gallery-grid{grid-template-columns:1fr 1fr;gap:4vw;margin-top:4rem}.gallery-wide{grid-column:1/-1}.gallery-portrait{width:100%;margin:5rem 0 0}.gallery-note{text-align:left;margin-top:4rem}
  .photographer-list{grid-template-columns:1fr}.photographer-list li:nth-child(odd){border-right:0;padding-right:0}.photographer-list li:nth-child(even){padding-left:0}.photographer-list li{grid-template-columns:2.5rem 1fr}.photographer-list small{grid-column:2;margin-top:.5rem}
  .information{grid-template-columns:1fr;padding:6rem 6vw}.info-heading h2{margin-bottom:2rem}.info-date strong{font-size:2.2rem}.info-details>div{grid-template-columns:7rem 1fr}
  .site-footer{align-items:flex-start;gap:2rem;flex-wrap:wrap}.site-footer p{order:3;width:100%}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.scroll-cue i{animation:none}.gallery-item img{transition:none}}
