:root{--ink:#323c30;--green:#4f6048;--line:#dddeda;--paper:#faf9f5;--muted:#818578;--sand:#d9cbb2}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:#fffef9;color:var(--ink);border-radius:5px;padding:10px 13px;font-size:12px;transition:background .18s,color .18s}button:hover{background:#e9ece3}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #697e5c;outline-offset:3px}button:disabled{opacity:.45;cursor:default}.primary,button.active{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#394a34}.secondary{background:#f1f0e9}.full{width:100%;margin-top:8px}.small{font-size:11px!important;line-height:1.6!important}header{height:84px;display:flex;align-items:center;padding:0 26px;border-bottom:1px solid var(--line);gap:34px;background:#fffef9;position:relative;z-index:5}.brand{text-decoration:none;color:#4b5141;letter-spacing:8px;font-family:Georgia,serif;font-size:29px;line-height:1}.brand span{display:block;font:8px Arial;letter-spacing:3px;margin-top:11px}.title{border-left:1px solid var(--line);padding-left:30px}.title>span,.eyebrow{font-size:9px;letter-spacing:1.7px;color:var(--muted);font-weight:600}h1{font:23px Georgia,serif;font-weight:400;margin:6px 0 0}header .link{margin-left:auto;font-size:12px;color:var(--green);text-decoration:none;padding:11px 14px;border:1px solid var(--line);border-radius:5px}main{display:grid;grid-template-columns:300px 1fr;height:calc(100dvh - 84px)}aside{overflow-y:auto;scrollbar-width:thin;border-right:1px solid var(--line);background:var(--paper);padding:24px 20px 0;z-index:4}.aside-head h2{font:29px Georgia,serif;font-weight:400;margin:12px 0}.aside-head p{font-size:12px;color:#838779;line-height:1.7;margin:0 0 21px}.level-switch{display:flex;gap:5px;padding:4px;background:#eeeee6;border-radius:7px}.level-switch button{flex:1;font-size:11px;border:0}.tabs{display:flex;margin:23px 0;border-bottom:1px solid var(--line)}.tabs button{flex:1;border:0;background:none;border-radius:0;padding:12px 6px;color:var(--muted)}.tabs button.active{color:var(--ink);border-bottom:2px solid var(--green);font-weight:600}#journeys{margin:12px 0}.journey{width:100%;margin-bottom:7px;text-align:left;display:flex;gap:12px;align-items:center;padding:13px 10px;background:transparent}.journey .num{font:19px Georgia,serif;color:#9d9d8c;min-width:24px}.journey strong{display:block;font-size:12px;font-weight:500}.journey small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.journey.active small,.journey.active .num{color:#d4dccd}h3{font:21px Georgia,serif;font-weight:400;margin:10px 0}section p,#roomDetail p{font-size:12px;line-height:1.7;color:#7d8277}#routeInfo{border-top:1px solid var(--line);padding:20px 0}.route-stats{display:flex;justify-content:space-between;align-items:center;font-size:11px}.route-stats b{font:22px Georgia,serif}.route-stats span{color:var(--muted)}.search-label{font-size:11px;display:block;margin-bottom:8px}input[type=search]{width:100%;border:1px solid var(--line);background:white;padding:11px;border-radius:4px}#roomList{margin:12px 0;max-height:38vh;overflow-y:auto;scrollbar-width:thin}.room-item{width:100%;display:flex;justify-content:space-between;text-align:left;border:0;border-bottom:1px solid #e6e6df;border-radius:0;padding:12px 6px;background:none;gap:8px}.room-item span{font-size:11px;line-height:1.45}.room-item small{font-size:9px;color:var(--muted);white-space:nowrap}.toggle{display:flex;align-items:center;justify-content:space-between;margin:16px 0;font-size:12px}.toggle input{accent-color:var(--green);width:16px;height:16px}.range-label{font-size:12px;display:block;margin:20px 0}.range-label select{display:block;width:100%;margin-top:8px;padding:9px;border:1px solid var(--line);background:#fffef9;color:var(--ink)}.model-note{border-top:1px solid var(--line);padding-top:12px}.model-note h3{font-size:19px}dl{display:grid;grid-template-columns:1fr 1fr;font-size:11px;line-height:2.2}dd{text-align:right;margin:0}.sidebar-footer{position:relative;margin:22px -20px 0;border-top:1px solid var(--line);padding:16px 20px;font-size:10px;color:#8a8e80}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#7c9170;margin-right:7px}#roomDetail{border-top:1px solid var(--line);padding:16px 0}.detail-top{display:flex;align-items:center;justify-content:space-between}.detail-top button{padding:2px 7px;font-size:19px;background:none;border:0}#roomArea{font:25px Georgia,serif;color:var(--green);margin-top:14px}#roomArea small{display:block;font:10px Arial;color:var(--muted);margin-top:7px}.detail-actions{display:flex;gap:7px}.detail-actions button{flex:1;font-size:11px;padding:10px 7px}#viewport{position:relative;overflow:hidden;background:#e6e8df;touch-action:none}#viewport>canvas{display:block;width:100%;height:100%;outline:none}.canvas-top{position:absolute;top:20px;left:23px;right:23px;z-index:2;display:flex;justify-content:space-between;gap:10px;pointer-events:none}.view-badge{padding:12px 15px;background:#fffef2e8;border:1px solid #fff8;border-radius:6px;backdrop-filter:blur(10px)}.view-badge span{font-size:9px;letter-spacing:1.5px;display:block;color:#777d6c}.view-badge b{display:block;font-size:12px;font-weight:400;margin-top:6px}.view-tools{display:flex;gap:5px;align-items:flex-start;pointer-events:auto}.view-tools button{background:#fffef2eb;border-color:#fff8;backdrop-filter:blur(10px)}.view-switch{position:absolute;left:50%;bottom:51px;transform:translateX(-50%);display:flex;gap:4px;padding:4px;background:#fffef3e8;border:1px solid #fff7;border-radius:7px;box-shadow:0 3px 16px #2636250d;z-index:3}.view-switch button{border:0;white-space:nowrap;padding:11px 18px}#help{position:absolute;bottom:11px;left:20px;right:20px;text-align:center;font-size:10px;color:#666e60;pointer-events:none}#locationPill{position:absolute;left:23px;bottom:110px;background:#fffef1da;padding:9px 12px;border-radius:4px;font-size:11px;pointer-events:none}.map-wrap{position:absolute;right:23px;bottom:52px;width:210px;background:#fffef2e8;border:1px solid #fff9;padding:10px 12px 7px;border-radius:7px;pointer-events:none;box-shadow:0 3px 14px #34412b09}.map-wrap>div{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#858977}.map-wrap small{font-size:8px}#minimap{width:100%;height:auto}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.room-label{position:absolute;left:0;top:0;transform:translate(-50%,-50%);text-align:center;max-width:135px;color:#344331;font-size:9px;line-height:1.35;padding:4px 6px;background:#fffff2c9;border-radius:3px;border:1px solid #ffffff9c;white-space:nowrap;box-shadow:0 2px 6px #00000008}.room-label small{display:block;color:#8d8e7b;font-size:8px;margin-top:1px}.room-label.selected{background:#43563dea;color:#fff}.room-label.selected small{color:#d6dfca}#status{position:absolute;left:50%;top:85px;transform:translateX(-50%);z-index:9;max-width:80%;font-size:12px;color:#fff;background:#45563ce8;padding:11px 17px;border-radius:5px;text-align:center;pointer-events:none}#status:empty{display:none}#tourBar{position:absolute;top:95px;left:50%;transform:translateX(-50%);z-index:4;background:#fffef5ed;padding:7px 9px;border-radius:6px;display:flex;align-items:center;gap:10px;font-size:11px;white-space:nowrap}#tourBar button{padding:7px 10px;font-size:10px}#walkControls{position:absolute;left:24px;bottom:148px;text-align:center;z-index:3}#walkControls button{width:40px;height:40px;margin:2px;background:#fffef2dc;font-size:18px;padding:0;user-select:none;touch-action:none}#walkControls button:active{background:#4f6048;color:white}#loading,#failure{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f0efe6;z-index:20;text-align:center;padding:30px}#loading h2,#failure h2{font:31px Georgia,serif;font-weight:400}#loading p,#failure p{font-size:13px;color:#858979;max-width:410px;line-height:1.6}.loading-mark{border:1px solid #b4b8a7;border-radius:50%;width:72px;height:72px;display:grid;place-items:center;font:40px Georgia,serif;color:#6b785d;animation:breathe 2s infinite}#failure a{margin-top:20px;color:var(--green);font-size:13px}[hidden]{display:none!important}@keyframes breathe{50%{opacity:.4;transform:scale(.95)}}@media(max-width:1100px){main{grid-template-columns:260px 1fr}aside{padding:20px 16px 0}.map-wrap{width:158px;right:15px;bottom:110px}.title{padding-left:20px}header{gap:20px}.room-label{font-size:8px;max-width:100px}.sidebar-footer{margin-left:-16px;margin-right:-16px}}@media(max-width:760px){header{height:66px;padding:0 14px;gap:15px}.brand{font-size:22px;letter-spacing:5px}.brand span{font-size:6px;letter-spacing:2px;margin-top:8px}.title{border:0;padding:0}.title span{font-size:7px}h1{font-size:18px}header .link{font-size:9px;padding:8px}main{height:calc(100dvh - 66px);grid-template-columns:1fr;grid-template-rows:1fr 220px}#viewport{grid-row:1}aside{grid-row:2;border:0;border-top:1px solid var(--line);padding:10px 14px;display:block}.aside-head{display:none}.level-switch{width:190px;float:left}.tabs{margin:0 0 12px 202px}.tabs button{padding:10px 4px}.sidebar-footer{display:none}section{clear:both}#journeys{display:flex;gap:7px;overflow-x:auto;margin:8px 0}.journey{min-width:170px;margin:0;padding:10px}.journey .num{font-size:16px}.journey strong{font-size:10px}.journey small{font-size:8px}#routeInfo{padding:10px 0}#roomList{max-height:130px;display:grid;grid-template-columns:1fr 1fr}.canvas-top{top:12px;left:12px;right:12px}.view-badge{padding:8px 10px}.view-badge span{font-size:7px}.view-badge b{font-size:10px}.view-tools button{font-size:10px;padding:8px}.view-switch{bottom:31px}.view-switch button{padding:8px 14px;font-size:11px}#help{bottom:3px;font-size:8px}.map-wrap{width:120px;bottom:79px;right:12px;padding:7px}#locationPill{left:12px;bottom:79px;font-size:9px;max-width:45%}#walkControls{left:10px;bottom:113px}#walkControls button{width:32px;height:32px}#tourBar{top:64px;font-size:9px;gap:6px}.room-label{font-size:7px;padding:2px 3px}.room-label small{display:none}#roomDetail{padding:10px 0}.detail-actions{max-width:300px}.model-note{max-width:600px}}

.full-tour-card{margin:0 22px 20px;padding:16px;background:#e9e4d8;border:1px solid #d1c7b2;border-radius:12px}.full-tour-card button{margin-top:10px}.full-tour-card p{font-size:12px;line-height:1.6;margin:10px 0 0;color:#606553}#tourBar{max-width:calc(100% - 32px);flex-wrap:wrap;justify-content:center;gap:8px}#tourProgress{flex:1 1 100%;text-align:center;font-size:13px}#fullTourControls{display:flex;align-items:center;gap:6px}#fullTourControls[hidden]{display:none}#fullTourControls label{font-size:12px;white-space:nowrap}#tourSpeed{padding:5px;border:1px solid #bbb5a6;border-radius:5px;background:#f7f4ec;color:#34402e}@media(max-width:700px){#tourBar{bottom:92px;min-width:280px}#tourBar button{padding:7px;font-size:11px}.full-tour-card{margin:10px 14px}}

#tourBar{top:125px;bottom:auto;white-space:normal}#tourProgress{color:#34402e;line-height:1.4}body:has(#tourBar:not([hidden])) #status{top:78px}@media(max-width:700px){#tourBar{top:auto;bottom:92px}#tourProgress{font-size:12px}}

.experience-nav{display:flex;gap:6px;margin-left:auto}.experience-nav button{white-space:nowrap}header{gap:20px}header .link{margin-left:0;font-size:10px;padding:9px}.title{padding-left:18px}.title h1{font-size:20px}#resortExperience{height:calc(100dvh - 84px);background:#f7f7ef}#resortFrame{display:block;width:100%;height:100%;border:0}body[data-experience="resort"] #buildingExperience{display:none}body[data-experience="building"] #resortExperience{display:none}@media(max-width:1100px){header .title{display:none}header{gap:12px}}@media(max-width:700px){header{height:112px;flex-wrap:wrap;gap:6px;padding:10px 12px;align-content:center}header .brand{font-size:22px}header .link{margin-left:auto}.experience-nav{order:3;width:100%;margin:0;justify-content:center}.experience-nav button{flex:1;font-size:10px;padding:9px 6px}#resortExperience,#buildingExperience{height:calc(100dvh - 112px)}}

body[data-experience="resort"] #buildingExperience{display:grid}#sitePanel{display:none}body[data-experience="resort"] aside>*{display:none}body[data-experience="resort"] #sitePanel{display:block}#sitePanel h2{font:32px Georgia,serif;margin:14px 0}#sitePanel p{font-size:13px;line-height:1.7;color:#636b5c}#sitePanel button{display:block;width:100%;margin:12px 0;padding:12px}#sitePanel label{display:block;font-size:12px;margin-top:24px}#siteLandmark{width:100%;margin:8px 0;padding:12px;background:#f5f2e9;border:1px solid #c9cdbd;color:#34402e}#sitePanel .site-note{font-size:11px;margin-top:28px}body[data-experience="resort"] .map-wrap,body[data-experience="resort"] .view-switch,body[data-experience="resort"] .view-tools{display:none}@media(max-width:760px){#sitePanel h2{font-size:22px;margin:5px 0}#sitePanel button{display:inline-block;width:auto;margin:6px 4px 6px 0}#sitePanel .site-note{display:none}}

#pavilionPanel{display:none}body[data-experience="pavilion"] aside>*{display:none}body[data-experience="pavilion"] #pavilionPanel{display:block}#pavilionPanel h2{font:30px Georgia;margin:13px 0}#pavilionPanel p{font-size:12px;line-height:1.65;color:#77806d}#n06Views{margin:18px 0}#n06Views button{width:100%;text-align:left;margin:3px 0;padding:11px 12px;font-size:11px}#n06Views small{display:block;font-size:9px;opacity:.7;margin-top:4px}.n06-options{border-top:1px solid var(--line);margin-top:20px;padding-top:5px}.n06-options input[type=range]{width:110px}body[data-experience="pavilion"] .map-wrap{width:145px}body[data-experience="pavilion"] #labels{display:none}@media(max-width:760px){#pavilionPanel h2,#pavilionPanel>p,#pavilionPanel>.eyebrow{display:none}#n06Views{display:flex;overflow:auto;gap:5px;margin:10px 0}#n06Views button{min-width:130px}.n06-options{display:none}#n06Tour,#n06Back{width:auto;margin:3px 5px 0 0}}

#editNotes{position:absolute;z-index:12;right:18px;bottom:18px;width:292px;background:#fffdf4f5;border:1px solid #b9bba9;border-radius:7px;box-shadow:0 5px 22px #1e2b2920;color:#3d4937;font-size:12px}#editNotes summary{cursor:pointer;padding:13px 16px;font-weight:600}#editCount{float:right}#editNotes[open]{max-height:calc(100% - 36px);overflow:auto}.edit-notes-body{padding:0 15px 12px}.edit-notes-body p{font-size:11px;line-height:1.5;margin:8px 0}.edit-notes-body button{width:100%;margin:6px 0;padding:10px}.edit-notes-body textarea{width:100%;padding:9px;border:1px solid #bfc4b5;background:#fff;border-radius:4px;color:#34402e;font:12px Arial;resize:vertical;margin:6px 0}.edit-notes-body label{font-size:11px}#editLocation{white-space:pre-line;background:#e9eddf;padding:8px;border-radius:3px}#editList{padding-left:18px;max-height:150px;overflow:auto}#editList li{position:relative;padding:6px 24px 6px 0;border-bottom:1px solid #deded0;line-height:1.4}#editList button{position:absolute;right:0;top:3px;width:22px;padding:1px;margin:0;font-size:17px;border:0;background:none}#editFeedback{color:#536845}#editCopyFallback{height:130px}@media(max-width:760px){#editNotes{right:10px;bottom:10px;width:260px;max-width:calc(100% - 20px)}}

/* Public visitor navigation; the shared model's design controls stay inert. */
body[data-visitor] #sitePanel{display:block!important}
body[data-visitor] #designControls{display:none!important}
body[data-visitor] .experience-nav{width:auto;order:initial;margin-left:auto}
body[data-visitor] #sitePanel .visitor-destinations button{text-align:left;line-height:1.5;padding:13px 14px;margin:10px 0}
body[data-visitor] #sitePanel .visitor-note{font-size:11px;margin-top:22px;color:var(--muted)}
body[data-visitor] #locationPill{bottom:44px;max-width:70%}
body[data-visitor] #walkControls{bottom:85px}
body[data-visitor] #help{line-height:1.5}
@media(max-width:760px){
 body[data-visitor] header{height:72px;flex-wrap:nowrap;padding:12px 14px}
 body[data-visitor] header .title{display:none}
 body[data-visitor] #buildingExperience{height:calc(100dvh - 72px);grid-template-rows:minmax(220px,1fr) 200px}
 body[data-visitor] #sitePanel>.eyebrow,body[data-visitor] #sitePanel>h2,body[data-visitor] #sitePanel>p{display:none}
 body[data-visitor] .visitor-destinations{display:grid;grid-template-columns:1fr 1fr;gap:7px}
 body[data-visitor] #sitePanel .visitor-destinations button{width:100%;margin:0;min-height:46px;font-size:11px;padding:10px}
 body[data-visitor] .visitor-destinations button:last-child{grid-column:auto}
 body[data-visitor] #locationPill{bottom:38px;font-size:9px}
 body[data-visitor] #walkControls{bottom:68px}
 body[data-visitor] #help{bottom:4px}
}
@media(max-width:760px) and (max-height:550px){
 body[data-visitor] #buildingExperience{grid-template-columns:220px 1fr;grid-template-rows:1fr}
 body[data-visitor] aside{grid-row:1;grid-column:1}
 body[data-visitor] #viewport{grid-row:1;grid-column:2}
 body[data-visitor] .visitor-destinations{grid-template-columns:1fr}
 body[data-visitor] .visitor-destinations button:last-child{grid-column:auto}
}
