:root{color-scheme:light;--bg:#f8fafc;--surface:#fff;--ink:#111d32;--muted:#667489;--border:#dce4ed;--accent:#255fe9;--accent-light:#edf3ff;--deep:#0e1d36;--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,"Segoe UI",sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}button,input{font:inherit}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #7ea2ff;outline-offset:3px}.container{max-width:1140px;margin-inline:auto;padding-inline:26px}.site-header{height:74px;border-bottom:1px solid rgba(20,37,58,.1);background:rgba(255,255,255,.9)}.topbar{height:100%;display:flex;justify-content:space-between;align-items:center}.logo{display:flex;gap:12px;align-items:center;font-size:16px;font-weight:850;letter-spacing:.05em}.logo-mark{width:33px;height:33px;display:grid;place-items:center;background:var(--accent);border-radius:9px;color:white;font-weight:950;transform:skew(-5deg)}.logo-light{font-weight:450;color:#65758d}.topbar nav{display:flex;gap:28px;color:#58687e;font-size:13px;font-weight:600}.topbar nav a:hover{color:var(--accent)}.hero{padding-top:78px;padding-bottom:92px;position:relative}.hero-eyebrow,.overline{letter-spacing:.14em;font-size:11px;font-weight:800;color:var(--accent)}.hero-eyebrow{display:flex;align-items:center;gap:8px}.dot{height:7px;width:7px;background:#34b2a1;border-radius:50%}.hero h1{font-size:clamp(40px,6vw,76px);font-weight:900;line-height:1.2;letter-spacing:-.065em;margin:18px 0 20px}.accent{color:var(--accent)}.hero-description{max-width:650px;color:var(--muted);font-size:17px;line-height:1.95}.hero-actions{display:flex;gap:26px;align-items:center;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;border-radius:11px;padding:12px 23px;font-size:14px;font-weight:760;border:1px solid transparent}.btn-primary{color:white;background:var(--accent)}.btn-primary:hover{background:#164bd0}.hero-stat{color:#7c8899;font-size:12px}.hero-stat b{font-size:19px;color:var(--ink)}.hero-visual{margin-top:58px;background:#0e1c34;border-radius:20px;color:#e9f1ff;box-shadow:0 20px 45px #13233b1b;overflow:hidden}.visual-header{display:flex;align-items:center;gap:12px;border-bottom:1px solid #2d3b56;padding:13px 24px;color:#8a9ab5;font:12px ui-monospace,monospace}.dots{display:flex;gap:5px}.dots i{height:8px;width:8px;background:#52627b;border-radius:50%}.dots i:first-child{background:#ff706c}.dots i:nth-child(2){background:#f1bf52}.dots i:nth-child(3){background:#3bc7a8}.visual-nodes{display:flex;justify-content:center;align-items:center;gap:22px;padding:38px 32px}.visual-node{background:#152743;border:1px solid #30425f;border-radius:12px;padding:18px 26px;min-width:184px;display:flex;flex-direction:column;gap:1px}.visual-node small{font:10px ui-monospace,monospace;color:#84a1c7}.visual-node strong{font-size:21px;font-weight:750}.visual-node em{font-size:12px;font-style:normal;color:#a8b9d1}.visual-node.visual-active{border-color:#5a84fa;box-shadow:0 0 0 4px #2b478550;background:#1e355b}.connector{color:#5d83e5;font-size:25px}.library-section{background:#fff;padding:78px 0 84px;border-block:1px solid var(--border)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end}.section-heading h2,.manifesto h2{font-size:clamp(28px,4.5vw,42px);letter-spacing:-.055em;line-height:1.25;margin:10px 0 12px}.section-heading p:not(.overline){color:var(--muted);font-size:14px;margin:0}.tiny-accent{color:var(--accent)}.section-count{font:12px ui-monospace,monospace;color:#90a0b3}.filters{display:flex;gap:20px;justify-content:space-between;align-items:center;margin:33px 0 24px}.search-box{border:1px solid var(--border);height:46px;display:flex;align-items:center;gap:8px;border-radius:10px;padding:0 15px;flex:1;max-width:480px;color:#8f9bae}.search-box input{background:transparent;border:0;outline:0;width:100%;font-size:14px;color:var(--ink)}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #e7efff}.filter-chips{display:flex;gap:8px;flex-wrap:wrap}.chip{background:#f6f8fb;border:1px solid var(--border);border-radius:40px;color:#637187;font-size:12px;font-weight:680;padding:8px 14px;cursor:pointer}.chip.active{background:#eaf0ff;border-color:#bdd0ff;color:#245de8}.article-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.article-card{min-height:236px;border:1px solid var(--border);border-radius:16px;padding:25px;display:flex;flex-direction:column;background:linear-gradient(160deg,#fff,#fbfcfe);transition:transform .2s,border-color .2s,box-shadow .2s}.article-card:hover{transform:translateY(-3px);border-color:#9db9f8;box-shadow:0 11px 26px #1f376b12}.article-card[hidden]{display:none}.article-top{display:flex;justify-content:space-between;align-items:center}.category-pill{background:var(--accent-light);color:#3265c8;border-radius:7px;padding:5px 10px;font-size:11px;font-weight:750}.article-arrow{font-size:19px;color:#8291ad}.article-card h3{font-size:21px;letter-spacing:-.04em;line-height:1.4;margin:18px 0 7px}.article-card p{font-size:13px;color:var(--muted);line-height:1.85;margin:0}.article-footer{margin-top:auto;padding-top:24px;display:flex;justify-content:space-between;font-size:11px;color:#9aa7b6}.article-footer span{color:var(--accent);font-size:12px;font-weight:650}.empty-state{padding:36px;text-align:center;color:var(--muted)}.result-count{font-size:12px;color:#94a0af;text-align:right;margin-top:15px}.manifesto{padding-top:86px;padding-bottom:106px}.manifesto{display:grid;grid-template-columns:1fr 1.4fr;gap:50px}.manifesto-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.manifesto-grid b{font:13px ui-monospace,monospace;color:var(--accent)}.manifesto-grid h3{font-size:14px;margin:13px 0 9px}.manifesto-grid p{font-size:12px;color:var(--muted);line-height:1.85}.site-footer{border-top:1px solid var(--border);background:white}.footer-row{display:flex;justify-content:space-between;gap:20px;padding-block:30px;color:#94a0b0;font-size:11px}.not-found{min-height:70vh;padding-top:130px}
/* Article common layout */
.article-header{max-width:800px;margin:60px auto 36px;padding-inline:24px}.breadcrumb{font-size:12px;color:#8693a6;margin-bottom:25px}.breadcrumb a{color:var(--accent)}.article-header .tag{font-size:11px;font-weight:800;color:var(--accent);letter-spacing:.1em}.article-header h1{font-size:clamp(31px,5vw,47px);letter-spacing:-.055em;line-height:1.35;margin:10px 0 18px}.article-lead{font-size:17px;color:#52637a;line-height:1.9}.article-meta{font-size:12px;color:#93a1b2;padding-top:12px}.article-body{max-width:800px;margin:0 auto 110px;padding-inline:24px}.article-body>section{margin-top:56px}.article-body h2{font-size:27px;letter-spacing:-.04em;margin:0 0 18px;padding-bottom:13px;border-bottom:1px solid var(--border)}.article-body h3{font-size:19px;margin:24px 0 10px}.article-body p,.article-body li{font-size:15px;line-height:2}.article-body ul,.article-body ol{padding-left:24px}.article-body code{font:13px ui-monospace,SFMono-Regular,Consolas,monospace;border:1px solid #dce4ec;border-radius:5px;padding:2px 5px;background:#f5f8fc}.article-body pre{overflow-x:auto;background:#101e36;color:#dbeafe;border-radius:12px;padding:22px}.article-body pre code{background:none;border:0;color:inherit;padding:0;line-height:1.9}.callout{background:#f0f5ff;border-left:4px solid #356be5;border-radius:0 12px 12px 0;padding:17px 21px;margin:24px 0;color:#274269}.callout p{margin:0}.demo{border:1px solid var(--border);border-radius:17px;padding:23px;background:#fff;margin:24px 0}.demo-label{font-size:11px;font-weight:800;letter-spacing:.1em;color:#4771c8}.demo-title{font-size:19px;font-weight:800;margin:8px 0 13px}.controls{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin:20px 0}.controls label{font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px}.controls select{background:white;border:1px solid #bbc9d9;border-radius:8px;padding:9px;min-height:40px;font-size:14px}.demo-result{border-radius:10px;padding:12px 15px;font-size:13px;font-weight:700;background:#eef4ff;color:#2751a4}.demo-result.is-allowed{background:#e9f9f0;color:#14633d}.demo-result.is-blocked{background:#fff0f0;color:#a53030}.diagram{overflow-x:auto;padding:24px;background:#f5f8fc;border:1px solid #e0e8f2;border-radius:12px}.diagram-row{display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:420px}.diagram-node{min-width:110px;text-align:center;border:1px solid #bccce4;background:#fff;padding:12px 10px;border-radius:10px;font-size:12px;font-weight:750}.diagram-node.highlight{background:#e9f0ff;border-color:#759bfa}.diagram-arrow{font-size:19px;color:#5074bd}.step-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.step-bar button{background:#1b57d8;border:0;color:white;border-radius:8px;padding:9px 15px;cursor:pointer}.step-bar button:disabled{opacity:.45;cursor:default}.step-status{font-size:12px;color:#607087}.quiz details{border:1px solid var(--border);background:white;border-radius:10px;margin:11px 0;padding:14px 18px}.quiz summary{cursor:pointer;font-size:14px;font-weight:700}.quiz details p{font-size:14px;color:#506176}.article-note{font-size:12px!important;color:#7b899a;margin-top:14px}.article-end{border-top:1px solid var(--border);margin-top:70px;padding-top:25px}.article-end a{font-weight:700;color:var(--accent)}
@media(max-width:780px){.container{padding-inline:20px}.topbar nav{gap:15px}.topbar nav a{font-size:11px}.hero{padding-top:59px;padding-bottom:64px}.hero-description{font-size:15px}.hero-visual{margin-top:38px}.visual-nodes{gap:8px;padding:22px 15px}.visual-node{min-width:0;flex:1;padding:13px 11px}.visual-node strong{font-size:14px}.visual-node em{font-size:10px}.visual-node small{font-size:8px}.connector{font-size:14px}.library-section{padding-block:57px}.filters{flex-direction:column;align-items:stretch}.search-box{max-width:none}.article-grid{grid-template-columns:1fr}.manifesto{display:block;padding-block:65px}.manifesto-grid{margin-top:35px}.footer-row{display:block}.footer-row span{display:block;margin-bottom:8px}.article-body>section{margin-top:43px}.article-body h2{font-size:23px}}
@media(max-width:480px){.logo{font-size:13px;gap:7px}.logo-mark{width:29px;height:29px}.topbar nav{gap:12px}.hero h1{font-size:39px}.hero-actions{gap:14px}.hero-stat{font-size:10px}.visual-nodes{gap:5px;padding:15px 9px}.visual-node{padding:9px 6px}.visual-node strong{font-size:12px}.visual-node em{font-size:9px}.visual-node small{font-size:7px}.section-count{display:none}.article-card{min-height:225px}.manifesto-grid{grid-template-columns:1fr;gap:4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.article-card{transition:none}}
