:root{--forest:#202d28;--deep:#15211c;--cream:#f3f0e8;--sand:#d7b68b;--muted:#a9b1a9;--ink:#26322b;--line:rgba(239,238,228,.2);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--forest);color:var(--cream);font:15px/1.6 Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}img{display:block;width:100%;object-fit:cover}figure,p{margin:0}h1,h2,h3{margin:0;font-weight:400}h1,h2{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.045em;line-height:1.05}h1{font-size:clamp(46px,6.7vw,104px)}h2{font-size:clamp(36px,4.4vw,68px)}em{font-weight:400;color:var(--sand)}.wrap{width:min(1280px,calc(100% - 40px));margin-inline:auto}.section{padding-block:76px}.section-label,.eyebrow{font-size:10px;letter-spacing:.19em;font-weight:500}.section-label{margin-bottom:30px;color:var(--muted)}.header{position:absolute;z-index:3;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:24px 20px;border-bottom:1px solid var(--line)}.brand{display:flex;flex-direction:column;line-height:1}.brand-name{font:34px/1 Georgia,serif;letter-spacing:-2px}.brand-name i{font-size:27px;font-weight:400;color:var(--sand)}.brand small{font-size:8px;letter-spacing:.2em;margin-top:9px}.header nav{display:none;gap:30px;font-size:12px}.header nav a{transition:color .3s}.header nav a:hover{color:var(--sand)}.header-book{font-size:11px;border:1px solid var(--line);padding:10px 13px;border-radius:2px}.header-book span{padding-left:12px}.hero{position:relative;min-height:740px;min-height:95svh;display:flex;align-items:center;isolation:isolate;padding:165px 0 125px;overflow:hidden}.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.hero-image{object-position:47% center;animation:hero-in 1.8s var(--ease) both}.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(13,27,20,.78),rgba(13,27,20,.2)),linear-gradient(0deg,rgba(13,27,20,.83),transparent 48%,rgba(13,27,20,.35))}.hero-copy{animation:copy-in 1.2s var(--ease) both}.hero .eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:29px}.dot{width:6px;height:6px;border-radius:50%;background:var(--sand)}.hero h1 em{color:#e3c29b}.hero-description{font-size:15px;line-height:1.75;margin:28px 0 30px;color:#e5e7de}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:54px;padding:15px 22px;border:0;border-radius:2px;font-size:12px;font-weight:600;transition:background .3s,transform .4s var(--ease),box-shadow .4s}.button span{font-size:20px;font-weight:400}.button:hover{transform:translateY(-3px);box-shadow:0 9px 26px #0002}.warm{background:var(--sand);color:var(--deep)}.warm:hover{background:#e9cba6}.hero-bottom{position:absolute;bottom:27px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.04em;border-top:1px solid var(--line);padding-top:22px}.hero-bottom>a{display:none}.hero-bottom>span:first-child{max-width:130px}.hero-bottom b{font-size:17px;font-weight:400}.intro{display:grid;gap:30px}.intro>p,.outside-copy>p,.location-copy>p{color:#c5cbc3;max-width:400px;font-size:14px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:30px 20px;border-top:1px solid var(--line);margin-top:50px;padding-top:30px}.facts>div{display:flex;flex-direction:column}.facts strong{font:40px/1.1 Georgia,serif;font-weight:400;letter-spacing:-.04em}.facts strong small{font-size:25px}.facts span{font-size:10px;color:var(--muted);margin-top:10px}.interior{background:var(--cream);color:var(--ink)}.interior em{color:#826647}.interior .section-label{color:#70796c}.heading-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:25px;margin-bottom:38px}.heading-row>p{font-size:13px;opacity:.75}.room-layout{display:grid;gap:32px}.room-layout figure{position:relative;overflow:hidden}.room-main img{aspect-ratio:1.08}.room-side img{aspect-ratio:1.3}.room-layout figcaption{margin-top:16px;display:flex;flex-direction:column;gap:5px}.room-layout figcaption span{font:23px Georgia,serif}.room-layout figcaption small{font-size:8px;letter-spacing:.12em;color:#697064}.detail-note{margin-top:25px;font-size:13px;color:#747b70}.outside{display:grid;gap:36px;align-items:center}.outside-copy>p{margin-block:28px}.text-link{display:inline-flex;gap:28px;border-bottom:1px solid currentColor;padding-block:8px;font-size:12px;transition:color .3s}.text-link:hover{color:var(--sand)}.outside-photo{position:relative}.outside-photo img{aspect-ratio:1.1}.image-tag{position:absolute;bottom:18px;left:18px;right:18px;font-size:11px;padding:15px;background:#17241ddb;backdrop-filter:blur(12px)}.comfort{background:var(--deep)}.amenities{display:grid;grid-template-columns:1fr 1fr;gap:32px 22px;margin-top:50px}.amenities article{border-top:1px solid var(--line);padding-top:25px}.amenity-symbol{display:block;color:var(--sand);font:31px Georgia,serif;margin-bottom:22px;height:34px}.amenities h3{font-size:14px;margin-bottom:12px}.amenities p{font-size:12px;color:var(--muted);max-width:210px}.gallery{overflow:hidden}.gallery-controls{display:flex;gap:9px}.gallery-controls button{background:transparent;color:var(--cream);width:45px;height:45px;border:1px solid var(--line);border-radius:50%;font-size:20px;transition:background .3s}.gallery-controls button:hover{background:#ffffff1a}.gallery-track{display:flex;overflow-x:auto;gap:20px;padding:0 max(20px,calc((100vw - 1280px)/2)) 12px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--sand) transparent}.gallery-item{flex:0 0 78vw;max-width:410px;padding:0;background:none;color:inherit;border:0;text-align:left;scroll-snap-align:center}.gallery-item img{aspect-ratio:4/5;transition:filter .5s}.gallery-item:hover img{filter:brightness(1.1)}.gallery-item>span{display:flex;justify-content:space-between;font-size:11px;margin-top:17px;color:#c7cfc5}.gallery-item b{font-weight:400}.gallery-hint{font-size:10px;margin-top:18px;color:var(--muted)}.location{display:grid;gap:36px;border-top:1px solid var(--line)}.location-image img{aspect-ratio:1.15;object-position:25% center}.location-copy>p{margin-block:25px}.location address{font-style:normal;font-size:13px;margin:24px 0}.location address strong{font-weight:400;color:var(--sand)}.outline{border:1px solid var(--line);background:transparent;color:var(--cream)}.small{font-size:10px!important;line-height:1.6;color:var(--muted)}.booking{background:#19251f}.booking-grid{display:grid;gap:40px}.booking h2{margin-bottom:30px}.booking-grid>div>p{color:#c3c9bf;font-size:14px}.phone{display:block;font-size:clamp(22px,2.6vw,35px);margin:29px 0 18px;letter-spacing:-.04em}.socials{display:flex;gap:26px;font-size:12px;color:var(--sand)}.booking-card{background:var(--cream);color:var(--ink);padding:28px}.booking-card>.eyebrow{color:#6c7669;font-size:9px}.booking-card>.price{color:var(--ink);font:38px Georgia,serif;margin:20px 0 9px}.price span{font:12px Arial,sans-serif;color:#777d72}.booking-card>p:not(.price):not(.eyebrow){font-size:12px;color:#63705f}.booking-card form{border-top:1px solid #d5d8ce;margin-top:26px;padding-top:24px}.date-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-card label{display:block;font-size:10px;font-weight:600;letter-spacing:.02em}.booking-card input,.booking-card select{display:block;width:100%;min-width:0;min-height:47px;border:1px solid #ccd0c5;background:transparent;padding:9px 7px;color:var(--ink);border-radius:2px;margin:8px 0 17px;font-size:13px}.booking-card .button{width:100%;margin-top:6px}.booking-card .small{color:#66725f;margin-top:13px}.rate-note{border-top:1px solid #d5d8ce;padding-top:15px}.booking-card .text-link{font-size:10px;margin-top:9px}.footer{display:flex;justify-content:space-between;align-items:center;gap:22px;padding-block:38px 105px}.footer>p{display:none}.footer>a:last-child{font-size:11px}.footer .brand small{font-size:7px}.mobile-book{display:flex;position:fixed;z-index:4;bottom:0;left:0;right:0;justify-content:space-between;align-items:center;padding:16px 20px calc(16px + env(safe-area-inset-bottom));font-size:11px;background:var(--sand);color:var(--deep);box-shadow:0 -4px 25px #0002}.mobile-book strong{font-size:12px}dialog{border:1px solid var(--line);background:var(--deep);color:var(--cream);max-width:min(1100px,95vw);max-height:95svh;padding:18px}dialog::backdrop{background:#07100eeb;backdrop-filter:blur(8px)}dialog img{width:auto;max-width:100%;height:auto;max-height:74svh;object-fit:contain;margin:auto}dialog p{font-size:12px;text-align:center;padding-top:12px}.dialog-close{display:block;margin:0 0 13px auto;background:transparent;color:var(--cream);border:0;padding:8px;font-size:13px}.skip{position:fixed;top:-80px;left:20px;z-index:10;padding:12px;background:var(--cream);color:var(--ink)}.skip:focus{top:10px}:focus-visible{outline:2px solid #bd985b;outline-offset:5px}.reveal{transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal.waiting{opacity:0;transform:translateY(24px)}
@keyframes hero-in{from{transform:scale(1.055)}to{transform:scale(1)}}@keyframes copy-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:760px){.wrap{width:min(1280px,calc(100% - 100px))}.section{padding-block:110px}.header{padding:27px 50px}.header nav{display:flex}.header-book{padding:12px 18px}.hero{min-height:800px;min-height:100svh}.hero-description{font-size:16px}.hero-bottom>a{display:block}.hero-bottom>span:first-child{max-width:none}.intro{grid-template-columns:1.5fr 1fr;align-items:center;gap:65px}.facts{grid-template-columns:repeat(4,1fr);margin-top:70px;padding-top:37px}.facts strong{font-size:54px}.facts span{font-size:11px}.room-layout{grid-template-columns:1.35fr 1fr;gap:45px}.room-side{padding-top:90px}.room-main img{aspect-ratio:.98}.outside{grid-template-columns:1fr 1.15fr;gap:80px}.amenities{grid-template-columns:repeat(4,1fr);gap:35px}.gallery-track{padding-inline:max(50px,calc((100vw - 1280px)/2));gap:28px}.gallery-item{flex-basis:32vw}.location{grid-template-columns:1.1fr 1fr;gap:80px;align-items:center}.location-image img{aspect-ratio:.95}.booking-grid{grid-template-columns:1.25fr 1fr;gap:100px;align-items:center}.booking-card{padding:38px}.footer{padding-block:42px}.footer>p{display:block;font-size:11px;color:var(--muted)}.mobile-book{display:none}}
.faq {
  display: grid;
  gap: 38px;
  border-top: 1px solid var(--line);
}
.faq-intro {
  margin: 26px 0 18px;
  color: var(--muted);
  font-size: 14px;
}
.faq-list details {
  border-bottom: 1px solid var(--line);
}
.faq-list details:first-child {
  border-top: 1px solid var(--line);
}
.faq-list summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 25px 0;
  list-style: none;
  cursor: pointer;
  font-size: 14px;
}
.faq-list summary::-webkit-details-marker {
  display: none;
}
.faq-list summary span {
  color: var(--sand);
  font-size: 25px;
  transition: transform .35s var(--ease);
}
.faq-list details[open] summary span {
  transform: rotate(45deg);
}
.faq-list details p {
  max-width: 490px;
  padding: 0 24px 25px 0;
  font-size: 13px;
  color: var(--muted);
}
@media (min-width: 760px) {
  .faq {
    grid-template-columns: 1fr 1.15fr;
    gap: 80px;
  }
}

/* Respect the responsive aspect ratios instead of intrinsic HTML heights. */
.room-layout img,
.outside-photo img,
.location-image img {
  height: auto;
}

/* One frame size for every gallery photograph, without stretching. */
.gallery-item img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
}

/* Use one vector-like arrow shape on every viewport so mobile browsers never
   substitute an emoji glyph for the text arrow character. */
.ui-arrow {
  display: inline-block;
  position: relative;
  width: 11px;
  height: 11px;
  flex: 0 0 11px;
  padding: 0 !important;
  font-size: 0 !important;
  line-height: 1;
  color: currentColor;
  vertical-align: middle;
}
.ui-arrow::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 0;
  width: 10px;
  height: 1px;
  background: currentColor;
  transform: rotate(-45deg);
  transform-origin: right center;
}
.ui-arrow::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 5px;
  height: 5px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
}
.ui-arrow--left,
.ui-arrow--right {
  width: 12px;
  height: 12px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
}
.ui-arrow--left {
  transform: rotate(-135deg);
}
.ui-arrow--right {
  transform: rotate(45deg);
}
.gallery-controls .ui-arrow--left,
.gallery-controls .ui-arrow--right {
  display: inline-block;
}

/* Final arrow pass: a single masked vector keeps every arrow crisp and
   identical on desktop and mobile, without relying on a font glyph. */
.ui-arrow {
  width: 14px !important;
  height: 14px !important;
  flex: 0 0 14px;
  border: 0 !important;
  border-radius: 0;
  background-color: currentColor !important;
  background-image: none !important;
  transform: none !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13 13 3M6 3h7v7'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13 13 3M6 3h7v7'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ui-arrow::before,
.ui-arrow::after {
  content: none !important;
  display: none !important;
}
.ui-arrow--left,
.ui-arrow--right {
  width: 18px !important;
  height: 18px !important;
  flex-basis: 18px;
}
.ui-arrow--left {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 10H3m0 0 6-6m-6 6 6 6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 10H3m0 0 6-6m-6 6 6 6'/%3E%3C/svg%3E");
}
.ui-arrow--right {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10h14m0 0-6-6m6 6-6 6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10h14m0 0-6-6m6 6-6 6'/%3E%3C/svg%3E");
}

/* Premium motion layer. Every effect is decorative and has a reduced-motion
   fallback below, so the page stays calm and usable on slower devices. */
@media (prefers-reduced-motion: no-preference) {
  .hero-image {
    animation:
      hero-in 1.8s var(--ease) both,
      hero-breathe 18s ease-in-out 1.8s infinite alternate;
  }
  .hero-shade {
    animation: shade-breathe 12s ease-in-out infinite alternate;
  }
  .hero-copy > * {
    opacity: 0;
    animation: rise-in .9s var(--ease) both;
  }
  .hero-copy > :nth-child(1) { animation-delay: .15s; }
  .hero-copy > :nth-child(2) { animation-delay: .3s; }
  .hero-copy > :nth-child(3) { animation-delay: .46s; }
  .hero-copy > :nth-child(4) { animation-delay: .62s; }

  .section-label {
    position: relative;
  }
  .section-label::after {
    content: "";
    display: block;
    width: 34px;
    height: 1px;
    margin-top: 12px;
    background: var(--sand);
    transform-origin: left center;
    animation: line-grow 1.1s var(--ease) both;
  }

  .button {
    position: relative;
    overflow: hidden;
  }
  .button::before {
    content: "";
    position: absolute;
    inset: -30% auto -30% -55%;
    width: 38%;
    background: linear-gradient(105deg, transparent, rgba(255,255,255,.34), transparent);
    transform: skewX(-18deg);
    transition: left .8s var(--ease);
    pointer-events: none;
  }
  .button:hover::before {
    left: 125%;
  }

  .facts > div,
  .amenities article {
    animation: rise-in .8s var(--ease) both;
  }
  .facts > :nth-child(1),
  .amenities > :nth-child(1) { animation-delay: .08s; }
  .facts > :nth-child(2),
  .amenities > :nth-child(2) { animation-delay: .16s; }
  .facts > :nth-child(3),
  .amenities > :nth-child(3) { animation-delay: .24s; }
  .facts > :nth-child(4),
  .amenities > :nth-child(4) { animation-delay: .32s; }

  .room-layout figure,
  .outside-photo,
  .location-image,
  .booking-card {
    transition: transform .7s var(--ease), box-shadow .7s var(--ease);
  }
  .room-layout figure:hover,
  .outside-photo:hover,
  .location-image:hover {
    transform: translateY(-7px);
  }
  .room-layout figure img,
  .outside-photo img,
  .location-image img {
    transition: transform 1.2s var(--ease), filter 1.2s var(--ease);
  }
  .room-layout figure:hover img,
  .outside-photo:hover img,
  .location-image:hover img {
    transform: scale(1.035);
    filter: saturate(1.06);
  }
  .amenities article {
    transition: transform .55s var(--ease), border-color .35s ease;
  }
  .amenities article:hover {
    transform: translateY(-7px);
    border-color: var(--sand);
  }
  .amenity-symbol {
    transition: transform .55s var(--ease), color .35s ease;
  }
  .amenities article:hover .amenity-symbol {
    color: #e5c294;
    transform: translateY(-2px) rotate(-7deg);
  }
  .gallery-item img {
    transition: transform 1s var(--ease), filter .6s ease;
  }
  .gallery-item:hover img {
    transform: scale(1.045);
  }
  .gallery-item > span b {
    transition: transform .4s var(--ease);
  }
  .gallery-item:hover > span b {
    transform: translate(3px, -3px);
  }
  .booking-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 22px 52px rgba(0,0,0,.2);
  }
  .faq-list details p {
    animation: faq-reveal .5s var(--ease) both;
  }
}

@keyframes hero-breathe {
  from { transform: scale(1); }
  to { transform: scale(1.045) translate3d(-.7%, -.35%, 0); }
}
@keyframes shade-breathe {
  from { opacity: .92; }
  to { opacity: 1; }
}
@keyframes rise-in {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes line-grow {
  from { transform: scaleX(0); opacity: 0; }
  to { transform: scaleX(1); opacity: 1; }
}
@keyframes faq-reveal {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
  .reveal.waiting {
    opacity: 1;
    transform: none;
  }
  .hero-copy > * {
    opacity: 1;
  }
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal.waiting{opacity:1;transform:none}}
