:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#e9e8e4;background:#10131b;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:1px solid #424755;background:#202632;color:#e9e8e4;border-radius:6px;padding:.65rem .85rem;transition:background .18s,transform .18s}button:hover{background:#333c4d}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #d6f0a0;outline-offset:3px}input,textarea{border:1px solid #454c5d;background:#111720;color:#e9e8e4;border-radius:4px;padding:.65rem;min-width:0}input[type=range]{accent-color:#d6f0a0;width:100%;padding:0;cursor:pointer}input[type=checkbox]{accent-color:#d6f0a0}main{min-height:100dvh;max-width:1800px;margin:auto;padding:24px 40px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #343945;padding-bottom:22px}.brand{display:flex;align-items:center;gap:14px}.mark{font-size:54px;color:#d6f0a0;line-height:.7;transform:rotate(-20deg)}h1{font-size:20px;margin:0;font-weight:500}h1 i{font-family:Georgia,serif}header p{font-size:9px;letter-spacing:2px;margin:6px 0 0;color:#949cae}.top-actions{display:flex;gap:18px;align-items:center}.tag,.eyebrow{font-size:10px;letter-spacing:2px;color:#c0c7d1}.intro{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:34px 0}.intro h2{font-family:Georgia,serif;font-size:clamp(36px,4vw,62px);font-weight:400;line-height:1.02;margin:12px 0}.intro>p{max-width:330px;color:#a6afbd;font-size:15px;line-height:1.7}.eyebrow{color:#d6f0a0}.workspace{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(430px,1.65fr);gap:20px}.panel{border:1px solid #343b48;border-radius:12px;background:#171c26;padding:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}h3{font-size:12px;letter-spacing:.8px;font-weight:500;margin:0}.panel-head>span{font-size:9px;color:#9aa6b8;letter-spacing:1px}.plot-frame{position:relative;padding:20px 0;max-width:480px;margin:auto}.plot{display:block;width:100%;aspect-ratio:1;border-radius:50%;background:#10131b;touch-action:none;overflow:visible;cursor:crosshair}.axis{position:absolute;font-size:8px;letter-spacing:2px;left:50%;transform:translate(-50%);color:#acb9c7;pointer-events:none}.axis.top{top:0}.axis.bottom{bottom:0}.range-label{display:block;margin-top:18px;font-size:12px}.range-label output{float:right;color:#d6f0a0}.range-label input{margin-top:14px}.hint{font-size:11px;line-height:1.6;color:#9fa9ba}.check{display:flex;align-items:center;gap:8px;font-size:12px;margin-top:20px}.coordinate{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.coordinate label{font-size:10px;color:#aeb8ca}.coordinate input{width:100%;margin-top:8px}.row{display:flex;gap:9px;flex-wrap:wrap}.primary{background:#d6f0a0;color:#152019;border-color:#d6f0a0}.primary:hover{background:#e4ffb2}.art-stage{position:relative;background:#10131b;border-radius:8px;overflow:hidden}.art-stage svg{width:100%;display:block}.ribbon{animation:arrival .9s ease-out both}.art-controls{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:23px 0}.art-controls label{font-size:11px;color:#aeb9c9}.art-controls input{margin-top:13px}.diagnostics{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #343b48;border-bottom:1px solid #343b48;padding:18px 0;margin-bottom:12px}.diagnostics strong{font-size:24px;font-family:Georgia,serif;font-weight:400;display:block}.diagnostics span{font-size:10px;color:#97a4b5;display:block;margin-top:5px}.pins{padding:0;list-style:none;max-height:270px;overflow:auto;margin:0}.pins li{display:flex;gap:6px;padding:8px 4px;border-bottom:1px solid #313846;align-items:center}.pins li.selected{background:#252e3b}.pin-select{display:flex;gap:12px;align-items:center;flex:1;text-align:left;border:0;background:transparent;padding:4px}.swatch{width:32px;height:32px;border-radius:50%;box-shadow:0 0 0 2px #ffffff28;flex-shrink:0}.pin-select b{display:block;font-size:10px;letter-spacing:1px;font-weight:500}.pin-select small{font-size:9px;color:#a7b0bf;display:block;margin-top:5px}.pins li>button:not(.pin-select){font-size:10px;padding:7px}.point-proof{font-size:10px;color:#aab6c6;padding:14px 0 0}.point-proof p{overflow-wrap:anywhere;line-height:1.5;margin-bottom:0}.bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;margin-top:20px}.presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.presets button{font-size:11px;text-align:left}.presets span{color:#d6f0a0;margin-right:9px}.bottom label{display:flex;flex-direction:column;gap:8px;font-size:11px}.bottom label input{margin-bottom:8px}.export{margin-top:16px}.export button{font-size:11px}.import{margin-top:20px;font-size:12px}.import p{color:#aab5c6;line-height:1.6}.import textarea{display:block;width:100%;height:140px;margin-bottom:12px}.import button{margin-right:8px}summary{cursor:pointer}footer{font-size:11px;color:#99a6b8;padding:20px 0;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center}footer p[role=status]{color:#d6f0a0;width:100%;margin:0}footer details{max-width:750px;line-height:1.6}footer button{font-size:11px;margin-right:9px}footer>span{margin-left:auto;font-size:8px;letter-spacing:1px}.empty{position:absolute;inset:40% 0;text-align:center;color:#aab5c7;font-family:Georgia,serif}@keyframes arrival{0%{opacity:.2;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.paused *{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:850px){main{padding:20px}.workspace,.bottom{grid-template-columns:1fr}.intro>p{max-width:240px}.tag{display:none}.plot-frame{max-width:380px}}@media(max-width:500px){main{padding:14px}.intro{display:block}.intro>p{max-width:none}.panel{padding:16px}header button{font-size:10px;padding:8px}.brand{gap:8px}h1{font-size:17px}.top-actions{gap:0}.mark{font-size:38px}.diagnostics span{max-width:85px}}
