:root{font-family:Arial,sans-serif;color:#d8e2e3;background:#10242d;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,select,input[type=number]{background:#19333f;color:#ebeeea;border:1px solid #49616a;border-radius:4px;padding:.65rem}button{cursor:pointer;transition:background .2s,transform .2s}button:hover{background:#365461;transform:translateY(-1px)}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid #f4ba78;outline-offset:3px}header{height:80px;padding:20px 3vw;border-bottom:1px solid #38505b;display:flex;align-items:center;justify-content:space-between}.brand{font-family:Georgia,serif;font-size:28px;letter-spacing:4px}.brand span{font:10px Arial;letter-spacing:2px;margin-left:22px}.workspace{display:grid;grid-template-columns:285px minmax(350px,1fr) 270px;min-height:calc(100vh - 80px)}aside{padding:35px 22px;border-right:1px solid #38505b}.eyebrow{font-size:9px;letter-spacing:2px;color:#96b7bf}h1{font:39px/1.06 Georgia,serif;letter-spacing:-1.4px;margin:23px 0}h1 em{font-weight:400;color:#f2b56b}h2{font:24px Georgia,serif}aside h2{font:11px Arial;letter-spacing:1.6px;color:#f2b56b;margin:27px 0 15px}.intro{font-size:12px;line-height:1.8;color:#9eb2bb}label{display:flex;flex-direction:column;gap:8px;font-size:11px;margin:13px 0;color:#b8cbd0}select{width:100%}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row label{flex:1;min-width:70px}.row input[type=number]{width:100%}.row button{font-size:11px;padding:8px}input[type=range]{width:100%;accent-color:#efb36e}input[type=color]{width:100%;height:38px;background:transparent;border:0}.stage{position:relative;min-height:720px;overflow:hidden;background:radial-gradient(ellipse at 45% 42%,#2a4551,#142a34 64%,#10242d)}.stage-top{display:flex;justify-content:space-between;padding:28px 24px;font-size:9px;letter-spacing:1.5px;color:#90aeb8}.viewport{width:100%;height:65vh;min-height:400px;max-height:760px}.viewport canvas{display:block}.caption{padding:15px 35px;text-align:center}.caption strong{font:italic 26px Georgia,serif;color:#e0d3bb}.caption p,.legend{font-size:11px;color:#99b0b9}.legend{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px}.legend i{width:8px;height:8px;border-radius:50%;background:#486673}.legend i.blocked{background:#a04851}.legend i.gold{background:#f2b56b}.ledger{padding:35px 24px;border-left:1px solid #38505b}.ledger>h2{font-size:29px;color:#f1e1c9;margin:20px 0 30px}article{padding:20px 0;border-top:1px solid #38505b;font-size:11px}.route-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px}.route-head strong{font:23px Georgia,serif}.small{font-size:10px;line-height:1.8;color:#a6bbc2}summary{cursor:pointer;font-size:11px;line-height:1.7}details p{overflow-wrap:anywhere}.step{display:flex;justify-content:space-between;padding:4px}.exports{display:grid;gap:9px;margin-top:25px}.exports button{text-align:left;font-size:11px}.exports button:first-child{background:#e8b16e;color:#152e3a;border-color:#e8b16e}footer{padding:22px 3vw;background:#0c1d25;border-top:1px solid #38505b;font-size:12px}textarea{display:block;width:100%;height:300px;background:#10242d;color:#d6e7e9;border:1px solid #49616a;margin:15px 0;font:12px/1.5 monospace;padding:16px}footer>p[role=status]{color:#efc68c}footer [role=alert]{color:#ffaaa0}.stage,.ledger{animation:enter .6s ease-out}@keyframes enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:1100px){.workspace{grid-template-columns:250px minmax(300px,1fr)}.ledger{grid-column:1/-1;border-top:1px solid #38505b;display:block}.exports{grid-template-columns:1fr 1fr}}@media(max-width:650px){.workspace{display:flex;flex-direction:column}.stage{order:-1;min-height:500px}.viewport{height:45vh;min-height:300px}.brand span{display:none}aside{border-right:0}.stage-top{padding:20px 12px}.caption strong{font-size:22px}.exports{grid-template-columns:1fr}h1{font-size:44px}}
