*{box-sizing:border-box}
:root{--bg:#f4f3f0;--panel:#fff;--ink:#252525;--muted:#656565;--line:#d7d5cf;--soft:#eeece7;--accent:#8f2020;--accent-soft:#f8eaea;--link:#2456a4;--warning:#8f2020;--max:1240px;--article:880px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--bg);line-height:1.78}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg)}a{color:var(--link);text-underline-offset:.15em}a:hover{text-decoration-thickness:2px}
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}
.topbar-inner{max-width:var(--max);margin:auto;min-height:62px;padding:0 20px;display:flex;align-items:center;gap:16px}.brand{color:var(--ink);font-weight:850;text-decoration:none;letter-spacing:.01em}.brand small{display:block;font-size:.7rem;color:var(--muted);font-weight:650;line-height:1.1}.menu-btn{display:none;margin-left:auto;border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 12px;font:inherit}
.layout{max-width:var(--max);margin:auto;display:grid;grid-template-columns:270px minmax(0,1fr);gap:34px;padding:28px 20px 72px}.sidebar{position:sticky;top:90px;align-self:start;max-height:calc(100vh - 110px);overflow:auto;padding-right:5px}.nav-group{margin-bottom:21px}.nav-group>p{margin:0 0 6px;font-size:.76rem;font-weight:850;color:var(--muted);letter-spacing:.08em}.nav-group a{display:block;padding:7px 10px;border-radius:8px;text-decoration:none;color:var(--ink);margin:2px 0}.nav-group a:hover{background:#eae8e2}.nav-group a.active{background:var(--accent-soft);color:var(--accent);font-weight:850}.searchbox{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;margin-bottom:18px}
main{min-width:0}.content{max-width:var(--article);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:clamp(22px,4vw,48px);box-shadow:0 9px 30px rgba(0,0,0,.035)}
.mirror-banner{border:1px solid #cfcac0;background:#faf9f6;border-radius:12px;padding:15px 18px;margin-bottom:30px;font-size:.93rem}.mirror-banner strong{display:block;margin-bottom:3px}.mirror-banner p{margin:.25em 0}.source-link{font-size:.88rem}
.page-title{font-size:clamp(2rem,5.5vw,3.3rem);line-height:1.17;margin:0 0 28px;letter-spacing:-.025em}.page-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.badge{display:inline-flex;align-items:center;border-radius:999px;background:#ecebea;padding:4px 10px;font-size:.76rem;font-weight:800}.badge.warn{background:#f8e4e4;color:#831b1b}
h2,h3,h4,h5,h6{scroll-margin-top:82px;line-height:1.38}h2{font-size:1.52rem;margin:46px 0 16px;padding-bottom:8px;border-bottom:1px solid var(--line)}h3{font-size:1.25rem;margin:35px 0 12px}h4{font-size:1.1rem;margin:28px 0 10px}h5{font-size:1rem;margin:24px 0 8px}.shadow-heading{border-left:4px solid #c9c5bc;padding-left:10px}
p{margin:.75em 0}.wiki-paragraph{margin:.78em 0}.wiki-paragraph br{line-height:1.3}.spacer{height:.65rem}.wiki-hr{border:0;border-top:1px solid var(--line);margin:36px 0}
ul,ol{padding-left:1.55em;margin:.65em 0}li{margin:.26em 0}li>ul,li>ol{margin:.25em 0}.preline{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f5f5f2;padding:.1em .4em;border-radius:4px}
.toc{border:1px solid var(--line);background:#fafafa;border-radius:12px;padding:14px 18px;margin:18px 0 30px}.toc strong{display:block;margin-bottom:6px}.toc ol{margin:.25em 0}.toc .level-3{margin-left:1em}.toc .level-4{margin-left:2em}.toc .level-5{margin-left:3em}
.table-wrap{overflow-x:auto;margin:17px 0 25px;border:1px solid var(--line);border-radius:10px;background:#fff}table{width:100%;border-collapse:collapse;min-width:520px}th,td{padding:9px 11px;text-align:left;vertical-align:top;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}tr:last-child th,tr:last-child td{border-bottom:0}th:last-child,td:last-child{border-right:0}th{background:#f1f0ec;font-weight:800}.align-center{text-align:center}.align-right{text-align:right}.align-left{text-align:left}
details.wiki-region{border:1px solid var(--line);border-radius:11px;background:#fbfbfa;margin:16px 0}details.wiki-region>summary{cursor:pointer;font-weight:800;padding:11px 14px;list-style:none}details.wiki-region>summary::-webkit-details-marker{display:none}details.wiki-region>summary:before{content:'＋';display:inline-block;width:1.35em;color:var(--muted)}details.wiki-region[open]>summary:before{content:'−'}details.wiki-region>.region-body{padding:0 16px 15px;border-top:1px solid var(--line)}
.spoiler-redact{background:#2d2d2d;color:transparent;border-radius:3px;padding:0 .16em;cursor:pointer;box-decoration-break:clone;-webkit-box-decoration-break:clone}.spoiler-redact.revealed,.spoiler-redact:focus{color:#fff}.colored{font-weight:inherit}.wiki-size{display:inline}.wiki-image{display:block;max-width:100%;height:auto;margin:14px auto;border-radius:8px}.video-wrap{position:relative;aspect-ratio:16/9;margin:20px 0;background:#111;border-radius:12px;overflow:hidden}.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.comments-archive{border-top:2px solid var(--line);margin-top:28px;padding-top:14px}.comment-closed{border:1px solid var(--line);background:#f5f4f1;border-radius:10px;padding:12px 14px;color:var(--muted);font-size:.92rem}.comment-time{color:var(--muted);font-size:.92em}.old-edit-note{border-left:4px solid #b7b3aa;background:#f6f5f2;padding:10px 14px;margin:18px 0;color:#545454}
footer{max-width:var(--max);margin:auto;padding:0 20px 42px;color:var(--muted);font-size:.84rem}.footer-inner{border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
@media(max-width:860px){
.menu-btn{display:block}
.layout{display:block;padding:18px 14px 70px}
.sidebar{
display:none;
position:fixed;
top:64px;
left:12px;
right:12px;
z-index:60;
max-height:calc(100dvh - 76px);
overflow:auto;
background:#fff;
border:1px solid var(--line);
border-radius:14px;
padding:14px;
margin:0;
box-shadow:0 18px 55px rgba(0,0,0,.18)
}
.sidebar.open{display:block}
.menu-backdrop{
display:none;
position:fixed;
inset:56px 0 0;
z-index:50;
background:rgba(0,0,0,.28);
-webkit-backdrop-filter:blur(1px);
backdrop-filter:blur(1px)
}
.menu-backdrop.open{display:block}
body.menu-open{overflow:hidden}
.content{border-radius:12px;padding:21px 15px;font-size:.94rem}
.topbar-inner{min-height:56px;padding-left:16px;padding-right:16px}
.page-title{font-size:clamp(1.78rem,8vw,2.35rem);margin-bottom:22px}
h2{font-size:1.34rem;margin-top:39px}
h3{font-size:1.13rem;margin-top:30px}
h4{font-size:1rem}
.mirror-banner{font-size:.88rem;padding:13px 14px}
.table-wrap{overflow-x:visible;margin-left:0;margin-right:0}
table{width:100%;min-width:0;table-layout:fixed;font-size:.86rem;line-height:1.55}
th,td{padding:7px 8px;overflow-wrap:anywhere;word-break:normal}
table tr>*:first-child{width:7.1rem;font-weight:700}
ruby rt{font-size:.62em}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

@media(max-width:390px){
.layout{padding-left:10px;padding-right:10px}
.content{padding:18px 12px}
table{font-size:.82rem}
th,td{padding:6px 7px}
table tr>*:first-child{width:6.55rem}
}

@media(max-width:390px){
.sidebar{left:8px;right:8px;top:60px;max-height:calc(100dvh - 68px)}
}

/* v7: FAQ category-based table of contents */
.category-toc .toc-groups{display:grid;gap:18px;margin-top:12px}
.category-toc .toc-group{margin:0}
.category-toc .toc-group-title{margin:0 0 5px;font-weight:800;color:var(--ink)}
.category-toc ul{margin:0;padding-left:1.25em}
.category-toc li{margin:.28em 0}
.legacy-anchor{display:block;position:relative;top:-76px;visibility:hidden}
@media(max-width:860px){
  .category-toc{padding:14px 16px}
  .category-toc .toc-groups{gap:16px}
  .category-toc ul{padding-left:1.15em}
}
