:root{--paper:#090b11;--plane:#10151e;--plane2:#141b26;--ink:#edf3f1;--muted:#aab8b5;--line:#33414b;--authority:#ffc369;--model:#79bfff;--environment:#87d89b;--meaning:#c7a3ff;--sim:#79e6d1;--active:#f3fff9;--danger:#ff9a88;--text:clamp(1.125rem,1.05rem + .25vw,1.25rem);--ui:1rem;--meta:.9375rem;--measure:38ic;--target:44px}
*{box-sizing:border-box}
html{color-scheme:dark;scroll-behavior:smooth}
body{margin:0;background:linear-gradient(90deg,rgba(255,195,105,.028),transparent 24%,transparent 76%,rgba(121,230,209,.026)),var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI",sans-serif;font-size:var(--ui);line-height:1.55}
.skip{position:fixed;z-index:20;left:1rem;top:-5rem;min-height:var(--target);display:flex;align-items:center;padding:.6rem 1rem;background:var(--sim);color:#07110f}
.skip:focus{top:1rem}
.top{min-height:76px;padding:.9rem max(1rem,calc((100vw - 1540px)/2));display:flex;align-items:center;gap:1.5rem;border-bottom:1px solid var(--line);background:rgba(9,11,17,.9);backdrop-filter:blur(16px);position:sticky;top:0;z-index:6}
.brand{color:var(--ink);text-decoration:none;line-height:1.2;font-size:1.06rem}
.brand b{font-weight:680}
.brand span{display:block;color:var(--sim);font-size:var(--meta);margin-top:.15rem}
.top-state{margin-left:auto;color:var(--muted);font-size:var(--meta)}
.top-state span{color:var(--sim)}
.layout{max-width:1540px;margin:auto;display:grid;grid-template-columns:272px minmax(0,1fr)}
.sidebar{position:sticky;top:76px;align-self:start;max-height:calc(100vh - 76px);overflow:auto;border-right:1px solid var(--line);padding:1.6rem 1.1rem 2rem}
.side-label,.eyebrow{font-size:var(--meta);letter-spacing:.12em;color:var(--sim);text-transform:uppercase}
.sidebar nav,.mobile-nav nav{display:grid;gap:.1rem}
.sidebar a,.mobile-nav a{min-height:var(--target);display:grid;grid-template-columns:1.8rem minmax(0,1fr);gap:.05rem .65rem;align-content:center;color:var(--muted);text-decoration:none;padding:.48rem .65rem;border-left:2px solid transparent}
.sidebar a span,.mobile-nav a span{grid-row:1/3;color:#71858a;font-size:var(--meta);width:1.8rem;align-self:center}
.sidebar a b,.mobile-nav a b{font-weight:560;line-height:1.35;color:inherit}
.sidebar a small,.mobile-nav a small{font-size:.76rem;line-height:1.25;color:#7f9092}
.sidebar a:hover,.sidebar a:focus-visible,.sidebar a.is-current{color:var(--ink);border-left-color:var(--sim);background:rgba(121,230,209,.07)}
.legend{border-top:1px solid var(--line);margin-top:1.2rem;padding-top:.8rem;color:var(--muted);font-size:var(--meta)}
.legend p{margin:.5rem 0;display:flex;align-items:center;gap:.6rem}
.legend i{display:inline-block}
.legend .dot{width:.75rem;height:.75rem;border-radius:50%;border:1px solid var(--muted)}
.legend .dot.active{background:var(--active);box-shadow:0 0 12px var(--sim)}
.legend .line{width:1.2rem;height:1px;background:var(--sim)}
.legend .box{width:1rem;height:1rem;border:1px solid var(--line)}
.mobile-nav{display:none}
main{min-width:0;padding:clamp(1.5rem,4vw,4.5rem) clamp(1rem,5vw,6.5rem) 5rem}
.breadcrumb{max-width:var(--measure);display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;color:var(--muted);font-size:var(--meta);margin:0 0 2rem}
.breadcrumb a{color:var(--sim)}
.breadcrumb b{font-weight:500;color:var(--ink)}
.hero{max-width:var(--measure);margin-bottom:2.5rem}
.hero h1{font-size:clamp(2.45rem,6vw,5.8rem);line-height:.98;letter-spacing:-.06em;margin:.55rem 0 1.2rem}
.hero>p:last-child{font-size:var(--text);line-height:1.78;color:#d7e1de;margin:0}
.article-toc{display:flex;flex-wrap:wrap;gap:.3rem 1rem;max-width:var(--measure);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1rem 0;margin:2.5rem 0}
.article-toc b{width:100%;font-size:var(--meta);color:var(--muted);font-weight:500}
.article-toc a{min-height:36px;display:inline-flex;align-items:center;color:var(--ink);font-size:var(--meta)}
.reading{max-width:var(--measure)}
.reading-section{margin:0 0 4.5rem}
.reading h2,.atlas h2{font-size:clamp(1.55rem,2.6vw,2.3rem);line-height:1.2;letter-spacing:-.025em;margin:0 0 1rem}
.reading h3{font-size:1.12rem}
.reading p,.reading li{font-size:var(--text);line-height:1.78}
.reading p{margin:0 0 1em}
.reading li{margin:.3em 0}
.reading ul{padding-left:1.25em}
.reading code,.atlas code,.source-list code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em;background:#17202a;padding:.13em .3em;border-radius:4px;overflow-wrap:anywhere;word-break:break-word}
.callout{border-left:3px solid var(--sim);padding:1rem 1.15rem;background:rgba(121,230,209,.055);margin:1.3rem 0}
.callout.warning{border-color:var(--danger);background:rgba(255,154,136,.055)}
.callout.sim{border-color:var(--sim)}
.callout.active{border-color:var(--active);box-shadow:inset 0 0 22px rgba(121,230,209,.035)}
.callout>b{font-size:1.05rem}
.callout p{margin:.4rem 0 0}
.flow{margin:1.7rem 0;border:1px solid var(--line);background:#0c1118;padding:1rem;max-width:100%;overflow:hidden}
.flow figcaption{color:var(--muted);font-size:var(--meta);margin:.2rem 0 1rem}
.flow ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,125px),1fr));gap:1px;background:var(--line)}
.flow li{min-height:125px;background:var(--plane);padding:.85rem;display:flex;flex-direction:column}
.flow li>span{color:var(--sim);font-size:var(--meta)}
.flow li strong{font-size:1.04rem;margin:.65rem 0 auto}
.flow li small{font-size:var(--meta);color:var(--muted);line-height:1.45}
.lane{border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(8.8rem,.48fr) minmax(0,1fr);gap:1.2rem;padding:1.1rem 0}
.lane header{display:flex;flex-direction:column;gap:.25rem}
.lane header span{font-size:var(--meta);color:var(--muted)}
.lane div{min-width:0}
.lane div p{margin:0}
.lane.active{border-top-color:var(--sim)}
.table-scroll{max-width:100%;overflow:auto;border:1px solid var(--line);margin:1.25rem 0}
table{border-collapse:collapse;width:100%;min-width:620px;font-size:var(--ui)}
th,td{text-align:left;vertical-align:top;padding:.8rem .9rem;border-bottom:1px solid rgba(51,65,75,.62);line-height:1.6}
th{font-weight:600;color:var(--sim)}
tr:last-child td{border-bottom:0}
.board{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:1.4rem 0;overflow:auto}
.board>*{background:var(--plane);padding:1rem}
.board .bus,.board .return{grid-column:1/-1;display:flex;gap:1rem;justify-content:space-between}
.board section h3{font-size:1rem;margin:0 0 1rem}
.board section:nth-of-type(1) h3{color:var(--authority)}
.board section:nth-of-type(2) h3{color:var(--model)}
.board section:nth-of-type(3) h3{color:var(--environment)}
.board section:nth-of-type(4) h3{color:var(--meaning)}
.board section>span,.board .bus span,.board .return span,.board .sim-seat span{font-size:var(--meta);line-height:1.5;color:var(--muted)}
.board ol{padding:0;list-style:none;margin:1rem 0 0;display:grid;gap:.45rem}
.board li{font-family:ui-monospace,SFMono-Regular,monospace;font-size:.83rem;border-top:1px solid var(--line);padding-top:.45rem}
.board .sim-seat{grid-column:4;border:1px solid var(--sim);display:flex;flex-direction:column;gap:.3rem}
.cycle{border:1px solid var(--line);padding:1rem;margin:1.2rem 0;display:grid;grid-template-columns:1fr;gap:.65rem}
.cycle>div{padding:1rem;background:var(--plane);display:flex;justify-content:space-between;gap:1rem}
.cycle>div b{color:var(--ink)}
.cycle>div span{font-size:var(--meta);color:var(--muted)}
.cycle>i{font-style:normal;color:var(--sim);font-family:ui-monospace,SFMono-Regular,monospace;font-size:.82rem;padding-left:1rem}
.gui-map{border-left:1px solid var(--line);border-right:1px solid var(--line);padding:0 1rem}
.index-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.index-list a{min-height:92px;padding:1rem;background:var(--plane);color:var(--ink);text-decoration:none;display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.15rem .7rem;align-content:center}
.index-list a:hover,.index-list a:focus-visible{background:var(--plane2)}
.index-list span{grid-row:1/3;color:var(--sim);font-size:var(--meta);align-self:center}
.index-list b{font-weight:600;line-height:1.4}
.index-list small{font-size:var(--meta);color:var(--muted)}
pre{max-width:100%;overflow:auto;padding:1rem;background:#080b10;border:1px solid var(--line);font-size:.9rem;line-height:1.6}
.atlas-controls{position:sticky;top:76px;z-index:4;display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,.35fr);gap:.7rem;background:rgba(9,11,17,.95);padding:1rem 0;border-bottom:1px solid var(--line);max-width:860px}
.atlas-controls input,.atlas-controls select{min-height:var(--target);min-width:0;width:100%;font:inherit;color:var(--ink);background:var(--plane);border:1px solid var(--line);padding:.65rem .75rem;border-radius:0}
.atlas-result{font-size:var(--ui);color:var(--sim);margin:1rem 0 0}
.fact-strip{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0 3rem}
.fact-strip span{font-size:var(--meta);color:var(--muted);padding:.6rem .75rem;border:1px solid var(--line)}
.fact-strip b{color:var(--ink)}
.atlas{max-width:860px}
.atlas section{margin:0 0 3.5rem}
.atlas h2{border-bottom:1px solid var(--line);padding-bottom:.7rem}
.atlas h2 small{display:block;font-size:var(--meta);color:var(--sim);font-weight:400;margin-top:.25rem}
.atlas h2 span{font-size:var(--meta);color:var(--muted);font-weight:400}
.atlas details,.source-list details{border-bottom:1px solid var(--line)}
.atlas summary,.source-list summary{cursor:pointer;min-height:54px;padding:.75rem 0;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:1rem;align-items:center}
.atlas summary span,.source-list summary span{font-size:var(--meta);color:var(--muted);overflow-wrap:anywhere;word-break:break-word}
.atlas details>div{padding:0 0 1rem}
.atlas details p{font-size:var(--ui);margin:.4rem 0}
.atlas .meta{color:var(--muted);font-size:var(--meta)}
.source-list{border-top:1px solid var(--line)}
.source-list summary{grid-template-columns:minmax(0,1fr) auto}
.source-list details code{display:block;margin:0 0 1rem}
.page-turn{max-width:var(--measure);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:5rem}
.page-turn>a{min-height:96px;padding:1rem;background:var(--plane);color:var(--ink);text-decoration:none;display:flex;flex-direction:column;justify-content:center}
.page-turn>a:last-child{text-align:right}
.page-turn span,.page-turn small{font-size:var(--meta);color:var(--muted)}
.page-turn b{font-weight:600;line-height:1.45;margin:.2rem 0}
.page-turn a:hover,.page-turn a:focus-visible{background:var(--plane2)}
.not-found{min-height:60vh;display:grid;align-content:center}
.return-link{min-height:var(--target);display:inline-flex;align-items:center;color:var(--paper);background:var(--sim);padding:.5rem 1rem;text-decoration:none}
footer{max-width:1540px;margin:auto;border-top:1px solid var(--line);padding:1.5rem max(1rem,calc((100vw - 1540px)/2));display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:var(--meta)}
footer p{margin:0}
footer a{color:var(--ink)}
:focus-visible{outline:3px solid var(--sim);outline-offset:3px}
@media (max-width:920px){.sidebar,.top-state{display:none}
.mobile-nav{display:block;margin-left:auto}
.mobile-nav summary{min-height:var(--target);display:flex;align-items:center;cursor:pointer}
.mobile-nav nav{position:absolute;right:1rem;top:4.2rem;width:min(390px,calc(100vw - 2rem));max-height:calc(100vh - 5.2rem);overflow:auto;background:var(--plane);border:1px solid var(--line);padding:.65rem}
.layout{display:block}
.atlas-controls{top:68px}
.board{grid-template-columns:repeat(4,minmax(180px,1fr))}
}
@media (max-width:650px){main{padding:1.5rem 1rem 4rem}
.page-turn{grid-template-columns:1fr}
.page-turn>a:last-child{text-align:left}
.page-turn>span:empty{display:none}
.hero h1{letter-spacing:-.045em}
.index-list{grid-template-columns:1fr}
.lane{grid-template-columns:1fr;gap:.5rem}
.board{display:block;background:transparent;border:0;overflow:visible}
.board>*{border-top:1px solid var(--line)}
.board .bus,.board .return{display:block}
.board .bus span,.board .return span{display:block;margin-top:.4rem}
.board .sim-seat{border:1px solid var(--sim)}
.atlas-controls{grid-template-columns:minmax(0,1fr)}
.atlas summary,.source-list summary{grid-template-columns:minmax(0,1fr);gap:.25rem}
.cycle>div{display:block}
.cycle>div span{display:block;margin-top:.35rem}
.reading h2{overflow-wrap:anywhere}
.table-scroll{width:100%}
}
@media (max-width:340px){.brand b{font-size:.98rem}
.brand span{font-size:.875rem}
.top{padding:.7rem}
.mobile-nav nav{right:.5rem;width:calc(100vw - 1rem)}
main{padding-left:.75rem;padding-right:.75rem}
.hero h1{font-size:2.25rem}
.flow{padding:.75rem}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}
@media print{html{color-scheme:light}
body{background:white;color:black}
.top,.sidebar,.mobile-nav,.breadcrumb,.page-turn,.article-toc,.atlas-controls,footer{display:none}
.layout{display:block}
main{padding:0}
.reading,.hero,.atlas{max-width:none}
.reading p,.reading li,.hero>p:last-child{font-size:12pt;color:black}
.flow,.board,.callout,.lane,.atlas details{break-inside:avoid;background:white}
.flow li,.board>*,.index-list a{background:white;color:black}
.table-scroll{overflow:visible}
table{min-width:0}
.atlas details>div{display:block}
}
