@font-face{font-family:Roboto;src:url('../guide-type/roboto-body.woff') format('woff');font-style:normal;font-weight:400 600;font-display:swap}
@font-face{font-family:Atkinson;src:url('../guide-type/atkinson-heading.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
:root{color-scheme:light dark;--bg:#fff;--card:#fff;--ink:#312e81;--mut:#7c3aed;--primary:#8b5cf6;--soft:#f3f0ff;--soft-ink:#4338ca;--blue:#dbeafe;--line:#e0e7ff;--red:#ef4444;--radius:.625rem;--u:.25rem;--lift:2px 2px 4px hsl(255 86% 66% / .16);--c1:#ddd6fe;--c2:#c4b5fd;--c3:#a78bfa;--c4:#8b5cf6;--c5:#6d28d9;--btn-ink:#fff}
*{box-sizing:border-box}
html{scroll-padding-top:2rem;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Roboto,Arial,sans-serif;font-size:18px;line-height:1.65;letter-spacing:0}
::selection{color:#312e81;background:#ddd6fe}
h1,h2,h3,h4{font-family:Atkinson,Roboto,Arial,sans-serif;line-height:1.12;font-weight:700;letter-spacing:-.035em;text-wrap:balance}
h1{margin:0 0 1.5rem;font-size:clamp(3rem,5.05vw,4.6rem)}
h2{margin:0 0 2rem;font-size:clamp(2rem,3vw,3rem)}
h3,h4{margin:2.5rem 0 .75rem;font-size:1.5rem;letter-spacing:-.02em}
p{margin:0 0 1.25rem;max-width:68ch}
a{color:var(--mut);text-decoration-thickness:1px;text-underline-offset:.2em;overflow-wrap:anywhere}
a:hover{text-decoration-thickness:2px}
a:focus-visible,button:focus-visible,main:focus-visible{outline:3px solid var(--primary);outline-offset:5px;border-radius:3px}
dfn{font-style:normal}
figure{margin:2rem 0}
figcaption{font-size:16px;font-weight:600}
progress{accent-color:var(--primary)}
[hidden]{display:none!important}
.cap{font-size:16px;line-height:1.4;font-weight:600;letter-spacing:.085em;text-transform:uppercase;color:var(--mut)}
.mast{max-width:1440px;margin:auto;min-height:108px;padding:1.5rem 3.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--line)}
.brand{display:flex;gap:1rem;align-items:center;min-height:44px;text-decoration:none;color:var(--ink);font-size:22px;line-height:1.15;letter-spacing:-.025em}
.brand .sub{display:block;margin-top:.35rem;font-size:16px;line-height:1.4;letter-spacing:0;color:var(--mut)}
.mark{width:38px;height:42px;position:relative;flex-shrink:0}
.mark:before,.mark:after{content:'';position:absolute;background:var(--primary);height:3px;width:29px;left:4px;transform:rotate(-45deg);transform-origin:left;top:22px}
.mark:after{transform:rotate(45deg);top:21px}
.mark i{position:absolute;display:block;width:11px;height:11px;border:3px solid var(--primary);border-radius:50%;background:var(--bg);left:0;top:16px;z-index:1}
.mark i:nth-child(2){left:24px;top:0}
.mark i:nth-child(3){left:24px;top:32px}
.top-link{display:flex;gap:1.25rem;align-items:center;min-height:48px;font-size:16px;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:.5rem 1rem;box-shadow:var(--lift)}
.top-link:hover{background:var(--soft)}
.layout{display:grid;grid-template-columns:216px minmax(0,1fr);gap:4rem;max-width:1440px;margin:0 auto;padding:0 3.5rem}
.rail{position:sticky;top:2rem;align-self:start;padding-top:3.75rem;padding-bottom:2rem}
.rail .index-title{font-family:Roboto,Arial,sans-serif;font-size:21px;line-height:1.4;letter-spacing:0;margin:0 0 1.5rem}
.rail .cap{margin-bottom:.6rem}
.rail nav>a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:.25rem 0;min-height:48px;padding:.5rem .65rem;font-size:16px;line-height:1.4;color:var(--ink);text-decoration:none;border-left:2px solid var(--line);border-radius:0 var(--radius) var(--radius) 0}
.rail nav>a span{color:var(--mut);font-size:18px;flex-shrink:0}
.rail nav>a:hover,.rail nav>a[aria-current="location"]{background:var(--soft);border-color:var(--primary);color:var(--soft-ink)}
.rail-note{font-size:16px;line-height:1.6;margin:2rem 0 0;color:var(--mut)}
.read{margin-top:2rem;border-top:1px solid var(--line);padding-top:1rem}
.read label{display:block;font-size:16px;margin:0 0 .75rem;line-height:1.4}
.read progress{display:block;width:100%;height:6px;appearance:none;border:none;border-radius:99px;overflow:hidden;background:var(--line)}
.read progress::-webkit-progress-bar{background:var(--line)}
.read progress::-webkit-progress-value{background:var(--primary)}
.read progress::-moz-progress-bar{background:var(--primary)}
main{min-width:0}
.hero{padding:3.75rem 0 0}
.tag{display:inline-flex;align-items:center;gap:.6rem;font-size:16px;line-height:1.5;margin:0 0 2.25rem;background:var(--soft);color:var(--soft-ink);border:1px solid var(--line);padding:.45rem .85rem;border-radius:99px}
.tag>span{width:7px;height:7px;background:var(--primary);border-radius:50%;flex-shrink:0}
.hero-g{display:grid;grid-template-columns:minmax(0,1fr) 304px;gap:2rem;align-items:center}
.hero h1{max-width:660px}
.hero h1>span{display:block;color:var(--mut)}
.lead{font-size:20px;line-height:1.6;max-width:42ch;margin-bottom:1.75rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:2rem;min-height:56px;padding:.7rem 1.25rem;border:1px solid var(--primary);border-radius:var(--radius);background:var(--primary);color:var(--btn-ink);font-family:Atkinson,Roboto,Arial,sans-serif;font-size:20px;line-height:1.3;font-weight:700;text-decoration:none;letter-spacing:-.015em;box-shadow:var(--lift)}
.btn:hover{background:#7c3aed;color:#fff;text-decoration:none}
.btn span{font-family:Roboto,Arial,sans-serif;font-size:24px;line-height:1}
.map{margin:0;background:var(--soft);padding:1.5rem 1.125rem;border:1px solid var(--line);border-radius:var(--radius);box-shadow:2px 2px 4px hsl(255 86% 66% / .2);position:relative;color:var(--soft-ink)}
.map figcaption{margin:0 0 1.75rem;font-size:16px;letter-spacing:.06em;text-transform:uppercase}
.node{position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:66px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);font-size:16px;line-height:1.3;text-align:center;padding:.8rem .5rem;box-shadow:var(--lift);z-index:1}
.dot{width:9px;height:9px;border:2px solid var(--primary);border-radius:50%;flex-shrink:0}
.node.violet{background:var(--primary);color:#1e1b4b;border-color:var(--primary);font-family:Atkinson,Roboto,Arial,sans-serif;font-size:20px;font-weight:700}
.node.violet .dot{border-color:#1e1b4b}
.wire{height:34px;width:2px;background:var(--primary);margin:auto;display:block;position:relative}
.wire:after{content:'';width:6px;height:6px;border-bottom:2px solid var(--primary);border-right:2px solid var(--primary);position:absolute;bottom:1px;left:-2px;transform:rotate(45deg)}
.fork{display:grid;grid-template-columns:1fr 1fr;gap:.625rem;position:relative}
.fork:before{content:'';position:absolute;width:52%;height:18px;border:2px solid var(--primary);border-bottom:none;left:24%;top:-17px;border-radius:var(--radius) var(--radius) 0 0}
.fork .node{min-height:72px;padding:.65rem .4rem}
.pale{background:var(--blue)}
.map p{font-size:16px;line-height:1.5;margin:1.5rem 0 0}
.hero-foot{margin-top:3rem;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:1rem}
.hero-foot p{font-size:16px;margin:0;line-height:1.5;color:var(--mut)}
.hero-foot a{display:flex;min-height:44px;align-items:center;gap:1rem;font-size:16px;line-height:1.4;text-decoration:none}
.ch{padding:4rem 0;border-bottom:1px solid var(--line);max-width:800px;scroll-margin-top:2rem}
.ch>.cap{margin:0 0 .85rem}
.ch>p{max-width:66ch}
.ch h4:first-of-type{margin-top:0}
.ch>.chapter-title{margin:0 0 2rem;font-size:clamp(1.8rem,2.5vw,2.5rem)}
.briefing{max-width:800px;padding-top:4rem;scroll-margin-top:2rem}
.briefing>.ch{padding-top:2rem}
.briefing>h2{margin-bottom:1.5rem}
.end{max-width:800px}
.end .closing-line{font-family:Atkinson,Roboto,Arial,sans-serif;line-height:1.12;letter-spacing:-.035em}
.cite{display:inline-flex;gap:.3rem;align-items:center;min-height:44px;max-width:100%;padding:0 .15rem;font-size:16px;line-height:1.4;font-weight:500;text-decoration:underline;white-space:normal}
.cite span{font-size:18px;flex-shrink:0}
.note{padding:1.5rem 1.75rem;border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:var(--radius);background:var(--soft);color:var(--soft-ink);margin:2rem 0;box-shadow:var(--lift)}
.note p:last-child{margin:0;font-size:21px;line-height:1.5;max-width:45ch}
.note .cap{margin-bottom:.75rem}
.blue{background:var(--blue)}
.sum{border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);padding:1.5rem;box-shadow:var(--lift);color:var(--soft-ink)}
.sum figcaption{margin-bottom:1rem}
.sum-g{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:.75rem}
.sum-g span{font-size:16px;line-height:1.4;text-align:center;background:var(--card);padding:1rem .5rem;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink)}
.sum-g b{font-size:22px;font-weight:400;color:var(--mut)}
.sum p{font-size:16px;line-height:1.5;margin:1rem 0 0}
.end{margin-top:3rem;background:#312e81;color:#fff;padding:2.5rem;border-radius:var(--radius);box-shadow:2px 2px 4px hsl(255 86% 66% / .5)}
.end .cap{color:#ddd6fe;margin-bottom:1.25rem}
.end .closing-line{font-size:clamp(2rem,3.5vw,3rem);margin:0 0 1.5rem}
.end p{max-width:55ch}
.alt{background:#f3f0ff;border-color:#f3f0ff;color:#4338ca;box-shadow:none;font-size:19px}
.alt:hover{background:#e0e7ff;color:#312e81}
.foot{border-top:1px solid var(--line);padding:2.5rem 3.5rem;margin-top:4rem;background:var(--soft);color:var(--soft-ink)}
.foot>div{max-width:1328px;margin:0 auto;padding-left:280px}
.foot p{font-size:16px;line-height:1.6;max-width:72ch}
.foot nav{display:flex;gap:1.5rem;flex-wrap:wrap}
.foot a{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.4rem 0;font-size:16px;line-height:1.5}
.skip{position:absolute;left:1rem;top:1rem;transform:translateY(-200%);background:var(--card);padding:.75rem 1rem;min-height:48px;border:2px solid var(--primary);border-radius:var(--radius);z-index:10}
.skip:focus{transform:translateY(0)}
.err{max-width:900px;min-height:65vh;margin:auto;padding:5rem 2rem}
.err h1{max-width:700px}
.err p{font-size:20px}
@media(min-width:1600px){.hero-g{grid-template-columns:minmax(0,1fr) 320px;gap:2.5rem}}
@media(max-width:1199px){.layout{grid-template-columns:190px minmax(0,1fr);gap:2.5rem;padding:0 2rem}.mast{padding:1.5rem 2rem}.hero-g{grid-template-columns:minmax(0,1fr) 260px;gap:1.5rem}.hero h1{font-size:clamp(2.6rem,4.6vw,3.7rem)}.map{padding:1.25rem .875rem}.foot{padding:2.5rem 2rem}.foot>div{padding-left:230px}}
@media(max-width:959px){.layout{display:flex;flex-direction:column;gap:0;max-width:800px}.briefing,.end{order:2}.briefing{padding-top:3rem}.rail{position:static;padding:1.5rem 0 0;order:1}.rail nav{padding:1.25rem;border:1px solid var(--line);background:var(--soft);border-radius:var(--radius)}.rail nav>a{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.75rem;min-height:48px}.rail .index-title{margin-bottom:1rem}.rail-note{display:none}.rail nav .cap{margin-bottom:.5rem}.rail .read{display:none!important}main{display:contents}.hero{order:0;padding-top:2.5rem}.ch{order:2;padding:3rem 0}.hero-g{grid-template-columns:minmax(0,1fr) 270px;gap:1.5rem}.hero h1{font-size:clamp(2.6rem,5.5vw,3.6rem)}.hero-foot{margin-top:2rem}.foot>div{padding-left:0;max-width:736px}.foot{margin-top:3rem}.lead{font-size:19px}}
@media(max-width:599px){body{font-size:18px;line-height:1.7}.mast{padding:1.125rem 1.25rem;min-height:90px;gap:.5rem}.brand{font-size:20px;gap:.75rem}.brand .sub{font-size:16px}.mark{width:32px}.top-link{border:0;box-shadow:none;padding:0 .25rem;max-width:76px;min-height:48px;font-size:16px;line-height:1.3;gap:.25rem}.top-link span{display:none}.layout{padding:0 1.25rem}.hero{padding-top:2rem}.tag{font-size:16px;padding:.45rem .65rem;margin-bottom:1.5rem;border-radius:var(--radius)}.hero-g{display:block}.hero h1{font-size:clamp(2.75rem,12vw,3.5rem);line-height:1.04;letter-spacing:-.045em;margin-bottom:1.25rem}.lead{font-size:19px;line-height:1.6;margin-bottom:1.5rem}.btn{min-height:56px;gap:1.25rem;font-size:20px;padding:.8rem 1rem}.map{margin-top:2.25rem;padding:1.25rem 1rem}.map figcaption{margin-bottom:1.25rem}.node{min-height:56px}.wire{height:26px}.fork .node{min-height:58px}.fork:before{height:14px;top:-13px}.map p{margin-top:1.25rem}.hero-foot{align-items:flex-start;margin-top:1.5rem;gap:.5rem;padding:.8rem 0}.hero-foot p{max-width:23ch}.hero-foot a{min-width:100px;gap:.5rem}.briefing{padding-top:2.75rem}.ch{padding:2.75rem 0;scroll-margin-top:1rem}h2{font-size:2.25rem;letter-spacing:-.04em;margin-bottom:1.5rem}h3,h4{font-size:1.4rem;line-height:1.25;margin-top:2rem}.cap{font-size:16px;letter-spacing:.055em}.cite{font-size:16px}.note{padding:1.25rem}.note p:last-child{font-size:20px}.sum{padding:1.25rem}.sum-g{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.65rem}.sum-g>span:nth-child(5){grid-column:1}.sum-g>b:nth-child(4){display:none}.sum-g span{min-height:60px;padding:.8rem .5rem}.end{padding:1.5rem}.end .closing-line{font-size:2.25rem}.alt{font-size:18px;gap:.75rem;padding:.8rem .9rem}.foot{padding:2rem 1.25rem}.foot nav{gap:.5rem 1.25rem}.err{padding:3rem 1.25rem}.err h1{font-size:2.9rem}}
@media(prefers-color-scheme:dark){:root{--bg:#0f172a;--card:#1e1b4b;--ink:#e0e7ff;--mut:#c4b5fd;--soft:#1e1b4b;--soft-ink:#e0e7ff;--blue:#172b50;--line:#2e1065;--lift:2px 2px 4px hsl(255 86% 66% / .2)}.node.violet{color:#1e1b4b}.end{background:#1e1b4b;border:1px solid #8b5cf6}.hero-foot{border-color:#4c3675}.rail nav>a{border-left-color:#4c3675}.rail nav>a[aria-current="location"]{border-left-color:var(--primary)}.map,.node,.note,.sum{border-color:#4c3675}.brand .sub{color:var(--mut)}}
@media(max-width:959px){.rail .read:not([hidden]){display:block!important;position:fixed;top:0;left:0;right:0;z-index:9;margin:0;padding:0;border:0}.rail .read label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.rail .read progress{height:4px;border-radius:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{body{font-size:12pt;line-height:1.5;background:#fff;color:#312e81}.mast,.rail,.hero .btn,.skip,.foot nav,.read{display:none!important}.layout{display:block;padding:0}.hero-g{display:block}.hero{padding:0}.map{max-width:350px;break-inside:avoid}.hero h1{font-size:32pt}.hero-foot{display:block}.ch{padding:1.5rem 0;max-width:none}h2{font-size:22pt}h3,h4{font-size:16pt;break-after:avoid}.end,.note,.sum{break-inside:avoid}.foot{padding:1.5rem 0}.foot>div{padding:0}.cite{min-height:0;font-size:11pt}}
