:root{--bg:#eef0f6;--card:#fff;--ink:#1d2230;--sub:#6b7488;--line:#e3e6ee;--acc:#4f52d8;--accbg:#ebebfc;--warn:#a8480a;--warnbg:#fff3e2;--nav:#1f2f6b}
@media (prefers-color-scheme:dark){:root{--bg:#12141a;--card:#1b1f2a;--ink:#e8ebf2;--sub:#98a1b6;--line:#2b3040;--acc:#a1a3ff;--accbg:#262a47;--warn:#ffb468;--warnbg:#33281a;--nav:#2c3a85}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.85 -apple-system,"Hiragino Sans","Noto Sans JP",sans-serif}
a{color:var(--acc)}
.banner{line-height:0}.banner a{display:block}.banner img{display:block;width:100%;max-width:960px;height:auto;margin:0 auto}
.page{max-width:1180px;margin:0 auto;padding:22px 12px 40px;display:grid;grid-template-columns:230px minmax(0,1fr) 250px;gap:20px;align-items:start}
.gnav{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:14px;background:var(--card)}
.gnav a{flex:1;text-align:center;padding:11px 6px;font-weight:600;font-size:.9rem;color:var(--sub);text-decoration:none;border-left:1px solid var(--line)}
.gnav a:first-child{border-left:0}.gnav a.on{background:var(--nav);color:#fff}
.box{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 14px 12px;margin-bottom:16px}
.box>h3{margin:0 0 8px;font-size:.88rem;color:var(--acc);font-weight:700;border-bottom:2px solid var(--accbg);padding-bottom:6px}
.mh{font-size:.76rem;font-weight:700;color:var(--sub);margin:12px 2px 3px}
.si{display:block;text-decoration:none;color:var(--ink);padding:5px 8px;border-radius:8px;line-height:1.45}.si:hover{background:var(--accbg)}
.si.cur{background:var(--accbg);border-left:3px solid var(--acc)}.sd{display:block;font-size:.72rem;color:var(--sub)}.sh{font-size:.84rem;font-weight:600}
.left{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}
.prof{text-align:center}.prof>h3{text-align:center}
.av{width:96px;height:96px;border-radius:50%;margin:0 auto;border:3px solid var(--accbg);background:var(--accbg) url(/assets/avatar.webp) center/cover no-repeat}
.prof b{display:block;margin-top:6px}.prof small{color:var(--sub);font-size:.78rem;line-height:1.5;display:block}
.cal{width:100%;border-collapse:collapse;text-align:center;font-size:.82rem}.cal th{color:var(--sub);font-weight:600;padding:2px 0}.cal td{padding:3px 0}
.cal a{display:inline-block;width:26px;height:26px;line-height:26px;border-radius:50%;background:var(--accbg);font-weight:700;text-decoration:none}.cal a.cur{background:var(--acc);color:#fff}
.post{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px 28px 24px}
.pdate{color:var(--sub);font-size:.85rem}.post h1{margin:2px 0 8px;font-size:1.5rem;line-height:1.45}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.chip{background:var(--accbg);border-radius:99px;padding:2px 12px;font-size:.8rem}.chip b{color:var(--acc);margin-right:3px}
.post h2{font-size:1.12rem;margin:32px 0 12px;padding:6px 12px;border-left:6px solid var(--acc);background:var(--accbg);border-radius:0 8px 8px 0}
.tl{list-style:none;margin:0;padding:0}.tl li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.tl li:last-child{border:0}
.tl .tm{color:var(--acc);font-weight:700;white-space:nowrap;min-width:3.2em}
.say{background:var(--warnbg);border-radius:12px;padding:12px 18px;margin:0 0 14px}.say p{margin:6px 0}
.entry{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:14px 0 0;text-decoration:none;color:var(--ink)}
.entry img{display:block;width:100%;height:auto}.entry .eb{padding:12px 16px 14px}.entry .pdate{display:block}.entry b{display:block;font-size:1.1rem;line-height:1.5;margin:2px 0 6px}
.entry .chips{margin:0}
.card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px 16px;text-decoration:none;color:var(--ink);background:var(--card)}
.card b{display:block}.card small{color:var(--sub)}.card .ar{margin-left:auto;color:var(--acc);font-weight:700}
.pn{display:flex;justify-content:space-between;gap:10px;margin-top:26px;padding-top:14px;border-top:1px solid var(--line)}.pn a{text-decoration:none;font-weight:600}
.shiori{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:0 22px 22px}
.shiori main{max-width:none;padding:0}
@media(min-width:981px){.left{order:1}.main{order:2}.right{order:3}}
@media(max-width:980px){.page{grid-template-columns:minmax(0,1fr)}.main{order:1}.left{order:2;position:static;max-height:none}.right{order:3}}
@media(max-width:600px){.post{padding:18px 14px}.post h1{font-size:1.25rem}.shiori{padding:0 12px 16px}body{font-size:15px}}
