:root{--ink:#314c40;--muted:#748075;--gold:#b18b51;--cream:#fffcf4;--line:rgba(64,79,58,.12);--green:#395c49;font-family:"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;color:var(--ink);background:#e4e7d7;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #ad8246;outline-offset:3px}[hidden]{display:none!important}
.tour-app{position:relative;width:100%;height:100svh;min-height:720px;overflow:hidden}.glass{background:rgba(255,253,247,.94);border:1px solid rgba(255,255,255,.8);border-radius:15px;box-shadow:0 7px 30px rgba(62,75,46,.055);backdrop-filter:blur(16px)}
.topbar{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:11px}.brand-icon{font:25px Georgia,serif;border:1px solid #9c895f;border-radius:50%;width:40px;height:40px;display:grid;place-items:center;color:#927546}.brand b{display:block;font:600 18px Georgia,serif;letter-spacing:.1em}.brand small{display:block;font-size:10px;letter-spacing:.06em;color:#647460;margin-top:5px}.tools{display:flex;gap:7px;align-items:center}.tools button,.tools>a{border:1px solid rgba(255,255,255,.8);background:rgba(255,253,247,.93);border-radius:9px;padding:11px 13px;font-size:11px;font-weight:600;box-shadow:0 2px 10px #4b594406}.tools button>span:first-child{font-size:14px;margin-right:3px}.tools button[aria-pressed=true]{background:var(--green);color:white;border-color:var(--green)}.tools .book-button{background:var(--green);color:white;border-color:var(--green);padding:12px 17px}.book-button span{margin-left:12px}
.world{position:absolute;inset:0;overflow:hidden}.world canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.world canvas.is-dragging{cursor:grabbing}.marker-layer{position:absolute;inset:0;pointer-events:none}.map-pin{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:6px;padding:7px 10px 7px 7px;border:1px solid #ffffffe0;border-radius:6px;background:#fffcf4ed;color:#4f614b;font-size:11px;font-weight:650;white-space:nowrap;box-shadow:0 3px 12px #283c2120;pointer-events:auto;transition:background .18s,color .18s}.map-pin::after{content:"";position:absolute;bottom:-6px;left:50%;width:10px;height:10px;transform:translateX(-50%) rotate(45deg);background:inherit;z-index:-1}.map-pin.is-selected{background:var(--green);color:white;border-color:var(--green)}.pin-dot{font:600 9px Georgia,serif;display:grid;place-items:center;border-radius:50%;width:18px;height:18px;background:#b3925f;color:white}.map-pin:hover{background:#4b6c52;color:white}.loading-state{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#e4e7d7;z-index:2;font-size:13px;color:#738368}.loading-symbol{font:48px Georgia,serif;color:var(--gold);border:1px solid #b18b5150;border-radius:50%;width:82px;height:82px;display:grid;place-items:center}.world-fallback{position:absolute;inset:0;background:#e4e7d7}.world-fallback img{width:100%;height:100%;object-fit:cover;opacity:.75}.world-fallback p{position:absolute;left:32%;top:40%;padding:20px;background:var(--cream);border-radius:12px;font-size:13px;line-height:1.8}.world-controls{position:absolute;bottom:99px;right:367px;display:flex;align-items:center;gap:5px;background:#fffcf4e8;padding:5px;border-radius:9px;box-shadow:0 4px 14px #3d56310a}.world-controls button{border:0;background:transparent;min-width:32px;min-height:32px;font-size:18px}.world-controls #reset-view{font-size:10px;padding:0 11px}.control-divider{width:1px;height:17px;background:var(--line)}.model-note{position:absolute;bottom:82px;left:50%;transform:translateX(-50%);font-size:9px;color:#74816f;width:max-content;max-width:90%;text-align:center;pointer-events:none}
.chapter-card{position:absolute;top:95px;left:27px;width:302px;padding:20px 21px 18px}.eyebrow{font-size:8px;font-weight:650;letter-spacing:.19em;margin:0 0 15px;color:#879180}.chapter-heading{display:flex;align-items:center;gap:13px}.chapter-heading>span{font:36px Georgia,serif;color:#a69172;font-weight:400;line-height:1}.chapter-heading>div{flex:1;min-width:0}.chapter-heading p{font-size:9px;color:#899181;margin:0 0 5px}.chapter-heading h1{margin:0;font-size:16px;line-height:1.5;font-weight:600;letter-spacing:-.06em;word-break:keep-all}.chapter-route{margin:14px 0 0;font-size:10px;color:#84907b;line-height:1.5}.space-nav{position:absolute;left:27px;top:242px;display:flex;gap:6px;flex-wrap:wrap;max-width:385px}.space-nav button{padding:9px 11px;border-radius:22px;border:1px solid #fffffff0;background:#fffcf4ed;color:#73806c;font-size:10px;box-shadow:0 3px 12px #3d563109}.space-nav button.is-active{color:white;background:var(--green);border-color:var(--green)}.space-nav .space-number{font-family:Georgia,serif;margin-right:5px;opacity:.7}
.info-panel{position:absolute;right:27px;top:95px;bottom:156px;width:307px;display:flex;flex-direction:column;overflow:hidden}.panel-tabs{display:flex;border-bottom:1px solid var(--line);margin:0 20px;gap:20px;flex-shrink:0}.panel-tabs button{border:0;background:none;padding:17px 0 13px;font-size:11px;white-space:nowrap;color:#90968a;border-bottom:2px solid transparent}.panel-tabs button[aria-selected=true]{border-color:var(--gold);color:var(--green);font-weight:700}.panel-content{padding:25px 22px;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:#c9d0be transparent;overscroll-behavior:contain}.place-eyebrow{font-size:9px;letter-spacing:.055em;color:#9b9f8d;margin:0 0 11px}.panel-content h2{margin:0 0 8px;font-size:23px;font-weight:550;letter-spacing:-.045em;line-height:1.4}.place-subtitle{margin:0 0 21px;color:#9b9f8d;font-size:10px;line-height:1.5}.place-copy{font-size:12px;line-height:1.9;color:#71806b;word-break:keep-all;margin:0 0 17px}.panel-content h3{font-size:11px;font-weight:650;margin:20px 0 10px}.feature-list{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}.feature-list li{border:1px solid #d5dbc8;border-radius:5px;font-size:10px;color:#78866d;padding:6px 8px;background:#f5f6ee}.source-note{font-size:10px;line-height:1.7;color:#a08b67;border-left:2px solid #c9b38d;padding-left:9px;margin:19px 0 12px}.photo-thumb{position:relative;padding:0;border:0;border-radius:8px;width:100%;overflow:hidden;display:block;background:#dfe6d6;margin-top:19px}.photo-thumb img{width:100%;aspect-ratio:1.65;object-fit:cover;display:block;transition:transform .4s}.photo-thumb:hover img{transform:scale(1.04)}.photo-thumb span{position:absolute;bottom:9px;right:9px;color:white;background:#284a38ba;border-radius:4px;font-size:9px;padding:5px 8px}.photo-caption{font-size:9px;color:#86907b;line-height:1.6;margin:7px 0 0}.text-button{background:transparent;border:0;padding:0;color:#6a805b;font-size:10px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.panel-footer{border-top:1px solid var(--line);padding:16px 22px 19px;flex-shrink:0}.panel-footer>span{display:block;font-size:9px;color:#8d9685;margin-bottom:5px}.panel-footer>a{font:21px Georgia,serif;color:#415c43;display:flex;justify-content:space-between;align-items:center}.panel-footer>a>span{font:17px system-ui}.empty-photo{padding:25px 15px;background:#f0f2e7;border-radius:10px;text-align:center;color:#8b977d;line-height:1.8;font-size:11px}.empty-photo>span{font-size:25px;display:block;margin-bottom:10px}.plan-large{border:1px solid var(--line);padding:0;border-radius:7px;overflow:hidden;background:white;display:block;width:100%;cursor:zoom-in}.plan-large img{display:block;width:100%;height:auto}.roof-link{display:block;margin-top:16px;font-size:10px;text-decoration:underline;text-underline-offset:4px}.solid-button{border:0;border-radius:7px;background:var(--green);color:white;padding:13px 16px;font-size:12px;display:inline-block}
.mini-card{position:absolute;left:27px;bottom:103px;width:265px;padding:15px}.mini-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.mini-heading h2{font-size:10px;font-weight:600;margin:0}.mini-heading button{font-size:9px;color:#9ba08c;border:0;background:none;padding:0}.mini-body{display:flex;gap:12px;align-items:center}.building-stack{width:65px;display:flex;flex-direction:column;gap:3px;flex-shrink:0}.building-stack button{position:relative;width:61px;min-height:25px;border:1px solid #d1d6c5;background:#ebeede;color:#8b957d;transform:skewY(-8deg);border-radius:2px;font-size:10px;text-align:left;padding:4px 9px}.building-stack button::after{content:"";position:absolute;top:-1px;right:-7px;width:6px;height:calc(100% + 2px);background:#c3cbb4;transform-origin:left;transform:skewY(30deg);border:1px solid #b5c1a4}.building-stack button.is-active{background:#8a9c72;color:white;border-color:#8a9c72}.building-stack button.is-active::after{background:#657f58;border-color:#657f58}.mini-plan{position:relative;display:block;flex:1;min-width:0;height:100px;overflow:hidden;padding:0;border:1px solid #d6dacb;border-radius:5px;background:white}.mini-plan img{width:100%;height:100%;object-fit:cover;opacity:.65}.mini-plan>span{position:absolute;left:5px;bottom:4px;font-size:9px;color:white;background:#486740d9;border-radius:4px;padding:4px 6px}.mini-card>p{font-size:9px;line-height:1.6;margin:12px 0 0;color:#9b9e8d}
.floor-nav{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;padding:9px 12px;gap:4px;border-radius:11px;width:max-content;max-width:calc(100% - 50px)}.floor-nav button{border:0;border-radius:7px;background:transparent;padding:11px 14px;display:flex;gap:6px;align-items:center;font-size:10px;color:#9a9e8b;min-height:38px}.floor-nav .floor-number{font:11px Georgia,serif;color:#ada991}.floor-nav button.is-active{background:var(--green);color:white}.floor-nav button.is-active .floor-number{color:#c8d4bf}.floor-nav button:hover:not(.is-active){background:#e9eddf}.drag-hint{position:absolute;bottom:163px;left:50%;transform:translateX(-50%);font-size:10px;color:#8a9780;pointer-events:none;white-space:nowrap}.drag-hint>span{margin-right:6px;font-size:18px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.media-dialog,.help-dialog{border:0;padding:0;border-radius:16px;background:var(--cream);color:var(--ink);box-shadow:0 30px 100px #223f2455;max-height:90svh;max-width:92vw}.media-dialog{width:1050px}.media-dialog::backdrop,.help-dialog::backdrop{background:#24392be0;backdrop-filter:blur(6px)}.media-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px}.media-dialog .eyebrow{margin-bottom:4px}.media-dialog h2{font-size:17px;font-weight:550;margin:0}.media-dialog>header button{border:1px solid var(--line);background:transparent;width:36px;height:36px;border-radius:50%;font-size:23px}.media-dialog>img{display:block;width:100%;max-height:65svh;object-fit:contain;background:#e4e7d7}.media-dialog>p{font-size:11px;color:#859076;line-height:1.7;margin:15px 24px}.dialog-navigation{display:flex;align-items:center;justify-content:center;gap:20px;margin:15px 0}.dialog-navigation button{border:1px solid var(--line);background:transparent;width:38px;height:32px;border-radius:5px}.dialog-navigation span{font-size:11px;color:#879279}.help-dialog{position:relative;width:420px;padding:35px}.help-dialog h2{font:28px Georgia,"Apple SD Gothic Neo",serif;margin:0 0 17px}.help-dialog p,.help-dialog dd{font-size:12px;line-height:1.8;color:#78866d}.help-dialog dt{font-size:12px;font-weight:700;margin-top:14px}.help-dialog dd{margin:3px 0 0}.help-dialog .help-note{font-size:10px;background:#eef0e5;padding:12px;margin:20px 0}.close-help{position:absolute;right:16px;top:12px;border:0;background:none;font-size:24px}.no-script{position:fixed;z-index:100;bottom:10px;left:10px;right:10px;background:var(--cream);padding:15px}
@media(min-width:1600px){.chapter-card{width:326px}.space-nav{top:249px}.info-panel{width:335px;right:34px}.world-controls{right:393px}.panel-content{padding:29px}.panel-content h2{font-size:26px}.place-copy{font-size:13px}.info-panel{bottom:162px}.chapter-heading h1{font-size:18px}}
@media(max-width:1120px) and (min-width:761px){.chapter-card{width:255px;padding:16px;left:18px;top:86px}.chapter-heading h1{font-size:14px}.chapter-heading>span{font-size:31px}.space-nav{left:18px;top:227px;max-width:265px}.info-panel{right:18px;width:264px;top:86px;bottom:155px}.panel-content{padding:20px 17px}.panel-tabs{gap:17px;margin:0 17px}.mini-card{left:18px;width:230px}.floor-nav button{padding:10px 11px}.world-controls{right:299px}.drag-hint{display:none}.model-note{bottom:84px}}
@media(max-width:760px){.tour-app{height:auto;min-height:100svh;overflow:visible;display:flex;flex-direction:column;padding:0 15px 18px;gap:14px}.topbar{position:relative;order:0;padding:17px 0;gap:7px}.brand b{font-size:13px}.brand small{font-size:8px;letter-spacing:0}.brand-icon{width:29px;height:29px;font-size:18px}.brand{gap:7px}.tools{gap:4px}.tools button,.tools>a{padding:8px;min-width:31px;min-height:31px}.tools .tool-text{display:none}.tools button>span:first-child{margin:0}.tools .book-button{font-size:9px;padding:10px}.book-button span{display:none}.chapter-card{position:relative;order:1;left:auto;top:auto;width:100%;padding:15px 17px}.chapter-card .eyebrow{margin-bottom:10px}.chapter-heading>span{font-size:31px}.chapter-heading h1{font-size:16px}.chapter-route{margin-top:10px;font-size:9px}.space-nav{position:relative;order:2;top:auto;left:auto;max-width:100%;flex-wrap:nowrap;overflow:auto;padding:2px 0 5px;min-height:37px}.space-nav button{flex:none;font-size:10px;padding:8px 11px}.world{position:relative;order:3;inset:auto;margin:0 -15px;height:440px;flex:none;overflow:hidden}.world-controls{bottom:25px;right:15px}.model-note{bottom:0;left:15px;transform:none;text-align:left;font-size:8px;max-width:calc(100% - 30px)}.map-pin{font-size:10px;padding:5px 7px;gap:4px}.pin-dot{width:15px;height:15px;font-size:8px}.floor-nav{position:relative;order:4;left:auto;bottom:auto;transform:none;width:100%;max-width:none;overflow:auto;padding:7px;gap:3px;flex:none;justify-content:space-between}.floor-nav button{flex:none;flex-direction:column;gap:4px;padding:8px 7px;font-size:9px}.floor-nav .floor-number{font-size:10px}.info-panel{position:relative;order:5;top:auto;bottom:auto;right:auto;width:100%;max-height:none;overflow:visible}.panel-content{overflow:visible;padding:21px}.panel-content h2{font-size:25px}.place-copy{font-size:13px}.photo-thumb img{aspect-ratio:1.8}.panel-tabs{gap:27px}.panel-tabs button{font-size:12px}.mini-card{position:relative;order:6;left:auto;bottom:auto;width:100%;padding:17px}.mini-body{gap:25px}.mini-plan{height:140px}.building-stack{margin:0 13px;width:67px}.drag-hint{display:none}.world-fallback p{left:20px;right:20px;top:25%;font-size:11px}.media-dialog>header{padding:15px}.media-dialog h2{font-size:15px}.help-dialog{padding:28px}.loading-state p{font-size:11px}}
.mobile-contact{display:none}
@media(max-width:760px){
  .tour-app{padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))}
  .mobile-contact{position:fixed;z-index:20;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid #d3d9c6;background:#fffcf4f5;box-shadow:0 -5px 20px #314c4009;backdrop-filter:blur(12px)}
  .mobile-contact b,.mobile-contact small{display:block}.mobile-contact b{font-size:12px}.mobile-contact small{margin-top:4px;font-size:10px;color:#7a876f}.mobile-contact a{display:flex;align-items:center;justify-content:center;gap:14px;min-height:44px;padding:0 14px;border-radius:7px;background:var(--green);color:white;font:16px Georgia,serif}.mobile-contact a>span{font:15px system-ui}
  .world-controls button{min-width:40px;min-height:40px}.space-nav{min-height:49px}.space-nav button{min-height:44px}.panel-tabs button{min-height:48px}.floor-nav{scrollbar-width:thin}.model-note{max-width:calc(100% - 24px)}
}
.brand-icon img{width:100%;height:100%;object-fit:contain;border-radius:inherit}.floor-description{white-space:pre-wrap;font-size:14px;line-height:1.8;border-bottom:1px solid var(--line);padding-bottom:14px;color:var(--green)}.place-copy,.source-note{white-space:pre-wrap}.floor-nav{overflow-x:auto}.floor-nav button{flex-shrink:0}.space-nav{max-height:28vh;overflow-y:auto}.tools .editor-link{white-space:nowrap}.brand{min-width:0}.brand b,.brand small{overflow-wrap:anywhere}
@media(max-width:700px){.tools{flex-wrap:wrap;justify-content:flex-end}.tools .editor-link{font-size:12px;padding:8px}.brand b{font-size:14px;letter-spacing:.04em}.brand small{max-width:140px}.topbar{gap:8px}}
.world{isolation:isolate}.speech-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}.speech-bubble{position:absolute;padding:13px 16px;background:#fffdf6;border:1px solid #d5deca;border-radius:18px 18px 18px 4px;box-shadow:0 5px 20px #29433125;color:#314c40;pointer-events:auto}.speech-bubble::after{content:"";position:absolute;left:50%;bottom:-8px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:9px solid #fffdf6}.speech-bubble small{font-size:11px;color:#74846d;display:block;margin-bottom:6px}.speech-bubble p{font-size:14px;line-height:1.55;margin:0;word-break:keep-all;overflow-wrap:anywhere;max-height:150px;overflow:auto}.tools{flex-wrap:wrap;justify-content:flex-end}.tools #people-pause{white-space:nowrap}.people-label{font-size:11px!important}
@media(max-width:760px){.topbar{flex-wrap:wrap}.tools{margin-left:auto}.speech-bubble p{font-size:14px}.speech-bubble{padding:11px 13px}}
.world-controls{flex-wrap:wrap;max-width:calc(100% - 30px)}
.marker-layer,.map-pin{touch-action:none}.world canvas[data-gesture=pan],.world canvas[data-gesture=panzoom]{cursor:move}.marker-layer.is-dragging .map-pin{cursor:grabbing}
.map-marker{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:4px;pointer-events:none}.map-marker .map-pin{position:relative;transform:none;min-height:44px;font-size:12px;border-radius:8px;padding:8px 10px}.map-photo-pin{position:relative;width:48px;height:44px;padding:0;border:2px solid #fffcf4;border-radius:8px;overflow:hidden;background:#48654d;pointer-events:auto;touch-action:none;box-shadow:0 3px 12px #283c2130;cursor:pointer}.map-photo-pin>img{display:block;width:100%;height:100%;object-fit:cover}.map-photo-pin>span{position:absolute;inset:auto 0 0;display:flex;align-items:center;justify-content:center;gap:4px;padding:3px 0;background:#203a2bdd;color:#fff;font-size:12px;font-weight:700}.map-photo-pin svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}.map-photo-pin:hover{border-color:#c19d64}.map-photo-pin:focus-visible{outline:3px solid #c19d64;outline-offset:3px}.marker-layer.is-dragging .map-photo-pin{cursor:grabbing}
.dialog-thumbs{display:flex;gap:9px;overflow-x:auto;padding:4px 24px 18px;overscroll-behavior:contain}.dialog-thumbs button{flex:0 0 76px;width:76px;height:60px;padding:3px;border:2px solid transparent;border-radius:9px;background:#e8eddf}.dialog-thumbs button[aria-current=true]{border-color:#315b48;background:#315b48}.dialog-thumbs img{width:100%;height:100%;object-fit:cover;border-radius:4px}.dialog-navigation button{width:44px;height:44px;font-size:20px}.dialog-navigation span{font-size:14px}.media-dialog>header button{min-width:44px;min-height:44px}.media-dialog>p{font-size:14px}.media-dialog>img{max-height:55svh;touch-action:pan-y pinch-zoom}.dialog-photo-error{text-align:center;padding:50px 20px;color:#50654d;font-size:16px;line-height:1.8}.dialog-photo-error button{min-height:44px;padding:8px 16px;border:1px solid #9eaf91;border-radius:8px;background:#fffef8;color:#36553f}.dialog-thumbs button:focus-visible{outline:3px solid #b3925f;outline-offset:1px}
@media(max-width:760px){.map-marker .map-pin{font-size:11px;padding:6px 8px;max-width:145px;white-space:normal;line-height:1.4}.dialog-thumbs{padding:3px 15px 15px}.dialog-thumbs button{flex-basis:65px;width:65px;height:52px}.media-dialog>img{max-height:49svh}.media-dialog h2{font-size:18px}.media-dialog>p{margin:12px 15px}}
.gesture-guide{position:absolute;right:367px;bottom:158px;width:260px;border:1px solid #b9c7ae;border-radius:12px;background:#fffdf6f2;box-shadow:0 6px 24px #233e2920;color:#314c40;z-index:2;overflow:hidden}.gesture-guide>button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;border:0;background:transparent;min-height:44px;padding:10px 12px;font-size:14px}.gesture-guide>button>span:first-child{display:flex;align-items:center;gap:8px}.gesture-guide>button>span:first-child>span{display:grid;place-items:center;width:21px;height:21px;border:1px solid #9eae8f;border-radius:50%;font-size:12px;flex-shrink:0}.gesture-guide b{font-weight:600}#gesture-guide-toggle-label{font-size:12px;white-space:nowrap;color:#63775a}#gesture-guide-body{border-top:1px solid #dce3d5;padding:7px 9px 10px}.gesture-guide dl{margin:0}.gesture-guide dl>div{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:7px 5px;border-radius:6px;font-size:14px;line-height:1.5}.gesture-guide dt{font-weight:500}.gesture-guide dd{margin:0;white-space:nowrap;color:#66785d}.gesture-guide p{font-size:12px;line-height:1.6;margin:6px 5px 0;color:#65765c}.gesture-guide kbd{font:inherit;padding:1px 4px;border:1px solid #bdcbb2;border-bottom-width:2px;border-radius:3px;background:#fff}.gesture-guide[data-input=mouse] .gesture-touch,.gesture-guide[data-input=touch] .gesture-mouse{display:none}.gesture-guide[data-active=rotate] [data-gesture=rotate],.gesture-guide[data-active=pan] [data-gesture=pan],.gesture-guide[data-active=zoom] [data-gesture=zoom],.gesture-guide[data-active=panzoom] [data-gesture=pan],.gesture-guide[data-active=panzoom] [data-gesture=zoom]{background:#dcead3;color:#244e3d}.gesture-guide[data-active] [data-gesture] dd{color:inherit}.help-dialog{width:490px}.help-dialog p,.help-dialog dt,.help-dialog dd{font-size:14px}
@media(min-width:1600px){.gesture-guide{right:393px}}
@media(min-width:761px) and (max-width:1120px){.gesture-guide{right:299px;width:min(250px,calc(100% - 590px))}.gesture-guide>button{flex-wrap:wrap}.gesture-guide dl>div{flex-wrap:wrap;padding:5px}.gesture-guide dt{flex:1;min-width:100px}}
@media(max-width:760px){.gesture-guide{right:12px;bottom:84px;width:min(280px,calc(100% - 24px))}.gesture-guide>button{padding:10px 12px}.gesture-guide dl>div{padding:5px}.gesture-guide p{margin-top:4px}}
@media(max-width:380px){.gesture-guide{bottom:124px}}
.local-applied-notice{display:flex;justify-content:center;align-items:center;gap:10px;padding:10px 16px;background:#244e3d;color:#fff;font-size:12px;line-height:1.6;flex-wrap:wrap}.local-applied-notice a{border-bottom:1px solid #d9e4ce;white-space:nowrap}
@media(min-width:761px){.has-local-application .tour-app{height:calc(100svh - 42px)}}
@media(max-width:760px){.world-controls{gap:2px}.world-controls button{min-width:36px}.world-controls #reset-view{padding:0 6px}.floor-nav{position:sticky;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:8;box-shadow:0 4px 18px #314c4020}}
.loading-state{padding:0 340px 100px 320px;text-align:center;gap:12px}.loading-preview{display:block;width:220px;max-width:100%;height:auto;border:1px solid #d6dfcc;border-radius:20px}.loading-state p{margin:0;max-width:25ch;font-size:16px;line-height:1.7;word-break:keep-all;color:#395c49}.loading-state small{font-size:14px;line-height:1.6;color:#647460}.loading-state button{min-height:44px;padding:10px 18px;border:1px solid #9eaf91;border-radius:8px;background:#fffdf6;font-size:14px}.loading-state:not([hidden])~.world-controls,.loading-state:not([hidden])~.gesture-guide{visibility:hidden}
.initial-panel>img{display:block;width:100%;height:auto;border-radius:10px;margin:20px 0 16px}.initial-panel-note{font-size:14px;line-height:1.8;color:#647460}.panel-tabs button:disabled,.mini-heading button:disabled{cursor:wait;opacity:.65}
.image-frame{position:relative;overflow:hidden;background:#eef1e6 url('assets/space-placeholder.svg') center/contain no-repeat}.photo-thumb.image-frame{aspect-ratio:1.65}.plan-large.image-frame{aspect-ratio:4/3}.image-frame>img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;transition:opacity .25s ease}.plan-large.image-frame>img{object-fit:contain}.image-frame[data-image-state=loading]>img,.image-frame[data-image-state=error]>img{opacity:0}.image-frame[data-image-state=ready]>img{opacity:1}.image-frame .image-status{position:absolute;inset:auto 8px 8px;display:block;margin:0;padding:5px 7px;border-radius:5px;background:#fffdf6ed;color:#4e6548;text-align:center;font-size:14px;line-height:1.5;pointer-events:none}.image-frame:not([data-image-state=ready])>.photo-action,.mini-plan:not([data-image-state=ready])>#mini-floor-label{visibility:hidden}.mini-plan.image-frame .image-status{font-size:12px;inset:auto 4px 4px;padding:3px}.mini-plan:disabled{cursor:wait}.image-frame[data-image-state=error] .image-status{color:#795a32}
@media(min-width:761px) and (max-width:1120px){.loading-state{padding:0 285px 80px}}
@media(max-width:760px){.loading-state{padding:16px 20px 90px}.photo-thumb.image-frame{aspect-ratio:1.8}}
.map-marker-leader{position:absolute;height:1px;background:#879b76;pointer-events:none}.map-marker.is-displaced .map-pin{border-color:#a9b79b}
.tools #visitor-open{background:#315b48;color:#fff;border:1px solid #315b48;white-space:nowrap;font-size:12px}
.visitor-dialog{width:570px;max-width:calc(100vw - 28px);max-height:90svh;overflow:auto;border:1px solid #d2dccb;border-radius:22px;padding:28px;background:#fffdf6;color:#314c40;box-shadow:0 25px 90px #233e2940}
.visitor-dialog::backdrop{background:#24392bc9;backdrop-filter:blur(5px)}.visitor-dialog header{display:flex;align-items:center;justify-content:space-between}.visitor-dialog header button{width:44px;height:44px;border:1px solid #d2dccb;border-radius:50%;background:transparent;font-size:24px}.visitor-dialog h2{font-size:26px;margin:16px 0}.visitor-dialog p{font-size:15px;line-height:1.8}.visitor-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0}.visitor-choices button{display:flex;flex-direction:column;align-items:center;gap:12px;padding:25px 8px;border:1px solid #cbd7c0;border-radius:16px;background:#edf1e6;color:#314c40}.visitor-choices button:hover{background:#e2ebda;border-color:#315b48}.visitor-choices span{font-size:38px}.visitor-choices b{font-size:16px}.visitor-choices small{font-size:12px}.visitor-dialog .visitor-disclaimer{font-size:12px;color:#69775f;background:#f0f2e8;border-radius:10px;padding:12px}.visitor-dialog #visitor-start-error{color:#895731}
.visitor-hud{position:absolute;z-index:5;left:24px;bottom:28px;width:390px;max-width:calc(100% - 48px);border:1px solid #b9c7ae;border-radius:18px;background:#fffdf6f5;box-shadow:0 8px 32px #29433120;padding:18px;color:#314c40}.visitor-hud header{display:flex;align-items:center;justify-content:space-between;gap:12px}.visitor-hud small,.visitor-hud strong{display:block}.visitor-hud small{font-size:10px;letter-spacing:.14em;color:#819476;margin-bottom:6px}.visitor-hud strong{font-size:17px}.visitor-hud button,.visitor-hud select{min-height:44px;padding:8px 12px;border:1px solid #bdcbb2;border-radius:9px;background:#fffdf6;color:#314c40;font:inherit;font-size:13px}.visitor-actions{display:flex;align-items:center;gap:8px;margin:16px 0 10px;flex-wrap:wrap}.visitor-actions label{font-size:13px}.visitor-actions select{flex:1}.visitor-hud #visitor-status{font-size:14px;line-height:1.65;min-height:46px;margin:10px 0}.visitor-hud #visitor-photo{width:100%;background:#315b48;color:white;border-color:#315b48;font-size:15px}.visitor-instructions{margin-top:12px;border-top:1px solid #dce3d5;padding-top:10px}.visitor-instructions summary{cursor:pointer;font-size:13px;padding:6px 0}.visitor-instructions p{font-size:12px;line-height:1.9;margin:8px 0 0;color:#65765c}
.is-visiting .chapter-card,.is-visiting .space-nav,.is-visiting .info-panel,.is-visiting .mini-card,.is-visiting .floor-nav,.is-visiting .gesture-guide{display:none}.is-visiting .world-controls{right:24px;bottom:54px}.is-visiting .world-controls #pan-left,.is-visiting .world-controls #pan-right,.is-visiting .world-controls #pan-up,.is-visiting .world-controls #pan-down{display:none}.is-visiting .world canvas{cursor:crosshair}.is-visiting .model-note{left:auto;right:24px;bottom:15px;transform:none;max-width:46%;text-align:right}.is-visiting .speech-layer{pointer-events:none}.is-visiting .speech-bubble{pointer-events:none}
@media(max-width:760px){.visitor-dialog{padding:20px}.visitor-dialog h2{font-size:22px}.visitor-choices{gap:7px}.visitor-choices b{font-size:14px}.visitor-choices small{font-size:11px}.visitor-choices button{padding:18px 4px}.is-visiting .world{height:calc(100svh - 170px);min-height:540px;overflow:visible}.is-visiting .mobile-contact{display:none}.is-visiting .tour-app{padding-bottom:0;gap:0}.visitor-hud{left:12px;bottom:12px;max-width:calc(100% - 24px);width:calc(100% - 24px);padding:12px;border-radius:14px}.visitor-hud strong{font-size:15px}.visitor-hud #visitor-status{min-height:0;margin:6px 0;font-size:13px}.visitor-actions{margin:8px 0 0;gap:6px}.visitor-actions button,.visitor-hud button,.visitor-hud select{padding:7px 9px}.is-visiting .world-controls{top:8px;right:12px;bottom:auto}.is-visiting .model-note{display:none}.visitor-instructions{margin-top:8px;padding-top:5px}.visitor-instructions p{font-size:11px}.is-visiting .speech-bubble{display:none}}
/* A low, compact walking toolbar keeps the route ahead unobstructed. */
.visitor-hud{width:440px;padding:12px 16px;border-radius:14px}.visitor-hud header small{display:none}.visitor-hud strong{font-size:15px}.visitor-actions{display:grid;grid-template-columns:auto 64px 74px minmax(100px,1fr);gap:8px;margin:10px 0 0}.visitor-actions select{width:100%;padding:6px}.visitor-actions #visitor-change{display:none}.visitor-hud .visitor-actions #visitor-photo{width:auto;font-size:12px;padding:6px 8px;line-height:1.45}.visitor-hud #visitor-photo:disabled{background:#edf1e6;color:#647660;border-color:#d1dbc9;cursor:default}.visitor-hud #visitor-status{font-size:12px;line-height:1.6;min-height:38px;margin:7px 0 0}.visitor-instructions{margin-top:4px;padding-top:2px}.visitor-instructions summary{font-size:12px}.is-visiting .map-pin .pin-dot{display:none}.is-visiting .map-marker .map-pin{font-size:11px;min-height:36px;padding:6px 9px}.is-visiting .tools #auto-tour,.is-visiting .tools #auto-rotate{display:none}
@media(max-width:760px){.visitor-hud{width:calc(100% - 24px);padding:10px 12px}.visitor-actions{grid-template-columns:auto 54px 65px minmax(94px,1fr);gap:5px}.visitor-actions label{font-size:11px}.visitor-hud #visitor-status{min-height:38px;font-size:12px}.visitor-actions button{font-size:12px}.visitor-hud header button{font-size:12px}.visitor-hud strong{font-size:14px}.is-visiting .tools #people-pause,.is-visiting .tools #help-open{display:none}}
.visitor-actions #visitor-recenter{white-space:nowrap;padding:6px;font-size:12px}
@media(max-width:760px){.is-visiting .tools #people-pause{display:block}.is-visiting .tour-app{height:100svh;min-height:540px}.is-visiting .topbar{flex-shrink:0}.is-visiting .world{height:auto;min-height:0;flex:1;overflow:hidden}}
/* First-person view: a steady eye-level camera, compact controls and no avatar. */
.visitor-reticle{display:none;position:absolute;left:50%;top:50%;width:6px;height:6px;transform:translate(-50%,-50%);border:1px solid #fff;border-radius:50%;background:#315b48aa;box-shadow:0 0 0 1px #315b4880;pointer-events:none;z-index:2}.is-visiting .visitor-reticle{display:block}.is-visiting .world-controls{display:none}.visitor-look-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:7px}.visitor-look-row>span{font-size:11px;color:#54765b}.visitor-look-row button{min-height:36px;font-size:12px;padding:5px 9px}.is-pointer-locked .map-marker,.is-pointer-locked .map-pin,.is-pointer-locked .map-photo-pin{pointer-events:none}.visitor-move-pad{display:none;position:absolute;left:0;bottom:calc(100% + 14px);grid-template-columns:repeat(3,44px);gap:5px}.visitor-move-pad button{width:44px;height:44px;padding:0;font-size:22px;background:#fffdf6e8;touch-action:none;user-select:none}.visitor-move-pad button:first-child{grid-column:2}.visitor-move-pad button:nth-child(2){grid-column:1}.visitor-move-pad button:active{background:#315b48;color:#fff}.visitor-hud:has(details[open]) .visitor-move-pad{display:none}
@media(pointer:coarse),(max-width:760px){.visitor-move-pad{display:grid}.visitor-look-row button{display:none}.visitor-look-row{margin-top:5px}.visitor-hud #visitor-status{min-height:0}.visitor-hud{max-height:55%;overflow:visible}.visitor-instructions[open]{max-height:24svh;overflow:auto}}
/* Leave the walking view open; detailed controls live in one disclosure. */
.visitor-hud{width:490px;padding:10px 14px}.visitor-hud header button{min-height:36px}.visitor-actions{grid-template-columns:64px minmax(100px,1fr) minmax(125px,1fr);margin-top:7px}.visitor-actions select{min-width:0;font-size:12px}.visitor-hud #visitor-status{min-height:0;font-size:11px;margin:6px 0;line-height:1.5}.visitor-instructions summary{display:flex;justify-content:space-between;gap:10px;min-height:30px;align-items:center}.visitor-instructions summary::before{content:'＋'}.visitor-instructions[open] summary::before{content:'−'}#visitor-setting-label{margin-left:auto;color:#788871;font-size:11px}.visitor-settings{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}.visitor-settings label{font-size:12px}.visitor-settings select,.visitor-settings button{min-height:36px;font-size:12px;padding:5px 8px}.visitor-settings button[aria-pressed=true]{background:#315b48;color:#fff}.visitor-instructions[open]{max-height:45svh;overflow:auto}.visitor-instructions p{max-width:64ch}.visitor-look-row{margin-top:7px}
@media(max-width:760px){.visitor-hud{width:calc(100% - 24px);padding:9px 10px}.visitor-actions{grid-template-columns:49px minmax(95px,1fr) minmax(112px,1fr);gap:4px}.visitor-hud .visitor-actions #visitor-photo{font-size:11px;padding:5px}.visitor-instructions[open]{max-height:28svh}.visitor-reticle{top:35%}.visitor-instructions summary{font-size:11px;gap:4px}#visitor-setting-label{font-size:10px}.visitor-hud strong{font-size:13px}}
.visitor-transit-hint{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding:7px 9px;border-radius:9px;background:#edf1e9;border:1px solid #d1dbc9;font-size:12px}.visitor-transit-hint[hidden]{display:none}.visitor-transit-hint button{white-space:nowrap;min-height:34px;padding:5px 9px;background:#315b48;color:white}.visitor-height-note{color:#68766a}.transit-marker .map-pin{background:#335c51;color:#fff;border:1px solid #a4b7a9}.transit-marker .map-pin:after{border-top-color:#335c51}
.transit-dialog{width:min(460px,calc(100% - 32px));max-height:calc(100svh - 40px);overflow:auto;border:1px solid #d2dccb;border-radius:22px;padding:26px;background:#fffdf6;color:#284c3e;box-shadow:0 24px 80px #152e3238}.transit-dialog::backdrop{background:#243c35b8;backdrop-filter:blur(6px)}.transit-dialog header{display:flex;align-items:center;justify-content:space-between}.transit-dialog header button{background:none;border:1px solid #d4ddcf;border-radius:50%;width:40px;height:40px;font-size:24px;color:inherit}.transit-dialog h2{font-size:25px;margin:12px 0}.transit-dialog p{line-height:1.7}.transit-current{color:#758576;font-size:13px;margin-top:24px}.transit-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0}.transit-options button{border:1px solid #c6d3c1;border-radius:12px;background:#edf2e7;color:#244d3c;padding:18px 9px;font-weight:700;font-size:16px;min-height:64px}.transit-options button:hover,.transit-options button:focus-visible{background:#315b48;color:#fff}.transit-options button:disabled{opacity:.45;cursor:not-allowed}.transit-note{font-size:12px;color:#7d8879;border-top:1px solid #e0e5d8;padding-top:16px}.transit-dialog.is-travelling::backdrop{background:#203c32ee}.transit-dialog.is-travelling{text-align:center}.transit-dialog [hidden]{display:none}#transit-loading{padding:30px 0}#transit-route{font-size:30px;font-weight:700;margin:22px 0 6px}#transit-loading-title{font-size:20px}.transit-loader{display:inline-block;width:36px;height:36px;border:3px solid #dce5d3;border-top-color:#af8a4c;border-radius:50%;animation:transit-spin .8s linear infinite}@keyframes transit-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.transit-dialog{padding:20px}.transit-dialog h2{font-size:22px}.visitor-transit-hint{font-size:11px;padding:5px 7px}.visitor-transit-hint button{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
