:root{--bg:#f1eee2;--paper:#faf7ed;--ink:#263c31;--olive:#365744;--olive2:#667c5b;--clay:#aa6747;--ochre:#d2ab6e;--line:#c8bea6;--soft:#e8e5d4;--muted:#776d5c;--serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif CJK JP',serif;--sans:'Yu Gothic','Hiragino Kaku Gothic ProN',Meiryo,system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:14px/1.85 var(--sans);background:var(--bg);background-image:radial-gradient(#78806810 .7px,transparent .7px);background-size:15px 15px}a{color:#885037;text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px dashed var(--clay);outline-offset:3px}.shell{max-width:1250px;margin:0 auto;padding:0 40px}.mast{padding:17px 0 12px;border-bottom:3px double var(--ink)}.mast-top{display:flex;justify-content:space-between;border-top:2px solid var(--ink);border-bottom:1px solid var(--line);font:11px Georgia,serif;letter-spacing:2px;padding:8px 0;color:#6c6655}.mast-center{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:127px}.logo-mark{width:90px;height:90px;flex:none;color:var(--olive2)}.logo-mark svg{width:100%}.logo-name{text-align:center;flex:1}.logo-name .micro{font-size:11px;letter-spacing:.2em;color:var(--muted)}.logo-name a{font:900 clamp(32px,4.5vw,58px)/1.32 var(--serif);color:var(--ink);text-decoration:none;white-space:nowrap}.logo-name a em{font-style:normal;color:var(--clay);margin-left:.13em}.logo-sub{font:italic 13px Georgia,serif;letter-spacing:2px;color:#8a775b}.seal{border:2px solid var(--clay);color:#96503b;font:900 13px/1.7 var(--serif);text-align:center;padding:10px 12px;transform:rotate(6deg);flex:none}.site-nav{background:var(--olive);color:#f9efdb;position:sticky;top:0;z-index:25;border-bottom:3px solid #aa8d58}.nav-inner{display:flex;gap:0;overflow-x:auto;scrollbar-width:thin;max-width:1250px;margin:auto;padding:0 40px}.site-nav a{flex:none;color:#f9efdb;padding:12px 17px;border-right:1px solid #7b8b74;text-decoration:none;font-weight:700;font-size:12px;white-space:nowrap}.site-nav a:first-child{border-left:1px solid #7b8b74}.site-nav a:hover,.site-nav a.active{background:#d2b480;color:#2b4436}.smallbar{font-size:11px;color:#857968;padding:15px 0;display:flex;justify-content:space-between;gap:14px;align-items:center;border-bottom:1px solid var(--line)}.smallbar a{color:#775f48}.eyebrow{font:600 11px Georgia,serif;letter-spacing:2px;color:var(--clay);text-transform:uppercase}.hero{border:1px solid #75826d;border-top:6px solid var(--clay);display:grid;grid-template-columns:53% 47%;min-height:360px;margin:25px 0 30px;background:#e8e4d0}.hero-copy{padding:42px 33px 35px 46px;display:flex;flex-direction:column;justify-content:center}.hero h1{font:900 clamp(39px,4.1vw,56px)/1.45 var(--serif);letter-spacing:.03em;margin:12px 0;color:#2c4635}.hero h1 em{font-style:normal;color:var(--clay)}.hero p{color:#6a6250;font-size:13px;max-width:430px;line-height:2.1}.hero-art{width:100%;height:100%;object-fit:cover;border-left:1px solid #71836e}.action{display:inline-flex;align-items:center;gap:14px;background:var(--olive);color:#fff3de;text-decoration:none;padding:10px 16px;border:1px solid #294934;box-shadow:4px 4px 0 #c4ad86;font-size:13px;font-weight:700;align-self:start;margin-top:10px}.action:hover{color:white;background:#273f30;text-decoration:none;transform:translate(1px,1px)}.homegrid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin:19px 0}.panel{border:1px solid var(--line);background:var(--paper);padding:21px 23px;min-width:0}.panel-green{background:#e7e7d5}.panel h2,.section-head h2{font:900 21px var(--serif);margin:0 0 14px;color:#2e4938}.panel h2{border-bottom:1px solid #c3baa3;padding-bottom:11px}.panel h3{font:900 16px var(--serif)}.mini-label{font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--clay)}.date-title{font:900 27px var(--serif);margin:8px 0 13px}.control-row{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.field{display:flex;flex-direction:column;gap:4px;min-width:110px;flex:1}.field label{font-size:11px;color:var(--muted);font-weight:800}.field select,.field input{border:1px solid var(--line);padding:10px;background:#fffdf6;color:var(--ink);width:100%;border-radius:0;min-height:42px}.button{border:1px solid #7d8067;background:#fffdf5;color:var(--olive);padding:9px 13px;font-weight:700}.button:hover{background:#e4e8d8}.button.primary{background:var(--olive);color:white}.mini-stats{display:flex;border:1px solid var(--line);margin-top:17px}.mini-stat{flex:1;padding:11px;border-right:1px solid var(--line);background:#f9f5e8}.mini-stat:last-child{border-right:0}.mini-stat small{display:block;color:#847866;font-size:10px}.mini-stat b{font:900 25px Georgia,serif}.checklist{display:grid;gap:3px}.checklist label{display:flex;align-items:center;gap:10px;border-bottom:1px dotted var(--line);padding:10px 0;cursor:pointer;font-size:12px}.checklist label input{width:17px;height:17px;accent-color:#477351}.checklist label.done span{text-decoration:line-through;color:#99958a}.event-list{display:grid;gap:9px}.event-row{display:flex;gap:12px;border-bottom:1px solid #ded5c2;padding:8px 0;align-items:flex-start}.event-row .date{background:#e6e3d2;border:1px solid #bfb69d;padding:5px 8px;color:#58725a;font:900 13px Georgia,serif;white-space:nowrap}.event-row b{display:block;font-size:12px}.event-row small{font-size:11px;color:#897f6f}.section-head{display:flex;align-items:end;justify-content:space-between;margin:37px 0 16px;border-bottom:2px solid #3d614b;padding-bottom:8px;gap:14px}.section-head h2{margin:0}.section-head small{color:#887d69}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.card{background:var(--paper);border:1px solid var(--line);padding:21px;min-width:0}.card:hover{border-color:#a8926e}.card .icon{font-size:29px;line-height:1}.card h3{font:900 18px var(--serif);margin:11px 0 7px}.card p{margin:6px 0 15px;font-size:12px;color:#6f6a58}.card small{font-size:10px;color:#897c67}.card .card-link{font-size:12px;font-weight:800;border-top:1px solid #d8cebc;padding-top:11px;display:block}.card .kv{display:flex;gap:9px;justify-content:space-between;border-top:1px dotted #d8cebc;padding:5px 0;font-size:11px;color:#847562}.card .kv b{color:#395740}.tag{font-size:10px;display:inline-block;color:#885b3f;border:1px solid #d6c0a0;background:#f0e5cf;padding:1px 6px}.tool-box{border:1px solid #bbb096;background:#ece9d9;padding:20px 22px}.tool-output{background:#315640;color:#f8efdc;padding:14px 17px;margin-top:17px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.tool-output small{display:block;color:#d6d9bb;font-size:10px}.tool-output strong{font:900 23px Georgia,serif;display:block}.tool-note{font-size:11px;color:#77705f;line-height:1.8;margin:12px 0 0}.index-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.index-link{background:var(--paper);border:1px solid #c8bda7;padding:13px;display:flex;justify-content:space-between;gap:13px;font-size:12px;font-weight:700;color:#405540}.index-link:hover{background:#e9e3cf;text-decoration:none}.index-link span{color:#aa7851}.searchbar{display:flex;gap:8px;margin:15px 0}.searchbar input{flex:1;min-width:0;border:1px solid #bdb49e;background:#fffdf6;padding:11px 14px}.results{border:1px solid var(--line);background:#faf6e9;padding:8px;margin-top:10px;max-height:320px;overflow:auto}.results a{display:block;padding:8px 13px;color:#425d48;border-bottom:1px dotted #cdc4ae;font-size:12px}.results a:hover{background:#ede5d3}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:17px 0}.filter{border:1px solid #bcb298;background:#fff9ed;padding:8px 13px;color:#655b4b;font-size:12px;font-weight:800}.filter.active{background:var(--olive);color:#fff}.cal-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.cal-day{border:1px solid #d6cbb6;background:#fffaf0;min-height:86px;text-align:left;padding:9px;display:flex;flex-direction:column}.cal-day.selected{border:2px solid var(--olive2);background:#eae8d5;padding:8px}.cal-day b{font:900 18px Georgia,serif}.cal-day small{font-size:9px;color:#8f5648;line-height:1.5}.info-note{background:#eee6d1;border-left:3px solid var(--clay);padding:12px 15px;color:#6f6149;font-size:12px;margin:15px 0}.footer{border-top:4px double var(--line);margin:50px 0 0;padding:24px 0 46px;color:#7d725d;font-size:11px;display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap}.footer a{color:#79573d}.footer-links{display:flex;gap:15px;flex-wrap:wrap}.article-header{margin:40px auto 26px;max-width:930px;border-bottom:4px double #9f9c84;padding:0 0 26px}.article-header h1{font:900 clamp(30px,3.5vw,47px)/1.45 var(--serif);margin:15px 0 8px}.article-lede{color:#6f6553;font-size:15px;line-height:2.2;max-width:760px}.bread{font-size:11px;margin-top:16px;color:#887965}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:40px;max-width:970px;margin:auto}.article-body h2{font:900 22px/1.5 var(--serif);border-left:4px solid var(--clay);padding-left:14px;margin:33px 0 13px}.article-body h3{font:900 17px var(--serif);margin:22px 0 10px}.article-body p{font-size:13px;line-height:2.16;margin:0 0 15px}.article-body ul{padding-left:19px;font-size:13px;line-height:2.08}.article-body li{margin-bottom:8px}.article-aside{position:sticky;top:80px;border-top:4px solid var(--olive);padding-top:11px;font-size:12px}.article-aside strong{display:block;font:900 17px var(--serif);margin-bottom:10px}.article-aside a{display:block;padding:8px 0;border-bottom:1px dotted #c2b69f}.table-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;margin:14px 0 22px;background:#f9f6ec;min-width:500px;font-size:12px}.data-table th,.data-table td{border:1px solid #cfc5ae;padding:10px;text-align:left;vertical-align:top}.data-table th{background:#e9e4d1;color:#415945;white-space:nowrap}.related{margin-top:28px;border-top:3px double #aeb29c;padding-top:18px}.related h2{border:0;padding:0;margin:10px 0}.related-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.related-grid a{border:1px solid var(--line);padding:9px 11px;background:#f9f4e9;color:#80553e;font-size:12px}.article-sources{border-left:4px solid #a18456;background:#eee9d8;padding:16px;margin-top:27px}.article-sources h2{font:900 15px var(--serif);margin:0 0 9px;border:0;padding:0}.article-sources p{font-size:11px;margin:0 0 8px}.article-sources a{font-size:11px}.empty{text-align:center;padding:23px;color:#8d806e;font-size:12px}.hide{display:none!important}.favor{border:1px solid #cbbca0;background:transparent;color:#8d816e;padding:3px 8px;float:right}.favor.saved{background:#ead9b1;color:#8a582c}.banner-flag{font-size:11px;color:#7f5d43;border:1px solid #bd9e75;padding:5px 12px;background:#f5e3c5}.page-map{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0 20px}.page-map>*{font-size:11px}
@media(max-width:960px){.shell{padding:0 21px}.nav-inner{padding:0 21px}.logo-name a{font-size:clamp(25px,5vw,45px)}.hero-copy{padding:30px}.homegrid{grid-template-columns:1fr}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.index-list{grid-template-columns:repeat(2,minmax(0,1fr))}.article-layout{gap:22px;grid-template-columns:minmax(0,1fr) 175px}}
@media(max-width:650px){.shell{padding:0 15px}.nav-inner{padding:0 8px}.site-nav a{padding:9px 11px;font-size:11px}.mast-center{min-height:87px;gap:8px}.mast-top{font-size:8px;letter-spacing:1px}.mast-top span:last-child{display:none}.logo-mark{width:39px;height:39px}.logo-name .micro{font-size:8px}.logo-name a{font-size:24px}.logo-sub{font-size:9px;letter-spacing:1px}.seal{font-size:9px;padding:6px}.hero{grid-template-columns:1fr}.hero-art{height:220px;grid-row:2;object-fit:cover;border:0;border-top:1px solid #7b9178}.hero-copy{padding:25px 21px 23px}.hero h1{font-size:31px;margin:8px 0}.hero p{font-size:12px}.card-grid{grid-template-columns:1fr}.index-list{grid-template-columns:1fr}.panel{padding:17px}.cal-grid{gap:4px}.cal-day{min-height:80px;padding:6px}.cal-day b{font-size:15px}.cal-day small{font-size:8px}.article-layout{display:block}.article-aside{position:static;margin-top:30px}.article-header{margin:27px auto 20px}.article-header h1{font-size:31px}.related-grid{grid-template-columns:1fr}.tool-output{gap:5px;padding:11px}.tool-output strong{font-size:17px}.tool-output small{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
