:root{color-scheme:light;--ink:#203b3b;--sub:#6c7e7a;--line:#dce6df;--cream:#f5f7f2;--accent:#256d5d;--dark:#0b1b1d;--lime:#b3e2b0}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream);font-size:14px}.topbar{height:64px;display:flex;align-items:center;gap:24px;padding:0 28px;background:#fff;border-bottom:1px solid var(--line)}.brand{font-weight:750;font-size:16px;text-decoration:none;color:var(--ink)}.brand-mark{color:var(--accent);font-size:24px;vertical-align:-2px;margin-right:5px}.topline{color:#899892;border-left:1px solid var(--line);padding-left:24px}.privacy{margin-left:auto;color:#54786a;font-size:12px}.privacy span{display:inline-block;width:7px;height:7px;background:#6cb58a;border-radius:50%;margin-right:7px}.workspace{display:grid;grid-template-columns:320px minmax(0,1fr);height:calc(100vh - 64px);min-height:590px}.panel{background:#fff;padding:35px 25px 22px;display:flex;flex-direction:column;overflow:auto}.heading .kicker{margin:0 0 10px;color:#43826d;font-weight:650;font-size:12px;letter-spacing:.06em}.heading h1{font:500 29px/1.13 Georgia,serif;letter-spacing:-.035em;margin:0 0 12px}.heading>p:last-child{color:var(--sub);line-height:1.55;margin:0 0 25px}.dropzone{border:1.5px dashed #a9cbb7;border-radius:12px;background:#f4faf5;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;padding:21px 10px;cursor:pointer;transition:background .15s,border-color .15s}.dropzone:hover,.dropzone.dragging{background:#e8f5e9;border-color:#428c69}.dropzone strong{font-size:13px}.dropzone span:not(.drop-icon){font-size:12px;color:#4f7668}.dropzone small{font-size:11px;color:#92a59a}.drop-icon{display:grid;place-items:center;background:#dff0df;width:36px;height:36px;border-radius:50%;font-size:21px;color:#38765d}.file-info{margin-top:14px;overflow-wrap:anywhere}.file-info span,.file-info strong{display:block}.file-label{color:#81938a;font-size:11px}.file-info strong{font-size:12px;margin:4px 0}.file-info #metadata{font-size:11px;color:#74877d}.text-button{background:none;border:0;padding:7px 0;color:#397961;text-decoration:underline;cursor:pointer}.divider{height:1px;background:var(--line);margin:27px 0}.controls h2{font-size:13px;margin:0 0 16px}.controls label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:14px;color:#5c7067}select{font:inherit;background:#f7f9f6;border:1px solid #dae5dc;border-radius:7px;color:#314d41;padding:7px;max-width:150px}input[type=range]{accent-color:var(--accent);width:125px}.fit-button{width:100%;border:1px solid #cddbd1;background:#fff;color:#2b6753;border-radius:7px;padding:9px;cursor:pointer}.fit-button:disabled{opacity:.45;cursor:default}.panel-foot{margin-top:auto;padding-top:24px;color:#7b8d83;font-size:11px;line-height:1.55}.panel-foot strong{color:#5f7d6c}.panel-foot p{margin:4px 0 7px}.panel-foot a{color:#43826d}.stage{position:relative;min-width:0;min-height:400px;background:radial-gradient(ellipse at 50% 46%,#1b3735 0%,#0d2020 60%,#071416 100%);overflow:hidden}.stage:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.15;background-image:linear-gradient(#729d83 1px,transparent 1px),linear-gradient(90deg,#729d83 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(transparent 40%,black 100%)}#canvas,.stage canvas{width:100%;height:100%;display:block}.stage-top,.stage-bottom{position:absolute;z-index:2;left:26px;right:26px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.stage-top{top:22px}.stage-top div{display:flex;flex-direction:column;gap:4px}.stage-top strong{color:#d7e8dc;font-size:13px;font-weight:550;max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eyebrow{font-size:10px;letter-spacing:.08em;color:#799b87}.stage-top>span{font-size:11px;border:1px solid #4b6a5b;color:#bad3bd;border-radius:20px;padding:5px 10px}.stage-bottom{bottom:22px;color:#9ab4a5;font-size:11px}.navigation b{padding:0 5px;color:#537160}.empty{position:absolute;z-index:1;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#dcebdd;pointer-events:none}.empty[hidden]{display:none}.empty h2{font:400 28px Georgia,serif;margin:18px 0 6px}.empty p{color:#a3bca9;max-width:300px;line-height:1.5}.crosshair{font:50px/1 Georgia,serif;color:#a3d7ad}.error{position:absolute;z-index:5;top:80px;left:26px;right:26px;background:#fff1ee;border:1px solid #f1b8a9;color:#753d30;border-radius:8px;padding:12px}.error[hidden]{display:none}:focus-visible{outline:3px solid #dfaa4b;outline-offset:3px}@media(max-width:760px){.topline{display:none}.topbar{padding:0 16px}.privacy{font-size:10px}.workspace{height:auto;display:flex;flex-direction:column}.panel{padding:23px 18px}.heading h1{font-size:24px}.heading>p:last-child{margin-bottom:15px}.dropzone{padding:14px}.divider{margin:18px 0}.controls{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.controls h2{grid-column:1/-1;margin:0}.controls label{margin:0;gap:5px}.controls label:nth-of-type(3),.fit-button{grid-column:1/-1}.panel-foot{padding-top:14px}.stage{height:62vh;min-height:380px}.navigation{display:none}.stage-top,.stage-bottom{left:16px;right:16px}}
:root{color-scheme:light;--ink:#203b3b;--sub:#6c7e7a;--line:#dce6df;--cream:#f5f7f2;--accent:#256d5d;--dark:#0b1b1d;--lime:#b3e2b0}.view-actions{display:flex;gap:6px;width:100%}.view-actions button{flex:1;white-space:nowrap}.classes{margin-top:20px;border-top:1px solid var(--line);padding-top:15px;font-size:12px}.classes summary{font-weight:700;cursor:pointer}.classes summary span{font-weight:400;color:var(--sub)}.classes p{font-size:11px;color:var(--sub);line-height:1.4}.class-row{display:flex;align-items:center;gap:8px;padding:4px 0}.class-row label{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.class-row input[type=color]{border:0;padding:0;background:none;width:25px;height:21px;cursor:pointer}.class-row span:last-child{color:var(--sub);font-size:11px}.stage.light{background:#e4ebe6}.stage.light .stage-top strong,.stage.light .empty,.stage.light .stage-bottom{color:#26473e}.stage.light .stage-top>span{color:#26473e;border-color:#96b5a0}.stage.light .empty p,.stage.light .eyebrow{color:#557b67}.stage.light:after{opacity:.08}@media(max-width:760px){.view-actions{grid-column:1/-1}.controls{min-width:0}.controls label{min-width:0}select{min-width:0;max-width:125px}}
.panorama-control{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}.panorama-control h2{font-size:13px;margin:0}.panorama-control p{font-size:11px;color:var(--sub);line-height:1.4}.pano-open{display:block;text-align:center;padding:9px;border:1px solid #cddbd1;color:#2b6753;border-radius:7px;cursor:pointer}.mode-switch{position:absolute;z-index:4;top:22px;left:50%;transform:translateX(-50%);display:flex;gap:2px;border:1px solid #526e5e;border-radius:8px;background:#10231f;padding:3px}.mode-switch button{font:inherit;font-size:11px;color:#aac5b1;background:none;border:0;border-radius:5px;padding:6px 11px;cursor:pointer;white-space:nowrap}.mode-switch button[aria-pressed=true]{background:#456a51;color:#fff}.mode-switch button:disabled{opacity:.4;cursor:default}#pano-canvas{position:absolute;inset:0;z-index:1}#pano-canvas[hidden]{display:none}#pano-canvas canvas{width:100%;height:100%;display:block}@media(max-width:760px){.mode-switch{top:66px}.stage-top strong{max-width:60vw}}
#canvas[hidden]{display:none}.stage:has(#pano-canvas:not([hidden])):after{display:none}
.controls input[type=number],.time-filter input{width:96px;min-width:0;padding:6px;border:1px solid #dae5dc;border-radius:6px;font:inherit}.time-filter{border-top:1px solid var(--line);margin-top:20px;padding-top:15px;font-size:12px}.time-filter summary{font-weight:700;cursor:pointer}.time-filter p{font-size:11px;color:var(--sub)}.time-filter label{display:flex;justify-content:space-between;align-items:center;margin:8px 0}.time-filter button{margin-top:7px}@media(max-width:760px){.controls input[type=range]{width:74px;min-width:0}.controls input[type=number]{width:72px}.controls label{gap:3px}.workspace{overflow-x:hidden}}
@media(max-width:760px){body{overflow-x:hidden}.panel{min-width:0}.controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.controls label{min-width:0;gap:3px}.controls input[type=range]{max-width:45%}.controls select{max-width:56%}.controls input[type=number]{max-width:48%}.stage{width:100%}}
.folder-open{margin-top:9px;font-size:12px}.file-info strong{overflow-wrap:anywhere}
.folder-note{font-size:12px;line-height:1.45;color:#687c76;margin:8px 2px 0}
.overview{position:absolute;z-index:4;right:18px;bottom:52px;width:210px;background:#122923ec;border:1px solid #537765;border-radius:8px;color:#cfe3d2;font-size:11px;overflow:hidden}.overview summary{padding:8px;cursor:pointer}.stage .overview canvas{display:block;width:200px;height:140px;margin:0 auto 5px}.profile{position:absolute;z-index:4;left:18px;bottom:52px;width:min(580px,calc(100% - 260px));background:#102623f5;border:1px solid #537765;border-radius:8px;color:#d9eadb;padding:10px}.profile[hidden]{display:none}.profile header{display:flex;justify-content:space-between;align-items:center}.profile button{border:0;background:none;color:#fff;font-size:22px;cursor:pointer}.stage .profile canvas{width:100%;height:130px}.profile p{font-size:10px;margin:5px 0;color:#b3cbbc}.stage:has(#pano-canvas:not([hidden])) .overview,.stage:has(#pano-canvas:not([hidden])) .profile{display:none}@media(max-width:760px){.overview{right:8px;bottom:42px;width:120px}.stage .overview canvas{width:110px;height:77px}.profile{left:8px;bottom:42px;width:calc(100% - 144px)}.stage .profile canvas{height:85px}.profile p{font-size:9px}}
.sidebar-close{align-self:flex-end;border:0;background:none;color:#397961;cursor:pointer;font:inherit;font-size:12px;margin:-12px 0 14px}.settings-open{position:absolute;z-index:5;left:20px;top:72px;border:1px solid #5b7a68;border-radius:7px;background:#10231fed;color:#d1e7d5;padding:7px 10px;cursor:pointer}.panel-collapsed .workspace{grid-template-columns:minmax(0,1fr)}.panel-collapsed .panel{display:none}@media(max-width:760px){.settings-open{top:105px;left:12px}.panel-collapsed .workspace{display:flex}.panel-collapsed .stage{height:calc(100vh - 64px)}}
