:root{--text:#000;--muted:#555;--line:#e8e8e8;--soft:#fafafa;--soft2:#f2f2f2;--paper:#fff;--blue:#0645ad}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font-family:'Noto Sans JP',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;line-height:1.78;overflow-x:hidden}
a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}
.site-header{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;align-items:center;padding:14px 48px}
.brand{font-size:15px;color:var(--text);text-decoration:none}
.site-sub{font-size:11px;color:var(--muted);line-height:1.4;margin-top:2px}
.global-nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:13px}
.global-nav a{color:var(--text);text-decoration:none;border-bottom:1px solid transparent}
.global-nav a:hover{border-bottom-color:var(--text)}
main{max-width:1180px;margin:0 auto;padding:58px 48px 96px}
h1{font-size:38px;font-weight:400;line-height:1.28;margin:0 0 24px;letter-spacing:0}
h2{font-size:20px;font-weight:400;line-height:1.55;margin:64px 0 18px;padding-top:8px;border-top:1px solid var(--line)}
h3{font-size:18px;font-weight:400;line-height:1.48;margin:0 0 10px;letter-spacing:0}
p{margin:0 0 18px}
.lead{font-size:18px;line-height:1.75;margin-bottom:28px;max-width:880px}
.meta,.note,.muted{color:var(--muted);font-size:13px}
.note{line-height:1.62}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0 34px}
.summary-grid>div{background:var(--soft);padding:16px;min-height:106px;border:1px solid var(--line)}
.summary-grid strong{display:block;font-size:27px;line-height:1.25;font-weight:400;margin:3px 0 8px}
.controls{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(150px,.7fr));gap:10px;align-items:end;margin:20px 0 18px}
.control label{display:block;font-size:11px;color:var(--muted);margin:0 0 5px}
input,select{width:100%;border:1px solid var(--line);background:#fff;color:var(--text);font:inherit;font-size:14px;min-height:40px;padding:8px 10px;border-radius:0}
input:focus,select:focus{outline:1px solid #000;outline-offset:1px}
.result-count{font-size:13px;color:var(--muted);margin:0 0 22px}
.object-list{display:grid;grid-template-columns:1fr;gap:10px;margin:18px 0 42px}
.object-row{display:grid;grid-template-columns:220px 1fr;gap:18px;background:var(--soft);border:1px solid var(--line);padding:12px;min-height:168px}
.object-row[hidden]{display:none}
.object-row:not(:has(.object-image)){grid-template-columns:1fr}
.object-image{margin:0;background:#eee;border:1px solid var(--line)}
.object-image img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.object-image figcaption{font-size:11px;color:var(--muted);line-height:1.45;padding:7px 8px 8px;background:#fff;border-top:1px solid var(--line)}
.object-body{min-width:0;padding:2px 2px 0}
.object-kicker{font-size:11px;color:var(--muted);margin-bottom:7px}
.object-meta{font-size:13px;color:var(--muted);margin-bottom:10px}
.tag-row{margin:0 0 10px}
.tag{display:inline-block;background:var(--soft2);padding:4px 7px;font-size:12px;line-height:1.45;margin:0 4px 4px 0}
.source-line{font-size:13px;margin:0}
.wide-table-wrap{overflow-x:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:16px 0 34px;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;min-width:960px}
th,td{border-bottom:1px solid var(--line);padding:10px 9px;vertical-align:top;text-align:left;font-weight:400;font-size:13px;line-height:1.56;overflow-wrap:anywhere}
th{background:#f7f7f7}
@media(max-width:920px){.site-header{position:static;padding:14px 22px;align-items:flex-start;flex-direction:column}main{padding:42px 22px 80px}h1{font-size:30px}.summary-grid{grid-template-columns:1fr 1fr}.controls{grid-template-columns:1fr}.object-row,.object-row:not(:has(.object-image)){grid-template-columns:1fr}.object-image{max-width:420px}.global-nav{gap:14px}}
@media(max-width:560px){.summary-grid{grid-template-columns:1fr}h1{font-size:27px}.lead{font-size:16px}.object-row{padding:10px}.object-image{max-width:none}}
