.grand-trigger {
  position: fixed; z-index: 1002; top: 34px; right: var(--pad, 4vw);
  display:flex; align-items:center; gap:13px; min-width:116px; padding:13px 17px;
  border:1px solid rgba(17,19,19,.18); color:#111313; background:rgba(238,234,224,.94); font:11px/1 Arial,sans-serif;
  letter-spacing:.2em; cursor:pointer; box-shadow:0 8px 28px rgba(0,0,0,.12);
  animation:menuFloat 3.2s ease-in-out infinite; transition:background .3s ease,color .3s ease,transform .3s ease;
}
.grand-trigger:hover { background:#c9b78f; transform:translateY(-2px); }
.grand-trigger span::before { content:""; display:inline-block; width:5px; height:5px; margin:0 9px 1px 0; border-radius:50%; background:#a1844b; animation:menuPulse 1.8s ease-in-out infinite; }
.grand-trigger i,.grand-trigger i::before { display:block; width:26px; height:1px; background:currentColor; content:""; transition:.35s ease; }
.grand-trigger i::before { transform:translateY(6px); }
.grand-trigger[aria-expanded="true"] i { transform:rotate(45deg); }
.grand-trigger[aria-expanded="true"] i::before { transform:rotate(90deg); }
.grand-trigger[aria-expanded="true"] { animation:none; background:#c9b78f; }
.grand-overlay {
  position:fixed; z-index:1001; inset:0; display:grid; grid-template-columns:minmax(230px,.55fr) 1fr;
  gap:6vw; padding:120px var(--pad,4vw) 50px; color:#eeeae0; background:#101212;
  opacity:0; visibility:hidden; transition:opacity .45s ease,visibility .45s;
  overflow:auto;
}
.grand-overlay.is-open { opacity:1; visibility:visible; }
.grand-brand { align-self:start; color:#777873; font:10px/1.7 Arial,sans-serif; letter-spacing:.22em; }
.grand-brand strong { display:block; margin-bottom:24px; color:#eeeae0; font:400 clamp(2.4rem,4vw,4.8rem)/.9 "Cormorant Garamond",serif; letter-spacing:-.04em; }
.grand-links { border-top:1px solid rgba(238,234,224,.2); }
.grand-links>a { display:grid; grid-template-columns:54px 1fr auto; align-items:center; min-height:82px; color:inherit; text-decoration:none; border-bottom:1px solid rgba(238,234,224,.14); }
.grand-links>a span,.grand-links>a small { color:#858680; font:9px/1 Arial,sans-serif; letter-spacing:.2em; }
.grand-links>a strong { font:400 clamp(1.35rem,2.3vw,2.4rem)/1 "Noto Serif JP",serif; }
.grand-links>a:hover strong { color:#c9b78f; }
.grand-works { grid-column:2; display:grid; grid-template-columns:repeat(3,1fr); gap:0 28px; margin-top:12px; }
.grand-works a { display:flex; justify-content:space-between; padding:14px 0; color:#aaa9a2; text-decoration:none; border-bottom:1px solid rgba(238,234,224,.1); font-size:13px; }
.grand-works span { color:#6f716d; font:9px/1 Arial,sans-serif; letter-spacing:.15em; }
body.grand-open { overflow:hidden; }
body:has(.grand-trigger) .back-home,body:has(.grand-trigger) .detail-back{display:none}
@media(max-width:760px){
  .grand-trigger{top:18px;right:18px;min-width:106px;padding:12px 14px}.grand-overlay{display:block;padding-top:100px}.grand-brand{display:none}
  .grand-links>a{grid-template-columns:40px 1fr;min-height:68px}.grand-links>a small{display:none}
  .grand-works{display:grid;grid-template-columns:1fr 1fr;margin-top:32px;gap:0 18px}
}
@keyframes menuFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(4px)} }
@keyframes menuPulse { 0%,100%{opacity:.35;box-shadow:0 0 0 0 rgba(161,132,75,.35)} 50%{opacity:1;box-shadow:0 0 0 5px rgba(161,132,75,0)} }
@media(prefers-reduced-motion:reduce){.grand-trigger,.grand-trigger span::before{animation:none}}

/* Exhibition directory shared by the cover and detail pages. */
.grand-trigger,.grand-trigger span::before { animation:none; }
.grand-trigger:hover { transform:none; }
body.menu-open .site-header { z-index:1002; }
.grand-overlay { align-content:start; grid-template-columns:minmax(180px,.55fr) minmax(0,1fr); }
.grand-brand { color:#aaa99f; }
.grand-directory { max-width:900px; border-top:1px solid rgba(238,234,224,.2); }
.grand-group { display:grid; grid-template-columns:90px minmax(0,1fr) auto; gap:16px; align-items:center; margin:0; padding:28px 0; color:inherit; text-decoration:none; border-bottom:1px solid rgba(238,234,224,.18); }
.grand-group span { color:#c9b78f; font:300 clamp(1.3rem,2.2vw,2rem)/1.2 "Cormorant Garamond",serif; }
.grand-group strong { font:400 clamp(1.7rem,3.2vw,3.2rem)/1.2 "Cormorant Garamond",serif; letter-spacing:.06em; overflow-wrap:anywhere; }
.grand-work-group .grand-group { border-bottom:0; }
.grand-directory .grand-works { display:block; margin:0 0 0 clamp(24px,5vw,90px); }
.grand-directory .grand-works a { display:grid; grid-template-columns:48px auto minmax(0,1fr) auto; gap:18px; align-items:center; padding:22px 0; color:#eeeae0; border-bottom:1px solid rgba(238,234,224,.14); text-decoration:none; }
.grand-directory .grand-works a span,.grand-works small { font:400 .65rem/1.6 Arial,sans-serif; letter-spacing:.15em; color:#b4ad9c; }
.grand-works strong { font:300 clamp(1.1rem,1.7vw,1.6rem)/1.5 "Noto Serif JP",serif; letter-spacing:.08em; }
.grand-directory a { transition:color .35s ease; }
.grand-directory i { font:400 1.25rem/1 Arial,sans-serif; font-style:normal; transition:transform .35s ease; }
.grand-directory a:hover,.grand-directory a[aria-current="page"],
.grand-directory .grand-works a:hover,.grand-directory .grand-works a[aria-current="page"] { color:#c9b78f; }
.grand-directory a:hover i { transform:translate(2px,-2px); }
.grand-directory a[aria-current="page"],.grand-directory .grand-works a[aria-current="page"] { border-bottom-color:#8d7d60; }
.grand-directory a:focus-visible,.grand-trigger:focus-visible { outline:1px solid #c9b78f; outline-offset:6px; }
@media(max-width:760px) {
  .grand-overlay { display:grid; grid-template-columns:1fr; gap:36px; }
  .grand-group { grid-template-columns:60px minmax(0,1fr) auto; gap:10px; padding:24px 0; }
  .grand-directory .grand-works a { grid-template-columns:32px minmax(0,1fr) auto; gap:8px 12px; padding:18px 0; }
  .grand-works small { grid-column:2; grid-row:2; }
  .grand-works i { grid-column:3; grid-row:1 / span 2; }
}
@media(prefers-reduced-motion:reduce) { .grand-overlay,.grand-directory a,.grand-directory i { transition:none; } }
