@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-normal-DJ5YJwmz.woff2) format("woff2"),url(/assets/source-serif-4-latin-400-normal-Dn3IlU-Z.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/source-serif-4-latin-500-normal-CUHe9xxf.woff2) format("woff2"),url(/assets/source-serif-4-latin-500-normal-DVVamBqs.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}:root{--bg:#183B40;--panel:#23484C;--text:#E5F0EE;--rule:#7B9E9F;--accent:#C3AD82;color-scheme:dark;font-family:IBM Plex Sans,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{outline-offset:5px}button,a{touch-action:manipulation}button{cursor:pointer;background:transparent;color:var(--text);border:1px solid var(--rule);border-radius:2px;padding:10px 15px;min-height:42px}button:hover{background:var(--panel)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent)}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}h1,h2{font-family:"Source Serif 4",serif;font-weight:400}h1{font-size:clamp(36px,3.6vw,52px);line-height:1.12}h2{font-size:26px;line-height:1.25}p{line-height:1.6}header{height:91px;border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;padding:0 4%}.brand{display:flex;align-items:center;gap:13px;font:32px "Source Serif 4",serif}.header-right{display:flex;align-items:center;gap:26px;font-size:13px}.quiet{border:0;padding:10px 0}.status-dot:before{content:"";display:inline-block;width:6px;height:6px;background:var(--accent);margin-right:9px}main{max-width:1510px;margin:auto;padding:0 4%}.heading{display:flex;justify-content:space-between;align-items:end;padding:40px 0 29px;gap:24px}.heading p{font-size:16px;padding-bottom:3px}.eyebrow,.mono{font:11px IBM Plex Mono,monospace;letter-spacing:.035em}.eyebrow{margin-bottom:15px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 0;border-top:1px solid var(--rule)}.presets{display:flex;gap:8px;align-items:center}.presets span{margin-right:10px}.presets button{font-size:13px;padding:8px 13px;min-height:36px}.presets button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--bg)}.model-note{font-size:12px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;border:1px solid var(--rule)}.graph-panel{min-width:0;display:flex;flex-direction:column}.panel-heading{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule);gap:12px}.panel-heading h2{font:15px IBM Plex Sans,sans-serif}.panel-heading .mono{font-size:10px}.graph-wrap{flex:1;display:grid;align-items:center;padding:10px 18px;min-height:360px}#graph{width:100%;max-height:420px;overflow:visible}.edge-line{fill:none;stroke:var(--rule);stroke-width:1.4}.edge-line.selected{stroke:var(--accent);stroke-width:3}.edge-line.blocked{stroke-dasharray:5 5}.node{fill:var(--bg);stroke:var(--text);stroke-width:1.5}.node-label{fill:var(--text);font:17px IBM Plex Mono,monospace;text-anchor:middle;dominant-baseline:central}.edge-label{fill:var(--text);font:12px IBM Plex Mono,monospace;text-anchor:middle}.legend{display:flex;flex-wrap:wrap;gap:18px;padding:12px 22px;font-size:11px}.legend span{display:flex;align-items:center;gap:7px}.line{display:inline-block;width:20px;border-top:1px solid var(--rule)}.line.accent{border-top:2px solid var(--accent)}.line.dashed{border-top-style:dashed}.route-summary{border-top:1px solid var(--rule);padding:19px 22px;display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:89px}.route-summary strong{font:24px "Source Serif 4",serif}.route-summary small{font-size:12px}.route-summary .eyebrow{margin-bottom:6px}aside{border-left:1px solid var(--rule);background:var(--panel)}.control-body{padding:22px}label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:9px}label span{font-size:12px}input:not([type=range],[type=file]),select{background:var(--bg);border:1px solid var(--rule);border-radius:2px;color:var(--text);width:100%;min-height:44px;padding:10px 12px}input[type=number]{font-family:IBM Plex Mono,monospace}#demand{font-size:24px}.rule{border-top:1px solid var(--rule);margin:22px 0}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:19px 0}input[type=range]{width:100%;accent-color:var(--accent);margin:4px 0 14px;cursor:pointer}.capacity-bar{height:3px;background:var(--bg);margin:0 0 10px}.capacity-bar i{height:100%;display:block;background:var(--accent)}.capacity-note{font:12px IBM Plex Mono,monospace}.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:500}.primary:hover{background:var(--text);border-color:var(--text)}.full{width:100%;font-size:12px;margin-top:18px}.aside-note{font-size:12px;margin-top:12px;line-height:1.5}.error{font-size:12px;margin-top:8px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:30px 0 18px;gap:15px}.section-heading h2{font-size:24px}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}th{font-weight:400;font-size:11px;padding:12px 17px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}td{padding:11px 17px;border-bottom:1px solid var(--rule)}tr.selected{background:var(--panel)}tr.selected td:first-child{border-left:3px solid var(--accent);padding-left:14px}td button{border:0;min-height:32px;padding:3px 0;font-family:IBM Plex Mono,monospace;text-align:left}td:not(:first-child){font-variant-numeric:tabular-nums}.tag{font-size:12px}.tag.fail{border-bottom:1px dashed var(--accent)}.notebook{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;padding:42px 0;border-bottom:1px solid var(--rule)}.notebook h2{font-size:30px}.notebook p{font-size:13px;max-width:340px;margin-top:13px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.actions button{font-size:12px}#saved{list-style:none;padding:0;margin:0}#saved li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-top:1px solid var(--rule);font-size:13px}#saved li button{font-size:11px;padding:5px 10px;min-height:32px}#saved li span{overflow-wrap:anywhere}#notice{min-height:23px;margin:10px 0;max-width:none}.method{padding:25px 0 42px}details{border-bottom:1px solid var(--rule);padding-bottom:22px}summary{cursor:pointer;display:flex;justify-content:space-between;font-size:14px}details p{font-size:14px;max-width:850px;margin-top:15px}.credits{display:flex;align-items:center;justify-content:space-between;gap:50px;margin-top:32px}.credits h2{font-size:28px}.credits p{font-size:13px;max-width:690px;margin-top:13px}.credits button{white-space:nowrap;font-size:13px}footer{border-top:1px solid var(--rule);display:flex;justify-content:space-between;gap:20px;padding:23px 4%;font-size:11px}dialog{background:var(--panel);color:var(--text);border:1px solid var(--rule);max-width:520px;width:calc(100% - 32px);padding:32px}dialog::backdrop{background:#183b40cc}dialog p{margin:18px 0 24px;font-size:15px}dialog h2{font-size:34px}.skip-link{position:fixed;top:-100px;left:20px;background:var(--accent);color:var(--bg);padding:12px;z-index:100}.skip-link:focus{top:10px}[hidden]{display:none!important}.noscript{padding:40px}.noscript a{text-decoration:underline}#intro{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:20;display:flex;flex-direction:column;padding:30px 5%;overflow:auto}.intro-top,.intro-foot{display:flex;justify-content:space-between;align-items:center;gap:20px}.intro-top button{font-size:13px}.intro-body{margin:auto;width:min(900px,100%);text-align:center;padding:30px 0}.intro-body svg{width:100%;max-height:43vh;margin:20px 0}.intro-body h1{font-size:clamp(34px,5vw,64px)}.intro-body p{font-size:16px}.intro-body path{fill:none;stroke:var(--rule);stroke-width:2}.intro-body .intro-route{stroke:var(--accent);stroke-width:4}.intro-nodes circle{stroke:var(--text);fill:var(--bg);stroke-width:2}.intro-block,.intro-limit,.intro-branch,.intro-route,.intro-nodes{opacity:0}.intro-limit{fill:var(--text);font:14px IBM Plex Mono,monospace}#intro[data-stage="1"] .intro-branch,#intro[data-stage="2"] .intro-branch,#intro[data-stage="3"] .intro-branch,#intro[data-stage="4"] .intro-branch,#intro[data-stage="2"] .intro-block,#intro[data-stage="2"] .intro-limit,#intro[data-stage="3"] .intro-block,#intro[data-stage="3"] .intro-limit,#intro[data-stage="3"] .intro-route,#intro[data-stage="4"] .intro-route,#intro[data-stage="4"] .intro-nodes{opacity:1}.intro-base,.intro-branch,.intro-route{stroke-dasharray:1000;stroke-dashoffset:0}.playing .intro-base,.playing[data-stage="1"] .intro-branch,.playing[data-stage="3"] .intro-route{animation:draw 2s ease both}@keyframes draw{0%{stroke-dashoffset:1000}to{stroke-dashoffset:0}}#enter-static{margin-top:20px}.intro-foot{font-size:10px;padding-top:20px}@media(min-width:1600px){main{padding:0 60px}}@media(max-width:900px){.header-right{gap:16px}.status-dot{display:none}.workspace{grid-template-columns:minmax(0,1fr) 285px}.control-body{padding:18px}.panel-heading{padding:16px}.graph-wrap{padding:8px;min-height:310px}.legend{padding:12px}.route-summary{padding:16px}.model-note{display:none}.notebook{gap:30px}.heading p{font-size:13px}.table-wrap{overflow:auto}.credits{gap:20px}}@media(max-width:680px){header{height:74px;padding:0 20px}.brand{font-size:27px;gap:8px}.brand img{width:29px}.header-right{gap:13px;font-size:11px}.header-right button{font-size:11px}main{padding:0 20px}.heading{display:block;padding:30px 0 22px}.heading h1{font-size:39px}.heading p{margin-top:17px;font-size:14px}.presets{gap:6px;flex-wrap:wrap}.presets span{width:100%;margin-bottom:5px}.presets button{font-size:12px}.workspace{display:block}.graph-wrap{min-height:240px;padding:6px}.graph-wrap svg{min-height:220px}.legend{font-size:10px;gap:10px}.route-summary strong{font-size:22px}.route-summary{min-height:86px}aside{border-left:0;border-top:1px solid var(--rule)}.control-body{padding:20px}.panel-heading{padding:17px}.rule{margin:17px 0}.section-heading{align-items:start;flex-direction:column;gap:10px}.section-heading .mono{font-size:10px}table{min-width:650px}td,th{padding:11px 13px}.notebook{grid-template-columns:1fr;gap:23px;padding:32px 0}.notebook h2{font-size:29px}.credits{display:block}.credits button{margin-top:18px}footer{flex-direction:column;padding:22px 20px;gap:10px}.intro-top .mono{font-size:9px}.intro-top button{font-size:11px;padding:8px}.intro-body svg{margin:40px 0}.intro-foot{font-size:8px}.intro-body p{font-size:14px}.intro-body h1{font-size:38px}.intro-limit{font-size:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}#laboratory:focus{outline:none}body.intro-active{overflow:hidden}@media(max-width:680px){.edge-label{font-size:26px}.node-label{font-size:30px}.graph-wrap{min-height:240px}}
