/* Gallery layouts using the canonical net-print design system. */
:root {
  color-scheme:dark;
  --washi:#10100f; --washi-2:#181816; --paper:#191917;
  --sumi:#10100f; --sumi-2:#191917;
  --ink:#eee9dd; --ink-dim:#b1ada2; --ink-line:rgba(201,184,135,.25);
  --aka:#c9b887; --aka-2:#ddcea6; --aka-line:rgba(201,184,135,.4);
  --aka-faint:rgba(201,184,135,.1);
  --gallery-width:var(--studio-width); --gallery-gutter:var(--studio-gutter);
  --gallery-line:var(--ink-line); --ink-on-washi:var(--ink);
  --text-on-sumi:var(--ink); --text-dim:var(--ink-dim);
  --kin:#a68c58; --kin-2:#c9b887; --shu:#df9d92;
  --a-bg:var(--washi); --a-panel:var(--paper); --a-line:var(--ink-line);
  --a-ink:var(--ink); --a-dim:var(--ink-dim); --a-kin:var(--aka);
  --a-shu:var(--shu); --a-sumi:var(--washi);
}
html { scroll-padding-top:calc(var(--header-height) + 20px); }
::selection { background:var(--aka-faint); color:var(--ink); }
.site-header { min-height:var(--header-height); padding:15px var(--studio-gutter); background:rgba(16,16,15,.97); border-color:var(--ink-line); gap:24px; }
.brand { gap:14px; min-width:0; }
.logo-plate img { height:36px; }
.brand .wordmark .ja { font-size:clamp(.76rem,1.08vw,1rem); letter-spacing:.065em; }
.brand .wordmark .en { font-family:var(--font-ui); font-size:.56rem; letter-spacing:.2em; color:var(--ink); }
.site-nav { gap:16px; font-family:var(--font-ui); font-size:var(--type-nav); letter-spacing:.04em; }
.site-nav .nav-drop-btn { font:inherit; letter-spacing:inherit; }
.site-nav .owners-link { border-color:var(--ink-line) !important; color:var(--ink) !important; border-radius:3px; font-size:.79rem; letter-spacing:.04em; min-height:40px; }
.site-nav .owners-link:hover { background:var(--aka-faint); color:var(--aka) !important; }
.drop-menu-inner { background:var(--paper); border-color:var(--ink-line); box-shadow:0 12px 32px #272a2912; }
.language-switch { border-color:var(--ink-line); }
.language-switch button { min-height:32px; font-size:.7rem; }
.section-head::after { background:var(--ink-line); }
.washi-zone,.wish-zone { background:var(--washi-2); color:var(--ink); border-color:var(--ink-line); }
.washi-zone p { font-size:.9rem; line-height:1.9; }
.text-link { color:var(--ink); font-size:.84rem; letter-spacing:.025em; border-color:var(--ink-line); }
.text-link:hover { color:var(--aka); }
.gallery-kicker { color:var(--ink-dim); font-size:.65rem; letter-spacing:.13em; }

/* Keep the artwork intact beside the same typography and spacing as the print homepage. */
.hero-home { min-height:560px; height:auto; margin-top:var(--header-height); background:var(--washi); justify-content:flex-start; align-items:center; }
.hero-home::before { z-index:1; background:linear-gradient(90deg,var(--washi) 32%,rgba(16,16,15,.96) 38%,rgba(16,16,15,0) 57%); }
.hero-home .hero-art { position:absolute; inset:0 0 0 auto; width:59%; height:100%; object-fit:cover; object-position:73% center; }
.hero-home .hero-inner { position:relative; z-index:2; display:block; width:100%; max-width:1408px; margin:0 auto; padding:54px var(--studio-gutter); text-align:left; }
.hero-home .hero-title,html[data-language="en"] .hero-home .hero-title { font-size:var(--type-hero); font-weight:600; line-height:1.45; letter-spacing:.055em; color:var(--ink); text-shadow:none; }
/* Match the print homepage's staggered copy reveal; keep titles and images still. */
.gallery-home .hero-home .hero-side > :is(.en-label,.lead,.cta) { animation:hero-copy-reveal 1s cubic-bezier(.22,.72,.2,1) both; }
.gallery-home .hero-home .hero-side > .en-label { animation-delay:1.76s; }
.gallery-home .hero-home .hero-side > .lead { animation-delay:1.94s; }
.gallery-home .hero-home .hero-side > .cta { animation-delay:2.12s; }
.gallery-home .cta { transition:background .18s,border-color .18s,color .18s; }
.hero-home .hero-side .en-label { font-family:var(--font-ui); font-size:.64rem; color:var(--ink-dim); letter-spacing:.07em; text-transform:none; margin-bottom:18px; }
.hero-home .hero-side { max-width:440px; margin-top:24px; }
.hero-home .hero-side p.lead { font-size:.9rem; font-weight:400; line-height:1.95; margin-bottom:24px; }
.hero-home .hero-side .cta { min-width:222px; }
.hero-home .cta::after { color:var(--sumi); }
.hero-footnote { z-index:2; font-size:.6rem; letter-spacing:.08em; color:var(--ink-dim); }
.hero-image-note { z-index:2; padding:2px 8px; background:rgba(16,16,15,.9); color:var(--ink-dim); font-size:.62rem; }
.page-hero { min-height:310px; margin-top:var(--header-height); padding:54px var(--studio-gutter); background-color:var(--washi); background-image:linear-gradient(90deg,var(--washi) 32%,rgba(16,16,15,.95) 44%,rgba(16,16,15,.05) 85%),var(--page-hero-image); border-color:var(--ink-line); }
.page-hero h1 { text-shadow:none; }
.page-hero .en-label { color:var(--ink-dim); font-size:.64rem; letter-spacing:.13em; margin-bottom:20px; }
.page-hero .page-lead { max-width:48%; font-size:.9rem; color:var(--ink); text-shadow:none; }

.exhibits { gap:24px; }
.exhibit-card { border:1px solid var(--ink-line); border-radius:3px; padding:24px; background:var(--paper); min-height:260px; }
.exhibit-card h3 { font-size:1.3rem; letter-spacing:.04em; }
.exhibit-card p { font-size:.85rem; line-height:1.9; }
.exhibit-card .status,.exhibit-card .venue-tag { color:var(--aka); font-size:.75rem; }
.exhibit-visual { margin:0 0 22px; }
.exhibit-card .cta { min-height:48px; padding:12px 24px; font-size:var(--type-button); background:var(--aka); color:var(--sumi); border:1px solid var(--aka); }
.exhibit-card .cta:hover { background:var(--aka-2); color:var(--sumi); }
.exhibit-card .note,.strip-note { font-size:.78rem; color:var(--ink-dim); }
.gallery-story h2 { font-size:var(--type-section); letter-spacing:.07em; }
.gallery-story p:not(.gallery-kicker) { font-size:.9rem; line-height:1.9; }
.artist-chip { padding:18px 22px; border:1px solid var(--ink-line); border-radius:3px; background:var(--paper); }
.artist-chip .name { font-size:1.12rem; }
.artist-chip p,.profile-bio { font-size:.9rem; }
.artist-profile { gap:46px; }
.profile-name { font-size:1.4rem; }
.profile-block h3 { font-size:1.12rem; letter-spacing:.06em; }
.info-table { background:var(--paper); font-family:var(--font-ui); font-size:.87rem; letter-spacing:.025em; }
.info-table th,.info-table td { padding:14px 16px; border-color:var(--ink-line); color:var(--ink); }
.info-table thead th { background:var(--washi-2); color:var(--ink-dim); }
.info-table.on-sumi th,.info-table.on-sumi td { color:var(--ink); }
.research-leader { background:var(--washi); padding:44px var(--studio-gutter); }
.research-leader-copy h2 { font-size:var(--type-section); }
.gamut-verification,.member-card,.washi-zone .member-card,.path-card.chosen { background:var(--paper); border-color:var(--ink-line); border-radius:3px; }
.member-card:hover,.washi-zone .member-card:hover { background:var(--paper); border-color:var(--aka); }
.washi-zone .member-name { color:var(--ink); }
.washi-zone .member-role,.team-more,.why-sub { color:var(--aka); }
.washi-zone .member-note { color:var(--ink-dim); }

/* Search, owner account and member forms use the same readable UI typography. */
.filter-controls input,.filter-controls select,.login-field,#monyo-search,#monyo-cat { background:var(--paper); color:var(--ink); border:1px solid var(--ink-line); border-radius:3px; min-height:46px; font-size:.94rem; letter-spacing:.02em; }
input::placeholder { color:var(--ink-dim); }
.chip,.chip.dark,.page-btn { border-color:var(--ink-line); background:var(--paper); color:var(--ink); border-radius:3px; font-size:.8rem; letter-spacing:.025em; min-height:40px; }
.chip.active,.chip.dark.active,.chip:hover,.chip.dark:hover,.page-btn:hover,.page-btn[aria-current="page"] { background:var(--aka); border-color:var(--aka); color:var(--sumi); }
.wish-lookup-group,.wish-results,.wish-pattern-card,.monyo-card,.monyo-modal-panel { background:var(--paper); border-color:var(--ink-line); border-radius:3px; }
.wish-option { background:var(--washi); border-color:var(--ink-line); color:var(--ink); }
.wish-option.active { background:var(--aka-faint); border-color:var(--aka); }
.wish-option-label { font-size:.88rem; color:var(--ink); }
.wish-option-description,.wish-pattern-mean,.m-mean,.monyo-card .m-mean { font-size:.8rem; color:var(--ink-dim); letter-spacing:.015em; }
.wish-option-description { font-size:.76rem; }
.wish-result-kicker,.m-read,.wish-pattern-read,.monyo-card .m-read { font-size:.72rem; color:var(--aka); }
.m-cat,.monyo-card .m-cat { font-size:.7rem; color:var(--ink-dim); border-color:var(--ink-line); }
.monyo-modal-close { background:var(--paper); color:var(--ink); border-color:var(--ink-line); }
.monyo-note,.monyo-count,.monyo-modal-meta,.monyo-modal-tags { font-size:.8rem; color:var(--ink-dim); }
.wish-view-all:hover { color:var(--sumi); background:var(--aka); }
.owner-work-card,.owner-empty,.login-box { background:var(--paper); border:1px solid var(--ink-line); border-radius:4px; }
.owner-work-head h2 { font-size:1.3rem; }
.owner-work-details dt,.owner-privacy-form fieldset > p { font-size:.8rem; }
.owner-work-details dd { color:var(--ink); }
.owner-privacy-form { background:var(--washi-2); border-color:var(--ink-line); border-radius:3px; }
.owner-privacy-options label { background:var(--paper); border-color:var(--ink-line); font-size:.84rem; }
.owner-privacy-options label:has(input:checked) { background:var(--aka-faint); border-color:var(--aka); }
.owner-flash { background:#202c20; color:#c1d4b9; border-color:#65845d; }
.owner-flash.ng { background:var(--aka-faint); color:var(--aka); }
.login-box { padding:36px; }
.login-label { font-size:.84rem; }
.site-footer { padding:42px var(--studio-gutter) 26px; background:var(--washi); color:var(--ink); border-color:var(--ink-line); }
.site-footer .links { font-family:var(--font-ui); font-size:.76rem; letter-spacing:.035em; gap:10px 24px; }
.site-footer > small { font-size:.67rem; letter-spacing:.04em; }
.footer-sibling { font-size:.8rem; color:var(--ink-dim); }

/* Management stays familiar while using the print site's fonts and surfaces. */
.adm-bar { background:var(--washi); color:var(--ink); padding:18px 24px; }
.adm-brand,.adm-user,.adm-bar-right a { color:var(--ink); }
.adm-brand span { font-family:var(--font-heading); }
.adm-side { background:var(--washi-2); }
.adm-side a { color:var(--ink-dim); font-size:.9rem; }
.adm-side a:hover,.adm-side a.active { background:var(--paper); color:var(--aka); }
.adm-title { font-size:2rem; }
.adm-card,.adm-login,.adm-form { border-radius:4px; }
.adm-table { font-size:.87rem; }
.adm-table thead th,.adm-table tbody tr:hover { background:var(--washi-2); }
.adm-form input[type=text],.adm-form input[type=url],.adm-form input[type=number],.adm-form input[type=password],.adm-form select,.adm-form textarea,.adm-login input { background:var(--paper); color:var(--ink); border-color:var(--ink-line); border-radius:3px; min-height:46px; font-size:.94rem; }
.adm-btn,.adm-login button { border-radius:3px; background:var(--aka); color:var(--sumi); min-height:44px; font-size:var(--type-button); }
.adm-btn:hover,.adm-login button:hover { background:var(--aka-2); color:var(--sumi); }
.adm-btn.ghost:hover { background:var(--washi-2); color:var(--aka); }
.adm-logout { color:var(--ink-dim); border-color:var(--ink-line); border-radius:3px; min-height:36px; }
.adm-flash { background:#202c20; color:#c1d4b9; }
.adm-flash.ng,.adm-error { background:var(--aka-faint); color:var(--aka); }
.adm-issued { background:var(--washi-2); }
.adm-pw { background:var(--paper); }
.adm-pill.s-open { background:#202c20; color:#c1d4b9; border-color:#65845d; }
.adm-pill.s-soon,.adm-pill.s-closed { background:var(--washi-2); }
.adm-login { max-width:500px; padding:36px; box-shadow:0 10px 36px #272a2906; }
.adm-login h1 { font-size:1.65rem; font-weight:600; }
.adm-login-page { background:var(--washi); }
.viewer-bar { background:var(--washi); color:var(--ink); border-color:var(--ink-line); font-family:var(--font-ui); letter-spacing:.025em; }
.viewer-bar a { color:var(--ink); }
.viewer-bar .shop-link:hover { background:var(--aka); color:var(--sumi); }

@media (max-width:1200px) {
 .site-nav { background:var(--washi); }
 .site-nav .drop-menu-inner { background:none; box-shadow:none; }
 .site-nav .owners-link { min-height:44px; }
}
@media (min-width:801px) and (max-width:1120px) {
 .hero-home { min-height:530px; }
 .hero-home .hero-side { max-width:370px; }
 .hero-home .hero-side p.lead { font-size:.84rem; }
}
@media (max-width:800px) {
 .hero-home { display:flex; flex-direction:column; min-height:0; }
 .hero-home::before { display:none; }
 .hero-home .hero-inner { padding:38px 24px; order:0; }
 .hero-home .hero-art { position:relative; inset:auto; order:1; width:100%; height:330px; object-position:78% 36%; }
 .hero-home .hero-title { font-size:var(--type-hero); }
 .hero-home .hero-side { max-width:100%; margin-top:18px; }
 .hero-home .hero-side .en-label { margin-bottom:12px; }
 .hero-home .hero-side p.lead { font-size:.88rem; }
 .hero-footnote { bottom:16px; padding:2px 8px; background:rgba(16,16,15,.9); font-size:.55rem; }
 .hero-image-note { top:auto; bottom:48px; }
 .page-hero { min-height:290px; padding:34px 24px; }
 .page-hero .page-lead { max-width:64%; }
 .section-head { margin-bottom:26px; }
 .info-table { font-size:.84rem; }
 .artist-profile { gap:30px; }
}
@media (max-width:640px) {
 .site-header { padding:12px 16px; }
 .brand { gap:9px; }
 .logo-plate img { height:28px; }
 .brand .wordmark .ja { font-size:.75rem; letter-spacing:.03em; }
 .brand .wordmark .en { font-size:.47rem; letter-spacing:.13em; }
 .hero-home .hero-inner { padding:32px 20px; }
 .hero-home .hero-title,html[data-language="en"] .hero-home .hero-title { font-size:var(--type-hero); }
 .hero-home .hero-side .cta { width:100%; }
 .hero-home .hero-side .en-label { font-size:.58rem; }
 .hero-home .hero-art { height:260px; }
 .hero-home .hero-side p.lead { font-size:.88rem; }
 .page-hero { padding:34px 20px; background-image:linear-gradient(90deg,var(--washi) 20%,rgba(16,16,15,.9) 68%,rgba(16,16,15,.65)),var(--page-hero-image); }
 .page-hero .page-lead { max-width:100%; font-size:.9rem; }
 .exhibit-card { padding:20px; }
 .section-head { gap:8px 14px; margin-bottom:24px; }
 .login-box,.adm-login { padding:28px 24px; }
 .adm-title { font-size:1.75rem; }
}

.research-leader-actions .cta { font-size:var(--type-button); min-height:48px; padding:12px 24px; }

@media (min-width:1121px) and (max-width:1320px) { .brand .wordmark .ja { font-size:.8rem; } }
@media (min-width:641px) and (max-width:1120px) { .brand .wordmark .ja { font-size:.92rem; } }
@media (max-width:1200px) { .site-nav > a { font-size:.96rem; } }

/* Data displays retain clear labels on the dark surface. */
.gamut-fig > path { fill:var(--washi-2); stroke:var(--ink-dim); }
.direction-intro { font-size:.95rem; line-height:1.95; letter-spacing:.025em; }
.map-pane { background:var(--paper); border-color:var(--ink-line); border-radius:3px; }
.japan-map .pref { fill:var(--washi-2); stroke:var(--ink-line); }
.japan-map .pref.has { fill:rgba(179,148,73,.55); stroke:var(--aka); }
.japan-map .pref.has:hover,.japan-map .pref.selected { fill:var(--aka); }
.japan-map .badge-bg { fill:var(--paper); stroke:var(--aka); }
.japan-map .badge:hover .badge-num,.japan-map .badge:focus-visible .badge-num { fill:var(--sumi); }
.pref-item.active .pref-count,.inquiry-btn:hover { background:var(--aka); color:var(--sumi); }
.registry-table { background:var(--paper); font-size:.87rem; }
.registry-table th { background:var(--washi-2); color:var(--ink-dim); border-color:var(--ink-line); font-size:.8rem; letter-spacing:.025em; }
.registry-table td { border-color:var(--ink-line); }
.sample-note,.login-error { color:var(--aka); background:var(--aka-faint); }
.active-filter button:hover { color:var(--aka-2); }
.partner-logo { background:var(--paper); border-color:var(--ink-line); }

/* Museum keeps its black, ivory and muted-gold palette; typography is shared. */
.cta,button.cta,.cta.on-washi,.exhibit-card .cta { background:transparent; color:var(--ink); border-color:var(--kin); }
.cta:hover,button.cta:hover,.cta.on-washi:hover,.exhibit-card .cta:hover { background:var(--kin-2); color:var(--sumi); border-color:var(--kin-2); }
.hero-home .cta::after { color:var(--kin-2); }
.hero-home .cta:hover::after { color:var(--sumi); }
.owner-flash.ng,.adm-flash.ng,.adm-error,.login-error { background:#39231f; color:var(--shu); border-color:var(--shu); }
.adm-btn.danger { background:transparent; color:var(--shu); border-color:var(--shu); }
.adm-btn.danger:hover { background:#9e2b25; color:#fff; }
.japan-map .badge.selected .badge-num { fill:var(--sumi); }
.partner-logo { background:#f6f3ec; }

/* Homepage rhythm is independent of the order of its sections. */
.gallery-home { --home-section-space:64px; --home-content-gap:32px; --home-column-gap:48px; }
.gallery-home > .section { padding:var(--home-section-space) var(--studio-gutter); border:0; }
.gallery-home > .section > .section-inner { max-width:var(--studio-width); margin-inline:auto; }
.gallery-home .section-head { display:grid; grid-template-columns:auto auto minmax(32px,1fr); align-items:center; gap:12px 18px; margin:0 0 var(--home-content-gap); }
.gallery-home .section-head h2 { margin:0; font-size:var(--type-section); line-height:1.5; letter-spacing:.07em; }
.gallery-home .section-head .en { margin:0; color:var(--ink-dim); line-height:1.5; }
.gallery-home .section-head::before { display:none; }
.gallery-home .section-head::after { content:""; display:block; width:100%; height:1px; min-width:0; margin:0; background:var(--ink-line); }
.gallery-home .two-col,.gallery-home .gallery-story { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--home-column-gap); }
.gallery-home .two-col > *,.gallery-home .gallery-story > * { min-width:0; }
.gallery-home .two-col p,.gallery-home .gallery-story p { margin:0; font-size:.9rem; line-height:1.9; }
.gallery-home .two-col p + p,.gallery-home .gallery-story p + p { margin-top:16px; }
.gallery-home .gallery-story-image img { aspect-ratio:1.5; }
.gallery-home .gallery-story .actions { gap:16px 24px; }
.gallery-home .gallery-story p + .actions { margin-top:24px; }
.gallery-home .artist-strip { margin:0; gap:24px; }
.gallery-home .list-more { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin:var(--home-content-gap) 0 0; text-align:left; }
.gallery-home .list-more .strip-note { margin:0; }
.gallery-home .list-more .cta { margin-left:auto; }
@media (max-width:800px) {
 .gallery-home { --home-section-space:48px; --home-content-gap:28px; --home-column-gap:28px; }
 .gallery-home .two-col,.gallery-home .gallery-story { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:640px) {
 .gallery-home { --home-section-space:36px; --home-content-gap:24px; }
 .gallery-home > .section { padding-inline:20px; }
 .gallery-home .section-head { grid-template-columns:auto minmax(0,1fr); gap:8px 16px; }
 .gallery-home .section-head h2 { grid-column:1 / -1; }
 .gallery-home .list-more { align-items:flex-start; }
 .gallery-home .list-more .strip-note { flex-basis:100%; }
}
