:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#173b35;background:#e9ede4;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:1px solid #bdc9bb;background:#f6f7f0;color:inherit;padding:10px 14px;border-radius:7px;transition:background .16s,transform .16s}button:hover{background:#e0e8dc;transform:translateY(-1px)}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #ce7e37;outline-offset:3px}button:disabled{opacity:.45;cursor:not-allowed}header{display:flex;align-items:center;gap:22px;padding:25px 3.5vw;border-bottom:1px solid #c8d1c3}.brand{text-decoration:none;color:#f5efdb;background:#173b35;border-radius:50%;width:60px;height:60px;display:grid;place-items:center;font-weight:800}h1{font-size:clamp(22px,3vw,38px);margin:4px 0;letter-spacing:-1.5px}h1 em{font-family:Georgia,serif;font-weight:400}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700}.badge{margin-left:auto;font-size:10px;letter-spacing:1px;border:1px solid #b6c3b2;border-radius:20px;padding:10px}.workspace{display:grid;grid-template-columns:320px 1fr;min-height:calc(100vh - 115px)}aside{padding:32px;border-right:1px solid #c8d1c3}h2{font:32px/1.1 Georgia,serif;margin:16px 0}p{font-size:13px;line-height:1.65}.quiet{font-size:11px;color:#5f7468}.stats{display:flex;gap:26px;align-items:center;padding:18px 0}.stats b{font:42px Georgia,serif}.stats small{display:block;font:10px system-ui;letter-spacing:1px;margin-top:5px}.tools{display:flex;gap:4px}.tools button{font-size:11px;padding:9px}.chosen,.selected{background:#173b35!important;color:#f7f2e4}.stroke-list{margin:18px 0;max-height:230px;overflow:auto}.stroke-list button{width:100%;display:flex;justify-content:space-between;border:0;border-bottom:1px solid #ccd5c5;border-radius:0;background:transparent;padding:8px}.stroke-list small{font-size:10px}label{display:block;font-size:12px}label strong{float:right}input{display:block;width:100%;border:1px solid #b8c7b4;border-radius:5px;padding:8px;background:#f7f8f1;color:inherit;margin:8px 0}.primary{background:#173b35;color:#fff2d5;border-color:#173b35}.primary:hover{background:#28584b}aside>.primary{width:100%}.stage{padding:24px 3vw;display:flex;flex-direction:column;min-width:0;background:#f4f5ed}.stage-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:2px}.stage-top button{font-size:11px;letter-spacing:0;border:0;background:transparent}.stage svg{width:100%;flex:1;min-height:300px;max-height:70vh;touch-action:none}.stage svg *{pointer-events:none}.stage svg.drawing{cursor:crosshair}.ink,.ghost,.selected-line,.candidate,.invalid{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.ink{stroke:#456458}.ghost{stroke:#b5c1b2;stroke-width:7;opacity:.45}.selected-line{stroke:#d1823a;stroke-width:4}.candidate{stroke:#00a178;stroke-width:4;stroke-dasharray:9 5;animation:march 1s linear infinite}.invalid{stroke:#bd4545;stroke-dasharray:7 4}.stage text{font-size:11px;fill:#325847}.legend{display:flex;gap:22px;font-size:10px;color:#5c7164;flex-wrap:wrap}.legend span:last-child{margin-left:auto}.green{color:#008563}.status{padding:15px;background:#e6ebdf;border-radius:6px;margin-bottom:0}.candidate-panel{display:flex;align-items:center;gap:12px;background:#dae8d6;padding:18px;margin-top:18px;border-radius:9px}.candidate-panel>div{flex:1}.candidate-panel p{margin-bottom:0}.lower{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:48px 5vw;border-top:1px solid #c8d1c3}.lower>div{min-width:0}.landmark{display:flex;align-items:center;gap:8px;margin:12px 0}.landmark>span{flex:1;font-size:13px}small{display:block;font-size:10px;margin-top:5px}.row{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}li{font-size:13px;margin:15px 0}.editor{grid-column:1/-1;border-top:1px solid #c8d1c3;padding-top:25px}.editor textarea{width:100%;height:250px;resize:vertical;padding:18px;border:1px solid #bccbb7;border-radius:8px;background:#f6f8f0;font:12px/1.5 ui-monospace,monospace;color:#214c3b}footer{padding:24px 5vw;background:#173b35;color:#e5ecdf;display:flex;align-items:center;gap:25px}footer p{font-size:10px;max-width:700px}footer button{white-space:nowrap;font-size:11px}@keyframes march{to{stroke-dashoffset:-28}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:800px){header{padding:18px}.badge{display:none}.workspace{grid-template-columns:1fr}aside{border-right:0;padding:22px}.stroke-list{max-height:130px;display:grid;grid-template-columns:1fr 1fr}.stage{min-height:500px}.stage svg{min-height:250px}.lower{grid-template-columns:1fr;padding:30px 22px}.candidate-panel{flex-wrap:wrap}.candidate-panel>div{flex-basis:100%}footer{display:block}.stats{padding:5px 0}aside h2 br{display:none}}
