:root{--background-beige:#f5efe6}@font-face{font-family:HarmonyOS;src:url(/font/HarmonyOS_Sans_Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:HarmonyOS;src:url(/font/HarmonyOS_Sans_Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}*{margin:0;padding:0;cursor:none;box-sizing:border-box;font-family:HarmonyOS,Segoe UI,sans-serif}html{background:var(--background-beige)}body,html{width:100%;height:100%;background-color:#070707}button{border:none}.container{position:fixed;inset:0;width:100%;height:100%;opacity:0}.three-canvas{width:100%;height:100%;display:block;z-index:1}.scene-container{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center}.canvas-anchor{position:absolute;inset:0;width:100%;height:100%;z-index:10;outline:none}.loading-text{position:relative;text-align:center;z-index:11;line-height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;display:inline-block;width:-moz-fit-content;width:fit-content;height:auto;transform-origin:center center;will-change:transform,opacity}.subtitle{font-weight:700;white-space:nowrap}.progress-text,.subtitle{font-size:clamp(14px,1.25vw,24px);color:#fff}.progress-text{margin-top:32px;font-weight:400}@media(max-width:375px){.subtitle{font-size:16px}.progress-text{font-size:14px;margin-top:22px}}.app-header{display:flex;justify-content:space-between;align-items:center;padding:16px 48px;position:fixed;top:0;left:0;right:0;z-index:10}@media(max-width:768px){.app-header{padding:16px}}.app-header__title{color:#fff;font-size:48px}@media(max-width:768px){.app-header__title{font-size:24px}}.volume-icon{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:transform .15s ease}.volume-icon--scaling{transform:scale(.85)}.volume-icon__bar{transform-origin:center;transform-box:fill-box}.volume-icon--playing .volume-icon__bar{animation:sound-wave .7s ease-in-out infinite alternate}.volume-icon--playing .volume-icon__bar--1{animation-delay:0s}.volume-icon--playing .volume-icon__bar--2{animation-delay:.1s}.volume-icon--playing .volume-icon__bar--3{animation-delay:.2s}.volume-icon--playing .volume-icon__bar--4{animation-delay:.3s}.volume-icon--playing .volume-icon__bar--5{animation-delay:.4s}.volume-icon--playing .volume-icon__bar--6{animation-delay:.5s}.volume-icon--playing .volume-icon__bar--7{animation-delay:.6s}@keyframes sound-wave{0%{transform:scaleY(1)}50%{transform:scaleY(.25)}to{transform:scaleY(1)}}.world-btn{position:fixed;display:inline-block;border-radius:12px;background:transparent;border:none;cursor:pointer;padding:0;overflow:visible}.world-btn:before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background:repeating-linear-gradient(119.7deg,#fff,#fff 24.91%,hsla(0,0%,100%,0) 45.61%,hsla(0,0%,100%,.5) 68.85%,#fff);background-size:300% 100%;border-radius:12px;z-index:1;animation:borderFlow 3s linear infinite;animation-delay:var(--anim-delay,0s);pointer-events:none}.world-btn__card{position:relative;z-index:2;display:inline-block;padding:12px 32px;font-size:16px;font-weight:500;color:#fff;background:#070707;border-radius:12px;white-space:nowrap;animation:none;transition:all .3s ease}.world-btn:hover:before{animation:borderFlow 1.5s linear infinite}.world-btn:hover .world-btn__card{background:#070707;box-shadow:0 0 12px hsla(0,0%,100%,.1)}@keyframes borderFlow{0%{background-position:0 0}to{background-position:100% 0}}.bottom-controls-container{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);z-index:50;pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .3s ease}@media(max-width:640px){.bottom-controls-container{display:none}}.bottom-controls-pill{display:flex;align-items:center;background-color:rgba(24,24,27,.7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:11px 28px;border-radius:12px;gap:2rem;font-size:clamp(10px,1.25vw,14px);letter-spacing:0;color:#fff;font-weight:400;position:relative}.bottom-controls-pill:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:12px;padding:1px;background:linear-gradient(135deg,hsla(0,0%,100%,.5),hsla(0,0%,100%,.3) 10%,hsla(0,0%,100%,.2) 25%,transparent 45%,transparent 55%,hsla(0,0%,100%,.2) 75%,hsla(0,0%,100%,.3) 90%,hsla(0,0%,100%,.5));mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;pointer-events:none}.control-segment{gap:.875rem;padding:3px 0}.control-segment,.icon-wrapper{display:flex;align-items:center}.icon-wrapper{justify-content:center}.control-icon{width:42px;height:42px;transition:color .3s ease}.control-label{color:#fff;white-space:nowrap}@media(max-width:640px){.bottom-controls-pill{padding:.5rem 1rem;gap:1rem}.control-icon{width:2rem;height:2rem}}.modal-backdrop{position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;overflow:hidden}.modal-wrapper{width:100%;max-width:672px;display:flex;flex-direction:column;gap:12px;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:flex-end;padding:0 4px}.modal-title{color:#fff;font-size:16px;font-weight:700;line-height:100%;text-shadow:0 2px 4px rgba(0,0,0,.5)}@media(max-width:640px){.modal-title{font-size:12px}}.modal-close-btn{background:none;border:none;color:#fff;transition:all .2s ease;font-weight:400;font-size:16px;text-transform:uppercase}.modal-close-btn:hover{font-weight:700}.modal-close-btn:active{font-weight:700;transform:scale(.85)}.modal-plate{position:relative;background:rgba(0,0,0,.5);border-radius:16px;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:36px}.modal-plate:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:16px;padding:1px;background:linear-gradient(135deg,hsla(0,0%,100%,.5),hsla(0,0%,100%,.3) 10%,hsla(0,0%,100%,.2) 25%,transparent 45%,transparent 55%,hsla(0,0%,100%,.2) 75%,hsla(0,0%,100%,.3) 90%,hsla(0,0%,100%,.5));mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;pointer-events:none}@media(max-width:640px){.modal-plate{flex-direction:column;padding:24px;gap:24px}}.modal-left{flex:1.2 1}.modal-desc{font-size:clamp(10px,1.25vw,14px);color:#fff;line-height:140%;font-weight:400}.modal-divider{width:1px;align-self:stretch;background:linear-gradient(180deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 30%,hsla(0,0%,100%,.8) 50%,hsla(0,0%,100%,.5) 70%,hsla(0,0%,100%,0))}@media(max-width:640px){.modal-wrapper{max-width:324px}.modal-divider{width:100%;height:1px;background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.5) 30%,hsla(0,0%,100%,.8) 50%,hsla(0,0%,100%,.5) 70%,hsla(0,0%,100%,0))}.qr-border-wrap img{width:120px}}.modal-right{flex:.8 1}.modal-right,.qr-wrap{display:flex;justify-content:center;align-items:center}.qr-wrap{transition:border-color .3s ease;position:relative}.qr-wrap:before{content:"";position:absolute;inset:0;border-radius:16px;padding:1px;background:radial-gradient(ellipse at 0 0,#fff 0,hsla(0,0%,100%,.5) 35%,hsla(0,0%,100%,0) 75%),radial-gradient(ellipse at 100% 0,#fff 0,hsla(0,0%,100%,.5) 35%,hsla(0,0%,100%,0) 75%),radial-gradient(ellipse at 0 100%,#fff 0,hsla(0,0%,100%,.5) 35%,hsla(0,0%,100%,0) 75%),radial-gradient(ellipse at 100% 100%,#fff 0,hsla(0,0%,100%,.5) 35%,hsla(0,0%,100%,0) 75%);background-repeat:no-repeat;background-size:70px 70px;background-position:0 0,100% 0,0 100%,100% 100%;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;pointer-events:none}.qr-wrap-content{position:relative;background:rgba(7,7,7,.5);border-radius:14px;padding:22px;color:#fff;z-index:1}.qr-wrap-content img{width:180px;border-radius:8px}.custom-cursor{position:fixed;top:0;left:0;z-index:999999999;pointer-events:none;will-change:transform}.debug-toggle{position:fixed;top:16px;right:16px;z-index:101;width:36px;height:36px;border-radius:8px;background:rgba(24,24,27,.7);-webkit-backdrop-filter:blur(10.3px);backdrop-filter:blur(10.3px);border:1px solid hsla(0,0%,100%,.12);color:#fff;font-size:12px;font-weight:700;font-family:inherit;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;padding:0}.debug-toggle:hover{border-color:hsla(0,0%,100%,.3);background:rgba(24,24,27,.9)}.debug-panel{position:fixed;top:60px;right:16px;z-index:100;width:290px;max-height:calc(100vh - 100px);overflow-y:auto;background:rgba(24,24,27,.7);-webkit-backdrop-filter:blur(10.3px);backdrop-filter:blur(10.3px);border:1px solid hsla(0,0%,100%,.08);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;font-family:HarmonyOS,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#fff}.camera-section{border-bottom:1px solid hsla(0,0%,100%,.12)}.camera-section .model-section__title{color:rgba(255,200,100,.8)}.building-section{border-bottom:1px solid hsla(0,0%,100%,.12)}.building-section .model-section__title{color:rgba(130,200,255,.8)}.model-section{border-bottom:1px solid hsla(0,0%,100%,.06);padding-bottom:8px}.model-section:last-child{border-bottom:none;padding-bottom:0}.model-section__title{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:hsla(0,0%,100%,.65);margin-bottom:5px}.model-section__inactive{font-size:9px;font-weight:400;letter-spacing:.06em;color:hsla(0,100%,70%,.6);margin-left:6px}.param-row{display:flex;align-items:center;gap:3px;margin-bottom:3px}.param-row__label{font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;width:42px;flex-shrink:0;color:hsla(0,0%,100%,.45)}.param-row input{flex:1 1;min-width:0;background:hsla(0,0%,100%,.06);border:none;border-bottom:1px solid hsla(0,0%,100%,.1);color:#fff;font-size:11px;font-family:inherit;padding:3px 5px;text-align:right;border-radius:3px;outline:none;transition:border-color .2s,background .2s}.param-row input:focus{border-bottom-color:hsla(0,0%,100%,.45);background:hsla(0,0%,100%,.1)}.param-row input:disabled{opacity:.25;cursor:not-allowed;background:rgba(255,60,60,.05)}.param-row input[type=number]::-webkit-inner-spin-button,.param-row input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.param-row input[type=number]{-moz-appearance:textfield}