:root{color-scheme:light;--ink:#111116;--muted:#555f6b;--accent:#366c91;--line:#d5dbe2}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:28px}
body{margin:0;background:#fff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Yu Gothic",Meiryo,sans-serif;font-size:17px;line-height:1.8}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:2px solid #366c91;outline-offset:5px;border-radius:3px}
.music-background{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.music-background svg{width:100%;height:100%;opacity:.13}
.wave{fill:none;stroke-width:1.3}.blue{stroke:#3584ba}.violet{stroke:#9567b1}
.symbol{position:absolute;opacity:.13;font-family:Georgia,serif;font-size:70px;animation:float 14s ease-in-out infinite}
.first{top:18%;left:3%;color:#366c91}.second{top:65%;right:4%;color:#9f688c;animation-delay:-5s}.third{bottom:4%;left:14%;color:#6d9180;font-size:110px;animation-delay:-8s}
.site-header{padding:22px 5%;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #eef0f3;background:#ffffffed}
.brand{font-size:23px;font-weight:700;letter-spacing:.025em}.site-header nav{display:flex;gap:24px;font-size:14px;color:#424d5b}.site-header nav a:hover{text-decoration:underline;text-underline-offset:5px}
.layout{display:grid;grid-template-columns:155px minmax(0,900px);gap:35px;width:calc(100% - 48px);max-width:1180px;margin:auto}
.toc{padding-top:66px}.toc nav{position:sticky;top:30px}.toc a{display:flex;gap:17px;padding:10px 0;font-size:14px}.toc a span{font-size:12px;color:var(--accent)}.toc a:hover{color:var(--accent)}
main{min-width:0;background:#ffffffed;padding:0 42px}
.hero{position:relative;padding:52px 104px 35px 0;border-bottom:1px solid var(--line)}
.portrait{position:absolute;top:58px;right:0;width:80px;height:80px;object-fit:contain;border-radius:20px;border:1px solid #e0e3e8}
.eyebrow{margin:0 0 12px;font-size:12px;letter-spacing:.16em;color:var(--accent)}
h1{font-size:clamp(26px,3vw,38px);line-height:1.5;letter-spacing:.025em;margin:0 0 16px;overflow-wrap:anywhere}.intro{margin:0;color:#424851;font-size:16px}
.chapter{padding-top:44px}.chapter-heading{display:flex;gap:16px;align-items:baseline;margin:0 0 18px}.chapter-heading>span{color:var(--accent);font-size:16px}h2{font-size:25px;line-height:1.5;margin:0;font-weight:650}
.link-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.link-list li{margin:0;border-bottom:1px solid var(--line)}
.entry{display:flex;align-items:center;gap:17px;padding:21px 12px 21px 4px;min-height:80px;transition:background .18s,color .18s}
.entry-number{flex:0 0 24px;color:#73808e;font-size:12px;font-variant-numeric:tabular-nums}
.entry-content{display:block;min-width:0;flex:1}.entry-title{display:block;font-size:18px;line-height:1.7;font-weight:550;overflow-wrap:anywhere}
time{display:block;margin-bottom:4px;color:#596573;font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:.07em}
.entry-arrow{color:#507b9b;font-size:22px;flex:0 0 25px;text-align:center;transition:transform .18s}
.entry:hover{background:#f3f7fa;color:#245d84}.entry:hover .entry-arrow{transform:translate(2px,-2px)}
.app-list .entry{min-height:76px;padding-top:18px;padding-bottom:18px}.app-list .entry-arrow{color:#856a9a}.app-list .entry:hover{background:#f7f5fa;color:#65507c}
footer{margin:52px 0 0;padding:23px 0 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:13px;color:#59616a}footer a:hover{color:var(--accent)}
@keyframes float{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-14px) rotate(4deg)}}
@media(max-width:850px){.layout{grid-template-columns:110px minmax(0,1fr);gap:20px}main{padding:0 24px}.hero{padding-right:82px}.portrait{width:64px;height:64px;border-radius:16px}.brand{font-size:21px}}
@media(max-width:640px){.site-header{padding:18px 22px;flex-wrap:wrap;gap:8px}.brand{font-size:20px}.site-header nav{font-size:13px;gap:20px}.layout{display:block;width:auto;padding:0 18px}.toc{display:none}main{padding:0 10px}.hero{padding-top:34px;padding-right:0}.portrait{position:static;float:right;width:58px;height:58px;margin:0 0 12px 12px}.eyebrow{padding-top:4px;font-size:11px}h1{font-size:27px;clear:both;padding-top:3px}.intro{font-size:15px}.chapter{padding-top:34px}h2{font-size:23px}.entry{gap:10px;padding-right:3px}.entry-title{font-size:16px}.entry-number{flex-basis:20px}.entry-arrow{flex-basis:18px;font-size:20px}footer{margin-top:38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.symbol{animation:none}.entry,.entry-arrow{transition:none}}
@media print{.site-header,.toc,.music-background{display:none}.layout{display:block;width:100%}main{padding:0}.hero{padding-top:0}.portrait{top:0}.entry{break-inside:avoid}}

.site-header{flex-wrap:wrap}.site-header>nav:first-of-type{margin-left:auto}.site-header .language-links{gap:5px;white-space:nowrap;font-size:13px}.language-links [aria-current="page"]{font-weight:700;color:#111116}.language-links a{text-decoration:underline;text-underline-offset:3px}html[lang="en"] .entry-title{line-height:1.6}
@media(max-width:640px){.site-header>nav:first-of-type{margin-left:0}.site-header .language-links{margin-left:auto}.brand{flex-basis:100%}}
