:root{--ink:#eaf1ff;--muted:#9eabc4;--bg:#080d1d;--panel:#101a32;--panel2:#131f3c;--cyan:#62d8ff;--violet:#a78bfa;--line:#263456;--paper:#f4f7fb}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);font-family:Arial,'Noto Sans SC','PingFang SC',sans-serif}body{margin:0;line-height:1.75}a{color:inherit;text-decoration:none}.night-header{min-height:76px;padding:16px clamp(20px,6vw,90px);display:flex;align-items:center;gap:34px;border-bottom:1px solid var(--line);background:#080d1d}.brand{display:flex;align-items:center;gap:12px;min-width:245px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--cyan);color:var(--cyan);font-weight:800}.brand b{display:block;font-size:19px;letter-spacing:.02em}.brand small{display:block;color:var(--muted);font:700 9px ui-monospace,monospace;letter-spacing:.14em}.night-header nav{display:flex;gap:24px;flex:1;color:#bac7df;font-size:14px}.night-header nav a:hover{color:var(--cyan)}.header-cta{border:1px solid var(--cyan);padding:9px 15px;color:var(--cyan);font-size:13px;font-weight:700}.menu{display:none;background:none;border:1px solid var(--line);color:var(--ink);padding:8px 10px}.home,.inner,.article-index{max-width:1480px;margin:auto}.hero{display:grid;grid-template-columns:.74fr 1.26fr;min-height:650px;align-items:stretch;border-bottom:1px solid var(--line)}.hero-copy{padding:clamp(46px,7vw,110px) clamp(20px,6vw,90px);display:flex;flex-direction:column;justify-content:center;background:#0b1227}.eyebrow{display:inline-block;color:var(--cyan);font:700 10px ui-monospace,monospace;letter-spacing:.15em}.hero h1{font-size:clamp(44px,6vw,82px);line-height:1.04;margin:24px 0 4px}.hero-title{font-size:clamp(24px,3vw,42px);color:var(--violet);margin:0 0 20px;font-weight:700}.hero-copy>p:not(.hero-title){color:#b4c0d8;max-width:480px;font-size:17px}.hero-actions{display:flex;align-items:center;gap:22px;margin-top:30px;flex-wrap:wrap}.primary{background:var(--cyan);color:#08101f;padding:12px 19px;font-size:13px;font-weight:800}.text-link{color:var(--cyan);font-weight:700;font-size:13px}.text-link span{font-size:19px;margin-left:5px}.hero-meta{display:flex;gap:20px;flex-wrap:wrap;margin-top:48px;color:#7989aa;font:10px ui-monospace,monospace}.hero-meta b{color:var(--violet);margin-right:5px}.hero-image{margin:0;position:relative;background:#101a32;min-height:650px}.hero-image img{display:block;width:100%;height:100%;object-fit:cover}.hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,13,29,.42),transparent 45%);pointer-events:none}.hero-image figcaption{position:absolute;bottom:20px;left:24px;color:#c5d5f6;font:10px ui-monospace,monospace;z-index:1}.welcome{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:70px clamp(20px,6vw,90px);background:var(--paper);color:#14223b}.welcome h2,.city-guide h2,.article-shelf h2,.route-brief h2,.home-faq h2{font-size:clamp(30px,3.8vw,54px);line-height:1.1;margin:15px 0}.welcome p{color:#5c6b82;max-width:590px;font-size:16px}.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.work-grid a{padding:34px 26px 38px;min-height:260px;background:var(--panel);transition:background .2s}.work-grid a:hover{background:var(--panel2)}.work-grid span,.report-list small,.archive-list small{color:var(--cyan);font:700 10px ui-monospace,monospace;letter-spacing:.1em}.work-grid h3{font-size:24px;margin:55px 0 8px}.work-grid p{color:var(--muted);font-size:14px;min-height:65px}.work-grid b{color:var(--violet);font-size:13px}.city-guide{padding:76px clamp(20px,6vw,90px);background:#0d1730}.city-guide header{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:end;border-bottom:1px solid var(--line);padding-bottom:20px}.city-guide header p{color:#9eabc4;max-width:520px}.guide-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:34px}.guide-columns article{background:var(--panel);padding:30px;min-height:220px}.guide-columns small{color:var(--violet);font:700 10px ui-monospace,monospace}.guide-columns h3{font-size:24px;margin:44px 0 8px}.guide-columns p{color:var(--muted);font-size:14px}.article-shelf{padding:75px clamp(20px,6vw,90px);background:var(--paper);color:#13233f}.article-shelf>header{display:flex;justify-content:space-between;align-items:end;border-bottom:2px solid #13233f;padding-bottom:14px}.article-shelf>header .eyebrow{color:#5363b8}.article-shelf>header>a{color:#5363b8;font-weight:700;font-size:13px}.report-list>a{display:grid;grid-template-columns:55px 1fr 40px;gap:18px;align-items:center;padding:23px 0;border-bottom:1px solid #d7deea}.report-no{color:#5363b8;font:700 19px ui-monospace,monospace}.report-list small,.archive-list small{color:#5363b8}.report-list h3{margin:6px 0;font-size:20px}.report-list p{margin:0;color:#61718b;font-size:14px}.report-list b{color:#5363b8;font-size:20px}.route-brief{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:70px clamp(20px,6vw,90px);background:var(--violet);color:#11162d}.route-brief p{max-width:520px;color:#252e55}.route-links{display:flex;align-content:center;flex-wrap:wrap;gap:10px}.route-links a{border:1px solid #454276;padding:10px 14px;font-size:13px;font-weight:700}.home-faq{padding:70px clamp(20px,6vw,90px);background:var(--paper);color:#13233f}.home-faq .eyebrow{color:#5363b8}.home-faq details{max-width:850px;border-bottom:1px solid #d7deea;padding:15px 0}.home-faq summary{cursor:pointer;font-weight:700}.home-faq details p{color:#61718b}.night-footer{padding:44px clamp(20px,6vw,90px) 18px;background:#050a15;color:#aebbd4}.footer-main{display:grid;grid-template-columns:1.7fr repeat(3,1fr);gap:30px}.footer-main>b,.footer-main>div:first-child>b{color:#fff;font-size:20px}.footer-main p{font-size:13px;max-width:280px}.footer-main strong{display:block;color:#fff;font-size:12px;margin-bottom:10px}.footer-main a{display:block;font-size:13px;margin:5px 0}.footer-bottom{border-top:1px solid var(--line);margin-top:34px;padding-top:14px;color:#7183a6;font:10px ui-monospace,monospace}.inner,.article-index{padding:65px clamp(20px,6vw,90px) 100px}.inner-head{max-width:900px;padding-bottom:32px;border-bottom:2px solid var(--cyan)}.inner-head h1,.plain h1{font-size:clamp(40px,5vw,70px);line-height:1.08;margin:18px 0}.inner-head p{color:#a5b4d0;font-size:18px;max-width:760px}.route-table{margin-top:44px;border-top:2px solid var(--cyan);overflow-x:auto}.route-table>div{display:grid;grid-template-columns:1fr 1.5fr 1.2fr;gap:18px;min-width:680px;padding:17px;background:var(--panel);border-bottom:1px solid var(--line)}.route-table>div:first-child{background:#182544;color:var(--cyan);font-weight:700}.route-table span{color:#b3c0d9;font-size:14px}.reading-panel{margin-top:42px;padding:29px 32px;background:var(--panel);border-left:4px solid var(--violet)}.reading-panel h2{font-size:26px;margin:0 0 18px}.reading-panel h3{font-size:17px;color:var(--cyan);margin:18px 0 3px}.reading-panel p{color:#aab8d0;margin:3px 0}.page-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:32px}.page-links a{border:1px solid var(--line);padding:10px 14px;color:var(--cyan);font-size:13px;font-weight:700}.infra-line,.client-ledger,.node-grid,.route-grid,.plan-grid,.source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:42px}.infra-line article,.client-ledger article,.node-grid article,.route-grid article,.plan-grid article,.source-grid article{padding:30px;background:var(--panel)}.infra-line small,.client-ledger small,.node-grid small,.route-grid small,.plan-grid small{color:var(--violet);font:700 10px ui-monospace,monospace;letter-spacing:.1em}.infra-line h2,.client-ledger h2,.node-grid h2,.route-grid h2,.plan-grid h2{font-size:24px;line-height:1.2;margin:40px 0 9px}.infra-line p,.client-ledger p,.node-grid p,.route-grid p,.plan-grid p,.source-grid p{color:#a5b4d0;font-size:14px}.evidence-strip{margin-top:42px;padding:35px;background:var(--violet);color:#10152a}.evidence-strip h2{margin:0;font-size:27px}.evidence-strip p{max-width:760px}.evidence-strip a{color:#10152a;font-weight:800}.client-ledger article{border-top:3px solid var(--cyan)}.client-ledger a{color:var(--cyan);font-size:13px;font-weight:700}.device-columns{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:42px}.device-columns article{padding:30px;background:var(--panel)}.device-columns small{color:var(--cyan);font:700 10px ui-monospace,monospace}.device-columns h2{font-size:29px;margin:30px 0 12px}.device-columns li{color:#a5b4d0;margin:8px 0}.node-map{margin-top:42px;padding:42px;background:#111d39;border:1px solid var(--line)}.node-line{display:flex;align-items:center;gap:15px;color:var(--cyan);font:700 11px ui-monospace,monospace;letter-spacing:.1em}.node-line i{height:1px;background:linear-gradient(90deg,var(--cyan),var(--violet));flex:1}.node-map p{color:#a5b4d0;margin:25px 0 0}.record-board{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);margin-top:42px}.record-board>div{padding:28px;background:var(--panel);min-height:190px}.record-board b{color:var(--violet);font:700 19px ui-monospace,monospace}.record-board h2{font-size:24px;margin:36px 0 7px}.record-board p{color:#a5b4d0;font-size:14px}.help-list{max-width:900px;margin-top:42px;border-top:2px solid var(--cyan)}.help-list details{padding:17px 0;border-bottom:1px solid var(--line)}.help-list summary{cursor:pointer;font-weight:700}.help-list p{color:#a5b4d0}.article-index{background:var(--paper);color:#12223d}.article-index .inner-head p{color:#61718b}.archive-list{margin-top:44px}.archive-list>a{display:grid;grid-template-columns:50px 1fr 95px;gap:18px;align-items:center;padding:23px 0;border-bottom:1px solid #d7deea}.archive-list>a>span{color:#5363b8;font:700 18px ui-monospace,monospace}.archive-list h3{font-size:21px;margin:7px 0}.archive-list p{font-size:14px;color:#61718b}.archive-list>b{color:#5363b8;font-size:12px}.article-page{max-width:980px;margin:auto;padding:50px 22px 110px}.back-link{color:var(--cyan);font-size:13px;font-weight:700}.article-head{padding:34px 0;border-bottom:2px solid var(--cyan)}.article-head time{display:block;color:#8192b2;font:11px ui-monospace,monospace;margin-top:10px}.article-head h1{font-size:clamp(38px,5vw,64px);line-height:1.08;margin:20px 0 12px}.article-head p{font-size:18px;color:#a5b4d0}.article-block{padding:28px 0;border-bottom:1px solid var(--line)}.article-block .tag{color:var(--violet);font:700 10px ui-monospace,monospace;letter-spacing:.12em}.article-block h2{font-size:28px;color:var(--cyan);line-height:1.2;margin:9px 0 10px}.article-block p{color:#b1bed5;font-size:16px}.next-read{margin-top:40px;padding:25px;background:var(--panel2);border-left:4px solid var(--violet)}.next-read a{color:var(--cyan);font-weight:700}.plain{max-width:850px;margin:auto;padding:90px 22px 150px;min-height:60vh}.plain h2{font-size:24px;color:var(--cyan);margin-top:34px}.plain p{max-width:750px;color:#a5b4d0;font-size:17px}@media(max-width:900px){.night-header{flex-wrap:wrap;padding:15px 20px;gap:13px}.night-header nav{order:3;flex-basis:100%;overflow:auto;gap:18px}.header-cta{margin-left:auto}.menu{display:block}.hero{grid-template-columns:1fr}.hero-image{min-height:340px}.welcome,.city-guide header,.route-brief{grid-template-columns:1fr;gap:22px}.work-grid{grid-template-columns:repeat(2,1fr)}.guide-columns,.infra-line,.client-ledger,.node-grid,.route-grid,.plan-grid,.source-grid{grid-template-columns:1fr}.record-board{grid-template-columns:repeat(2,1fr)}.footer-main{grid-template-columns:1.5fr 1fr 1fr}.footer-main>div:last-child{grid-column:2}}@media(max-width:540px){.brand{min-width:0}.hero h1{font-size:45px}.hero-image{min-height:270px}.hero-meta{gap:12px;margin-top:30px}.work-grid{grid-template-columns:1fr}.record-board{grid-template-columns:1fr}.night-header nav{font-size:13px}.inner,.article-index{padding:42px 18px 80px}.plain{padding:65px 18px 110px}.article-page{padding:38px 18px 80px}.article-head h1{font-size:42px}.article-block h2{font-size:24px}.archive-list>a{grid-template-columns:35px 1fr}.archive-list>a>b{display:none}.route-table{overflow-x:auto}.device-columns{grid-template-columns:1fr}.footer-main{grid-template-columns:1fr 1fr}.footer-main>div:first-child{grid-column:1/-1}.footer-main>div:last-child{grid-column:auto}}