:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#dce9df;background:#101e24;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;background:#263b40;color:#e4ede5;border:1px solid #4a5e5b;border-radius:6px;padding:10px 13px}button:hover{border-color:#efba7d;background:#344b4d}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #efba7d;outline-offset:3px}.primary{background:#efba7d;color:#14262b;font-weight:700}.danger{color:#e9a69a;margin-top:20px}header{display:flex;gap:18px;align-items:center;padding:24px 32px;border-bottom:1px solid #3a4f51}h1{font-family:Georgia,serif;font-size:30px;font-weight:400;margin:3px 0}.logo{color:#efba7d;font-size:50px}small{font-size:10px;letter-spacing:2px;color:#a7c5bb}.badge{margin-left:auto;font-size:10px;letter-spacing:2px;color:#9bb9b2}main{display:grid;grid-template-columns:270px minmax(400px,1fr) 300px;min-height:calc(100vh - 120px)}aside{padding:28px 24px;background:#172a30}h2{font-family:Georgia,serif;font-size:30px;font-weight:400;line-height:1.15}p{font-size:13px;line-height:1.7;color:#abc0bd}.presets{display:flex;flex-wrap:wrap;gap:7px;margin:25px 0}label{display:block;font-size:12px;color:#b5ccc4;margin:16px 0}input,textarea{display:block;width:100%;background:#102128;border:1px solid #415955;border-radius:4px;color:#e8f1e6;padding:10px;margin-top:6px}textarea{height:260px;font-family:monospace;font-size:12px;resize:vertical}.stage{padding:28px;min-width:0;display:flex;flex-direction:column;justify-content:center}.stage-head{display:flex;justify-content:space-between;gap:18px;font-size:11px;color:#a8c1ba;margin-bottom:25px}.weave{width:100%;max-height:480px;min-height:280px;border:1px solid #345051;border-radius:12px;animation:appear .7s ease-out}.stats{display:flex;justify-content:space-around;text-align:center;padding:25px 0}.stats b{display:block;color:#efba7d;font-size:29px;font-family:Georgia,serif;font-weight:400}.stats span{font-size:11px;color:#a9c4ba}.transport,.exports,.row{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.note{font-size:11px;color:#9ab0ac}.knots{margin:25px 0}.knot{display:grid;grid-template-columns:1fr 1fr 32px;gap:7px;align-items:center;margin:8px 0}.knot input{min-width:0;margin:0}.knot button{padding:8px}.headings{font-size:10px;color:#a6beb7}details{margin:25px 0}summary{cursor:pointer;font-size:13px;color:#efba7d}footer{padding:24px 32px;border-top:1px solid #35504e;font-size:11px}footer p{font-size:11px}footer button{font-size:11px;margin-right:8px}.focus main{display:block}.focus aside{display:none}.focus .stage{min-height:calc(100vh - 125px)}.focus .weave{max-height:65vh}@keyframes appear{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:1100px){main{grid-template-columns:240px 1fr}.editor{grid-column:1/-1}.badge{display:none}}@media(max-width:720px){header{padding:15px;flex-wrap:wrap}h1{font-size:23px}main{display:block}aside,.stage{padding:22px}.weave{min-height:210px}.stats b{font-size:23px}}
