
:root{--bg:#faf8f4;--card:#ffffff;--ink:#2b2622;--muted:#7a7068;--line:#e7e1d8;--accent:#8a6a4f;--chip:#efe9e0}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#1b1916;--card:#24211d;--ink:#ece6dd;--muted:#a89e93;--line:#38332d;--accent:#c9a27e;--chip:#2e2a25}}
:root[data-theme="dark"]{--bg:#1b1916;--card:#24211d;--ink:#ece6dd;--muted:#a89e93;--line:#38332d;--accent:#c9a27e;--chip:#2e2a25}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.85 "Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic","Meiryo",sans-serif}
a{color:inherit}img{max-width:100%;height:auto;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
header.site{border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:5}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}
.logo{display:block;line-height:0}.logo img{height:42px;width:auto}.lg-l{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .lg-d{display:none}:root:not([data-theme="light"]) .lg-l{display:block}}
:root[data-theme="dark"] .lg-d{display:none}:root[data-theme="dark"] .lg-l{display:block}
.hero h1{line-height:0;margin:0 0 10px}.hero-logo{width:min(318px,70vw);height:auto;filter:drop-shadow(0 1px 6px rgba(0,0,0,.45))}
nav.main{display:flex;gap:22px;font-size:14px;letter-spacing:.06em}
nav.main a{text-decoration:none;color:var(--muted);display:inline-grid;justify-items:center}nav.main .ja,nav.main .en{grid-area:1/1;transition:opacity .25s}nav.main .en{opacity:0;letter-spacing:.04em}nav.main a:hover .ja,nav.main a:focus-visible .ja{opacity:0}nav.main a:hover .en,nav.main a:focus-visible .en{opacity:1}nav.main a.on,nav.main a:hover{color:var(--ink)}
.hero{position:relative;height:min(70vh,640px);overflow:hidden;background:#2b2622}
.hero>img{width:100%;height:100%;object-fit:cover;opacity:.9}
.hero .cap{position:absolute;left:0;right:0;bottom:0;padding:48px 20px 34px;background:linear-gradient(transparent,rgba(0,0,0,.55));color:#fff}
.hero h1{font-weight:500;letter-spacing:.35em;margin:0;font-size:clamp(28px,5vw,48px)}
.hero p{margin:6px 0 0;letter-spacing:.08em;opacity:.92}
h2.sec{font-weight:600;letter-spacing:.14em;font-size:24px;margin:56px 0 6px}
.sub{color:var(--muted);font-size:13px;letter-spacing:.12em;margin:0 0 22px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.chips button{border:1px solid var(--line);background:var(--chip);color:var(--ink);border-radius:999px;padding:5px 14px;font:inherit;font-size:13px;cursor:pointer}
.chips button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.grid{columns:4 240px;column-gap:14px}
.card{break-inside:avoid;margin:0 0 14px;background:var(--card);border:1px solid var(--line);display:block;text-decoration:none}
.card img{width:100%}.card .t{padding:9px 12px 11px;font-size:14px;line-height:1.5}.card .t small{display:block;color:var(--muted);font-size:12px}
.card:hover img{opacity:.88}
.more{display:inline-block;margin:6px 0 0;font-size:14px;letter-spacing:.08em;color:var(--accent)}
article{max-width:760px;margin:40px auto 72px}
article h1{font-weight:600;letter-spacing:.08em;font-size:clamp(24px,4vw,32px);line-height:1.4;margin:0 0 6px}
article .meta{color:var(--muted);font-size:13px;margin:0 0 28px;letter-spacing:.05em}
article .meta a{color:var(--muted)}
article figure{margin:22px 0;display:grid;gap:10px}article p{margin:0 0 1.2em}
article .ph img{width:100%;background:var(--chip)}
article blockquote{margin:1em 0;padding:.4em 1em;border-left:3px solid var(--line);color:var(--muted)}
.pager{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:18px;margin-top:40px;font-size:14px}
.pager a{text-decoration:none;color:var(--muted)}.pager a:hover{color:var(--ink)}
.blist{list-style:none;padding:0;margin:0}.blist li{display:flex;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.blist img{width:84px;height:64px;object-fit:cover;flex:none}.blist a{text-decoration:none}.blist time{color:var(--muted);font-size:12px;display:block}
.year{margin:34px 0 4px;font-size:18px;letter-spacing:.12em;color:var(--muted)}
footer.site{border-top:1px solid var(--line);color:var(--muted);font-size:12px;letter-spacing:.1em;padding:28px 0 40px;margin-top:40px;text-align:center}
.lb{position:fixed;inset:0;background:rgba(10,8,6,.92);display:none;align-items:center;justify-content:center;z-index:20;cursor:zoom-out}
.lb.on{display:flex}.lb img{max-width:94vw;max-height:92vh;width:auto}
@media (max-width:640px){header.site .wrap{height:56px}.logo img{height:32px}nav.main{gap:14px;font-size:13px}.grid{columns:2 150px;column-gap:10px}.card{margin-bottom:10px}.card .t{padding:7px 9px 9px;font-size:13px}h2.sec{margin-top:40px}}

.hero .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease}
.hero .slide.on{opacity:.92}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tile{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#2b2622;text-decoration:none}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,opacity .3s}
.tile:hover img{transform:scale(1.04);opacity:.92}
.tile span{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6));font-size:15px;letter-spacing:.08em}
.tile span small{display:block;font-size:11px;opacity:.85;letter-spacing:.1em}
.catnav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}
.catnav a{border:1px solid var(--line);background:var(--chip);border-radius:999px;padding:4px 13px;font-size:13px;text-decoration:none}
h3.cat{font-weight:600;letter-spacing:.12em;font-size:20px;margin:46px 0 4px;scroll-margin-top:80px}
h3.cat small{display:block;font-family:inherit;color:var(--muted);font-size:12px;letter-spacing:.12em;margin-top:2px}
.card .n{float:right;color:var(--muted);font-size:12px}
.member{border-top:1px solid var(--line);padding-top:26px;margin-top:34px}
.member h2{font-weight:600;font-size:21px;letter-spacing:.06em;margin:0 0 2px}
.member .meta{margin-bottom:16px}
.tag{margin-left:8px;font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px;white-space:nowrap}
.series{margin:28px 0 0;font-size:14px}.series a{color:var(--accent)}
.toc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.toc a{font-size:13px;color:var(--muted)}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:18px 0 6px}
.sgrid a{display:block;text-decoration:none;background:var(--card);border:1px solid var(--line)}
.sgrid img,.sgrid .noimg{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;background:var(--chip)}
.sgrid .st{display:block;padding:6px 8px 8px;font-size:12px;line-height:1.45}.sgrid .st small{display:block;color:var(--muted)}
.sgrid a:hover img{opacity:.85}
.year{display:flex;align-items:baseline;gap:10px;font-weight:600;color:var(--ink);font-size:20px;margin:40px 0 14px;scroll-margin-top:80px}
.year small{color:var(--muted);font-size:12px;font-weight:400;letter-spacing:.08em}
.bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.bcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);text-decoration:none;overflow:hidden}
.bcard>img,.bcard .noimg{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--chip)}
.bcard .noimg{display:flex;align-items:center;justify-content:center}.bcard .noimg img{width:46%;opacity:.35}
.bcard .bt{padding:10px 13px 14px;display:flex;flex-direction:column;gap:3px}
.bcard time{color:var(--muted);font-size:12px}.bcard b{font-weight:600;font-size:15px;line-height:1.5}
.bcard .ex{color:var(--muted);font-size:13px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bcard .tag{align-self:flex-start;margin:0}
.bcard:hover>img{opacity:.88}
@media (max-width:640px){.bgrid{grid-template-columns:repeat(2,1fr);gap:10px}.bcard .ex{display:none}.bcard b{font-size:13px}}
@media (max-width:760px){.tiles{grid-template-columns:repeat(2,1fr);gap:10px}}
