:root{
  --bg:#0f1720;--bg2:#141f2b;--card:#182635;--line:#26384a;
  --tx:#e6edf3;--tx2:#a9b8c6;--tx3:#7a8b9b;
  --ac:#38bdf8;--ac2:#7dd3fc;--warn:#f87171;--warn-bg:rgba(248,113,113,.10);
  --ok:#4ade80;--ok-bg:rgba(74,222,128,.10);--note:#fbbf24;--note-bg:rgba(251,191,36,.10);
  --uni:#a78bfa;--uni-bg:rgba(167,139,250,.12);
  --res:#f472b6;--res-bg:rgba(244,114,182,.12);
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: light){
  :root{
    --bg:#f6f9fc;--bg2:#eef3f8;--card:#ffffff;--line:#d9e2ec;
    --tx:#14212e;--tx2:#3d4f61;--tx3:#63748a;
    --ac:#0369a1;--ac2:#0369a1;
    --warn:#b91c1c;--warn-bg:rgba(185,28,28,.07);
    --ok:#15803d;--ok-bg:rgba(21,128,61,.07);
    --note:#a16207;--note-bg:rgba(161,98,7,.08);
    --uni:#6d28d9;--uni-bg:rgba(109,40,217,.08);
    --res:#be185d;--res-bg:rgba(190,24,93,.08);
  }
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--tx);font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Noto Sans JP",system-ui,sans-serif;line-height:1.85;font-size:16.5px;-webkit-font-smoothing:antialiased}
a{color:var(--ac2)}
.site-nav{border-bottom:1px solid var(--line);background:var(--bg2)}
.site-nav .in{max-width:900px;margin:0 auto;padding:14px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.brand{font-weight:800;letter-spacing:.02em;text-decoration:none;color:var(--tx);font-size:1.05rem}
.brand small{display:block;font-weight:500;color:var(--tx3);font-size:.75rem;letter-spacing:.08em}
.crumbs{font-size:.8rem;color:var(--tx3)}
main{max-width:760px;margin:0 auto;padding:36px 20px 80px}
.eyebrow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.chip{font-size:.74rem;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--tx2);background:var(--card)}
.chip--danger{border-color:var(--warn);color:var(--warn);background:var(--warn-bg);font-weight:700}
h1{font-size:clamp(1.55rem,4.2vw,2.15rem);line-height:1.35;letter-spacing:.01em;margin-bottom:14px}
.lead{color:var(--tx2);font-size:1.05rem;margin-bottom:26px}
.meta{font-size:.8rem;color:var(--tx3);display:flex;gap:16px;flex-wrap:wrap;margin-bottom:34px;padding-bottom:18px;border-bottom:1px solid var(--line)}
h2{font-size:1.32rem;margin:52px 0 16px;padding-left:14px;border-left:4px solid var(--ac);line-height:1.4}
h3{font-size:1.06rem;margin:30px 0 10px;color:var(--ac2)}
p{margin-bottom:1.1em}
ul,ol{margin:0 0 1.2em 1.4em}
li{margin-bottom:.4em}
strong{color:var(--tx)}
.scene{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin:0 0 30px;font-size:1.02rem}
.scene .t{font-size:.78rem;letter-spacing:.12em;color:var(--ac);margin-bottom:10px;font-weight:700}
.big{font-size:1.12rem;font-weight:800;line-height:1.8;margin:20px 0;padding:16px 18px;border-left:4px solid var(--ac);background:var(--bg2);border-radius:0 10px 10px 0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}
.two>div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.two .n{font-size:1.7rem;font-weight:900;color:var(--ac);line-height:1;margin-bottom:8px}
.two .h{font-weight:800;margin-bottom:8px;line-height:1.5}
.two p{margin:0;font-size:.95rem;color:var(--tx2)}
.callout{border-radius:12px;padding:16px 18px;margin:22px 0;border:1px solid;font-size:.97rem}
.callout .h{font-weight:800;margin-bottom:8px;display:flex;gap:8px;align-items:center}
.callout--danger{background:var(--warn-bg);border-color:var(--warn)}
.callout--danger .h{color:var(--warn)}
.callout--note{background:var(--note-bg);border-color:var(--note)}
.callout--note .h{color:var(--note)}
.callout p:last-child,.callout ul:last-child{margin-bottom:0}
.kids{background:var(--ok-bg);border:2px solid var(--ok);border-radius:14px;padding:20px 22px;margin:24px 0}
.kids .t{font-weight:900;color:var(--ok);margin-bottom:12px}
.kids ol{margin-bottom:0;font-size:1.05rem;font-weight:800}
.kids li{margin-bottom:.9em}
.kids li:last-child{margin-bottom:0}
.kids li span{display:block;font-weight:400;font-size:.92rem;color:var(--tx2);margin-top:3px}
.exp{background:var(--note-bg);border:1px solid var(--note);border-radius:12px;padding:16px 18px;margin:22px 0}
.exp .t{font-weight:800;color:var(--note);margin-bottom:8px}
.exp ol{margin-bottom:8px}
figure{margin:26px 0;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 16px 12px;overflow:hidden}
figure svg{width:100%;height:auto;display:block;border-radius:8px}
figcaption{font-size:.84rem;color:var(--tx3);margin-top:10px;line-height:1.6}
.calc{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:18px 0;font-size:.95rem}
.calc .t{font-size:.78rem;letter-spacing:.1em;color:var(--tx3);margin-bottom:8px}
.f{font-family:var(--mono);font-size:.9em;background:var(--bg2);border:1px solid var(--line);padding:1px 6px;border-radius:5px;color:var(--ac2)}
.calc .f{background:var(--card)}
.calc table{width:100%;border-collapse:collapse;margin-top:8px}
.calc td{padding:7px 4px;border-top:1px solid var(--line);vertical-align:top}
.calc td:first-child{color:var(--tx2);width:46%}
.calc td:last-child{font-family:var(--mono);font-size:.88em}
.deep{margin-top:44px;border-top:1px solid var(--line);padding-top:6px}
.deep>summary{cursor:pointer;font-weight:800;font-size:1.06rem;padding:16px 0;color:var(--ac2);list-style:none}
.deep>summary::before{content:"▶";font-size:.75rem;margin-right:8px}
.deep[open]>summary::before{content:"▼"}
.deep>summary::-webkit-details-marker{display:none}
.deep>summary .sub{display:block;font-weight:400;font-size:.85rem;color:var(--tx3);margin-top:2px}
.lv{display:inline-block;font-size:.7rem;font-weight:800;padding:2px 8px;border-radius:6px;margin-right:8px;vertical-align:2px;white-space:nowrap;letter-spacing:.02em}
.lv--jhs{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok)}
.lv--hs{background:rgba(56,189,248,.12);color:var(--ac);border:1px solid var(--ac)}
.lv--hsx{background:var(--note-bg);color:var(--note);border:1px solid var(--note)}
.lv--uni{background:var(--uni-bg);color:var(--uni);border:1px solid var(--uni)}
.lv--res{background:var(--res-bg);color:var(--res);border:1px solid var(--res)}
.lv-legend{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:16px 0 26px;font-size:.88rem}
.lv-legend .t{font-weight:800;margin-bottom:8px;font-size:.92rem}
.lv-legend ul{list-style:none;margin:0}
.lv-legend li{margin-bottom:.45em;color:var(--tx2)}
.lv-legend li:last-child{margin-bottom:0}
.map{width:100%;border-collapse:collapse;margin:16px 0;font-size:.9rem}
.map th,.map td{border:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}
.map th{background:var(--bg2);font-size:.82rem;color:var(--tx2)}
.map td:first-child{white-space:nowrap}
.refs{font-size:.83rem;color:var(--tx3);margin-top:34px;padding-top:18px;border-top:1px solid var(--line)}
.refs li{margin-bottom:.45em}
.disc{font-size:.8rem;color:var(--tx3);margin-top:24px;line-height:1.7;padding-top:16px;border-top:1px solid var(--line)}
.foot{border-top:1px solid var(--line);color:var(--tx3);font-size:.8rem;text-align:center;padding:26px 20px}
@media (max-width:560px){
  body{font-size:15.5px}main{padding:26px 16px 60px}h2{font-size:1.18rem}
  .two{grid-template-columns:1fr}
  .map td:first-child{white-space:normal}
}

.rel{margin:44px 0 8px;padding-top:20px;border-top:1px solid var(--line)}
.rel__h{font-size:1.02rem;font-weight:800;margin-bottom:14px}
.rel__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.rel__card{display:block;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;text-decoration:none;color:inherit;transition:border-color .15s}
.rel__card:hover{border-color:var(--ac)}
.rel__cat{font-size:.68rem;font-weight:800;letter-spacing:.06em;margin-bottom:6px;color:var(--tx3)}
.rel__t{font-size:.94rem;font-weight:700;line-height:1.5}
.rel__all{display:inline-block;margin-top:14px;font-size:.9rem}
