*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#20353d;color:#eef2ec;font:13px/1.5 system-ui,sans-serif}canvas{display:block;width:100%;height:100%;touch-action:none}header{position:absolute;left:26px;right:26px;top:22px;display:flex;justify-content:space-between;align-items:center;text-shadow:0 1px 4px #000}header div{text-align:center;letter-spacing:.2em}header strong,header span{display:block}header div span{font-size:9px;letter-spacing:.3em;color:#ded3b6}a{color:inherit;text-decoration:none}.unit{font-size:10px;letter-spacing:.12em}aside{position:absolute;left:26px;top:106px;width:242px;padding:18px;background:#162b31e8;border:1px solid #c2d0c133;border-radius:6px;backdrop-filter:blur(12px)}label{display:block;font-size:11px;letter-spacing:.05em;color:#d8e2d8}select,button{background:#2c4247;color:#f3efdf;border:1px solid #bac9ba47;border-radius:3px;font:inherit;padding:8px}select{width:100%;margin:6px 0 0}p{font-size:12px;color:#c6d2c9}button{cursor:pointer}button:hover{background:#3d5458}.buttons{display:flex;gap:6px;margin:14px 0}.buttons button:nth-child(2){flex:1}.check{margin:12px 0}.check input{margin:0 7px 0 0;accent-color:#dfca97}input[type=range]{width:100%;accent-color:#dfca97;margin:8px 0 14px}output{float:right}#reference{font-size:11px;color:#e6d1a2}.fine{font-size:10px;color:#a5b9ae;line-height:1.6}#clean{width:100%;font-size:11px}footer{position:absolute;left:26px;right:26px;bottom:18px;display:flex;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:.04em;text-shadow:0 1px 4px #000;background:#16323c88;padding:8px 12px;border-radius:3px}.clean header,.clean aside,.clean footer{display:none}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#1d343e;z-index:3}#loading[hidden]{display:none}@media(max-height:650px){aside{top:75px;padding:12px}.fine{display:none}header{top:14px}}@media(max-width:700px){header div{display:none}aside{width:205px;left:12px}header,footer{left:12px;right:12px}.unit{font-size:8px}#render-info{display:none}}

/* Keep the fixed drawing buffer undistorted in any CSS viewport. */
#study{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
aside{max-height:calc(100vh - 168px);overflow:auto}
.mode{margin-top:0;font-size:10px;color:#e6d1a2}.spaced{margin-top:12px}
#photo-reference{font-size:11px;color:#e6d1a2;overflow-wrap:anywhere}
#capture-status{font-size:10px;color:#e8c99b;overflow-wrap:anywhere}
#capture-status[data-status=declared]{color:#b8d5be}
#export-metadata{width:100%;font-size:11px;margin:0 0 7px}
footer{flex-wrap:wrap}#render-info{margin-left:auto}
@media(max-height:650px){aside{max-height:calc(100vh - 130px)}}
