/* isenokami.com（伊勢守 増田家の記録）。和紙のような生成り・墨・藍・朱。gen.mjs がそのまま site/style.css に写す */
:root{--bg:#f6f1e7;--paper:#fbf8f1;--fg:#1d1b19;--muted:#6b645a;--rule:#d9cfbd;--surface:#efe7d8;--ai:#27355e;--shu:#a8432a;--moss:#5f7a4e;--ocher:#8a6d3b;
--serif:'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho',serif;--head:'Shippori Mincho','Noto Serif JP',serif;--w:1160px}
@media (prefers-color-scheme:dark){:root{--bg:#16140f;--paper:#1c1a14;--fg:#ede6d8;--muted:#a89f8f;--rule:#3a342a;--surface:#211e17;--ai:#9fb2e3;--shu:#e07b5f;--moss:#9cbb88;--ocher:#d1ad6e}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--serif);font-size:16px;line-height:1.95;letter-spacing:.02em;overflow-x:hidden;
background-image:radial-gradient(rgba(120,100,60,.035) 1px,transparent 1px);background-size:5px 5px}
a{color:var(--ai);text-underline-offset:3px}a:hover{color:var(--shu)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--head);font-weight:700;line-height:1.5;letter-spacing:.04em}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;z-index:99;background:var(--paper);padding:6px 10px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--w);margin:0 auto;padding:0 20px}
main{min-height:60vh}

/* ヘッダー */
.hd{border-bottom:1px solid var(--rule);margin-bottom:28px}
.hd-row{display:flex;align-items:center;gap:14px;padding:18px 0 12px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--fg);margin-right:auto}
.mk{width:42px;height:42px;flex:none}
.lg-t{display:flex;flex-direction:column;line-height:1.2}.lg-t b{font-family:var(--head);font-size:28px;font-weight:800;letter-spacing:.18em}.lg-t small{font-size:12px;color:var(--muted);letter-spacing:.08em;margin-top:4px}
.hd-gl{font-size:13px;border:1px solid var(--rule);padding:5px 12px;border-radius:2px;text-decoration:none;color:var(--fg);white-space:nowrap}
.gn ul{list-style:none;margin:0;padding:0 0 10px;display:flex;flex-wrap:wrap;gap:4px 22px;font-family:var(--head);font-size:15px}
.gn a{text-decoration:none;color:var(--fg);padding:4px 0;border-bottom:2px solid transparent}.gn a[aria-current]{border-color:var(--shu);color:var(--shu)}.gn a:hover{color:var(--shu)}
.mn{display:none;position:relative}.mn summary{list-style:none;cursor:pointer;width:38px;height:38px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:8px}.mn summary::-webkit-details-marker{display:none}
.mn summary span{display:block;height:2px;background:var(--fg)}
.mn nav{position:absolute;left:0;top:44px;z-index:50;background:var(--paper);border:1px solid var(--rule);box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:220px}
.mn ul{list-style:none;margin:0;padding:8px 0}.mn li a{display:block;padding:10px 18px;text-decoration:none;color:var(--fg);font-family:var(--head)}.mn li a[aria-current]{color:var(--shu)}

/* 共通 */
.crumb{font-size:12px;color:var(--muted);margin:0 0 18px;display:flex;flex-wrap:wrap;gap:6px}.crumb a{color:inherit}.crumb i{font-style:normal;opacity:.5}
.ph-h{margin:0 0 26px}.ph-h h1{font-size:clamp(24px,3.6vw,36px);margin:4px 0 12px}.pdek{font-size:16px;color:var(--muted);max-width:52em;margin:0}
.tag{font-family:var(--head);font-size:12px;letter-spacing:.2em;color:var(--shu);margin:0}
.by{font-size:12px;color:var(--muted);margin:6px 0 0;letter-spacing:.05em}
.block{margin:54px 0}
.sh{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--fg);padding-bottom:8px;margin-bottom:22px}.sh .en{font-family:var(--head);font-size:11px;letter-spacing:.25em;color:var(--shu);margin:0;text-transform:uppercase}.sh h2{font-size:22px;margin:0}.sh a{margin-left:auto;font-size:13px}
.bh{font-size:19px;border-left:4px solid var(--shu);padding-left:12px;margin:0 0 16px}
.note{font-size:13px;color:var(--muted)}.empty{color:var(--muted);padding:12px 0}
.lead-p{max-width:46em;margin:-6px 0 22px;color:var(--muted)}
.k{display:inline-block;font-family:var(--head);font-size:11px;line-height:1.6;letter-spacing:.08em;padding:0 7px;margin-right:8px;border-radius:2px;vertical-align:2px;white-space:nowrap;border:1px solid}
.k-rec{color:#fff;background:var(--ai);border-color:var(--ai)}.k-town{color:var(--ai);border-color:var(--ai);background:transparent}.k-sec{color:var(--ocher);border-color:var(--ocher)}.k-trad{color:#fff;background:var(--shu);border-color:var(--shu)}.k-guess{color:var(--muted);border-color:var(--muted);border-style:dashed}.k-ctx{color:var(--moss);border-color:var(--moss)}
@media (prefers-color-scheme:dark){.k-rec,.k-trad{color:#16140f}}

/* カード */
.card{display:flex;flex-direction:column;min-width:0}
.th,.tile-i{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--surface)}.th img,.tile-i img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.card:hover .th img,.tile:hover img{transform:scale(1.03)}
.noimg{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--surface),var(--rule))}.noimg i{font-style:normal;font-family:var(--head);font-size:20px;letter-spacing:.3em;color:var(--muted)}
.card.row .noimg i{font-size:12px;letter-spacing:.12em}.card-c{padding-top:12px}.card .tag{margin-bottom:4px}
.hl{font-size:17px;line-height:1.55;margin:0 0 6px}.hl a{color:var(--fg);text-decoration:none}.hl a:hover{color:var(--shu)}
.dek{font-size:14px;line-height:1.85;color:var(--muted);margin:0 0 6px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cards{display:grid;gap:34px 26px}.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.front{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:34px}
.card.lead .th{aspect-ratio:16/9}.card.lead .hl{font-size:clamp(20px,2.4vw,27px)}.card.lead .dek{font-size:15px;-webkit-line-clamp:4}
.front-side{display:flex;flex-direction:column;gap:18px}
.card.row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;border-bottom:1px solid var(--rule);padding-bottom:16px}.card.row .card-c{padding-top:0}.card.row .hl{font-size:15px}
.four{margin-top:36px;padding-top:30px;border-top:1px solid var(--rule)}
.lead-st{margin-bottom:40px}.lead-st .card.lead{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:30px;align-items:center}

/* トップの帯 */
.hero-band{position:relative;margin:0 0 10px;padding:46px 40px;background:var(--ai);color:#f6f1e7;overflow:hidden;
background-image:linear-gradient(105deg,rgba(23,30,56,.92) 40%,rgba(23,30,56,.55)),url(/img/tone-sunset.jpg);background-size:cover;background-position:center 60%}
.hb-in{max-width:640px;position:relative}.hero-band .en{font-size:11px;letter-spacing:.25em;opacity:.8;margin:0 0 10px;text-transform:uppercase}
.hb-t{font-family:var(--head);font-size:clamp(25px,4vw,40px);font-weight:800;line-height:1.5;letter-spacing:.08em;margin:0 0 14px}
.hb-d{font-size:15px;line-height:1.95;opacity:.92;margin:0 0 18px}
.hb-l{display:flex;flex-wrap:wrap;gap:10px;margin:0}.hb-l a{color:#f6f1e7;text-decoration:none;border:1px solid rgba(246,241,231,.6);padding:6px 16px;font-family:var(--head);font-size:14px}.hb-l a:first-child{background:var(--shu);border-color:var(--shu)}.hb-l a:hover{background:#f6f1e7;color:var(--ai)}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.tile{display:block;text-decoration:none;color:var(--fg);border-bottom:1px solid var(--rule);padding-bottom:16px}.tile-i{margin-bottom:12px}
.tile b{display:block;font-family:var(--head);font-size:17px;margin-bottom:4px}.tile>span:last-child{display:block;font-size:13px;color:var(--muted);line-height:1.8}.tile:hover b{color:var(--shu)}
.tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.lk{list-style:none;margin:0;padding:0}.lk li{padding:9px 0;border-bottom:1px dotted var(--rule);font-size:15px;line-height:1.6}.lk a{color:var(--fg);text-decoration:none}.lk a:hover{color:var(--shu)}.lk small{display:block;font-size:11px;color:var(--muted)}
.more{text-align:right;font-size:13px;margin:10px 0 0}

/* 用語 */
.glo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;margin:0}
.gi{padding:15px 0;border-bottom:1px solid var(--rule);scroll-margin-top:20px}
.gi dt{font-family:var(--head);font-weight:700;font-size:17px;line-height:1.5}.gi dt small{font-family:var(--serif);font-weight:400;font-size:11px;color:var(--muted);margin:0 8px}.gi dt .k{margin-left:2px}
.gi dd{margin:6px 0 0;font-size:14.5px;line-height:1.85}.gi dd p{margin:0 0 4px}
.gi-r{font-size:12px}.gi-r a{margin-right:12px}
.gi:target{background:var(--surface);box-shadow:-12px 0 0 var(--surface),12px 0 0 var(--surface)}
.glo.sm{grid-template-columns:1fr}.glo.sm .gi{padding:10px 0}.glo.sm dt{font-size:15px}.glo.sm dd{font-size:13.5px}.glo.sm dd p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.gsearch input{width:100%;max-width:420px;font:inherit;padding:8px 12px;border:1px solid var(--rule);background:var(--paper);color:var(--fg)}
.toc{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 26px}.toc a{font-family:var(--head);font-size:13px;padding:4px 14px;border:1px solid var(--rule);text-decoration:none;color:var(--fg);background:var(--paper)}.toc a:hover{border-color:var(--shu);color:var(--shu)}
section[data-gcat]{margin-bottom:36px}

/* 記事 */
.art{max-width:780px;margin:0 auto}
.ph{margin:0 0 26px}.ph img{width:100%;max-height:560px;object-fit:cover;background:var(--surface)}
.ph figcaption{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.6}.ph .cr{display:block;font-size:11px}
.hero img{aspect-ratio:16/9}
.klg{font-size:12px;color:var(--muted);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:8px 0;margin:0 0 26px}.klg a{margin-left:6px}
.body{font-size:16.5px;line-height:2.05}.body p{margin:0 0 1.35em}
.body h2{font-size:22px;margin:2.2em 0 .8em;padding-bottom:6px;border-bottom:1px solid var(--rule)}.body h3{font-size:17px;margin:1.6em 0 .6em;color:var(--ai)}
.body ul{padding-left:1.3em}.body li{margin:0 0 .6em}
.kp .k{margin-right:6px}
.kp-guess{color:var(--muted)}
.body .gl{color:inherit;text-decoration:underline;text-decoration-color:var(--shu);text-decoration-thickness:1px}
.fn{font-size:11px;line-height:0;margin-left:1px}.fn a{text-decoration:none;color:var(--shu);font-family:var(--head)}.fn a::before{content:'['}.fn a::after{content:']'}
.quote{margin:1.4em 0;padding:16px 22px;background:var(--paper);border-left:3px solid var(--shu);font-family:var(--head);font-size:16px;line-height:2}
.quote.boshi{font-size:15px}
.lead-note{font-size:13.5px;line-height:1.9;background:var(--paper);border:1px solid var(--rule);padding:12px 16px}
.eras{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:0 0 30px;border:1px solid var(--rule)}
.eras a{display:block;text-align:center;padding:10px 4px;text-decoration:none;color:var(--fg);border-right:1px solid var(--rule);background:var(--paper)}.eras a:last-child{border-right:0}.eras b{display:block;font-family:var(--head);font-size:14px}.eras small{font-size:11px;color:var(--muted)}.eras a:hover{background:var(--surface);color:var(--shu)}
.fns{margin-top:48px;border-top:2px solid var(--fg);padding-top:10px}.fns h2,.terms h2{font-size:17px;margin:8px 0 12px}
.fns ol{font-size:13.5px;line-height:1.8;padding-left:1.8em}.fns li{margin-bottom:6px;scroll-margin-top:20px}.fns li:target{background:var(--surface)}
.sk{display:inline-block;font-size:11px;color:var(--muted);border:1px solid var(--rule);padding:0 6px;margin-left:6px;border-radius:2px;vertical-align:1px}
.ext{font-size:12px;margin-left:6px}
.terms{margin:28px 0}.terms ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.terms a{display:inline-block;font-size:13px;padding:2px 12px;border:1px solid var(--shu);color:var(--shu);border-radius:14px;text-decoration:none}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:36px 0}.pn a{display:block;text-decoration:none;color:var(--fg);border:1px solid var(--rule);padding:12px 16px;font-family:var(--head);font-size:15px;background:var(--paper)}.pn small{display:block;font-family:var(--serif);font-size:11px;color:var(--muted)}.pn .nx{text-align:right}
.view{background:var(--paper);border-left:3px solid var(--ai);padding:4px 18px;margin:24px 0}
.src{font-size:14px}.ai{font-size:12px;color:var(--muted)}
.pager{display:flex;justify-content:space-between;margin:36px 0;font-size:14px}

/* 年表 */
.kf{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 14px;font-size:13px}.kf button{font:inherit;font-size:13px;padding:4px 12px;border:1px solid var(--rule);background:var(--paper);color:var(--fg);cursor:pointer;border-radius:14px}.kf button[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.kdef{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:6px 20px;font-size:13px;margin:0 0 30px}.kdef div{display:flex;align-items:baseline;gap:4px}.kdef dd{margin:0;color:var(--muted)}
.era{margin:0 0 34px}.era h2{font-size:22px;border-bottom:1px solid var(--fg);padding-bottom:6px}
.tl{list-style:none;margin:0;padding:0;border-left:2px solid var(--rule);margin-left:6px}
.tl-i{position:relative;display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;padding:12px 0 12px 22px;border-bottom:1px dotted var(--rule)}
.tl-i::before{content:'';position:absolute;left:-7px;top:20px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--ai)}.tl-trad::before{border-color:var(--shu);background:var(--shu)}.tl-sec::before{border-color:var(--ocher)}.tl-ctx::before{border-color:var(--moss)}
.tl-y{font-family:var(--head);font-weight:700;margin:0;font-size:15px}.tl-b p{margin:0}.tl-b>p:first-of-type{display:inline}.tl-s{font-size:12px;color:var(--muted);margin-top:4px!important}.tl-b .gl{color:inherit}

/* 資料 */
.sg{margin:0 0 44px;scroll-margin-top:16px}.sg h2{font-size:21px;border-bottom:1px solid var(--fg);padding-bottom:6px}.sg h3{font-size:16px;margin:20px 0 6px}
.srcl{list-style:none;margin:0;padding:0}.srcl li{padding:14px 0;border-bottom:1px solid var(--rule);scroll-margin-top:16px}.srcl li:target{background:var(--surface)}
.st{margin:0;font-family:var(--head);font-size:16px}.sm{margin:2px 0 0;font-size:13px;color:var(--muted)}.sn{margin:6px 0 0;font-size:14px;line-height:1.85}.su{margin:4px 0 0;font-size:12px;word-break:break-all}
.ql{font-size:14.5px;padding-left:1.3em}.ql li{margin:0 0 6px}
.collect{background:var(--paper);border:1px solid var(--rule);padding:6px 22px 14px}
.prose{max-width:780px}.prose h2{font-size:20px;margin:1.8em 0 .6em}

/* 家系図 */
.kz-lg{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13px;margin:0 0 14px}.kz-lg span{display:flex;align-items:center;gap:8px}
.kz-lg i{display:inline-block;width:36px;border-top:2px solid var(--fg)}.kz-lg .l-dash{border-top-style:dashed;border-color:var(--shu)}.kz-lg .l-dot{border-top-style:dotted;border-color:var(--muted)}
.kz-lg b{display:inline-block;width:22px;height:14px;border:1px solid var(--muted)}.kz-lg .b-unk{background:#d8d2c6;border-style:dashed}.kz-lg .b-note{background:var(--paper);border-style:dotted}
.kz-fig{margin:0 0 30px}.kz-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--rule);background:var(--paper)}
.kz{display:block;width:100%;min-width:760px;height:auto;font-family:var(--head)}
.kz-n rect{fill:var(--bg);stroke:var(--fg);stroke-width:1.2}.kz-trad rect{stroke:var(--shu);stroke-width:1.6}.kz-conf rect{stroke:var(--ai);stroke-width:2}.kz-gen rect{stroke:var(--muted);stroke-dasharray:2 3}.kz-unk rect{fill:#d8d2c6;stroke:var(--muted);stroke-dasharray:5 4}.kz-note rect{fill:var(--paper);stroke:var(--muted);stroke-dasharray:2 3}
@media (prefers-color-scheme:dark){.kz-unk rect{fill:#3a342a}}
.kz-t{font-size:15px;font-weight:700;fill:var(--fg)}.kz-d{font-size:11px;fill:var(--muted);font-family:var(--serif)}
.kz a:hover rect{fill:var(--surface)}
.kz-e{fill:none;stroke:var(--fg);stroke-width:1.4}.kz-dash{stroke:var(--shu);stroke-dasharray:7 5}.kz-dot{stroke:var(--muted);stroke-dasharray:2 4}.kz-side{stroke-width:1.2}
.kz-ls{font-size:10px!important}.kz-l{font-size:11px;fill:var(--shu);font-family:var(--serif)}
.kz-fig figcaption{font-size:12px;color:var(--muted);margin-top:6px}

/* 地図 */
.maplg{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;margin:8px 0 0}.maplg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}
.pl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px}.pl li{padding:12px 0;border-bottom:1px solid var(--rule);font-size:14px}.pl p{margin:0 0 4px}.pl-n i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}.pl-n b{font-family:var(--head);font-size:16px}.pl-n small{color:var(--muted);margin-left:8px}.pl-s{font-size:12px}

/* フッター */
.ft{margin-top:70px;border-top:1px solid var(--fg);padding:26px 0 40px}.ft-brand{display:flex;align-items:center;gap:10px;font-family:var(--head);font-size:18px;font-weight:700;margin:0 0 12px}.ft-brand .mk{width:30px;height:30px}
.ft-l{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px}.ft-l a{color:var(--fg)}

@media (max-width:1000px){.c4{grid-template-columns:repeat(2,minmax(0,1fr))}.c3,.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tri{grid-template-columns:repeat(2,minmax(0,1fr))}.tri>div:last-child{grid-column:1/-1}}
@media (max-width:720px){
.wrap{padding:0 16px}.gn{display:none}.mn{display:block}.hd-row{padding:12px 0}.lg-t b{font-size:22px}.lg-t small{font-size:10.5px}.mk{width:36px;height:36px}.hd{margin-bottom:20px}
.front{grid-template-columns:1fr;gap:22px}.card.row{grid-template-columns:96px minmax(0,1fr)}.c3,.c4{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}.c3 .dek,.c4 .dek{display:none}.hl{font-size:15px}
.lead-st .card.lead{display:flex}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}.tile>span:last-child{display:none}.tile b{font-size:15px}
.tri,.glo,.pl{grid-template-columns:1fr}.tri>div:last-child{grid-column:auto}.hero-band{padding:30px 20px;margin:0 -16px 10px}
.body{font-size:16px;line-height:2}.eras{grid-template-columns:repeat(3,minmax(0,1fr))}.eras a:nth-child(3){border-right:0}.eras a:nth-child(-n+3){border-bottom:1px solid var(--rule)}
.tl-i{grid-template-columns:1fr;gap:2px;padding-left:18px}.pn{grid-template-columns:1fr}.quote{padding:12px 14px}.collect{padding:4px 14px 10px}
}
