*{box-sizing:border-box} :root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;background:#111317;color:#e6e8e9}body{margin:0}main{height:100dvh;min-height:300px;max-width:1600px;margin:auto;padding:28px 40px 18px;display:flex;flex-direction:column;gap:16px}header{display:flex;align-items:center;justify-content:space-between;flex:none}.identity{display:flex;align-items:center;gap:14px}.mark{font-size:29px;color:#88dbef}h1{font-size:15px;letter-spacing:.18em;font-weight:500;margin:0}.edition{color:#747b83;font:10px monospace;letter-spacing:.09em;margin-left:20px}header p{font-size:14px;margin:0;color:#b7bdc5}.toolbar{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #30343a;border-bottom:1px solid #30343a;flex:none;gap:8px;padding:4px 0}.presets,.actions{display:flex;gap:4px}button{font:12px Arial,sans-serif;color:#929aa4;background:transparent;border:1px solid transparent;border-radius:3px;min-height:44px;min-width:44px;padding:0 15px;cursor:pointer}button:hover:not(:disabled){color:white;background:#1e232a}button[aria-pressed=true]{color:#d4f5fd;background:#222d34;border-color:#37474f}button:focus-visible{outline:1px solid #88dbef;outline-offset:2px}button:disabled{opacity:.3;cursor:default}#export{color:#dbe4e8;border-color:#434a51;margin-left:12px}#export span{margin-left:10px}.workspace{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:visible}#stage{position:relative;aspect-ratio:10/7;flex:none;background:#111317;box-shadow:0 0 0 1px #282d34;touch-action:none}canvas{display:block;width:100%;height:100%}#objects{position:absolute;inset:0;pointer-events:none}.object{position:absolute;transform:translate(-50%,-50%);padding:0;width:44px;height:44px;min-width:44px;min-height:44px;pointer-events:auto;border-radius:50%;touch-action:none;outline:none!important}.object:hover:not(:disabled){background:transparent}.object:after{content:'';position:absolute;inset:5px;border:1px solid transparent;border-radius:50%}.object:focus-visible:after,.object.active:after{border-color:#d1e2e9;box-shadow:0 0 0 4px #11131777}.object.occluder:after{border-radius:3px}.object:focus-visible:before,.object.active:before{content:attr(data-label);position:absolute;white-space:nowrap;bottom:46px;left:50%;transform:translateX(-50%);font:10px monospace;background:#111317dd;padding:5px 7px;color:#e3edf1;border:1px solid #46505a;pointer-events:none}footer{display:flex;align-items:center;justify-content:space-between;gap:12px;font:10px monospace;color:#828b96;letter-spacing:.025em;flex:none}#study{color:#b0bac4}.hint{color:#717b86}.credit{font-size:9px}#status{font:10px monospace;color:#a1b3bc;min-height:12px;text-align:center;flex:none}#renderer-error{position:absolute;inset:20%;background:#111317;padding:20px;color:#f68b79} @media(max-width:800px){main{padding:22px 22px 14px;gap:14px}.edition{display:none}.hint{display:none}button{padding:0 12px}}@media(max-width:500px){main{padding:18px 14px 12px;gap:12px}h1{font-size:13px}.identity{gap:9px}header p{font-size:12px}.toolbar{flex-wrap:wrap;gap:3px}.presets,.actions{width:100%;justify-content:space-between}.presets button{flex:1}#export{margin-left:0}.credit{font-size:8px}footer{gap:7px;font-size:9px}}@media(max-height:500px) and (min-width:501px){main{padding:10px 20px 8px;gap:7px}header .mark{font-size:20px}header h1{font-size:12px}.toolbar{padding:0}footer{font-size:9px}#status{font-size:9px}button{font-size:11px;padding:0 10px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}