
/* Layout: 薄グレー地に白いカード(幅720px)。左に固定の章ナビ、章見出しは濃いグレーの帯。補足(2段目)は青緑。参考: kairi-pf.com */
:root{
  --ground:#e6e6e6;
  --card:#ffffff;
  --ink:#1e1e1e;
  --band:#3a3a3a;
  --band-ink:#ffffff;
  --sub:#0a7da0;
  --link:#0000ee;
  --rule:#c9c9c9;
  --caution-bg:#fff4c2;
  --caution-edge:#c9a400;
  --stop-bg:#fde0de;
  --stop-edge:#c0392b;
  --todo-bg:#ececec;
  --mark:#ffe94d;
  --mark-ink:#000000;
  --th:#f0f0f0;
  --font:"Noto Sans JP",system-ui,-apple-system,"Hiragino Sans","Yu Gothic",sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ground:#161616;--card:#232323;--ink:#e8e8e8;--band:#4a4a4a;--band-ink:#fff;--sub:#4cc2e6;--link:#8ab4ff;--rule:#4a4a4a;
  --caution-bg:#3b3410;--caution-edge:#d9b800;--stop-bg:#4a1f1c;--stop-edge:#ef7b70;--todo-bg:#333;--mark:#7a6a00;--mark-ink:#fff;--th:#2d2d2d;color-scheme:dark}}
:root[data-theme="dark"]{
  --ground:#161616;--card:#232323;--ink:#e8e8e8;--band:#4a4a4a;--band-ink:#fff;--sub:#4cc2e6;--link:#8ab4ff;--rule:#4a4a4a;
  --caution-bg:#3b3410;--caution-edge:#d9b800;--stop-bg:#4a1f1c;--stop-edge:#ef7b70;--todo-bg:#333;--mark:#7a6a00;--mark-ink:#fff;--th:#2d2d2d;color-scheme:dark}

body{background:var(--ground);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.9;margin:0}
*{box-sizing:border-box}
.shell{display:flex;gap:16px;align-items:flex-start;max-width:1000px;margin:0 auto;padding:16px}
a{color:var(--link)}

/* 左ナビ (Googleサイトの「サイドバー表示」ナビ) */
.nav{position:sticky;top:calc(env(safe-area-inset-top,0px) + 16px);width:230px;flex:none;background:var(--card);border-radius:12px;padding:14px 16px;max-height:calc(100vh - 32px);overflow:auto;font-size:14px;line-height:1.6}
.nav h2{font-size:14px;margin:12px 0 4px;font-weight:700}
.nav h2:first-child{margin-top:0}
.nav ul{margin:0;padding-left:1.1em;list-style:square}
.nav li{margin:2px 0}
.nav a{color:var(--ink);text-decoration:none}
.nav a:hover{text-decoration:underline}
.nav .here{font-weight:700}
.nav .sub{list-style:none;padding-left:.8em;font-size:13px}
.nav .sub li::before{content:"・";color:var(--sub)}

.page{flex:1;min-width:0;max-width:720px;background:var(--card);padding:0 0 100px}
.in{padding:0 28px}
h1{font-size:2.3rem;line-height:1.35;margin:44px 0 20px;padding:0 28px;font-weight:700;text-wrap:balance}
.meta{margin:0;padding:0 28px;font-size:13px;line-height:1.7;list-style:none}
.meta li{margin:4px 0;padding-left:1.2em;position:relative}
.meta li::before{content:"▶";position:absolute;left:0;font-size:10px;top:.45em}
hr{border:0;border-top:1px solid var(--rule);margin:28px 28px}

/* 章の大見出し=濃いグレー帯 */
h2.band{background:var(--band);color:var(--band-ink);font-size:2rem;margin:56px 0 24px;padding:14px 28px;line-height:1.4}
/* 節見出し=帯にしない。太字+下線 */
h3{font-size:1.2rem;margin:36px 0 10px;padding-bottom:6px;border-bottom:2px solid var(--ink)}
h4{font-size:1.05rem;margin:26px 0 4px}

p{margin:.6em 0}
ul.t{margin:.4em 0 .8em;padding-left:1.4em;list-style:disc}
ul.t li{margin:.3em 0}
ul.t li ul{list-style:circle;margin:.2em 0}
ul.t li ul li{color:var(--sub)}
mark{background:var(--mark);color:var(--mark-ink);padding:0 .15em}
.tags{color:var(--sub);font-size:14px}

.know{background:var(--todo-bg);padding:14px 20px;margin:20px 0}
.know b{display:block;margin-bottom:2px}
.know ul{margin:.2em 0;padding-left:1.3em}

.box{padding:12px 18px;margin:16px 0;border-left:6px solid;font-size:15px;line-height:1.8}
.box b.l{display:block;font-size:13px;letter-spacing:.06em}
.box.caution{background:var(--caution-bg);border-color:var(--caution-edge)}
.box.stop{background:var(--stop-bg);border-color:var(--stop-edge)}

.photo{margin:16px 0}
.ph{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;background:var(--todo-bg);border:1px dashed var(--rule);color:var(--sub);font-size:14px;text-align:center;padding:12px}
.photo figcaption{font-size:13px;margin-top:4px}

.tblwrap{overflow-x:auto;margin:14px 0}
table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.7;min-width:520px}
th,td{border:1px solid var(--rule);padding:8px 10px;text-align:left;vertical-align:top}
th{background:var(--th)}

details{margin:14px 0;border:1px solid var(--rule)}
summary{cursor:pointer;padding:10px 14px;font-weight:700;background:var(--th)}
details .d{padding:4px 16px 10px}
summary:focus-visible,a:focus-visible{outline:3px solid var(--sub);outline-offset:2px}

.pass{font-size:1.15rem;font-weight:700;text-align:center;border:2px solid var(--ink);padding:16px;margin:18px 0}
.next{display:block;margin:36px 28px 0;padding:14px 18px;background:var(--band);color:var(--band-ink);text-decoration:none;font-weight:700;text-align:center}
.next:hover{opacity:.88}
.foot{margin:28px 28px 0;font-size:13px}

.mnav{display:none}
@media (max-width:820px){
  .shell{display:block;padding:12px 16px}
  .nav{display:none}
  .mnav{display:block;background:var(--card);margin-bottom:12px;border:0}
  .mnav summary{background:var(--card);padding:12px 16px}
  .mnav .nv{padding:0 16px 12px;font-size:14px;line-height:1.7}
  .mnav a{color:var(--ink)}
  h1{font-size:1.7rem;padding:0 18px;margin-top:28px}
  .in,.meta{padding-left:18px;padding-right:18px}
  hr{margin-left:18px;margin-right:18px}
  h2.band{font-size:1.5rem;padding:12px 18px}
  .next,.foot{margin-left:18px;margin-right:18px}
}
.flow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:14px 0;padding:0;list-style:none;font-weight:700;font-size:14px}
.flow li{border:2px solid var(--ink);padding:4px 12px}
.flow li.sep{border:0;padding:0}
.goal{margin:6px 0 14px;font-weight:700}
.tip{background:var(--todo-bg);border-left:6px solid var(--sub);padding:10px 18px;margin:16px 0;font-size:15px;line-height:1.8}
.tip b.l{display:block;font-size:13px;letter-spacing:.06em;color:var(--sub)}
.tip ul{margin:.2em 0;padding-left:1.3em}
.box.todo{background:var(--todo-bg);border-color:#888}
.box ul{margin:.2em 0;padding-left:1.3em}


.know>b:first-child{display:block;font-size:1.1rem;font-weight:700;margin:0 0 10px;padding:4px 0 4px 12px;border-left:6px solid var(--sub);border-bottom:1px solid var(--rule)}
.know .sh{margin:16px 0 8px}
.know .sh b{display:block;font-size:1.02rem;padding:3px 0 3px 10px;border-left:5px solid var(--sub);border-bottom:1px solid var(--rule)}
.in h4{font-size:1.1rem;font-weight:700;margin:30px 0 8px;padding:4px 0 4px 12px;border-left:6px solid var(--sub);border-bottom:1px solid var(--rule)}

.photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#fff;border:1px solid var(--rule)}
.photo.wide img{aspect-ratio:1/1;border:0}
.btns{display:grid;gap:10px;margin:14px 0;padding:0;list-style:none}
.btns a{display:block;padding:12px 16px;border:2px solid var(--ink);color:var(--ink);text-decoration:none;font-weight:700}
.btns a small{display:block;font-weight:400;font-size:13px;color:var(--sub)}
.btns a:hover{background:var(--todo-bg)}
.btns a.sos{background:var(--band);color:var(--band-ink);border-color:var(--band)}
.btns a.sos small{color:var(--band-ink);opacity:.85}
.nav a[aria-current="page"]{font-weight:700}
.nav .sub,.nav .sub a{font-weight:400}
.mnav ul{margin:0;padding-left:1.1em}
.sym summary{font-weight:700}
.sym .d p{margin:.3em 0}
.k{color:var(--sub)}
ul.t li ul{padding-left:1.1em}
.step>li>ul{padding-left:1.1em}
.in li li{color:var(--sub)}
.photo.tall img{aspect-ratio:auto;max-height:560px;width:auto;max-width:100%;margin:0 auto;background:#111}
.photo.tall{text-align:center}.photo.tall figcaption{text-align:left}
.gal{margin:1em 0;border:1px solid var(--rule);background:var(--bg,transparent)}
.gal-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.gal .slide{flex:0 0 100%;scroll-snap-align:start;margin:0;box-sizing:border-box;padding:0}
.gal .frame{height:min(480px,100vw);display:flex;align-items:center;justify-content:center;background:#111}
.gal.wide .frame{height:auto;aspect-ratio:2/1}
.gal .frame img{max-width:100%;max-height:100%;width:auto;height:auto;display:block}
.gal.wide .frame img{width:100%;height:100%;object-fit:contain}
.gal .frame .ph{color:#ccc;background:none;border:0;padding:1em;text-align:center}
.gal figcaption{padding:.6em .8em;font-size:13px;line-height:1.6;min-height:3.4em}
.gal-ui{display:flex;align-items:center;justify-content:center;gap:1em;padding:.4em;border-top:1px solid var(--rule)}
.gal-ui button{font-size:22px;line-height:1;width:2.2em;height:2.2em;border:1px solid var(--rule);background:transparent;color:inherit;cursor:pointer;border-radius:50%}
.gal-count{font-size:13px;min-width:3.5em;text-align:center}
.in li ul{list-style:circle;padding-left:1.1em;margin:.2em 0}
.gl dt{font-weight:700;margin-top:.9em}
.gl dd{margin:0}
.gl .ch{font-size:13px;color:var(--sub)}
.holes{display:grid;gap:8px;margin:10px 0}
.holes.c8{grid-template-columns:repeat(8,1fr)}
.holes.c7{grid-template-columns:repeat(7,1fr)}
.holes.c4{grid-template-columns:repeat(4,1fr);max-width:340px;margin:10px auto}

.hole{border:2px solid var(--rule);border-radius:8px;padding:6px 2px;text-align:center;font-size:12px;line-height:1.4;background:var(--card)}
.hole b{display:block;font-size:13px}
.hole.on{background:var(--sub);border-color:var(--sub);color:#fff}
.hole.ok{border-color:var(--sub)}
.mbox{gap:6px 8px;border:3px solid var(--band);border-radius:10px;background:var(--card);padding:10px 12px 12px;box-sizing:border-box;box-shadow:0 2px 0 var(--rule)}
.mlab{grid-column:1/-1;font-size:11px;font-weight:700;color:var(--sub);border-bottom:1px solid var(--rule);padding-bottom:2px;margin-top:4px}
.mlab.out,.mh.out b{color:var(--rule);border-color:var(--rule)}
.mh.out i{opacity:.35}
.mixwrap{overflow-x:auto;margin:10px 0}
.mixbox{display:flex;gap:22px;min-width:800px;border:3px solid var(--band);border-radius:10px;background:var(--card);padding:10px 12px 12px;box-sizing:border-box}
.mixbox>div:first-child{flex:4}
.mixbox>div:last-child{flex:8}
.mpg{display:grid;gap:8px;margin-top:6px}
.mpg.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.mpg.g8{grid-template-columns:repeat(8,minmax(0,1fr))}
.mpg.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mixbox.amp{min-width:0;max-width:440px;width:100%;justify-content:space-between}
.mixbox.amp .mpg{grid-template-columns:repeat(2,58px);justify-content:start}
.mixbox.amp>div{flex:none}
.amp .swband{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,58px);gap:5px 10px;padding:5px 0 2px;border-top:1px dashed var(--rule);border-bottom:1px dashed var(--rule);margin:2px 0}
.amp .swband{opacity:.45}
.amp .spacer{grid-column:1/-1;height:82px}
.swd{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;background:var(--card);border:3px solid var(--band);border-radius:10px;padding:14px 18px;max-width:560px}
.swd .s{text-align:center;font-size:12px;color:var(--sub)}
.swd .s b{display:block;font-size:14px;color:var(--text);margin-bottom:6px}
.swd .rail{position:relative;height:22px;border-radius:5px;background:var(--sub);margin:0 12px}
.swd .rail i{position:absolute;top:3px;bottom:3px;width:26px;margin-left:-13px;border-radius:3px;background:var(--card);box-shadow:0 0 0 2px var(--band);left:var(--p)}
.swd .labs{display:flex;justify-content:space-between;margin-top:5px;font-weight:700}
.swd .labs span{padding:2px 8px;border-radius:999px}
.swd .labs .cur{background:var(--sub);color:#fff}
:root[data-theme="dark"] .swd .labs .cur{color:#111}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .swd .labs .cur{color:#111}}
.swd .labs .ng{font-weight:400;text-decoration:line-through}
.swd .s small{display:block;font-weight:400;margin-top:3px}
.amp .sw{font-size:8px;white-space:nowrap;line-height:1.2;color:var(--sub);text-align:center}
.amp .sw b{display:block;font-size:8px;color:var(--text);margin:0 0 2px}
.amp .sw .tr{display:block;height:12px;border-radius:3px;background:var(--sub);position:relative;margin:2px 0}
.amp .sw .ends{display:flex;justify-content:space-between;font-weight:700;gap:2px}
.amp .sw .tr{height:9px!important}
.mixbox.amp>div:first-child .mpg{column-gap:80px}
.mixbox.amp>div:last-child .mpg{column-gap:10px}
.mixbox.amp .mh i.off .jk{width:68%;height:auto;aspect-ratio:1/1}
.mixbox.amp .mh i .big{font-size:20px}
.mixbox.amp{gap:22px;padding:8px 10px 10px}
@media(max-width:699px){.mixbox.amp{gap:12px;padding:8px 8px 10px}.mixbox.amp .mpg,.amp .swband{grid-template-columns:repeat(2,46px)}.mixbox.amp>div:first-child .mpg{column-gap:14px}.mixbox.amp>div:last-child .mpg,.amp .swband{column-gap:8px}.amp .sw{font-size:7px}.mixbox.amp .mlab{width:0;min-width:100%;white-space:normal;font-size:8px}}
@media(min-width:700px){.mixbox.amp{max-width:640px}.mixbox.amp>div:first-child .mpg{column-gap:150px}.mixbox.amp>div:last-child .mpg{column-gap:16px}.mixbox.amp .mpg{grid-template-columns:repeat(2,64px)}.amp .swband{grid-template-columns:repeat(2,64px);column-gap:16px}}
.mixbox.amp .mh b{font-size:11px}
.mixbox.amp .mlab{font-size:9px}
.mixbox.amp .mh i .big{font-size:15px!important}
.mixbox.amp .mh i small{font-size:10px}
.mixbox .mh i{font-size:12px;line-height:1.2;flex-direction:column;overflow:hidden;white-space:nowrap}
.mixbox .mh i.on{font-size:16px;font-weight:700}
.mixbox .mh i small{font-size:12px;font-weight:400;line-height:1.1}
.mixbox .mh i .big{font-size:24px;line-height:1.1;font-weight:700}
.jk{width:15px;height:15px;opacity:.38;flex:none;vertical-align:-3px}
.mixbox .mh i .jk{display:block;width:26px;height:26px;margin-bottom:2px}
.mixbox .mh i.off .jk{width:34px;height:34px;margin:0;opacity:.45}
.mixwrap+.note .jk,.note .jk{margin:0 3px}
.mixbox .mh b{font-size:13px;text-align:center;white-space:nowrap}
.mixbox .mlab{grid-column:auto}
.mh b{display:block;font-size:11px;font-weight:700;margin-bottom:3px;text-align:left}
.mh i{display:flex;align-items:center;justify-content:center;text-align:center;font-style:normal;font-size:11px;line-height:1.25;aspect-ratio:1/1;border:2px solid var(--rule);border-radius:8px;background:var(--card);padding:2px}
.mh i.on{background:var(--sub);border-color:var(--sub);color:#fff;font-weight:700}
.mh i.ok{border-color:var(--rule)}
.mh .x{font-style:normal;color:var(--stop-edge);font-weight:700}
.mh i.off{background:var(--th);opacity:.6}
:root[data-theme="dark"] .mh i.on{color:#111}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mh i.on{color:#111}}
.hole.off{opacity:.45}
:root[data-theme="dark"] .hole.on{color:#111}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hole.on{color:#111}}
@media (max-width:560px){.holes.c8{grid-template-columns:repeat(4,1fr)}.holes.c7{grid-template-columns:repeat(4,1fr)}}
.note{font-size:13px;margin:.3em 0}
.step{margin:0;padding-left:1.3em}
.step>li{margin:.9em 0}
.step>li>ul{margin:.2em 0;padding-left:1.3em;list-style:circle;color:var(--sub)}
