:root{font-family:system-ui,sans-serif;color:#d9eee8;background:#10252c;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header,footer{padding:2rem 4vw;background:#17343b}header{position:relative;border-bottom:1px solid #416269}header button{position:absolute;right:4vw;top:2rem}.eyebrow{font:12px monospace;letter-spacing:3px;color:#8bdbbd}h1{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.6rem);font-weight:400;margin:.5rem 0}h2{font-family:Georgia,serif;font-weight:400}p{line-height:1.6;color:#adc9c7}main{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:2rem;padding:2rem 4vw;max-width:1600px;margin:auto}.scene svg{width:100%;max-height:65vh}.scene{border:1px solid #416269;border-radius:100%}.toolbar,.transport,.row,.buttons{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.toolbar{justify-content:space-between;margin-bottom:1rem}.transport{margin-top:1rem}.transport input{flex:1;min-width:80px}.metric{font-size:1.7rem;color:#f5d8aa}.metric small{font-size:.8rem;display:block}button,input,textarea{font:inherit}button{background:#23464b;color:#e1f8f0;border:1px solid #52756f;border-radius:6px;padding:.6rem .8rem;cursor:pointer}button:hover{background:#3e645e}button:disabled{opacity:.5}input,textarea{background:#0c2229;color:#ddf7ed;border:1px solid #45676a;border-radius:4px;padding:.5rem;max-width:100%}input[type=number]{width:100%}label{display:block;margin:.4rem 0}label>input:not([type=checkbox]){display:block}input[type=checkbox]{accent-color:#79d5b7}details{border-top:1px solid #39565c;margin:1rem 0;padding:1rem 0}summary{cursor:pointer;font-weight:600}fieldset{border:1px solid #39565c;margin:1rem 0;border-radius:7px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.row label{width:25%}.drawing{width:100%;aspect-ratio:1;background:#17343b;border:1px solid #45676a;cursor:crosshair}textarea{width:100%;height:220px;font:12px monospace}footer{font-size:.85rem}*:focus-visible{outline:3px solid #ffd17a;outline-offset:3px}:fullscreen{overflow:auto;background:#10252c}@media(max-width:800px){main{grid-template-columns:1fr}header button{position:static}main{padding:1rem}.scene svg{max-height:none}}@media print{aside,.transport,.drawing,header button,footer details{display:none}main{display:block}.scene svg{max-height:85vh}body{background:#fff;color:#000}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
