/*!
 * Photo Sphere Viewer 5.14.1
 * @copyright 2014-2015 Jérémy Heleine
 * @copyright 2015-2026 Damien "Mistic" Sorel
 * @licence MIT (https://opensource.org/licenses/MIT)
 */.psv-container{--psv-core-loaded:true;container-name:psv-container;container-type:size;width:100%;height:100%;margin:0;padding:0;position:relative;background:radial-gradient(#fff 0,#fdfdfd 16%,#fbfbfb 33%,#f8f8f8 49%,#efefef 66%,#dfdfdf 82%,#bfbfbf 100%);overflow:hidden}.psv-container *{box-sizing:content-box}.psv-canvas-container{position:absolute;top:0;left:0;z-index:0;transition:opacity .1s linear}.psv-fullscreen-emulation{position:fixed!important;top:0!important;left:0!important;width:100%!important;height:100%!important;z-index:9999}.psv-loader-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:80}.psv-loader,.psv-loader-container{display:flex;align-items:center;justify-content:center}.psv-loader{--psv-loader-border:3px;--psv-loader-tickness:10px;position:relative;color:rgba(255,255,255,.7);width:150px;height:150px}.psv-loader-canvas{position:absolute;top:0;left:0;width:100%;height:100%;color:rgba(61,61,61,.5);z-index:-1}.psv-loader-text{font:600 16px sans-serif;text-align:center}.psv-loader--undefined .psv-loader-canvas{animation:psv-loader 2s cubic-bezier(.75,.25,.25,.75) infinite}@keyframes psv-loader{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.psv-navbar{display:flex;position:absolute;z-index:90;bottom:-40px;left:0;width:100%;height:40px;background:rgba(61,61,61,.5);transition:bottom .1s ease-in-out;font:16px sans-serif;cursor:default}.psv-navbar--open{bottom:0}.psv-navbar,.psv-navbar *{box-sizing:content-box}.psv-button{flex:0 0 auto;padding:10px;position:relative;cursor:pointer;height:20px;width:20px;background:transparent;color:rgba(255,255,255,.7)}.psv-button--active{background:rgba(255,255,255,.2)}.psv-button--disabled{pointer-events:none;opacity:.5}.psv-button-svg{width:100%;transform:scale(1);transition:transform .2s ease;vertical-align:initial}.psv-button:not(.psv-button--disabled):focus-visible{outline:2px solid #007cff;outline-offset:-2px}.psv-container:not(.psv--is-touch) .psv-button--hover-scale:not(.psv-button--disabled):hover .psv-button-svg{transform:scale(1.2)}.psv-move-button+.psv-move-button{margin-left:-10px}.psv-download-button{color:rgba(255,255,255,.7)!important;text-decoration:none!important}.psv-download-button:after,.psv-download-button:before{display:none!important}.psv-custom-button{width:auto;min-width:20px}.psv-custom-button--no-padding{padding:0;height:100%}.psv-caption{flex:1 1 100%;color:rgba(255,255,255,.7);overflow:hidden;text-align:center;cursor:unset;padding:unset;height:unset;width:unset}.psv-caption-content{display:inline-block;padding:10px;white-space:nowrap}.psv-zoom-range.psv-button{width:80px;height:1px;margin:10px 0;padding:9.5px 0;max-width:600px}.psv-zoom-range-line{position:relative;width:80px;height:1px;background:rgba(255,255,255,.7);transition:all .3s ease}.psv-zoom-range-handle{position:absolute;border-radius:50%;top:-3px;width:7px;height:7px;background:rgba(255,255,255,.7);transform:scale(1);transition:transform .3s ease}.psv-zoom-range:not(.psv-button--disabled):hover .psv-zoom-range-line{box-shadow:0 0 2px rgba(255,255,255,.7)}.psv-zoom-range:not(.psv-button--disabled):hover .psv-zoom-range-handle{transform:scale(1.3)}.psv-notification{position:absolute;z-index:100;bottom:-40px;display:flex;justify-content:center;box-sizing:border-box;width:100%;padding:0 2em;opacity:0;transition-property:opacity,bottom;transition-timing-function:ease-in-out;transition-duration:.2s}.psv-notification-content{max-width:50em;background:rgba(61,61,61,.8);border-radius:4px;padding:.5em 1em;font:14px sans-serif;color:rgb(255,255,255)}.psv-notification--visible{opacity:1;bottom:80px}.psv-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;z-index:110;inset:0;background:radial-gradient(#fff 0,#fdfdfd 16%,#fbfbfb 33%,#f8f8f8 49%,#efefef 66%,#dfdfdf 82%,#bfbfbf 100%);opacity:.8;cursor:default}.psv-overlay-image{width:100%;text-align:center;color:rgb(48,48,48)}.psv-overlay-image svg{width:50%}@container psv-container (orientation: landscape){.psv-overlay-image svg{width:33%}}.psv-overlay-title{color:black;margin-top:1em;font:30px sans-serif;text-align:center}.psv-overlay-text{color:rgba(0,0,0,.8);font:20px sans-serif;opacity:.8;text-align:center}.psv-panel{position:absolute;z-index:90;right:0;height:100%;width:400px;max-width:calc(100% - 9px);background:rgba(10,10,10,.7);transform:translate3d(100%,0,0);opacity:0;transition-property:opacity,transform;transition-timing-function:ease-in-out;transition-duration:.1s;cursor:default;margin-left:9px}.psv--has-navbar .psv-panel{height:calc(100% - 40px)}.psv-panel-close-button{display:none;position:absolute;top:-1px;right:0;width:19.2px;height:19.2px;padding:6.4px;background:transparent;color:#fff;transition:background .3s ease-in-out;cursor:pointer}.psv-panel-close-button svg{transition:transform .3s ease-in-out}.psv-panel-close-button:hover{background:rgba(0,0,0,.9)}.psv-panel-close-button:hover svg{transform:scale(-1)}.psv-panel-resizer{display:none;position:absolute;top:0;left:-9px;width:9px;height:100%;background-color:rgba(0,0,0,.9);cursor:col-resize}.psv-panel-resizer:before{content:"";position:absolute;top:50%;left:5.5px;margin-top:-14.5px;width:1px;height:1px;box-shadow:1px 0 #fff,3px 0 #fff,5px 0 #fff,1px 2px #fff,3px 2px #fff,5px 2px #fff,1px 4px #fff,3px 4px #fff,5px 4px #fff,1px 6px #fff,3px 6px #fff,5px 6px #fff,1px 8px #fff,3px 8px #fff,5px 8px #fff,1px 10px #fff,3px 10px #fff,5px 10px #fff,1px 12px #fff,3px 12px #fff,5px 12px #fff,1px 14px #fff,3px 14px #fff,5px 14px #fff,1px 16px #fff,3px 16px #fff,5px 16px #fff,1px 18px #fff,3px 18px #fff,5px 18px #fff,1px 20px #fff,3px 20px #fff,5px 20px #fff,1px 22px #fff,3px 22px #fff,5px 22px #fff,1px 24px #fff,3px 24px #fff,5px 24px #fff,1px 26px #fff,3px 26px #fff,5px 26px #fff,1px 28px #fff,3px 28px #fff,5px 28px #fff;background:transparent}.psv-panel-content{width:100%;height:100%;box-sizing:border-box;color:rgb(220,220,220);font:16px sans-serif;overflow:auto}.psv-panel-content:not(.psv-panel-content--no-margin){padding:1em}.psv-panel-content--no-interaction{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.psv-panel--open{transform:translateZ(0);opacity:1;transition-duration:.2s}.psv-panel--open .psv-panel-close-button,.psv-panel--open .psv-panel-resizer{display:block}@container psv-container (max-width: 400px){.psv-panel{width:100%!important;max-width:none}.psv-panel-resizer{display:none!important}}.psv-panel-menu{height:100%;display:flex;flex-direction:column}.psv-panel-menu-title{flex:none;display:flex;align-items:center;font:24px sans-serif;margin:24px 12px}.psv-panel-menu-title svg{width:24px;height:24px;margin-right:12px}.psv-panel-menu-list{flex:1 1;list-style:none;margin:0;padding:0;overflow-x:hidden}.psv-panel-menu-item{min-height:1.5em;padding:.5em 1em;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;transition:background .1s ease-in-out}.psv-panel-menu-item--active{outline:1px solid currentcolor;outline-offset:-1px}.psv-panel-menu-item-icon{flex:none;height:1.5em;width:1.5em;margin-right:.5em}.psv-panel-menu-item-icon img{max-width:100%;max-height:100%}.psv-panel-menu-item-icon svg{width:100%;height:100%}.psv-panel-menu-item:focus-visible{outline:2px solid #007cff;outline-offset:-2px}.psv-panel-menu--stripped .psv-panel-menu-item:hover{background:rgba(255,255,255,.2)}.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(odd),.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(odd):before{background:rgba(255,255,255,.1)}.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(2n),.psv-panel-menu--stripped .psv-panel-menu-item:nth-child(2n):before{background:transparent}.psv-container:not(.psv--is-touch) .psv-panel-menu-item:hover{background:rgba(255,255,255,.2)}.psv-tooltip{position:absolute;z-index:50;box-sizing:border-box;max-width:200px;background:rgba(61,61,61,.8);border-radius:4px;opacity:0;transition-property:opacity,transform;transition-timing-function:ease-in-out;transition-duration:.1s;cursor:default}.psv-tooltip-content{color:rgb(255,255,255);font:14px sans-serif;text-shadow:0 1px #000;padding:.5em 1em}.psv-tooltip-arrow{position:absolute;height:0;width:0;border:7px solid transparent}.psv-tooltip--top-center,.psv-tooltip--top-left,.psv-tooltip--top-right{transform:translate3d(0,5px,0)}.psv-tooltip--top-center .psv-tooltip-arrow,.psv-tooltip--top-left .psv-tooltip-arrow,.psv-tooltip--top-right .psv-tooltip-arrow{border-top-color:rgba(61,61,61,.8)}.psv-tooltip--bottom-center,.psv-tooltip--bottom-left,.psv-tooltip--bottom-right{transform:translate3d(0,-5px,0)}.psv-tooltip--bottom-center .psv-tooltip-arrow,.psv-tooltip--bottom-left .psv-tooltip-arrow,.psv-tooltip--bottom-right .psv-tooltip-arrow{border-bottom-color:rgba(61,61,61,.8)}.psv-tooltip--center-left,.psv-tooltip--left-bottom,.psv-tooltip--left-top{transform:translate3d(5px,0,0)}.psv-tooltip--center-left .psv-tooltip-arrow,.psv-tooltip--left-bottom .psv-tooltip-arrow,.psv-tooltip--left-top .psv-tooltip-arrow{border-left-color:rgba(61,61,61,.8)}.psv-tooltip--center-right,.psv-tooltip--right-bottom,.psv-tooltip--right-top{transform:translate3d(-5px,0,0)}.psv-tooltip--center-right .psv-tooltip-arrow,.psv-tooltip--right-bottom .psv-tooltip-arrow,.psv-tooltip--right-top .psv-tooltip-arrow{border-right-color:rgba(61,61,61,.8)}.psv-tooltip--left-top,.psv-tooltip--top-left{box-shadow:-3px -3px 0 rgba(90,90,90,.7)}.psv-tooltip--top-center{box-shadow:0 -3px 0 rgba(90,90,90,.7)}.psv-tooltip--right-top,.psv-tooltip--top-right{box-shadow:3px -3px 0 rgba(90,90,90,.7)}.psv-tooltip--bottom-left,.psv-tooltip--left-bottom{box-shadow:-3px 3px 0 rgba(90,90,90,.7)}.psv-tooltip--bottom-center{box-shadow:0 3px 0 rgba(90,90,90,.7)}.psv-tooltip--bottom-right,.psv-tooltip--right-bottom{box-shadow:3px 3px 0 rgba(90,90,90,.7)}.psv-tooltip--center-left{box-shadow:-3px 0 0 rgba(90,90,90,.7)}.psv-tooltip--center-right{box-shadow:3px 0 0 rgba(90,90,90,.7)}.psv-tooltip--visible{transform:translateZ(0);opacity:1}
/*!
 * Photo Sphere Viewer / Virtual Tour Plugin 5.14.1
 * @copyright 2015-2026 Damien "Mistic" Sorel
 * @licence MIT (https://opensource.org/licenses/MIT)
 */.psv-container{--psv-virtual-tour-plugin-loaded:true}.psv-virtual-tour-tooltip h3{margin:0;padding:0;line-height:normal}.psv-virtual-tour-tooltip h3:not(:last-child){margin-bottom:.5em}.psv-virtual-tour-tooltip img{display:block;width:200px;margin:0 -1em}.psv-virtual-tour-tooltip img:first-child{border-radius:4px 4px 0 0}.psv-virtual-tour-tooltip img:last-child{border-radius:0 0 4px 4px}.psv-virtual-tour-tooltip img:not(:last-child){margin-bottom:.5em}.psv-virtual-tour-tooltip p{margin:0;padding:0;line-height:normal}.psv-virtual-tour-link{cursor:pointer;transform-origin:center}.psv-virtual-tour-arrows{position:absolute;overflow:visible!important;z-index:11;bottom:0;left:0;filter:drop-shadow(0 10px 2px rgba(0,0,0,.7));pointer-events:none;transition:margin .3s ease-in-out}.psv-virtual-tour-arrows .psv-virtual-tour-link{transition:opacity .2s linear}.psv-virtual-tour-arrows .psv-virtual-tour-link:hover{opacity:1!important}.psv-virtual-tour-arrow{width:100%;height:100%;padding:0;border:none;background:none;color:rgba(255,255,255,.8);border-radius:50%}.psv-virtual-tour-arrow:hover{animation:psv-virtual-tour-link-button-in 1s ease-out forwards}.psv-virtual-tour-loader{display:block;position:relative;width:40px;height:30px;margin:0 40px}.psv-virtual-tour-loader div{display:inline-block;position:absolute;left:10%;width:20%;background:#fff;animation:psv-virtual-tour-loader 1.2s cubic-bezier(0,.5,.5,1) infinite}.psv-virtual-tour-loader div:first-child{left:10%;animation-delay:-.24s}.psv-virtual-tour-loader div:nth-child(2){left:40%;animation-delay:-.12s}.psv-virtual-tour-loader div:nth-child(3){left:70%;animation-delay:0}@keyframes psv-virtual-tour-loader{0%{top:10%;height:80%}50%,to{top:30%;height:40%}}@keyframes psv-virtual-tour-link-button-in{0%{box-shadow:0 0 0 0 rgba(97,170,242,0)}20%{box-shadow:0 0 0 5px #61aaf2}to{box-shadow:0 0 0 20px rgba(97,170,242,0)}}
/*!
 * Photo Sphere Viewer / Markers Plugin 5.14.1
 * @copyright 2015-2026 Damien "Mistic" Sorel
 * @licence MIT (https://opensource.org/licenses/MIT)
 */.psv-container{--psv-markers-plugin-loaded:true}.psv-markers{pointer-events:none;z-index:10}.psv-markers,.psv-markers-svg-container{position:absolute;width:100%;height:100%}.psv-markers-svg-container{top:0;left:0;z-index:20}.psv-markers-css3d-container{position:absolute;z-index:21}.psv-marker{display:none;pointer-events:auto}.psv-marker--normal{position:absolute;top:0;left:0;z-index:30;overflow:visible;background-size:contain;background-repeat:no-repeat}.psv-marker--css3d{display:block}.psv-marker--transparent{display:block;opacity:0}.psv-marker--visible{display:block}.psv-marker--has-content,.psv-marker--has-tooltip{cursor:pointer}@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap");:root{--bg-primary:#ffffff;--bg-secondary:#fafafa;--bg-tertiary:#f5f5f5;--bg-card:#ffffff;--bg-card-hover:#fafafa;--bg-glass:rgba(255,255,255,0.85);--bg-glass-strong:rgba(255,255,255,0.95);--text-primary:#111111;--text-secondary:#666666;--text-muted:#999999;--text-inverse:#ffffff;--accent-teal:#111111;--accent-cyan:#333333;--accent-amber:#111111;--accent-red:#dc2626;--accent-green:#16a34a;--gradient-primary:linear-gradient(135deg,#111111,#333333);--gradient-bg:#ffffff;--gradient-card:linear-gradient(135deg,rgba(0,0,0,0.02),rgba(0,0,0,0.01));--border-subtle:rgba(0,0,0,0.06);--border-medium:rgba(0,0,0,0.12);--border-accent:rgba(0,0,0,0.15);--shadow-sm:0 1px 2px rgba(0,0,0,0.04);--shadow-md:0 4px 16px rgba(0,0,0,0.06);--shadow-lg:0 12px 40px rgba(0,0,0,0.08);--shadow-glow:0 4px 20px rgba(0,0,0,0.08);--shadow-glow-strong:0 8px 32px rgba(0,0,0,0.12);--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-size-6xl:3.75rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--transition-fast:150ms ease;--transition-base:300ms ease;--transition-slow:500ms ease;--glass-blur:blur(20px);--glass-bg:rgba(255,255,255,0.9);--glass-border:1px solid rgba(0,0,0,0.08)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-family);background:var(--bg-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a,body{color:var(--text-primary)}a{text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--text-secondary)}img{max-width:100%;height:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes glow{0%,to{box-shadow:0 0 5px rgba(0,0,0,.08)}50%{box-shadow:0 0 20px rgba(0,0,0,.15)}}@keyframes ripple{0%{transform:scale(.8);opacity:1}to{transform:scale(2.5);opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;padding:var(--space-md) var(--space-xl);background:rgba(255,255,255,.85);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border-subtle);transition:background var(--transition-base)}.navbar-inner{max-width:1280px;margin:0 auto;justify-content:space-between}.navbar-inner,.navbar-logo{display:flex;align-items:center}.navbar-logo{gap:var(--space-sm);font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);text-decoration:none}.navbar-logo-icon{width:36px;height:36px;border-radius:var(--radius-lg);background:var(--text-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.navbar-logo span{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary)}.navbar-links{display:flex;align-items:center;gap:var(--space-lg)}.navbar-link{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;transition:color var(--transition-fast)}.navbar-link:hover{color:var(--text-primary)}.navbar-user{gap:var(--space-sm)}.navbar-avatar,.navbar-user{display:flex;align-items:center}.navbar-avatar{width:28px;height:28px;border-radius:var(--radius-full);background:var(--text-primary);color:var(--text-inverse);justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.navbar-email{font-size:var(--font-size-xs);color:var(--text-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.625rem 1.25rem;border-radius:var(--radius-lg);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-base);border:none;outline:none;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--text-primary);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md);opacity:.9}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-medium)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--text-primary)}.btn-danger{background:rgba(239,68,68,.15);color:var(--accent-red);border:1px solid rgba(239,68,68,.3)}.btn-danger:hover:not(:disabled){background:rgba(239,68,68,.25)}.btn-ghost{background:transparent;color:var(--text-secondary);padding:.5rem}.btn-ghost:hover:not(:disabled){color:var(--text-primary);background:var(--bg-glass)}.btn-sm{padding:.375rem .75rem;font-size:var(--font-size-xs)}.btn-lg{padding:.875rem 2rem;font-size:var(--font-size-base)}.btn-icon{padding:.625rem;border-radius:var(--radius-md)}.input-group{display:flex;flex-direction:column;gap:var(--space-xs)}.input-label{font-weight:500;color:var(--text-secondary)}.input,.input-label{font-size:var(--font-size-sm)}.input{padding:.75rem 1rem;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:var(--bg-glass);color:var(--text-primary);font-family:var(--font-family);transition:all var(--transition-fast);outline:none;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.input::placeholder{color:var(--text-muted)}.input:focus{border-color:var(--text-primary);box-shadow:0 0 0 3px rgba(0,0,0,.05)}.input-error{border-color:var(--accent-red)}.error-text{color:var(--accent-red);font-size:var(--font-size-xs)}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-lg);transition:all var(--transition-base);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.card:hover{background:var(--bg-card-hover);border-color:var(--border-medium);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-xl)}.landing-page{padding-top:80px}.hero{position:relative;min-height:calc(100vh - 80px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-3xl) var(--space-xl);overflow:hidden}.hero:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 40%,rgba(0,0,0,.015) 0,transparent 50%),radial-gradient(circle at 70% 60%,rgba(0,0,0,.01) 0,transparent 50%);pointer-events:none}.hero-badge{display:inline-flex;align-items:center;gap:var(--space-sm);padding:.375rem 1rem;border-radius:var(--radius-full);background:var(--bg-tertiary);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:500;letter-spacing:.02em;margin-bottom:var(--space-xl);animation:slideDown .6s ease;position:relative}.hero-title{font-size:clamp(2.5rem,6vw,var(--font-size-6xl));font-weight:800;line-height:1.1;margin-bottom:var(--space-lg);max-width:800px;animation:slideUp .8s ease;position:relative}.hero-title .gradient-text{background:var(--text-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:underline;-webkit-text-decoration-color:rgba(0,0,0,.15);text-decoration-color:rgba(0,0,0,.15);text-underline-offset:6px;text-decoration-thickness:3px;-webkit-text-fill-color:var(--text-primary)}.hero-subtitle{font-size:var(--font-size-lg);color:var(--text-secondary);max-width:600px;margin-bottom:var(--space-2xl);animation:slideUp 1s ease;position:relative;line-height:1.7}.hero-buttons{display:flex;gap:var(--space-md);animation:slideUp 1.2s ease;position:relative}.features-section{padding:var(--space-3xl) var(--space-xl);max-width:1200px;margin:0 auto}.section-title{text-align:center;font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--space-sm)}.section-subtitle{text-align:center;color:var(--text-secondary);font-size:var(--font-size-lg);margin-bottom:var(--space-3xl);max-width:600px;margin-left:auto;margin-right:auto}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:var(--space-xl);gap:var(--space-xl)}.feature-card{padding:var(--space-2xl);text-align:center}.feature-icon{width:56px;height:56px;border-radius:var(--radius-xl);background:var(--bg-tertiary);border:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-lg);font-size:1.5rem}.feature-card h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--space-sm)}.feature-card p{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.7}.how-it-works{padding:var(--space-3xl) var(--space-xl);max-width:1200px;margin:0 auto}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:var(--space-xl);gap:var(--space-xl);margin-top:var(--space-2xl)}.step-card{position:relative;padding:var(--space-xl);text-align:center}.step-number{width:40px;height:40px;border-radius:var(--radius-full);background:var(--text-primary);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-sm);margin:0 auto var(--space-md)}.step-card h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--space-sm)}.step-card p{color:var(--text-secondary)}.footer,.step-card p{font-size:var(--font-size-sm)}.footer{padding:var(--space-2xl) var(--space-xl);border-top:1px solid var(--border-subtle);text-align:center;color:var(--text-muted)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-xl);padding-top:100px}.auth-card{width:100%;max-width:420px;padding:var(--space-2xl)}.auth-title{font-size:var(--font-size-2xl);font-weight:700;text-align:center;margin-bottom:var(--space-xs)}.auth-subtitle{text-align:center;color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-xl)}.auth-form{display:flex;flex-direction:column;gap:var(--space-md)}.auth-footer{text-align:center;margin-top:var(--space-lg);font-size:var(--font-size-sm);color:var(--text-secondary)}.dashboard-page{padding-top:100px;padding-bottom:var(--space-3xl);min-height:100vh}.dashboard-container{max-width:1200px;margin:0 auto;padding:0 var(--space-xl)}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2xl)}.dashboard-header h1{font-size:var(--font-size-3xl);font-weight:700}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:var(--space-xl);gap:var(--space-xl)}.project-card{cursor:pointer;position:relative;overflow:hidden}.project-card-thumbnail{height:180px;background:var(--bg-secondary);border-radius:var(--radius-lg);margin-bottom:var(--space-md);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.project-card-thumbnail img{width:100%;height:100%;object-fit:cover}.project-card-placeholder{font-size:3rem;opacity:.3}.project-card h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--space-xs)}.project-card-meta{display:flex;gap:var(--space-md);color:var(--text-muted)}.project-card-badge,.project-card-meta{align-items:center;font-size:var(--font-size-xs)}.project-card-badge{display:inline-flex;gap:4px;padding:2px 8px;border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary)}.create-project-card{border:2px dashed var(--border-medium);background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;gap:var(--space-md);transition:all var(--transition-base)}.create-project-card:hover{border-color:var(--text-primary);background:var(--bg-tertiary)}.create-project-icon{width:64px;height:64px;border-radius:var(--radius-full);background:var(--bg-glass-strong);display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--text-secondary);transition:all var(--transition-base)}.create-project-card:hover .create-project-icon{background:var(--text-primary);color:var(--text-inverse)}.editor-page{padding-top:80px;min-height:100vh}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-xl);background:rgba(255,255,255,.95);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border-subtle)}.editor-header-left{display:flex;align-items:center;gap:var(--space-md)}.editor-header h2{font-size:var(--font-size-lg);font-weight:600}.editor-layout{display:grid;grid-template-columns:1fr 360px;height:calc(100vh - 140px)}.editor-main{position:relative;overflow:hidden;background:var(--bg-secondary)}.editor-sidebar{border-left:1px solid var(--border-subtle);overflow-y:auto;background:var(--bg-primary);padding:var(--space-lg)}.editor-sidebar-section{margin-bottom:var(--space-xl)}.editor-sidebar-section h3{font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--space-md)}.upload-zone{border:2px dashed var(--border-medium);border-radius:var(--radius-xl);padding:var(--space-2xl);text-align:center;cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden}.upload-zone.drag-over,.upload-zone:hover{border-color:var(--text-primary);background:var(--bg-tertiary)}.upload-zone.drag-over{animation:pulse 1s ease infinite}.upload-zone-icon{font-size:2.5rem;margin-bottom:var(--space-md);opacity:.6}.upload-zone-text{color:var(--text-secondary);font-size:var(--font-size-sm)}.upload-zone-text strong{color:var(--accent-teal)}.upload-zone input[type=file]{display:none}.uploaded-files{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:var(--space-sm);gap:var(--space-sm);margin-top:var(--space-md)}.uploaded-file-thumb{position:relative;aspect-ratio:16/9;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-subtle);cursor:pointer;transition:all var(--transition-fast)}.uploaded-file-thumb:hover{border-color:var(--accent-teal)}.uploaded-file-thumb.active{border-color:var(--text-primary);box-shadow:0 0 0 2px rgba(0,0,0,.1)}.uploaded-file-thumb img{width:100%;height:100%;object-fit:cover}.uploaded-file-name{position:absolute;bottom:0;left:0;right:0;padding:2px 6px;background:rgba(0,0,0,.7);color:white;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uploaded-file-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:var(--radius-full);background:rgba(239,68,68,.9);color:white;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;opacity:0;transition:opacity var(--transition-fast)}.uploaded-file-thumb:hover .uploaded-file-remove{opacity:1}.floorplan-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.floorplan-image-wrapper{position:relative;display:inline-block;max-width:90%;max-height:90%}.floorplan-image-wrapper img{display:block;max-width:100%;max-height:calc(100vh - 200px);object-fit:contain}.floorplan-marker{position:absolute;width:32px;height:32px;border-radius:var(--radius-full);background:var(--text-primary);border:3px solid white;box-shadow:var(--shadow-md);transform:translate(-50%,-50%);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--text-inverse);transition:all var(--transition-fast);z-index:10}.floorplan-marker:hover{transform:translate(-50%,-50%) scale(1.2);box-shadow:var(--shadow-lg)}.floorplan-marker.active{box-shadow:var(--shadow-lg),0 0 0 4px rgba(0,0,0,.15)}.floorplan-marker:after{content:"";position:absolute;width:100%;height:100%;border-radius:var(--radius-full);border:2px solid var(--text-primary);animation:ripple 2s ease-out infinite;pointer-events:none}.floorplan-marker-label{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%) translateY(4px);background:var(--text-primary);color:var(--text-inverse);padding:3px 8px;border-radius:var(--radius-sm);font-size:10px;font-weight:600;white-space:nowrap;pointer-events:none;opacity:0;transition:all .15s ease;z-index:20}.floorplan-marker-label:before{content:"";position:absolute;bottom:100%;left:50%;transform:translateX(-50%);border:4px solid transparent;border-bottom:4px solid var(--text-primary)}.floorplan-marker:hover .floorplan-marker-label{opacity:1;transform:translateX(-50%) translateY(0)}.floorplan-marker:active{cursor:-webkit-grabbing!important;cursor:grabbing!important}.floorplan-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted);gap:var(--space-md)}.floorplan-empty-icon{font-size:4rem;opacity:.3}.room-list{flex-direction:column}.room-item,.room-list{display:flex;gap:var(--space-sm)}.room-item{align-items:center;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);cursor:pointer;transition:all var(--transition-fast)}.room-item:hover{background:var(--bg-glass);border-color:var(--border-medium)}.room-item.active{background:rgba(0,212,170,.08);border-color:var(--accent-teal)}.room-item-thumb{width:48px;height:32px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--bg-secondary)}.room-item-thumb img{width:100%;height:100%;object-fit:cover}.room-item-info{flex:1 1;min-width:0}.room-item-name{font-size:var(--font-size-sm);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-item-meta{font-size:var(--font-size-xs);color:var(--text-muted)}.room-rename-input{font-size:var(--font-size-sm);font-weight:500;font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);padding:1px 4px;width:100%;outline:none;transition:border-color var(--transition-fast)}.room-rename-input:focus{border-color:var(--text-primary);box-shadow:0 0 0 2px rgba(0,0,0,.05)}.room-start-btn{background:none;border:none;cursor:pointer;font-size:14px;padding:2px;opacity:.3;transition:all var(--transition-fast);flex-shrink:0;line-height:1}.room-start-btn:hover{opacity:1;transform:scale(1.2)}.room-start-btn.is-start{opacity:1}.room-refresh-btn{flex-shrink:0;min-width:28px;padding:2px 6px;font-size:14px;line-height:1}.room-refresh-btn:hover:not(:disabled){color:var(--accent-teal)}.room-refresh-btn:disabled{opacity:.5;cursor:wait}.room-start-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.05em;background:var(--bg-tertiary);color:var(--text-secondary);padding:1px 5px;border-radius:var(--radius-full);margin-left:6px;vertical-align:middle;border:1px solid var(--border-medium)}.hotspot-config{padding:var(--space-md);border-radius:var(--radius-lg);background:var(--bg-glass);border:1px solid var(--border-subtle);margin-top:var(--space-sm)}.hotspot-config-title{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--space-sm)}.hotspot-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.hotspot-row select{flex:1 1;padding:.375rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size-xs)}.hotspot-coord-input{flex:1 1;padding:.25rem .5rem;font-size:.75rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.view-mode-toggle{position:absolute;top:var(--space-md);left:50%;transform:translateX(-50%);z-index:20;display:flex;background:rgba(10,14,26,.85);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-medium);border-radius:var(--radius-full);padding:3px;gap:2px}.view-mode-btn{padding:.375rem 1rem;border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-secondary);font-family:var(--font-family);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.view-mode-btn:hover{color:var(--text-primary)}.view-mode-btn.active{background:var(--gradient-primary);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.room-preview-container{width:100%;height:100%;position:relative;display:flex;flex-direction:column}.room-preview-toolbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:rgba(10,14,26,.95);border-bottom:1px solid var(--border-subtle);z-index:15;flex-shrink:0}.room-preview-toolbar-left,.room-preview-toolbar-right{display:flex;align-items:center;gap:var(--space-sm)}.room-preview-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.room-preview-wrapper{flex:1 1;position:relative;min-height:0}.room-preview-viewer{width:100%;height:100%}.placement-mode-banner{position:absolute;top:var(--space-md);left:50%;transform:translateX(-50%) translateZ(0);z-index:20;display:flex;align-items:center;gap:var(--space-sm);padding:.5rem 1rem;background:rgba(10,14,26,.88);border:1px solid rgba(245,158,11,.4);border-radius:var(--radius-full);color:var(--accent-amber);font-size:var(--font-size-xs);font-weight:600;white-space:nowrap;animation:slideDown .3s ease;will-change:transform}.placement-mode-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-amber);animation:pulse 1.5s ease infinite}.placement-coords{color:rgba(245,158,11,.7);font-weight:400;margin-left:var(--space-sm)}.placement-crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;color:rgba(245,158,11,.8);text-shadow:0 0 10px rgba(245,158,11,.5);pointer-events:none;z-index:15;font-weight:300}.hotspot-destination-picker{position:absolute;bottom:var(--space-xl);left:50%;transform:translateX(-50%) translateZ(0);z-index:30;animation:slideUp .3s ease;will-change:transform;isolation:isolate}.hotspot-destination-card{background:rgba(10,14,26,.97);border:1px solid var(--border-medium);border-radius:var(--radius-xl);padding:var(--space-lg);min-width:320px;max-width:480px;box-shadow:var(--shadow-lg)}.hotspot-destination-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.hotspot-destination-icon{font-size:1.5rem}.hotspot-destination-header strong{font-size:var(--font-size-sm);display:block}.hotspot-destination-header p{font-size:var(--font-size-xs);color:var(--text-muted);margin:0}.hotspot-destination-label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:var(--space-sm)}.hotspot-destination-rooms{display:flex;flex-wrap:wrap;gap:var(--space-sm);max-height:200px;overflow-y:auto}.hotspot-destination-room-btn{display:flex;align-items:center;gap:var(--space-sm);padding:.375rem .75rem;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:var(--bg-glass);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast);flex:1 1;min-width:140px}.hotspot-destination-room-btn:hover{background:rgba(0,212,170,.1);border-color:var(--accent-teal)}.hotspot-destination-room-initial{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--accent-teal);font-size:10px;font-weight:700;flex-shrink:0}.hotspot-destination-room-thumb{width:32px;height:22px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0}.hotspot-destination-room-thumb img{width:100%;height:100%;object-fit:cover}.preview-hotspot-marker{display:flex;align-items:center;gap:6px;padding:4px 10px;background:rgba(0,212,170,.25);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid rgba(0,212,170,.7);border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease;white-space:nowrap}.preview-hotspot-marker:hover{background:rgba(0,212,170,.4);transform:scale(1.05)}.preview-hotspot-icon{font-size:14px;color:white;font-weight:700}.preview-hotspot-label{font-size:11px;color:white;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.5)}.tour-page{width:100vw;height:100vh;position:relative;overflow:hidden;background:#000}.tour-viewer-container{width:100%;height:100%}.tour-overlay-top{position:absolute;top:0;left:0;right:0;padding:var(--space-md) var(--space-xl);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(0,0,0,.6),transparent);z-index:50;pointer-events:none}.tour-overlay-top>*{pointer-events:auto}.tour-room-name{font-size:var(--font-size-lg);font-weight:600;color:white;text-shadow:0 2px 8px rgba(0,0,0,.5);animation:fadeIn .3s ease}.tour-back-btn{background:rgba(255,255,255,.15);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);color:white;padding:.5rem 1rem;border-radius:var(--radius-lg);cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;display:flex;align-items:center;gap:var(--space-sm);transition:all var(--transition-fast)}.tour-back-btn:hover{background:rgba(255,255,255,.25)}.tour-controls{position:absolute;bottom:var(--space-xl);right:var(--space-xl);display:flex;gap:var(--space-sm);z-index:50}.tour-control-btn{width:44px;height:44px;border-radius:var(--radius-lg);background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);color:white;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.25rem;transition:all var(--transition-fast)}.tour-control-btn:hover{background:rgba(255,255,255,.2)}.tour-minimap{position:absolute;bottom:var(--space-xl);left:var(--space-xl);width:240px;border-radius:var(--radius-xl);background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);overflow:hidden;z-index:50;transition:all var(--transition-base)}.tour-minimap-header{padding:var(--space-sm) var(--space-md);border-bottom:1px solid rgba(255,255,255,.1);font-size:var(--font-size-xs);font-weight:600;color:rgba(255,255,255,.8);display:flex;align-items:center;justify-content:space-between}.tour-minimap-body{position:relative;padding:var(--space-sm)}.tour-minimap-body img{width:100%;border-radius:var(--radius-md);opacity:.8}.minimap-marker{position:absolute;width:24px;height:24px;border-radius:var(--radius-full);background:var(--text-primary);border:2px solid white;transform:translate(-50%,-50%);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--text-inverse);transition:all var(--transition-fast);z-index:5}.minimap-marker.active{box-shadow:0 0 0 4px rgba(0,0,0,.15);z-index:6}.minimap-marker:hover{transform:translate(-50%,-50%) scale(1.1)}.minimap-marker:hover .floorplan-marker-label{opacity:1;transform:translateX(-50%) translateY(0)}.minimap-radar{position:absolute;top:50%;left:50%;width:80px;height:80px;border-radius:50%;background:conic-gradient(from -30deg,rgba(0,212,170,.35) 0deg,rgba(0,212,170,.15) 25deg,transparent 60deg,transparent 300deg,rgba(0,212,170,.15) 335deg,rgba(0,212,170,.35) 1turn);pointer-events:none;z-index:-1;transition:transform .08s linear}.share-page{width:100vw;height:100vh;position:relative}.share-badge{position:absolute;bottom:var(--space-md);left:50%;transform:translateX(-50%);padding:.375rem 1rem;border-radius:var(--radius-full);background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.7);font-size:var(--font-size-xs);font-weight:500;z-index:50;display:flex;align-items:center;gap:var(--space-sm)}.share-badge a{color:var(--accent-teal)}.comment-toggle{position:absolute;top:var(--space-md);right:var(--space-md);z-index:50}.comment-form-popup{position:absolute;z-index:100;background:var(--bg-primary);border:1px solid var(--border-medium);border-radius:var(--radius-xl);padding:var(--space-lg);width:300px;box-shadow:var(--shadow-lg);animation:slideUp .2s ease}.comment-form-popup textarea{width:100%;min-height:80px;padding:var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-glass);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size-sm);resize:vertical;outline:none}.comment-form-popup textarea:focus{border-color:var(--accent-teal)}.comment-form-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm)}.psv-virtual-tour-tooltip{background:rgba(0,0,0,.8)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)!important;border-radius:var(--radius-lg)!important;padding:var(--space-sm) var(--space-md)!important}.custom-hotspot{width:48px;height:48px;border-radius:50%;background:rgba(0,212,170,.3);border:3px solid rgba(0,212,170,.8);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;position:relative}.custom-hotspot:before{content:"";position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid rgba(0,212,170,.5);animation:ripple 2s ease-out infinite}.custom-hotspot:hover{background:rgba(0,212,170,.5);transform:scale(1.1)}.custom-hotspot svg{width:24px;height:24px;fill:white}.comment-marker{width:32px;height:32px;border-radius:50%;background:rgba(245,158,11,.4);border:2px solid var(--accent-amber);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px}.comment-author-input{width:100%;padding:var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-glass);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size-xs);outline:none;margin-bottom:var(--space-sm)}.comment-author-input:focus{border-color:var(--accent-teal)}.comment-author-input::placeholder{color:var(--text-muted)}.comment-pin-marker{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.25);border:2px solid rgba(255,255,255,.6);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;position:relative}.comment-pin-marker:hover{background:rgba(255,255,255,.4);transform:scale(1.15)}.comment-pin-marker:after{content:"";position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid rgba(255,255,255,.3);animation:ripple 3s ease-out infinite}.comment-pin-icon{font-size:16px;line-height:1;position:relative;z-index:2}.comment-pin-tooltip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(8px);min-width:180px;max-width:260px;background:rgba(0,0,0,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:10px 12px;opacity:0;visibility:hidden;transition:all .2s ease;pointer-events:none;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,.3)}.comment-pin-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:rgba(0,0,0,.85)}.comment-pin-marker:hover .comment-pin-tooltip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.comment-pin-author{font-size:11px;font-weight:700;color:#ffffff;margin-bottom:3px;font-family:Inter,sans-serif}.comment-pin-text{font-size:12px;color:rgba(255,255,255,.75);line-height:1.4;word-break:break-word;font-family:Inter,sans-serif}.comment-toggle-active{background:rgba(245,158,11,.2)!important;border-color:rgba(245,158,11,.4)!important}.comment-panel{position:absolute;top:0;right:0;width:340px;height:100%;background:rgba(10,14,26,.95);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-left:1px solid var(--border-medium);z-index:55;display:flex;flex-direction:column;animation:slideInRight .3s ease}@keyframes slideInRight{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.comment-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.comment-panel-header h3{font-size:var(--font-size-sm);font-weight:600;margin:0}.comment-panel-close{background:none;border:none;color:var(--text-muted);font-size:1.25rem;cursor:pointer;padding:.25rem;transition:color var(--transition-fast)}.comment-panel-close:hover{color:var(--text-primary)}.comment-panel-body{flex:1 1;overflow-y:auto;padding:var(--space-md)}.comment-panel-section-title{font-size:var(--font-size-xs);font-weight:600;color:var(--accent-teal);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm);display:flex;align-items:center;justify-content:space-between}.comment-panel-goto{background:none;border:none;color:var(--text-muted);font-size:var(--font-size-xs);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.comment-panel-goto:hover{color:var(--accent-teal);background:rgba(0,212,170,.1)}.comment-panel-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:var(--font-size-sm)}.comment-card{padding:var(--space-sm) var(--space-md);background:var(--bg-glass);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);margin-bottom:var(--space-sm);transition:all var(--transition-fast)}.comment-card:hover{border-color:var(--border-medium)}.comment-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.comment-card-author{font-size:var(--font-size-xs);font-weight:600;color:var(--accent-amber)}.comment-card-time{font-size:10px;color:var(--text-muted)}.comment-card-text{font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.5;margin:0;word-break:break-word}.editor-comments-list{display:flex;flex-direction:column;gap:var(--space-sm)}.editor-comments-group{margin-bottom:var(--space-sm)}.editor-comments-room-name{font-size:var(--font-size-xs);font-weight:600;color:var(--accent-teal);margin-bottom:var(--space-xs);display:flex;align-items:center;gap:var(--space-sm)}.editor-comments-count{background:rgba(0,212,170,.15);color:var(--accent-teal);padding:1px 6px;border-radius:var(--radius-full);font-size:10px;font-weight:700}.editor-comment-card{position:relative;padding:var(--space-sm);background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--space-xs);border:1px solid var(--border-subtle)}.editor-comment-card:hover{border-color:var(--border-medium)}.editor-comment-card:hover .editor-comment-delete{opacity:1}.editor-comment-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.editor-comment-author{font-size:11px;font-weight:600;color:var(--accent-amber)}.editor-comment-time{font-size:10px;color:var(--text-muted)}.editor-comment-text{font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.4;margin:0;word-break:break-word}.editor-comment-delete{position:absolute;top:4px;right:4px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;opacity:0;transition:opacity var(--transition-fast);padding:2px}.editor-comment-delete:hover{color:var(--accent-red)}.editor-comment-clickable{cursor:pointer;transition:all var(--transition-fast)}.editor-comment-clickable:hover{border-color:var(--accent-teal);background:rgba(0,212,170,.05)}.editor-comment-actions{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.editor-comment-view-hint{font-size:10px;color:var(--accent-teal);opacity:0;transition:opacity var(--transition-fast)}.editor-comment-clickable:hover .editor-comment-delete,.editor-comment-clickable:hover .editor-comment-view-hint{opacity:1}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .2s ease}.modal{background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-xl);padding:var(--space-2xl);width:100%;max-width:440px;box-shadow:var(--shadow-lg);animation:slideUp .3s ease}.modal h2{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--space-lg)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-xl)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border-subtle);border-top-color:var(--accent-teal);border-radius:50%;animation:spin .8s linear infinite}.loading-page{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-md)}.loading-page p{color:var(--text-secondary);font-size:var(--font-size-sm)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl);text-align:center;color:var(--text-secondary)}.empty-state-icon{font-size:4rem;margin-bottom:var(--space-md);opacity:.3}.empty-state h3{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:var(--space-sm)}.empty-state p{max-width:400px}.empty-state p,.toast{font-size:var(--font-size-sm)}.toast{position:fixed;bottom:var(--space-xl);right:var(--space-xl);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border-medium);box-shadow:var(--shadow-lg);z-index:300;animation:slideUp .3s ease;display:flex;align-items:center;gap:var(--space-sm)}.toast-success{border-color:rgba(34,197,94,.3)}.toast-error{border-color:rgba(239,68,68,.3)}.navbar-hamburger{display:none;background:none;border:none;font-size:1.5rem;color:var(--text-primary);cursor:pointer;padding:.25rem;line-height:1;transition:color var(--transition-fast)}.navbar-hamburger:hover{color:var(--text-secondary)}.editor-sidebar-toggle,.navbar-mobile-menu{display:none}.editor-header-right{display:flex;gap:.5rem;align-items:center;flex-shrink:0}@media (max-width:768px){.navbar{padding:var(--space-sm) var(--space-md)}.navbar-links{display:none}.navbar-hamburger{display:block}.navbar-mobile-menu{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);border-top:1px solid var(--border-subtle);animation:slideDown .25s ease}.navbar-mobile-user{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-lg);margin-bottom:var(--space-xs)}.navbar-mobile-email{font-size:var(--font-size-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-mobile-link{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:500;color:var(--text-primary);text-decoration:none;transition:background var(--transition-fast);border:none;background:none;cursor:pointer;font-family:var(--font-family);width:100%;text-align:left}.navbar-mobile-link:hover{background:var(--bg-tertiary)}.navbar-mobile-logout{color:var(--accent-red)}.navbar-mobile-cta{background:var(--text-primary);color:var(--text-inverse);justify-content:center;border-radius:var(--radius-lg);font-weight:600}.navbar-mobile-cta:hover{opacity:.9;background:var(--text-primary)}.hero{min-height:calc(100vh - 60px);padding:var(--space-2xl) var(--space-md)}.hero-title{font-size:var(--font-size-3xl)}.hero-subtitle{font-size:var(--font-size-base);padding:0 var(--space-sm)}.hero-buttons{flex-direction:column;width:100%;padding:0 var(--space-md)}.hero-buttons .btn{width:100%}.section-title{font-size:var(--font-size-2xl)}.section-subtitle{font-size:var(--font-size-base);padding:0 var(--space-sm)}.features-section,.how-it-works{padding:var(--space-2xl) var(--space-md)}.features-grid,.steps-grid{grid-template-columns:1fr}.feature-card{padding:var(--space-xl)}.dashboard-page{padding-top:80px}.dashboard-container{padding:0 var(--space-md)}.dashboard-header{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.dashboard-header .btn{width:100%}.projects-grid{grid-template-columns:1fr}.create-project-card{min-height:160px}.editor-page{padding-top:60px}.editor-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md)}.editor-header-left{width:100%}.editor-header-right{width:100%;flex-wrap:wrap}.editor-header-right .btn{flex:1 1;min-width:0;font-size:var(--font-size-xs)}.editor-layout{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 160px)}.editor-main{min-height:50vh}.editor-sidebar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:90;max-height:70vh;overflow-y:auto;border-left:none;border-top:1px solid var(--border-medium);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.12);padding:var(--space-md);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom, 0px));animation:slideUp .3s ease;background:var(--bg-primary)}.editor-sidebar.editor-sidebar-open{display:block}.editor-sidebar-toggle{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);position:fixed;bottom:var(--space-md);left:50%;transform:translateX(-50%);z-index:85;padding:.75rem 1.5rem;background:var(--text-primary);color:var(--text-inverse);border:none;border-radius:var(--radius-full);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;box-shadow:var(--shadow-lg);transition:all var(--transition-base);white-space:nowrap}.editor-sidebar-toggle:hover{transform:translateX(-50%) translateY(-2px);box-shadow:var(--shadow-glow-strong)}.view-mode-toggle{top:var(--space-sm)}.view-mode-btn{padding:.25rem .75rem;font-size:.65rem}.room-preview-toolbar{flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-sm)}.room-preview-toolbar-left,.room-preview-toolbar-right{gap:var(--space-xs)}.upload-zone{padding:var(--space-lg)}.upload-zone-icon{font-size:1.75rem;margin-bottom:var(--space-sm)}.floorplan-marker{width:40px;height:40px;font-size:13px}.floorplan-marker-label{font-size:9px}.floorplan-image-wrapper{max-width:95%;max-height:95%}.floorplan-image-wrapper img{max-height:calc(100vh - 260px)}.tour-overlay-top{padding:var(--space-sm) var(--space-md);flex-wrap:wrap;gap:var(--space-sm)}.tour-room-name{font-size:var(--font-size-base)}.tour-back-btn{padding:.375rem .75rem;font-size:var(--font-size-xs)}.tour-controls{bottom:var(--space-md);right:var(--space-md)}.tour-control-btn{width:40px;height:40px;font-size:1.1rem}.tour-minimap{width:160px;bottom:var(--space-md);left:var(--space-md)}.tour-minimap-header{padding:var(--space-xs) var(--space-sm);font-size:.65rem}.tour-minimap-body{padding:var(--space-xs)}.minimap-marker{width:18px;height:18px;font-size:8px}.minimap-radar{width:50px;height:50px}.comment-panel{width:100%;animation:slideUp .3s ease}.comment-form-popup{position:fixed!important;bottom:0!important;left:0!important;right:0!important;top:auto!important;width:100%!important;border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.15);padding:var(--space-lg);padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom, 0px));animation:slideUp .25s ease;z-index:200!important}.comment-toggle{top:var(--space-sm);right:var(--space-sm)}.comment-pin-marker{width:42px;height:42px}.comment-pin-icon{font-size:18px}.modal-overlay{padding:var(--space-md);align-items:flex-end}.modal{max-width:100%;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-xl);padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom, 0px));animation:slideUp .3s ease}.modal h2{font-size:var(--font-size-lg)}.modal-actions{flex-direction:column-reverse;gap:var(--space-sm)}.modal-actions .btn{width:100%}.hotspot-destination-card{min-width:0;max-width:calc(100vw - 2rem);width:100%}.hotspot-destination-picker{left:var(--space-md);right:var(--space-md);transform:none;bottom:var(--space-md)}.hotspot-destination-room-btn{min-width:100px}.toast{left:var(--space-md);right:var(--space-md);bottom:var(--space-md);width:auto}.share-badge{font-size:.65rem;padding:.25rem .75rem;bottom:var(--space-sm)}.auth-page{padding:var(--space-md);padding-top:80px}.auth-card{padding:var(--space-xl)}.auth-title{font-size:var(--font-size-xl)}.placement-mode-banner{font-size:.65rem;padding:.375rem .75rem;max-width:calc(100vw - 2rem)}.placement-coords{display:none}.placement-crosshair{font-size:1.5rem}.landing-page{padding-top:60px}}@media (max-width:480px){.hero-title{font-size:var(--font-size-2xl)}.hero-badge{font-size:.65rem;padding:.25rem .75rem}.hero-subtitle{font-size:var(--font-size-sm)}.section-title{font-size:var(--font-size-xl)}.section-subtitle{font-size:var(--font-size-sm)}.feature-card{padding:var(--space-lg)}.feature-icon{width:44px;height:44px;font-size:1.25rem}.feature-card h3{font-size:var(--font-size-lg)}.step-number{width:32px;height:32px;font-size:var(--font-size-xs)}.tour-overlay-top{padding:var(--space-xs) var(--space-sm)}.tour-room-name{font-size:var(--font-size-sm)}.tour-back-btn{padding:.25rem .5rem;font-size:.65rem}.tour-minimap{width:130px;bottom:var(--space-sm);left:var(--space-sm)}.tour-controls{bottom:var(--space-sm);right:var(--space-sm)}.tour-control-btn{width:36px;height:36px;font-size:1rem}.editor-header h2{font-size:var(--font-size-base)}.editor-sidebar-toggle{font-size:var(--font-size-xs);padding:.625rem 1.25rem}.dashboard-header h1{font-size:var(--font-size-2xl)}.project-card-thumbnail{height:140px}.auth-card{padding:var(--space-lg)}.auth-title{font-size:var(--font-size-lg)}}