:root{font-family:Inter,"Microsoft YaHei",sans-serif;color:#ede6f7;background:#161020;color-scheme:dark;font-size:15px}*{box-sizing:border-box}body{margin:0}header{padding:22px 26px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #41334f}h1{font-size:25px;margin:8px 0 0}h2{font-size:22px}a{color:#ddbbff}.eyebrow{font-size:11px;letter-spacing:2px;color:#bd9cdd}main{padding:16px 24px;max-width:1800px;margin:auto}button,select{font:inherit;background:#342442;color:#f7f1ff;border:1px solid #71538d;border-radius:8px;padding:10px 14px;cursor:pointer}button:hover,button[aria-pressed=true]{background:#7145a0;border-color:#c5a3e8}button:disabled{opacity:.45;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f6c771;outline-offset:3px}.toolbar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}.toolbar>div{display:flex;gap:8px;margin-right:auto}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 270px;border:1px solid #4f3c64;border-radius:15px;overflow:hidden;background:#20172c}#stage{position:relative;height:530px;min-width:0;background:radial-gradient(ellipse at center,#3c2c52,#181124);overflow:hidden}#stage>canvas{display:block;width:100%;height:100%;touch-action:none}#gate{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:35px;background:radial-gradient(ellipse at center,#3c2c52,#181124)}#gate[hidden]{display:none}#gate p{line-height:1.8;max-width:530px;color:#d0bfdc}#gate button{background:#9161bf;font-weight:bold;padding:14px 23px}aside{padding:20px;background:#23192f}aside h2{margin:10px 0 20px}dl{display:grid;grid-template-columns:1fr auto;gap:13px;font-size:14px}dt{color:#c6b5d4}dd{margin:0;font-variant-numeric:tabular-nums}aside label{display:block;margin:14px 0;line-height:1.6}aside select{width:100%;margin-top:7px;font-size:14px}.hint,small{font-size:12px;line-height:1.65;color:#c6b5d4}#inset-wrap{border-top:1px solid #51405f;padding-top:14px;font-size:13px}#inset{width:100%;height:auto;aspect-ratio:4/3;margin-top:10px;background:#100c16;border-radius:7px;display:block}small{display:block;margin-top:7px}.transport{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 0}.scrub{flex:1;min-width:180px;display:flex;align-items:center;gap:10px}input[type=range]{width:100%;accent-color:#c496ee}input[type=checkbox]{accent-color:#b784df}.transport select{padding:7px}.caveat{margin:0;font-size:12px;color:#b8a5ca;line-height:1.8}.legend{position:absolute;bottom:15px;left:15px;background:#171020dd;padding:10px;border:1px solid #695479;border-radius:8px;font-size:12px;pointer-events:none}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 5px}.purple{background:#bf9aef}.orange{background:#ffbd63}.green{background:#73e4bd}@media(min-width:1400px){#stage{height:620px}}@media(max-width:700px){header{padding:16px}h1{font-size:20px}header a{font-size:12px;white-space:nowrap}main{padding:12px}.toolbar button{font-size:13px;padding:9px}.workspace{grid-template-columns:1fr}#stage{height:370px}aside{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;padding:15px}aside>.eyebrow,aside>h2,aside>dl{grid-column:1/-1}aside h2{margin-bottom:0}#inset-wrap{grid-column:1/-1;display:none}aside label{font-size:13px}.hint{margin:0}button{padding:9px;font-size:13px}.transport .scrub{order:2;flex-basis:75%}.transport output{order:3}.caveat{font-size:12px}}@media print{.toolbar,.transport,#gate{display:none}.workspace{display:block}aside{display:none}}

.scrub{white-space:nowrap}.transport>label:last-child{white-space:nowrap}#stage{height:100%;min-height:530px}@media(min-width:1400px){#stage{height:100%;min-height:620px}}@media(max-width:700px){#stage{height:370px;min-height:370px}}

.image-tabs{display:flex;gap:6px}.image-tabs button{font-size:12px;padding:7px 10px}#original-photo{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#100c16;margin-top:10px;border-radius:7px}#photo-link{display:block}#allpoints{font-size:12px;padding:7px 10px}#layer-status:empty{display:none}@media(max-width:700px){#inset-wrap{display:block;grid-column:1/-1;max-width:100%}#original-photo,#inset{max-height:240px}#mesh-panel[hidden],#photo-panel[hidden]{display:none}}

#cloudfocus{font-size:12px;padding:7px 10px}.image-tabs{flex-wrap:wrap}
