*{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html,body,#app,#viewer,#dollhouse{width:100%;height:100%;overflow:hidden;background:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#viewer canvas{display:block;cursor:grab}#viewer canvas:active{cursor:grabbing}#dollhouse canvas{display:block;cursor:grab}#dollhouse canvas:active{cursor:grabbing}#loader,#fatal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;color:#e6e9f0;transition:opacity .6s ease;overflow:hidden}#loader{background:radial-gradient(ellipse at center,#171a21,#0a0b0e)}#loader.hidden{opacity:0;pointer-events:none}#loader-bg{position:absolute;top:-5%;right:-5%;bottom:-5%;left:-5%;background-size:cover;background-position:center;filter:blur(40px) brightness(.45) saturate(1.1);transform:scale(1.1);opacity:0;transition:opacity .8s ease}#loader-bg.visible{opacity:1}.loader-inner{position:relative;text-align:center;width:min(360px,84vw);display:flex;flex-direction:column;align-items:center}.loader-inner h1{font-size:17px;font-weight:600;margin-top:22px}.loader-inner p{color:#8b93a7;font-size:13px;margin-top:8px}.progress-ring{--pct: 0;width:92px;height:92px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(#4f8cff calc(var(--pct) * 1%),#ffffff1f 0);transition:background .2s ease}.progress-ring:before{content:"";position:absolute;width:92px;height:92px;border-radius:50%;background:conic-gradient(#4f8cff calc(var(--pct) * 1%),#ffffff1f 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px));mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px))}.progress-ring span{position:relative;font-size:18px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}#scene-title{position:absolute;top:16px;left:16px;background:#0a0b0e99;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;padding:8px 16px;border-radius:999px;font-size:14px;font-weight:500}#dollhouse-toggle{position:absolute;top:16px;right:16px;pointer-events:auto;display:flex;align-items:center;gap:7px;background:#0a0b0e99;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;border:1px solid rgba(255,255,255,.15);padding:8px 16px;border-radius:999px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .15s,border-color .15s}#dollhouse-toggle:hover{background:#14161ccc;border-color:#ffffff4d}#dollhouse-toggle.active{background:#4f8cff;border-color:#4f8cff}#tooltip{position:absolute;transform:translate(-50%,-140%);background:#0a0b0ed9;color:#fff;padding:5px 12px;border-radius:6px;font-size:13px;white-space:nowrap}#nav-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}#nav-loading .spinner{width:40px;height:40px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;animation:navSpin .8s linear infinite}@keyframes navSpin{to{transform:rotate(360deg)}}#overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#000000bf;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;animation:overlayFadeIn .2s ease}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes overlayCardIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}#overlay-card{position:relative;background:#14161c;color:#e6e9f0;border:1px solid #2a2f3d;border-radius:14px;box-shadow:0 24px 60px #00000080;max-width:min(860px,94vw);max-height:88vh;overflow:auto;padding:28px;width:100%;animation:overlayCardIn .22s ease}#overlay-close{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff0f;border:none;border-radius:50%;color:#8b93a7;font-size:16px;cursor:pointer;transition:background-color .15s,color .15s}#overlay-close:hover{background:#ffffff24;color:#fff}#overlay-content h2{font-size:21px;font-weight:700;margin-bottom:14px;padding-right:34px;display:flex;align-items:center;gap:10px}#overlay-content p{line-height:1.7;white-space:pre-wrap;color:#c6ccda;font-size:14.5px}#overlay-content .video-frame{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;border-radius:10px;overflow:hidden;box-shadow:0 8px 24px #0006}#overlay-content .video-frame iframe,#overlay-content .video-frame video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}
