:root{color-scheme:light dark;--bg:#f6f8fa;--panel:#fff;--ink:#0f1a24;--muted:#58677a;--line:#d3dbe3;--soft:#eef3f7;--accent:#0a6e8a;--link:#0a6e8a;
--band:#0f1a24;--bandink:#e8eef3;--bandline:#2c3e4e;--field:#1d2b38;--sr:#0a6e8a;--rct:#2f7d32;--cr:#b45309;
--f:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic","Meiryo",system-ui,sans-serif}
@media (prefers-color-scheme:dark){:root{--bg:#0b1117;--panel:#141d26;--ink:#e6edf3;--muted:#9aa9b8;--line:#263543;--soft:#192531;--accent:#4cc2e0;--link:#6cc8e2;--band:#070b0f;--bandline:#22313e;--field:#16212b}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f);font-size:16px;line-height:1.7}
a{color:var(--link)}
a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.in{max-width:960px;margin:0 auto;padding-inline:16px}
.band{background:var(--band);color:var(--bandink);border-bottom:1px solid var(--bandline)}
.band .in{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;padding-block:10px}
.brand{color:var(--bandink);text-decoration:none;font-weight:800;font-size:1.25rem;letter-spacing:.04em}
.brand span{font-weight:500;font-size:.78rem;margin-left:.6em;opacity:.8;letter-spacing:.02em}
.band nav{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:.88rem}
.band nav a{color:var(--bandink);text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
.band nav a:hover,.band nav a[aria-current]{border-bottom-color:#4cc2e0}
.band .search{flex:1 1 260px;min-width:0}
.search{position:relative}
.search input{width:100%;font:inherit;font-size:.95rem;padding:8px 12px;border:1px solid var(--bandline);background:var(--field);color:#e8eef3;border-radius:3px}
.search input::placeholder{color:#9fb0c0}
.main-search input{padding:13px 16px;font-size:1.05rem;background:var(--panel);color:var(--ink);border:2px solid var(--accent)}
.main-search input::placeholder{color:var(--muted)}
.res{position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:0 6px 18px rgba(0,0,0,.18);display:none;max-height:70vh;overflow:auto}
.res.on{display:block}
.res a{display:block;padding:9px 12px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.res a:last-child{border-bottom:0}
.res a:hover,.res a.act{background:var(--soft)}
.res b{margin-right:.5em}
.res small{display:block;color:var(--muted);font-size:.8rem;line-height:1.5;margin-top:2px}
.tag{display:inline-block;font-size:.68rem;font-weight:700;padding:1px 6px;border:1px solid var(--accent);color:var(--accent);margin-right:.5em;vertical-align:1px}
main .in{padding-block:20px 56px}
h1{margin:0 0 6px;font-size:1.5rem;line-height:1.45;text-wrap:balance}
h2{margin:0 0 10px;font-size:1.05rem;line-height:1.5}
h3{margin:14px 0 6px;font-size:.98rem}
.crumb{font-size:.8rem;color:var(--muted);margin:0 0 8px}
.crumb a{color:var(--muted)}
.meta{margin:0 0 14px;font-size:.8rem;color:var(--muted)}
.id{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-weight:700;color:var(--accent);margin-right:.4em}
.yomi{color:var(--muted);font-size:.9rem}
.sum{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--accent);padding:10px 14px;margin:0 0 14px}
.sum p{margin:.35em 0}
.sum .cav{color:var(--muted);font-size:.85rem}
section.p{background:var(--panel);border:1px solid var(--line);padding:14px 16px;margin:0 0 14px}
.tw{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:.8rem;white-space:nowrap}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td.nw,th.nw{white-space:nowrap}
td.wide,th.wide{min-width:15em}
.bar{display:inline-block;height:.55em;background:var(--accent);opacity:.5;margin-right:6px;vertical-align:baseline}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.two>div{min-width:0}
.lv{display:inline-block;font-size:.68rem;font-weight:700;line-height:1;padding:3px 6px;border-radius:2px;color:#fff;letter-spacing:.02em;vertical-align:1px}
.lv.sr{background:var(--sr)}.lv.rct{background:var(--rct)}.lv.cr{background:var(--cr)}
ol.papers,ul.plain{margin:0;padding:0;list-style:none}
ol.papers>li{padding:11px 0;border-bottom:1px solid var(--line)}
ol.papers>li:last-child{border-bottom:0}
.ph{font-size:.8rem;color:var(--muted);margin-bottom:2px}
.pt{font-weight:600;overflow-wrap:anywhere}
.ps{margin:.3em 0 .2em}
.pm{margin:0;font-size:.78rem;color:var(--muted)}
.chk{display:inline-block;font-size:.7rem;border:1px dashed var(--muted);padding:0 5px;margin-left:4px}
details{border:1px solid var(--line);background:var(--panel);padding:8px 14px;margin:0 0 14px}
details>summary{cursor:pointer;color:var(--accent);font-weight:600;padding:2px 0}
details[open]>summary{margin-bottom:8px}
ul.lst{margin:0;padding:0;list-style:none;font-size:.88rem}
ul.lst li{padding:5px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
ul.lst li:last-child{border-bottom:0}
ul.lst .y{color:var(--muted);margin-right:.4em;font-variant-numeric:tabular-nums}
.rows{list-style:none;margin:0;padding:0}
.rows li{display:grid;grid-template-columns:1fr auto;gap:2px 14px;padding:11px 0;border-bottom:1px solid var(--line);align-items:baseline}
.rows li:last-child{border-bottom:0}
.rows a.t{font-weight:700;font-size:1.02rem}
.rows .d{grid-column:1;color:var(--muted);font-size:.86rem;margin:0}
.rows .c{grid-column:2;grid-row:1;color:var(--muted);font-size:.8rem;text-align:right;white-space:nowrap}
.hero{padding:14px 0 18px}
.hero p{margin:.4em 0 12px;color:var(--muted)}
.eg{font-size:.86rem;color:var(--muted);margin:8px 0 0}
.new li{display:grid;grid-template-columns:5.6em 1fr;gap:2px 10px;padding:8px 0;border-bottom:1px solid var(--line)}
.new li:last-child{border-bottom:0}
.new time,.new .dt{color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}
.art{max-width:760px;line-height:1.9}
.art h2{font-size:1.2rem;margin:1.8em 0 .4em;padding-top:.6em;border-top:1px solid var(--line)}
.art h3{font-size:1.05rem;margin:1.5em 0 .3em}
.art p{margin:0 0 1em}
.art img{max-width:100%;height:auto}
.art table{display:block;overflow-x:auto}
.art td,.art th{border:1px solid var(--line);padding:6px 10px}
.prof{border-collapse:collapse;margin:8px 0 12px;font-size:.9rem}
.prof th{text-align:left;color:var(--muted);font-weight:600;padding:4px 18px 4px 0;white-space:nowrap;vertical-align:top}
.prof td{padding:4px 0}
.prof small{color:var(--muted);font-size:.78rem}
.pyr{width:100%;max-width:520px;display:block;margin:4px auto 10px}
.pyr rect{fill:var(--soft);stroke:var(--line)}
.pyr .sr rect{fill:var(--sr);stroke:var(--sr)}
.pyr .rct rect{fill:var(--rct);stroke:var(--rct)}
.pyr .cr rect{fill:var(--cr);stroke:var(--cr)}
.pyr text{font-size:12px;fill:var(--ink)}
.pyr .sr text,.pyr .rct text,.pyr .cr text{fill:#fff;font-weight:700}
.pyr-l{font-size:.9rem}
.qt code{font-size:.72rem;word-break:break-all;color:var(--muted)}
.art blockquote{margin:1em 0;padding:6px 14px;border-left:3px solid var(--line);color:var(--muted)}
footer{border-top:1px solid var(--line);background:var(--panel)}
footer .in{padding-block:16px;font-size:.8rem;color:var(--muted)}
footer a{color:var(--muted)}
.draft{display:inline-block;font-size:.7rem;border:1px solid var(--cr);color:var(--cr);padding:0 6px;margin-left:8px;vertical-align:2px}
@media (max-width:640px){
 .two{grid-template-columns:1fr}
 h1{font-size:1.3rem}
 .rows li{grid-template-columns:1fr}
 .rows .c{grid-column:1;grid-row:auto;text-align:left}
 .new li{grid-template-columns:1fr}
 section.p,.sum,details{padding-inline:12px}
}
/* トップ＝白地・真ん中に小さなアニメと名前と丸い検索・箱をやめて余白と細い線 */
:root{--sv-brain:#f4f8fa;--sv-line:#0f1a24;--sv-gy:#c3d0d9;--sv-nd:#8d9aa6;--sv-hd:#c9a84c;--sv-rp:#0a8aa8;--sv-lb:#58677a}
@media (prefers-color-scheme:dark){:root{--sv-brain:#121b23;--sv-line:#8fd6ea;--sv-gy:#2b4655;--sv-nd:#9aa9b8;--sv-hd:#d8b85a;--sv-rp:#4cc2e0;--sv-lb:#9aa9b8}}
body:has(.home){background:var(--panel)}
.topbar .in{display:flex;justify-content:flex-end;padding-block:14px}
.topbar nav{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:.84rem}
.topbar nav a{color:var(--muted);text-decoration:none}
.topbar nav a:hover{color:var(--ink);text-decoration:underline}
.home{max-width:980px}
.g-hero{text-align:center;padding:4vh 0 40px}
.g-art{width:min(300px,78vw);margin:0 auto -26px}
.g-wm{margin:0;font-size:clamp(2.8rem,9vw,4.4rem);font-weight:300;letter-spacing:.32em;line-height:1;padding-left:.32em;color:var(--ink)}
.g-wm b{font-weight:600;color:var(--accent)}
.g-sub{margin:12px 0 0;font-size:1rem;color:var(--ink);letter-spacing:.06em}
.g-sub span{color:var(--muted);font-size:.8rem;margin-right:.8em;letter-spacing:.12em}
.g-search{max-width:620px;margin:26px auto 0}
.g-search input{width:100%;font:inherit;font-size:1rem;padding:14px 24px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);box-shadow:0 1px 4px rgba(15,26,36,.06);transition:box-shadow .15s,border-color .15s}
.g-search input:hover,.g-search input:focus{box-shadow:0 2px 10px rgba(15,26,36,.14);border-color:transparent;outline:0}
.g-search input::placeholder{color:var(--muted)}
.g-search .res{text-align:left;border-radius:14px;margin-top:6px}
.g-eg{margin:14px 0 0;font-size:.84rem;color:var(--muted)}
.g-eg a{color:var(--muted);margin:0 .5em;text-decoration:none;border-bottom:1px solid var(--line)}
.g-eg a:hover{color:var(--ink)}
.g-motto{margin:34px auto 0;max-width:34em;font-size:.95rem;color:var(--ink)}
.g-motto span{display:block;margin-top:4px;font-size:.82rem;color:var(--muted);text-wrap:balance}
.think .cb,.think .cbl,.think .stem{display:none}
.g-stats{margin:22px 0 0;font-size:.8rem;color:var(--muted);letter-spacing:.04em}
.g-stats b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;margin-right:.25em}
.g-stats i{font-style:normal;margin:0 .7em;opacity:.5}
.g-sec{border-top:1px solid var(--line);padding:30px 0 6px}
.g-sec h2,.g-col h2,.g-soon h2{font-size:.78rem;font-weight:600;letter-spacing:.14em;color:var(--muted);margin:0 0 12px}
.g-sec h2 a,.g-col h2 a{float:right;font-weight:400;letter-spacing:0;color:var(--muted)}
.g-mer{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.g-mer a,.g-mer span{display:inline-flex;align-items:baseline;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:.82rem;color:var(--ink);text-decoration:none}
.g-mer b{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:.78rem;color:var(--accent);font-weight:600}
.g-mer a:hover{border-color:var(--accent)}
.g-mer .off{color:var(--muted);opacity:.45;border-style:dashed}
.g-mer .off b{color:var(--muted)}
.g-con{display:flex;flex-wrap:wrap;gap:6px 20px;margin:0 0 14px;font-size:.95rem}
.g-con a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.g-con a:hover{border-bottom-color:var(--accent)}
.g-legend{margin:0 0 6px;font-size:.74rem;color:var(--muted)}
.g-legend .tag{margin-left:.8em}
.tag.sr{background:var(--sr);border-color:var(--sr);color:#fff}.tag.rct{background:var(--rct);border-color:var(--rct);color:#fff}.tag.cr{background:var(--cr);border-color:var(--cr);color:#fff}
.tag{border-radius:3px}
.g-two{display:grid;grid-template-columns:3fr 2fr;gap:40px;border-top:1px solid var(--line);padding:30px 0 10px}
.g-news,.g-rank{list-style:none;margin:0;padding:0}
.g-news li{display:flex;gap:10px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line);font-size:.88rem;line-height:1.55}
.g-news li:last-child{border-bottom:0}
.g-news .tag{flex:0 0 auto;white-space:nowrap}
.g-news a{color:var(--ink);text-decoration:none}
.g-news a:hover{color:var(--link);text-decoration:underline}
.g-news small{display:block;color:var(--muted);font-size:.74rem;margin-top:2px}
.g-rank li{display:grid;grid-template-columns:1.4em 6.4em 1fr 3em;gap:8px;align-items:center;padding:7px 0;font-size:.88rem}
.g-rank .i{color:var(--muted);font-size:.74rem;font-variant-numeric:tabular-nums}
.g-rank a{color:var(--ink);text-decoration:none}
.g-rank a:hover{color:var(--link)}
.g-rank small{margin-left:.35em;color:var(--muted);font-size:.7rem}
.g-rank .bar{height:4px;background:var(--soft);border-radius:2px}
.g-rank .bar i{display:block;height:100%;background:var(--accent);border-radius:2px;opacity:.75}
.g-rank .n{text-align:right;color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}
.g-soon{border-top:1px solid var(--line);padding:30px 0 10px}
.g-soon ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:4px 32px}
.g-soon li{padding:8px 0;font-size:.86rem;border-bottom:1px solid var(--line)}
.g-soon li a{color:var(--ink);text-decoration:none;font-weight:600}
.g-soon li a:hover{color:var(--link)}
.g-soon li span{display:block;color:var(--muted);font-size:.78rem}
.g-soon li em{float:right;font-style:normal;font-size:.68rem;color:var(--muted);letter-spacing:.08em}
.g-notes{border-top:1px solid var(--line);padding:22px 0 4px;font-size:.78rem;color:var(--muted)}
.g-notes h2{display:inline;font-size:.78rem;font-weight:600;margin:0 1em 0 0;letter-spacing:.08em}
.g-notes h2 small{font-weight:400;margin-left:.6em}
.g-notes ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 20px}
.g-notes a{color:var(--muted)}
.g-notes time{margin-left:.4em;opacity:.8}
.g-meta{margin:22px 0 0;font-size:.74rem;color:var(--muted)}
.g-meta a{color:var(--muted)}
/* 鍼が刺さって響くアニメ（明るい地） */
.think{width:100%;height:auto;display:block;overflow:visible}
.think .gl{fill:url(#sqglow);opacity:0;animation:sq-glow 7s infinite}
.think .brain,.think .cb{fill:var(--sv-brain);stroke:var(--sv-line);stroke-width:1.6;stroke-linejoin:round}
.think .gy,.think .cbl{fill:none;stroke:var(--sv-gy);stroke-width:1.6;stroke-linecap:round}
.think .stem{fill:none;stroke:var(--sv-line);stroke-width:5;stroke-linecap:round;opacity:.18}
.think .net{fill:none;stroke:var(--sv-rp);stroke-width:1.2;stroke-dasharray:3 4;opacity:0;animation:sq-net 7s infinite}
.think .body{stroke:var(--sv-nd);stroke-width:1.4}
.think .hd{fill:var(--sv-hd)}
.think .nd{transform:translate(0,-46px);opacity:0;animation:sq-stab 7s infinite cubic-bezier(.2,.9,.3,1.2)}
.think .rp{fill:none;stroke:var(--sv-rp);stroke-width:1.6;opacity:0;transform-box:fill-box;transform-origin:center;animation:sq-ripple 7s infinite}
.think .rp.b{stroke-width:.8;animation-name:sq-ripple2}
.think .pt{fill:var(--sv-rp);opacity:0;animation:sq-pt 7s infinite}
.think .lb{fill:var(--sv-lb);font-size:11px;font-weight:600;opacity:0;animation:sq-lb 7s infinite}
.think .tk{display:none}
.think .n2,.think .r2,.think .p2,.think .l2{animation-delay:.55s}
.think .n3,.think .r3,.think .p3,.think .l3{animation-delay:1.1s}
.think .n4,.think .r4,.think .p4,.think .l4{animation-delay:1.65s}
.think .n5,.think .r5,.think .p5,.think .l5{animation-delay:2.2s}
@keyframes sq-stab{0%{transform:translate(0,-46px);opacity:0}4%{opacity:1}9%{transform:translate(0,0);opacity:1}70%{transform:translate(0,0);opacity:1}82%,100%{transform:translate(0,-46px);opacity:0}}
@keyframes sq-ripple{0%,8%{opacity:0;transform:scale(.3)}9%{opacity:.8;transform:scale(.4)}24%{opacity:0;transform:scale(3.2)}100%{opacity:0}}
@keyframes sq-ripple2{0%,12%{opacity:0;transform:scale(.3)}13%{opacity:.5;transform:scale(.4)}32%{opacity:0;transform:scale(4.6)}100%{opacity:0}}
@keyframes sq-pt{0%,8%{opacity:0}9%,74%{opacity:1}84%,100%{opacity:0}}
@keyframes sq-lb{0%,9%{opacity:0}14%,72%{opacity:1}82%,100%{opacity:0}}
@keyframes sq-net{0%,48%{opacity:0}56%,74%{opacity:.9}84%,100%{opacity:0}}
@keyframes sq-glow{0%,50%{opacity:0}60%,74%{opacity:1}86%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.think *{animation:none!important}.think .nd{transform:none;opacity:1}.think .pt,.think .lb,.think .net{opacity:1}.think .rp,.think .gl{opacity:0}}
@media (max-width:760px){
 .g-two{grid-template-columns:1fr;gap:20px}
 .topbar .in{justify-content:center}
 .g-stats i{margin:0 .4em}
}
