:root{--navy:#23395b;--paper:#fffdfa;--cream:#f8f5ef;--clay:#a74725;--sage:#425c44;--muted:#59635f;--line:#d8d0c4}
*{box-sizing:border-box}
html{background:var(--cream);color:var(--navy)}
body{margin:0;font:14px/1.6 'Noto Sans JP',sans-serif;background:var(--cream)}
a{color:var(--clay);text-underline-offset:3px}
button,input,select{font:inherit;color:inherit}
button,a,input,select{touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--clay);outline-offset:3px}
.skip{position:absolute;top:-60px;left:10px;z-index:20;background:#fff;padding:10px}.skip:focus{top:10px}
header{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 20px;background:rgba(248,246,240,.94);border-bottom:1px solid rgba(217,208,196,.8);backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--navy);font:500 27px 'Noto Serif JP',serif}
.brand small{font-size:13px}
header nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
header nav a{font-size:12px;color:var(--navy);text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
main{max-width:1240px;margin:0 auto;padding:26px 20px 54px}
.gallery-intro{max-width:820px}
.mini-kicker{font-size:9px;letter-spacing:.15em;font-weight:750;color:#6c625f}
h1{font:500 clamp(32px,5vw,48px)/1.15 'Noto Serif JP',serif;margin:5px 0 12px;letter-spacing:-.02em}
.gallery-intro p{font-size:14px;line-height:1.75;color:#3d4f5f;max-width:75ch;margin:0 0 8px}
.intro-links{margin:0 0 22px!important;font-size:12px}
.gallery-controls{display:grid;grid-template-columns:minmax(220px,1fr) minmax(170px,250px);gap:10px;align-items:end;padding:16px;border:1px solid rgba(255,255,255,.9);background:rgba(255,253,250,.8);border-radius:18px;box-shadow:0 8px 26px #23395b12}
.gallery-search,.gallery-region{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:700;letter-spacing:.08em;color:#53636c;text-transform:uppercase}
.gallery-search input,.gallery-region select{min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:9px 12px;font-size:13px;letter-spacing:0;font-weight:400;text-transform:none}
.gallery-statuses{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap;padding-top:2px}
.gallery-statuses button{min-height:38px;border:1px solid #ddd4c7;border-radius:20px;background:#fffdfa;color:#51605d;padding:7px 12px;font-size:11px;font-weight:650;cursor:pointer}
.gallery-statuses button[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}
.gallery-statuses button span{display:inline-block;margin-left:5px;font-size:9px;opacity:1;color:inherit}
.gallery-summary{margin:16px 0 12px;font-size:11px;line-height:1.55;color:#59635f}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:17px;align-items:start}
.gallery-card{margin:0;border:1px solid #e4ddd2;border-radius:19px;background:var(--paper);box-shadow:0 9px 24px #23395b10;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.gallery-card[data-review=hold]{border-color:#d9a78e;box-shadow:0 9px 24px #a7472514}
.gallery-card[data-review=placeholder]{border-color:#d8d0c4;background:#fbf9f4}
.gallery-media{position:relative;margin:0;background:#f8f5ef;border-bottom:1px solid #eee7dd}
.gallery-media img{display:block;width:100%;height:190px;object-fit:contain;background:#f8f5ef}
.gallery-fallback{display:none;place-items:center;height:190px;color:#59635f;font-size:11px;text-align:center;padding:18px}
.gallery-media.is-broken img{display:none}.gallery-media.is-broken .gallery-fallback{display:grid}
.gallery-body{padding:13px 14px 15px;display:flex;flex-direction:column;gap:6px;min-width:0}
.gallery-status{display:inline-flex;align-items:center;align-self:flex-start;border-radius:999px;padding:4px 8px;font-size:9px;line-height:1.2;font-weight:750;letter-spacing:.03em;background:#e4ece6;color:#315744}
.gallery-status.status-hold{background:#f7e2d8;color:#7a3b22}.gallery-status.status-placeholder{background:#ece9e1;color:#59635f}
.gallery-card h2{font:600 17px/1.35 'Noto Serif JP',serif;margin:1px 0 0;overflow-wrap:anywhere}
.gallery-region-name{margin:0;font-size:10px;color:#66736f}
.gallery-issue{margin:2px 0;padding:7px 9px;border-radius:9px;background:#f8eee8;color:#7a3b22;font-size:10px;line-height:1.45;font-weight:650}
.gallery-card[data-review=placeholder] .gallery-issue{background:#f0eee8;color:#59635f}
.gallery-credit{margin:3px 0 0;font-size:10px;line-height:1.55;color:#4c5c62}
.gallery-credit strong{font-weight:700;color:#314d5f}
.gallery-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:5px}
.gallery-links a{display:inline-flex;align-items:center;min-height:30px;font-size:11px;font-weight:650}
.gallery-view{margin-top:auto;padding-top:5px;font-size:11px;font-weight:700}
.gallery-empty{margin:24px 0;padding:18px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);font-size:12px}
.gallery-more{display:block;margin:24px auto 0;min-height:46px;min-width:220px;border:1px solid var(--navy);border-radius:14px;background:var(--navy);color:#fff;padding:11px 18px;font-size:12px;font-weight:700;cursor:pointer}
[hidden]{display:none!important}
@media(max-width:760px){
 header{padding:10px 14px;align-items:flex-start}
 header nav{gap:10px}
 header nav a{font-size:10px}
 main{padding:20px 14px 42px}
 .gallery-controls{grid-template-columns:1fr;padding:13px;border-radius:16px}
 .gallery-statuses{grid-column:auto}
 .gallery-grid{grid-template-columns:1fr;gap:14px}
 .gallery-media img,.gallery-fallback{height:176px}
}
@media(max-width:350px){
 main{padding-left:10px;padding-right:10px}
 .gallery-media img,.gallery-fallback{height:150px}
 .gallery-statuses button{padding:6px 9px;font-size:10px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
