:root{--bg:#202020;--card:#2b2b2b;--card2:#323232;--fg:#ffffff;--muted:#c5c5c5;--dim:#9a9a9a;--line:#3a3a3a;--accent:#60cdff;--accent-fg:#000}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){--bg:#f3f3f3;--card:#ffffff;--card2:#f9f9f9;--fg:#1a1a1a;--muted:#444;--dim:#6b6b6b;--line:#e2e2e2;--accent:#005fb8;--accent-fg:#fff}}
:root[data-theme="light"]{--bg:#f3f3f3;--card:#ffffff;--card2:#f9f9f9;--fg:#1a1a1a;--muted:#444;--dim:#6b6b6b;--line:#e2e2e2;--accent:#005fb8;--accent-fg:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.75 "Segoe UI Variable Text","Segoe UI","Yu Gothic UI","Hiragino Sans","Noto Sans JP",sans-serif}
a{color:var(--accent)}code{font-family:"Cascadia Mono",Consolas,"SFMono-Regular",monospace;font-size:.88em;background:var(--card2);border:1px solid var(--line);padding:0 .35em;border-radius:4px}
.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}
aside{position:sticky;top:0;height:100vh;padding:14px 10px;border-right:1px solid var(--line)}
.brand{display:flex;gap:10px;align-items:center;padding:6px 10px 18px;font-size:13px;color:var(--muted)}.brand img{width:20px}
aside .grp{font-size:13px;font-weight:600;color:var(--fg);padding:14px 12px 4px}
aside a{display:block;padding:7px 12px;border-radius:5px;color:var(--fg);text-decoration:none;font-size:14px;position:relative}
aside a:hover{background:var(--card)}
aside a.on{background:var(--card)}aside a.on::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:2px;background:var(--accent)}
main{padding:36px 44px 80px;max-width:1040px}
h1{font-size:30px;font-weight:600;margin:0 0 6px}h2{font-size:20px;font-weight:600;margin:48px 0 12px}h3{font-size:15px;font-weight:600;margin:0}
.sub{color:var(--muted);margin:0 0 4px}.dim{color:var(--dim);font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:16px 18px}
.row{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 26px}
.btn{display:inline-flex;align-items:center;padding:6px 14px;border-radius:5px;border:1px solid var(--line);background:var(--card2);color:var(--fg);text-decoration:none;font-size:14px}
.btn.accent{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.shot{width:100%;display:block;border-radius:6px;border:1px solid var(--line)}.shot-link{display:block;cursor:zoom-in}
.state{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.state .card{padding:12px 14px;background:var(--card2)}
.state h3{display:flex;gap:8px;align-items:baseline}.state h3 span{color:var(--accent);font-family:"Cascadia Mono",monospace;font-size:13px}
.stack>.card+.card{margin-top:4px}
.exp{padding:0}.exp>.head{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;padding:16px 18px;align-items:center}
.exp p{margin:2px 0 0;color:var(--muted);font-size:14px}
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.gal figure{margin:0}.gal figcaption{font-size:12px;color:var(--dim);margin-top:4px}
table.req{width:100%;border-collapse:collapse;font-size:14px}table.req th,table.req td{padding:10px 14px;text-align:left;border-top:1px solid var(--line);vertical-align:top}table.req tr:first-child th,table.req tr:first-child td{border-top:0}table.req th{width:9em;font-weight:600}
ol.inst{margin:0;padding:0;list-style:none;counter-reset:n}ol.inst li{counter-increment:n;display:grid;grid-template-columns:28px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line)}ol.inst li:first-child{border-top:0}
ol.inst li::before{content:counter(n);width:24px;height:24px;border-radius:50%;background:var(--card2);border:1px solid var(--line);display:grid;place-items:center;font-size:12px}
.tips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tips p{margin:4px 0 0;color:var(--muted);font-size:14px}
details{background:var(--card);border:1px solid var(--line);border-radius:8px;margin-bottom:4px}summary{cursor:pointer;padding:12px 18px;font-weight:600;list-style:none;display:flex;justify-content:space-between}
summary::after{content:"⌄";color:var(--dim)}details[open] summary::after{content:"⌃"}details p{margin:0;padding:0 18px 14px;color:var(--muted)}
footer{margin-top:56px;color:var(--dim);font-size:13px}
.row{align-items:center}.store{display:inline-flex;border-radius:5px}.store img{display:block;height:36px;width:auto}
.store:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.store .on-light{display:none}
:root[data-theme="light"] .store .on-light{display:block}:root[data-theme="light"] .store .on-dark{display:none}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]) .store .on-light{display:block}:root:not([data-theme="dark"]) .store .on-dark{display:none}}
.tools{position:fixed;top:14px;right:18px;z-index:10;display:flex;gap:6px}.tool{height:36px;min-width:36px;display:grid;place-items:center;border-radius:6px;border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer;padding:0 8px;font:600 13px/1 "Segoe UI","Yu Gothic UI",sans-serif;text-decoration:none}
.tool:hover{background:var(--card2)}.tool:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.theme svg{width:18px;height:18px}.theme .sun{display:none}
:root[data-theme="dark"] .theme .sun{display:block}:root[data-theme="dark"] .theme .moon{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .theme .sun{display:block}:root:not([data-theme="light"]) .theme .moon{display:none}}
@media (max-width:860px){.tools{top:8px;right:10px}aside{padding-right:100px}}
@media (max-width:860px){.shell{grid-template-columns:1fr}aside{position:static;height:auto;display:flex;overflow-x:auto;gap:4px;padding:8px;border-right:0;border-bottom:1px solid var(--line)}aside .grp,.brand{display:none}aside a{white-space:nowrap}main{padding:24px 16px 64px}.exp>.head{grid-template-columns:1fr}.state,.tips{grid-template-columns:1fr}.gal{grid-template-columns:1fr 1fr}}

.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:12px;z-index:20;background:var(--card);padding:6px 10px;border-radius:5px}
img{max-width:100%;height:auto}
.flush{padding:4px 0}.gap{margin-top:8px}.state .card p{margin:4px 0 0}
html.en-pending body{visibility:hidden}
.tool.lang{display:inline-flex;align-items:center;gap:6px;padding:0 10px}.tool.lang svg{width:16px;height:16px;flex:none}
