
/* Layout: a printed catalogue on screen. Centered masthead, then alternating artist spreads, a plate grid, and a colophon. Single warm-paper look, chosen deliberately. */
:root{
  --paper:#f5f2ee; --ink:#1a1714; --gold:#8b7355; --mid:#666; --soft:#999; --rule:#d8d2c8; --plate:#ebe6df;
  --serif:"EB Garamond","Cormorant Garamond",Garamond,"Times New Roman",serif;
  --jp:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --max:1180px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.6;font-weight:400;padding-inline:clamp(16px,4vw,48px);padding-block:0;-webkit-font-smoothing:antialiased}
b,strong{font-weight:600}
.jp,.ajp,.mjp{font-family:var(--jp);font-weight:300}
.wrap{max-width:var(--max);margin-inline:auto}
hr{border:0;border-top:1px solid var(--rule);margin:0}
.label{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0}
h1,h2,h3{font-weight:400;text-wrap:balance;margin:0}
a{color:inherit}
:focus-visible{outline:1px solid var(--gold);outline-offset:3px}

/* Masthead */
.mast{text-align:center;padding-block:clamp(56px,9vw,112px) clamp(36px,5vw,56px);display:grid;gap:18px;justify-items:center}
.mast h1{font-size:clamp(2.6rem,7vw,4.6rem);letter-spacing:.14em;line-height:1.1;display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:.8em;row-gap:.2em}
.mast h1 .mjp{font-size:.62em;letter-spacing:.3em}
.mast .tag{font-style:italic;color:var(--mid);margin:0;font-size:1.05rem}
.mast .sub{font-size:clamp(1.3rem,2.6vw,1.7rem);letter-spacing:.06em;margin:14px 0 0}
.mast .venue{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mid);margin:0;max-width:40em}
.hero{margin:0 0 clamp(40px,6vw,72px)}
.hero img{display:block;width:100%;aspect-ratio:21/9;object-fit:cover;object-position:60% 45%;background:var(--plate)}
.hero figcaption{display:block;font-size:.85rem;color:var(--soft);margin-top:10px;text-align:right}
.hero figcaption i{color:var(--mid)}
@media (max-width:700px){.hero img{aspect-ratio:4/3}}

/* Intro */
.intro{display:grid;gap:28px;justify-items:center;text-align:center;padding-block:clamp(48px,7vw,88px)}
.intro p.lede{max-width:34em;margin:0;font-size:clamp(1.12rem,1.8vw,1.3rem);line-height:1.7}
.intro .lede .jp{font-size:.9em}
.index{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 26px;font-size:.95rem;max-width:44em}
.index a{text-decoration:none;color:var(--mid);border-bottom:1px solid transparent}
.index a:hover{color:var(--ink);border-bottom-color:var(--rule)}

/* Section heads */
.shead{display:grid;justify-items:center;gap:10px;text-align:center;padding-block:clamp(48px,7vw,80px) clamp(24px,4vw,40px)}
.shead h2{font-size:clamp(1.6rem,3vw,2.1rem);letter-spacing:.16em;text-transform:uppercase}

/* Artists */
.artist{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(28px,5vw,72px);padding-block:clamp(44px,6vw,72px);border-top:1px solid var(--rule);align-items:start;scroll-margin-top:24px}
.artist.rev .atext{order:2}
.artist.textonly{grid-template-columns:minmax(0,1fr)}
.atext{display:grid;gap:12px;align-content:start;position:sticky;top:calc(env(safe-area-inset-top,0px) + 32px);min-width:0}
.atext h3{font-size:clamp(1.7rem,3vw,2.2rem);letter-spacing:.04em;line-height:1.15;margin-top:4px}
.ajp{font-size:1.05rem;letter-spacing:.3em;color:var(--mid);margin:0}
.bio{color:var(--mid);font-style:italic;margin:10px 0 0;max-width:30em}
.bio.real{font-style:normal;color:var(--ink);font-size:.98rem;line-height:1.65}
.bio .jp{font-size:.88em}
.also{margin-top:22px;padding-top:16px;border-top:1px solid var(--rule);display:grid;gap:10px}
.also ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.also li{display:grid;gap:2px}
.aworks{display:grid;gap:clamp(40px,5vw,64px);min-width:0}
.work{margin:0;display:grid;gap:12px;min-width:0}
.stage{background:var(--plate);aspect-ratio:4/3;max-width:100%;overflow:hidden}
.stage img{width:100%;height:100%;object-fit:contain;display:block}
.thumbs{display:flex;flex-wrap:wrap;gap:8px}
.th{appearance:none;border:1px solid transparent;padding:0;background:var(--plate);width:72px;height:72px;cursor:pointer;opacity:.6}
.th img{width:100%;height:100%;object-fit:cover;display:block}
.th:hover{opacity:.85}
.th.on{opacity:1;border-color:var(--gold)}
figcaption{display:grid;gap:2px;line-height:1.45}
.wt{font-style:italic;font-size:1.08rem}
.wm{font-size:.86rem;color:var(--mid);letter-spacing:.02em}
figcaption .jp{font-size:.82rem;color:var(--mid);font-style:normal}
@media (max-width:820px){
  .artist,.artist.rev{grid-template-columns:minmax(0,1fr)}
  .artist.rev .atext{order:0}
  .atext{position:static}
  .th{width:60px;height:60px}
}

/* Works grid */
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.5vw,44px) clamp(18px,2.5vw,32px);padding-bottom:clamp(56px,8vw,96px)}
@media (max-width:980px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.grid{grid-template-columns:minmax(0,1fr)}}
.tile{text-decoration:none;display:grid;gap:4px;align-content:start}
.tim{aspect-ratio:1/1;background:var(--plate);overflow:hidden;max-width:100%;margin-bottom:10px}
.tim img{width:100%;height:100%;object-fit:cover;display:block}
.tile:hover .tim img{opacity:.85}
.tt{margin:0;font-style:italic;font-size:1.05rem;line-height:1.35}
.ta{margin:0;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.gnote{text-align:center;color:var(--soft);font-size:.9rem;margin:-8px 0 32px}

/* Visit */
.visit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,6vw,96px);padding-block:clamp(56px,8vw,96px);border-top:1px solid var(--rule)}
.visit h2{font-size:1.6rem;letter-spacing:.04em;margin:8px 0 14px}
.visit p{margin:0}
.visit .lines{display:grid;gap:2px}
.visit .note{color:var(--mid);font-style:italic;margin-top:18px;max-width:28em}
.mail{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}
.mail span{user-select:all;font-size:1.15rem}
.copy{appearance:none;background:none;border:1px solid var(--rule);color:var(--mid);font:inherit;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;padding:5px 12px;cursor:pointer}
.copy:hover{border-color:var(--gold);color:var(--ink)}
@media (max-width:700px){.visit{grid-template-columns:minmax(0,1fr)}}

footer{border-top:1px solid var(--rule);padding-block:28px 40px;text-align:center;font-size:.85rem;color:var(--soft);letter-spacing:.06em}
footer .jp{letter-spacing:.2em}

/* Site additions: top bar, home sections */
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--paper);border-bottom:1px solid var(--rule);margin-inline:calc(-1 * clamp(16px,4vw,48px));padding-inline:clamp(16px,4vw,48px)}
.topin{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px;padding-block:14px}
.brand{text-decoration:none;font-size:1.15rem;letter-spacing:.14em}
.brand .jp{font-size:.8em;letter-spacing:.2em;margin-left:.5em;color:var(--mid)}
.topbar nav{display:flex;flex-wrap:wrap;gap:4px 22px}
.topbar nav a{text-decoration:none;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mid)}
.topbar nav a:hover,.topbar nav a[aria-current]{color:var(--ink)}
.home-mast{padding-block:clamp(48px,8vw,96px) clamp(32px,5vw,52px)}
.muted{color:var(--mid)}
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(32px,6vw,96px);padding-block:clamp(56px,8vw,104px);align-items:center;scroll-margin-top:70px}
.about-mark{display:grid;justify-items:center;gap:14px}
.about-mark .jp{font-size:clamp(6rem,14vw,10rem);line-height:1;color:var(--ink);font-weight:300}
.yomi{font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.about-text{display:grid;gap:16px;max-width:34em}
.about-text h2,.ex-text h2{font-size:clamp(1.6rem,3vw,2.1rem);letter-spacing:.03em;line-height:1.2}
.about-text p{margin:0}
.exhibit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);padding-block:clamp(56px,8vw,104px);border-top:1px solid var(--rule);align-items:center;scroll-margin-top:70px}
.ex-img{display:block;background:var(--plate);aspect-ratio:4/5;max-width:100%;overflow:hidden}
.ex-img img{width:100%;height:100%;object-fit:cover;display:block}
.ex-img:hover img{opacity:.85}
.ex-text{display:grid;gap:16px;justify-items:start}
.ex-text p{margin:0}
.lines{display:grid;gap:2px}
.btn{display:inline-block;text-decoration:none;border:1px solid var(--ink);padding:10px 22px;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;margin-top:8px}
.btn:hover{background:var(--ink);color:var(--paper)}
#artists{border-top:1px solid var(--rule);scroll-margin-top:50px}
.roster{display:flex;flex-wrap:wrap;justify-content:center;gap:40px 28px;padding-bottom:clamp(56px,8vw,96px)}
.roster .tile{flex:0 0 calc((100% - 84px)/4);min-width:0}
.roster .tim{aspect-ratio:4/5}
@media (max-width:980px){.roster .tile{flex-basis:calc((100% - 28px)/2)}}
@media (max-width:480px){.roster .tile{flex-basis:100%}}
.rn{margin:0;font-size:1.1rem}
.rj{margin:0;font-family:var(--jp);font-weight:300;font-size:.85rem;letter-spacing:.2em;color:var(--mid)}
.collectors{border-top:1px solid var(--rule);scroll-margin-top:50px;padding-bottom:clamp(56px,8vw,96px)}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px)}
.steps li{display:grid;gap:8px;align-content:start;border-top:1px solid var(--rule);padding-top:18px}
.sn{font-size:.8rem;letter-spacing:.2em;color:var(--gold)}
.steps h3{font-size:1.3rem}
.steps p{margin:0;color:var(--mid)}
@media (max-width:760px){.about,.exhibit,.steps{grid-template-columns:minmax(0,1fr)}.about-mark{justify-items:start}}
#about,#exhibition,#collectors,#contact,.artist{scroll-margin-top:130px}
.topbar nav{gap:4px 16px}
