:root{color-scheme:dark;--bg:#111416;--panel:#191d20;--muted:#91999e;--line:#30363a;--lime:#d2ef7b;--text:#f0f3f2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,#panorama:focus-visible{outline:2px solid var(--lime);outline-offset:4px}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{display:none}header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 3.5%;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--text)}.brand svg{width:35px;height:35px;color:var(--lime)}.brand strong{font-size:23px;letter-spacing:1px}.brand span{font-size:14px;font-weight:400;letter-spacing:0;color:#a4acb0;padding-left:13px}.header-right{display:flex;align-items:center;gap:28px}.header-caption{color:var(--muted);font-size:14px}.primary{background:var(--lime);color:#192111;border:0;border-radius:8px;padding:12px 19px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:9px}.primary:hover{background:#e3ffa1}.primary svg{width:18px;height:18px}main{padding:33px 3.5% 18px;max-width:1800px;margin:auto}.workspace-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:600;color:var(--muted)}h1{font-size:30px;line-height:1.35;margin:8px 0 0;font-weight:550;letter-spacing:1px}.title-dot{color:var(--lime);margin-left:4px}.format-badge{border:1px solid var(--line);color:#b9c0c3;border-radius:30px;padding:6px 13px;font-size:13px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:28px}.viewer-shell{position:relative;min-height:590px;height:calc(100dvh - 282px);max-height:900px;overflow:hidden;background:#20282c;border-radius:14px;isolation:isolate}#panorama{width:100%;height:100%;position:absolute;inset:0}.pnlm-container{background:#20282c}.pnlm-load-box,.pnlm-error-msg{font-family:inherit}.pnlm-about-msg{display:none}.pnlm-grab{cursor:grab}.pnlm-grabbing{cursor:grabbing}.scene-top{position:absolute;left:24px;right:24px;top:22px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.scene-pill{font-size:13px;padding:7px 13px;border:1px solid #ffffff38;border-radius:30px;background:#17212155;backdrop-filter:blur(12px);display:flex;align-items:center;gap:8px}.pulse-dot{width:6px;height:6px;background:var(--lime);border-radius:100%}.icon-button{display:grid;place-items:center;background:transparent;border:0;width:38px;height:38px;border-radius:100%}.glass{background:#111b1e55;border:1px solid #ffffff38;backdrop-filter:blur(12px);pointer-events:auto}.scene-bottom{pointer-events:none;position:absolute;bottom:112px;left:28px;right:28px;display:flex;align-items:flex-end;justify-content:space-between;text-shadow:0 2px 14px #000}.scene-bottom .eyebrow{color:#e4ede3;font-weight:400;letter-spacing:3px}.scene-caption h2{font-size:28px;font-weight:500;margin:8px 0 2px}.scene-caption p{font-size:14px;color:#ecf0ee;margin:0}.heading{font:14px monospace;display:flex;align-items:center;gap:9px;padding:7px 10px;background:#111b1e66;border:1px solid #ffffff38;border-radius:8px}.heading svg{width:20px;height:20px}#drag-hint{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;padding:12px 19px;border-radius:30px;background:#14212373;color:white;backdrop-filter:blur(10px);font-size:14px;pointer-events:none;transition:opacity .5s}.hint-hidden{opacity:0}.toolbar{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:8px 10px;border:1px solid #ffffff28;border-radius:12px;background:#131a1de8;box-shadow:0 5px 30px #0003;backdrop-filter:blur(20px);white-space:nowrap}.toolbar button{height:40px;min-width:40px;padding:0 9px;display:flex;align-items:center;justify-content:center;gap:8px;border:0;background:transparent;border-radius:6px;font-size:14px}.toolbar button:hover,.toolbar button[aria-pressed=true]{background:#303a35;color:var(--lime)}.toolbar svg{width:19px;height:19px}.toolbar .divider{width:1px;height:24px;background:#ffffff24;margin:0 6px}.minus{font-size:27px;line-height:1}#zoom-value{font-size:13px;min-width:34px;text-align:center;color:#bec7cb}.viewer-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#121b20e8;padding:14px 24px;border-radius:10px;max-width:85%;text-align:center}.viewer-state[hidden]{display:none}.aside-heading{display:flex;justify-content:space-between;align-items:center}.aside-heading h2{font-size:17px;font-weight:600;margin:0}.aside-heading>span{font:12px monospace;color:var(--muted)}.aside-intro{font-size:14px;color:var(--muted);margin:8px 0 20px}.scene-card{display:block;text-align:left;width:100%;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:0;overflow:hidden;margin-bottom:14px;transition:border-color .2s}.scene-card:hover{border-color:#738064}.scene-card.selected{border-color:var(--lime)}.thumb{position:relative;height:107px;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;filter:brightness(.85)}.small-tag{position:absolute;top:10px;left:10px;font-size:12px;padding:2px 7px;background:#172026aa;border-radius:4px}.selected-tag{display:none;position:absolute;right:10px;bottom:10px;background:var(--lime);color:#1c2715;border-radius:4px;font-size:12px;padding:3px 7px}.selected .selected-tag{display:block}.card-text{padding:11px 14px;display:flex;flex-direction:column;gap:3px}.card-text strong{font-size:15px;font-weight:500}.card-text span{font-size:12px;color:var(--muted);letter-spacing:1px}.upload-card{width:100%;margin-top:5px;background:transparent;border:1px dashed #4e595b;border-radius:10px;display:flex;flex-direction:column;align-items:center;padding:18px 10px;gap:7px}.upload-card:hover{border-color:var(--lime);background:#d2ef7b08}.upload-icon{width:31px;height:31px;border-radius:50%;background:#d2ef7b10;display:grid;place-items:center;color:var(--lime)}.upload-card strong{font-size:14px;font-weight:500}.upload-card>span:last-child{font-size:12px;color:var(--muted)}.tips{margin-top:23px;padding-top:18px;border-top:1px solid var(--line)}.tips h3{font-size:13px;color:#bbc3c7;font-weight:500;margin:0 0 11px}.tips p{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px;margin:9px 0}.tips svg{width:15px;height:15px}footer{display:flex;justify-content:space-between;padding-top:22px;color:#747f85;font-size:12px}footer a{color:#747f85;text-decoration:none}footer a:hover{color:var(--lime)}dialog{padding:28px;border:1px solid #424b4f;border-radius:16px;background:#1b2023;color:var(--text);width:min(480px,calc(100% - 32px));box-shadow:0 25px 100px #0008}dialog::backdrop{background:#060b10bb;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between}.dialog-top .icon-button:hover{background:#353c40}dialog h2{font-size:24px;font-weight:500;margin:12px 0}dialog p{font-size:14px;color:#b0babf}.file-zone{width:100%;display:flex;flex-direction:column;align-items:center;gap:13px;border:1px dashed #6f8060;background:#d2ef7b08;border-radius:10px;padding:30px 12px;margin-top:25px}.file-zone svg{color:var(--lime);width:30px;height:30px}.file-zone strong{font-size:16px;font-weight:500}.file-zone span{color:var(--muted);font-size:12px}.privacy{text-align:center;font-size:12px!important}.format-help,.credit{margin-top:24px;line-height:1.7}.credit a{color:var(--lime)}#file-error{color:#ffa898;margin-bottom:0}#file-error:empty{display:none}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#d2ef7b;color:#172014;border-radius:8px;opacity:0;pointer-events:none;z-index:20;transition:opacity .2s;font-size:14px;max-width:90%;text-align:center}#toast.visible{opacity:1}#drop-overlay{display:none;position:absolute;inset:0;z-index:10;background:#131a1def;border:2px dashed var(--lime);border-radius:14px;align-items:center;justify-content:center;flex-direction:column;pointer-events:none}#drop-overlay svg{width:48px;height:48px;color:var(--lime)}#drop-overlay h2{font-weight:500}#drop-overlay p{color:var(--muted);font-size:14px}.viewer-shell.dragover #drop-overlay{display:flex}.viewer-shell:fullscreen{border-radius:0;max-height:none;height:100dvh;width:100vw}.viewer-shell:fullscreen .scene-bottom{bottom:115px}@media(min-width:1600px){.workspace{grid-template-columns:minmax(0,1fr) 300px}.thumb{height:140px}}@media(max-width:1000px){header{padding:0 24px}.header-caption{display:none}main{padding:28px 24px 20px}.workspace{grid-template-columns:minmax(0,1fr) 230px;gap:20px}.viewer-shell{min-height:580px}h1{font-size:25px}.brand span{display:none}}@media(max-width:740px){header{height:72px;padding:0 18px}.brand strong{font-size:21px}.brand svg{width:30px;height:30px}.primary{padding:10px 12px;font-size:13px}main{padding:24px 16px 20px}.eyebrow{font-size:12px;letter-spacing:1.5px}.workspace-head{margin-bottom:22px}.format-badge{display:none}h1{font-size:25px;margin-top:7px}.workspace{display:flex;flex-direction:column;gap:26px}.viewer-shell{height:62dvh;min-height:420px;max-height:680px;border-radius:12px}.scene-top{left:16px;right:16px;top:16px}.scene-bottom{left:20px;right:20px;bottom:100px}.scene-caption h2{font-size:24px}.scene-caption p{font-size:13px}.heading{font-size:12px}.toolbar{bottom:20px;padding:6px;gap:0;max-width:calc(100% - 24px)}.toolbar button{min-width:35px;padding:0 7px}.toolbar button span:not(.minus){display:none}.toolbar .divider{margin:0 4px}#drag-hint{font-size:13px;padding:10px 15px}.scene-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.scene-card{margin-bottom:0}.thumb{height:110px}.card-text{padding:10px 12px}.upload-card{margin-top:16px;padding:18px}.tips{display:none}.aside-intro{margin-bottom:14px}footer{font-size:12px;gap:16px}dialog{padding:23px}.header-right{gap:0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
