
:root{color-scheme:dark;--bg:#10171b;--ink:#eee9db;--dim:#a4b1b2;--line:#354249;--a:#92d7dd;--b:#eeb081;--good:#cbd797;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:13px/1.55 var(--mono)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,select,input[type=text],input[type=number]{background:#182329;border:1px solid var(--line);border-radius:3px;color:var(--ink);padding:8px 10px}button{cursor:pointer}button:hover{border-color:var(--a)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--a);outline-offset:4px}button[aria-pressed=true],button.active{color:var(--bg);background:var(--ink);border-color:var(--ink)}a{color:inherit;text-underline-offset:4px}header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 32px 14px}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:.18em;color:var(--dim)}h1{font:normal clamp(27px,3vw,43px)/1.1 Georgia,serif;letter-spacing:-.035em;margin:7px 0}header .right{display:flex;gap:18px;align-items:center}.tabs{display:flex;gap:4px}.tabs button{background:transparent;border:0;border-radius:0;color:var(--dim);padding:10px 12px;border-bottom:1px solid transparent}.tabs button.active{border-bottom-color:var(--ink);color:var(--ink)}.quiet{background:transparent}.workspace{position:relative;margin:0 20px;height:calc(100svh - 170px);min-height:580px;border-top:1px solid var(--line);overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none}.legend{position:absolute;left:14px;top:19px;display:flex;gap:22px;color:var(--dim);font-size:11px;pointer-events:none}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:8px}.a{color:var(--a)}.b{color:var(--b)}.scene-title{position:absolute;left:15px;top:54px;font:italic clamp(18px,2.2vw,29px)/1.25 Georgia,serif;max-width:500px;pointer-events:none}.tools{position:absolute;right:14px;top:17px;display:flex;gap:6px}.status{position:absolute;bottom:20px;left:15px;right:15px;display:flex;gap:38px;align-items:end;pointer-events:none}.measure{display:flex;flex-direction:column}.measure b{font:normal 25px Georgia,serif}.measure small{font:10px/1.5 var(--mono);color:var(--dim);max-width:160px}.status .trace{margin-left:auto;text-align:right;color:var(--dim);font-size:10px;max-width:250px}footer{padding:10px 34px 17px;display:flex;justify-content:space-between;gap:15px;color:var(--dim);font-size:10px}.drawer{position:absolute;right:0;top:0;bottom:0;width:320px;background:#121d23f7;border-left:1px solid var(--line);padding:18px 22px;overflow:auto;z-index:3;box-shadow:-20px 0 60px #0003}.drawer[hidden]{display:none}.drawer h2{font:normal 25px Georgia,serif;margin:7px 0 15px}.drawer .close{float:right;padding:3px 8px}.control{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px;margin:17px 0}.control input[type=range]{grid-column:1/-1;width:100%;accent-color:var(--a);margin:4px 0}.control output{font-size:11px;color:var(--a)}.control select{grid-column:1/-1;width:100%}.control label{font-size:11px}.control small,.note{font-size:10px;color:var(--dim)}.switch{display:flex;gap:9px;align-items:center;margin:14px 0;font-size:11px}.switch input{accent-color:var(--a)}.presets{position:absolute;bottom:105px;left:15px;right:15px;display:flex;gap:6px;flex-wrap:wrap}.presets button{background:#10171bde;font-size:10px;padding:5px 8px;color:var(--dim)}.presets button.selected{color:var(--ink);border-color:var(--ink)}details{border-top:1px solid var(--line);padding-top:12px;margin-top:18px}summary{cursor:pointer}.lexicon{display:grid;grid-template-columns:1fr 62px;gap:5px;margin-top:12px}.lexicon input{width:100%;min-width:0;padding:5px}.lexicon select{padding:5px}.drawer hr{border:0;border-top:1px solid var(--line);margin:20px 0}.live{font-size:11px;color:var(--dim)}dialog{background:#172229;color:var(--ink);border:1px solid #52636b;width:min(700px,90vw);max-height:85svh;padding:28px}dialog::backdrop{background:#0009}dialog h2{font:normal 32px Georgia,serif;margin:0 0 16px}dialog p{font:15px/1.75 Georgia,serif}dialog .close{float:right}dialog h3{font-size:12px;color:var(--a);margin-top:25px}.hidden{display:none!important}.paper-label{color:var(--dim);font-size:10px}.atlas-label{max-width:320px}.download{margin-top:14px;width:100%}.alert{color:var(--b);font-size:10px;min-height:16px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){header{padding:18px 18px 12px;align-items:start;gap:10px}header .right{display:block;text-align:right}.eyebrow{font-size:8px}h1{font-size:29px}.tabs{gap:0}.tabs button{padding:7px 7px;font-size:10px}.about-button{font-size:10px;margin-top:8px;padding:3px 6px}.workspace{margin:0 8px;height:calc(100svh - 150px);min-height:610px}.legend{gap:12px;font-size:9px;top:17px;left:9px}.scene-title{left:9px;top:52px;max-width:270px;font-size:20px}.tools{top:91px;right:9px}.tools button{font-size:10px;padding:5px 8px}.status{gap:18px;left:9px;bottom:12px}.measure b{font-size:23px}.measure small{font-size:8px;max-width:84px}.status .trace{display:none}.presets{bottom:100px;left:9px;gap:4px}.presets button{font-size:9px;padding:4px 6px}.drawer{width:min(320px,100%)}footer{padding:9px 18px;line-height:1.6;font-size:8px}footer span{max-width:230px}.atlas-label{max-width:220px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
