*{box-sizing:border-box}
:root{--stage-w:980;--stage-h:600;--white:#fff;--muted:rgba(255,255,255,.78);--line:rgba(255,255,255,.34)}
html,body{margin:0;min-height:100%;background:#090909;color:#fff}
body{font-family:Georgia,"Times New Roman",serif;overflow:hidden}
button,a,input,textarea{font:inherit}
button{color:inherit}
.site-shell{width:100vw;height:100vh;display:grid;place-items:center;background:#090909}
.stage{position:relative;width:min(100vw,calc(100vh * 1.633333));height:min(100vh,calc(100vw / 1.633333));aspect-ratio:49/30;overflow:hidden;background:#111;isolation:isolate}
.floor-bg{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transform:scale(1.015);transition:opacity .6s ease,transform 1.2s ease;z-index:-5}
.floor-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.1),rgba(0,0,0,.06))}
.floor-bg.is-active{opacity:1;transform:scale(1)}
.floor-bg[data-bg="basement"]{background-image:url("images/basement.jpg")}
.floor-bg[data-bg="home"]{background-image:url("images/home.jpg")}
.floor-bg[data-bg="tent"]{background-image:url("images/tent.jpg")}
.floor-bg[data-bg="cabin"]{background-image:url("images/cabin.jpg")}
.floor-bg[data-bg="suite"]{background-image:url("images/suite.jpg")}

.agency-link{position:absolute;top:12px;right:16px;color:#fff;text-decoration:none;font:700 10px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.03em;text-shadow:0 1px 2px #000;z-index:30}
.agency-link:hover{text-decoration:underline}

.floor-arrow{position:absolute;left:50%;transform:translateX(-50%);z-index:40;border:0;background:none;padding:0;cursor:pointer;display:flex;align-items:center;gap:4px;color:#fff;font:700 9px/1 Arial,Helvetica,sans-serif;text-transform:lowercase;text-shadow:0 1px 2px #000;opacity:.92}
.floor-arrow i{width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;filter:drop-shadow(0 1px 1px #000)}
.floor-arrow--up{top:4px;flex-direction:column-reverse}.floor-arrow--up i{border-bottom:12px solid #fff}
.floor-arrow--down{bottom:4px;flex-direction:column}.floor-arrow--down i{border-top:12px solid #fff}
.floor-arrow:disabled{opacity:.18;cursor:default}
.floor-arrow:hover:not(:disabled){opacity:1}

.floor-dots{position:absolute;left:9px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:7px;z-index:35}
.floor-dots button{width:7px;height:7px;border-radius:50%;border:1px solid rgba(255,255,255,.85);background:rgba(0,0,0,.25);padding:0;cursor:pointer}
.floor-dots button.is-active{background:#fff}

.floor-panel{position:absolute;left:0;top:12.6667%;width:100%;height:79.667%;opacity:0;pointer-events:none;transform:translateY(9px);transition:opacity .4s ease,transform .4s ease;z-index:10}
.floor-panel.is-active{opacity:1;pointer-events:auto;transform:none}
.floor-panel::before{content:"";position:absolute;top:0;bottom:0;left:0;background-repeat:repeat;background-size:325px 239px;box-shadow:0 0 35px rgba(0,0,0,.4)}
.floor-panel--basement::before{width:47%;background-image:linear-gradient(rgba(30,23,19,.46),rgba(30,23,19,.46)),url("images/basement-texture.jpg")}
.floor-panel--home::before{width:66.5%;background-image:linear-gradient(rgba(20,20,20,.58),rgba(20,20,20,.58)),url("images/home-texture.jpg")}
.floor-panel--tent::before{width:71.2%;background-image:linear-gradient(rgba(27,58,14,.52),rgba(27,58,14,.52)),url("images/tent-texture.jpg")}
.floor-panel--cabin::before{width:68.5%;background-image:linear-gradient(rgba(90,57,31,.46),rgba(90,57,31,.46)),url("images/cabin-texture.jpg")}
.floor-panel--suite::before{width:70.2%;background-image:linear-gradient(rgba(65,32,17,.53),rgba(65,32,17,.53)),url("images/suite-texture.jpg")}

.panel-text{position:absolute;z-index:2;color:#fff}
.floor-panel--basement .panel-text{left:16.5%;top:1.8%;width:29.5%}
.floor-panel--home .panel-text{left:15.8%;top:1.8%;width:31%}
.room-copy{left:19.2%;top:2.2%;width:29.5%}
.floor-panel--cabin .room-copy{left:18.2%}.floor-panel--suite .room-copy{left:17.6%}
.small-title{font:600 12px/1.2 "Arial Narrow",Arial,Helvetica,sans-serif;letter-spacing:.02em;text-transform:uppercase;margin:0 0 2px;text-shadow:0 1px 2px rgba(0,0,0,.55)}
.panel-text h1{font:400 42px/.98 "Arial Narrow",Arial,Helvetica,sans-serif;letter-spacing:-.025em;margin:0;color:rgba(255,255,255,.93)}
.rule{height:2px;background:rgba(255,255,255,.78);width:100%;margin:7px 0 10px}
.panel-text p{font:400 15px/1.19 Georgia,"Times New Roman",serif;margin:0;text-shadow:0 1px 1px rgba(0,0,0,.42)}
.home-actions{display:flex;flex-direction:column;gap:5px;margin-top:18px;align-items:flex-start}
.old-button,.places-title{border:0;background:none;color:#fff;padding:0;cursor:pointer;font:600 17px/1.1 "Arial Narrow",Arial,sans-serif;text-transform:uppercase;text-shadow:0 1px 2px #000}
.old-button::before,.places-title::before{content:"> ";font-weight:700}
.old-button:hover,.places-title:hover{text-decoration:underline}
.places-title{font-size:17px;color:rgba(255,255,255,.7);margin-top:16px}

.room-menu{position:absolute;left:20.7%;top:54%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;z-index:3}
.floor-panel--cabin .room-menu{left:20.0%;top:52%}.floor-panel--suite .room-menu{left:19.4%;top:52%}
.room-menu button{border:0;background:none;padding:0;color:rgba(255,255,255,.86);cursor:pointer;font:500 16px/1.24 "Arial Narrow",Arial,sans-serif;text-transform:uppercase;text-shadow:0 1px 2px #000}
.room-menu button::before{content:"> ";opacity:.7}
.room-menu button:hover{color:#fff;text-decoration:underline}

.social{position:absolute;left:9px;bottom:9px;display:flex;gap:5px;z-index:45}
.social a{width:20px;height:20px;display:block;border-radius:2px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.45)}
.social img{display:block;width:20px;height:20px}

.modal{position:absolute;inset:0;z-index:100;background:rgba(0,0,0,.82);backdrop-filter:blur(2px);padding:7.6% 14% 5%}
.modal[hidden]{display:none}
.close{position:absolute;right:5%;top:4%;width:34px;height:34px;border:1px solid rgba(255,255,255,.65);background:rgba(0,0,0,.3);color:#fff;font:300 27px/28px Arial;cursor:pointer}
.modal-inner{height:100%;padding:26px 34px;background:linear-gradient(rgba(22,22,22,.82),rgba(22,22,22,.82)),url("images/home-texture.jpg");overflow:auto}
.modal-inner h2,.places-layout h2{font:400 36px/1 "Arial Narrow",Arial,sans-serif;margin:0 0 7px;text-transform:uppercase}
.booking .check,.located{margin:0 0 18px;font:italic 15px/1.3 Georgia,serif}
.booking form{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
.booking label{font:600 11px/1.2 Arial,sans-serif;text-transform:uppercase;letter-spacing:.03em}
.booking input,.booking textarea{display:block;width:100%;margin-top:4px;border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.9);color:#111;padding:7px;font:13px Arial,sans-serif}
.booking textarea{min-height:95px;resize:vertical}
.booking .wide{grid-column:1/-1}
.booking .old-button{grid-column:1/-1;margin-top:2px}
.location{display:grid;grid-template-columns:1.15fr 1fr;gap:12px 30px;align-content:start}
.location .small-title,.location h2,.location .located{grid-column:1/-1}
.location img{width:100%;height:auto;border:6px solid rgba(255,255,255,.2)}
.location p{margin:0;font:15px/1.35 Georgia,serif}

.places-modal{padding:5.5% 7.5%}
.places-layout{height:100%;display:grid;grid-template-columns:29% 71%;background:rgba(14,14,14,.93);box-shadow:0 0 50px rgba(0,0,0,.5)}
.places-layout aside{padding:30px 22px;background:linear-gradient(rgba(26,26,26,.86),rgba(26,26,26,.86)),url("images/home-texture.jpg");overflow:auto}
.places-layout aside nav{display:flex;flex-direction:column;align-items:flex-start;margin-top:25px;gap:5px}
.places-layout aside nav button{border:0;background:none;padding:0;color:rgba(255,255,255,.72);font:500 15px/1.25 "Arial Narrow",Arial,sans-serif;text-transform:uppercase;cursor:pointer}
.places-layout aside nav button::before{content:"> "}
.places-layout aside nav button.is-active,.places-layout aside nav button:hover{color:#fff;text-decoration:underline}
.places-content{padding:24px;overflow:auto;background:rgba(245,242,235,.96);color:#161616}
.places-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid rgba(0,0,0,.25);padding-bottom:10px;margin-bottom:16px}
.places-content .small-title{color:#555;text-shadow:none}
.places-content h3{font:400 34px/1 "Arial Narrow",Arial,sans-serif;margin:0;text-transform:uppercase}
#places-count{font:11px Arial,sans-serif;color:#666}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.card{display:grid;grid-template-columns:82px 1fr;gap:11px;padding-bottom:13px;border-bottom:1px solid rgba(0,0,0,.15)}
.card img{width:82px;height:82px;object-fit:cover;background:#ddd}
.card h4{margin:0 0 4px;font:700 15px/1.1 Arial,sans-serif}
.card p{margin:0;font:13px/1.27 Georgia,serif;color:#333}
.quote-card{grid-column:1/-1;display:block}
.quote-card p{font-size:14px;line-height:1.36}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

@media(max-width:700px){
  body{overflow:auto;background:#111}
  .site-shell{min-height:100svh;height:auto;display:block}
  .stage{width:100vw;height:100svh;min-height:620px;aspect-ratio:auto}
  .floor-bg{background-position:center}
  .agency-link{font-size:9px;max-width:47%;text-align:right}
  .floor-panel{top:12%;height:80%}
  .floor-panel::before{width:82%!important}
  .floor-panel--basement .panel-text,.floor-panel--home .panel-text,.room-copy,.floor-panel--cabin .room-copy,.floor-panel--suite .room-copy{left:10%;width:62%;top:6%}
  .panel-text h1{font-size:38px}.panel-text p{font-size:14px;line-height:1.22}
  .room-menu,.floor-panel--cabin .room-menu,.floor-panel--suite .room-menu{left:10%;top:auto;bottom:8%}
  .floor-dots{left:auto;right:10px}
  .modal{padding:8% 5%}.modal-inner{padding:22px 18px}
  .booking form,.location,.places-layout{grid-template-columns:1fr}
  .location .small-title,.location h2,.location .located{grid-column:auto}
  .places-modal{padding:7% 3%}
  .places-layout{grid-template-columns:1fr;overflow:auto}.places-layout aside{padding:20px}
  .places-layout aside nav{flex-direction:row;flex-wrap:wrap;gap:8px 14px;margin-top:14px}
  .places-content{overflow:visible}.cards{grid-template-columns:1fr}
}
