@font-face{font-family:Barlow;src:url('assets/barlow-bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#fff;--ink:#111;--muted:#626262;--line:#d8d8d8;--gutter:clamp(24px,5vw,88px);--header:88px;--display:Barlow,'Arial Narrow',sans-serif;--body:Manrope,Arial,sans-serif;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-padding-top:112px}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--body);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}figure{margin:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:700;line-height:.95;letter-spacing:-.025em}h1{font-size:clamp(76px,8.3vw,144px)}h2{font-size:clamp(64px,6.8vw,112px)}h3{font-size:clamp(42px,4.2vw,68px)}p{max-width:60ch}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.2em;line-height:1.6}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.star{width:42px;height:42px;fill:currentColor}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:52px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:14px 22px;font-size:13px;transition:background .2s,color .2s}.button:hover{background:#333}.button-small{min-height:44px;padding:10px 20px}.button-outline{background:var(--paper);color:var(--ink)}.button-outline:hover{background:var(--ink);color:var(--paper)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;background:transparent;border:0;border-bottom:1px solid var(--ink);padding:10px 0;min-height:44px;font-size:13px}.text-link span,.button span{display:inline-block;transition:transform .25s var(--ease)}.text-link:hover span,.button:hover span{transform:translate(3px,-3px)}:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.skip-link{position:fixed;top:8px;left:20px;background:white;z-index:200;padding:12px;transform:translateY(-200%)}.skip-link:focus{transform:none}.header{height:var(--header);padding:12px var(--gutter);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--paper);z-index:100}.brand{width:96px;display:block;flex-shrink:0}.brand img{height:auto;object-fit:contain}.header nav{display:flex;gap:40px;font-size:12px}.header nav a{padding:12px 0}.header nav a:hover{text-decoration:underline;text-underline-offset:6px}
.arrival-stage{height:calc(100svh - var(--header));min-height:650px;max-height:1050px;position:relative;overflow:hidden;padding:40px var(--gutter);isolation:isolate}.hero-copy{position:relative;width:48%;padding-top:7vh;z-index:3;pointer-events:none}.hero-copy a{pointer-events:auto}.hero-copy .eyebrow{margin-bottom:24px}.hero-description{font-size:15px;line-height:1.7;margin:26px 0 22px}.hero-signature{display:flex;align-items:center;justify-content:space-between;width:80%;margin-top:55px}.hero-signature .eyebrow{margin:0;font-size:9px}.hero-signature .star{width:36px}.portal-wrap{position:absolute;right:var(--gutter);top:22px;bottom:55px;width:47%;perspective:1100px;z-index:1}.portal{width:100%;height:100%;overflow:hidden;border-radius:48% 48% 0 0;transform-origin:50% 55%}.portal img{object-position:54% 50%;transform:scale(1.02)}.scroll-cue{position:absolute;bottom:20px;left:var(--gutter);display:flex;gap:14px;align-items:center;font-size:10px;z-index:5}.scroll-line{height:1px;width:45px;background:currentColor}.journey-strip{display:flex;align-items:center;justify-content:space-between;padding:18px var(--gutter);border-block:1px solid var(--line);gap:20px;position:relative;background:white;z-index:2;font-size:13px}
.inside-stage{min-height:780px;height:100svh;max-height:1080px;display:grid;grid-template-columns:40% 60%;align-items:center;padding:70px var(--gutter);overflow:hidden;position:relative}.inside-copy{z-index:4;position:relative}.inside-copy h2{margin:28px 0}.inside-copy>p:not(.eyebrow){font-size:15px}.inside-hint{display:block;margin-top:70px;color:var(--muted);font-size:9px}.photo-space{position:relative;height:75%;perspective:1100px;transform-style:preserve-3d}.photo-plane{position:absolute;inset:0;transform-origin:center center;transform-style:preserve-3d;background:white;border:10px solid white;outline:1px solid #eee}.photo-plane img{height:calc(100% - 50px);object-fit:cover}.photo-plane figcaption{display:flex;justify-content:space-between;gap:14px;padding:15px 0 3px;font-size:10px}.photo-plane figcaption span:first-child{text-transform:uppercase;letter-spacing:.12em}.plane-one{z-index:3}.plane-two{z-index:2;transform:translate(14px,14px)}.plane-three{z-index:1;transform:translate(28px,28px)}
.section-pad{padding:100px var(--gutter)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:65px}.section-heading .eyebrow{margin-bottom:24px}.section-heading>p{font-size:13px;line-height:1.8;padding-bottom:10px}.villa-grid{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.villa-elara{padding-top:90px}.villa-image{height:360px;position:relative;overflow:hidden}.villa-image img{transition:transform 1s var(--ease)}.villa-image:hover img{transform:scale(1.035)}.villa-image.arched{height:450px;border-radius:50% 50% 0 0}.image-note{position:absolute;right:12px;bottom:12px;background:white;padding:3px 7px;font-size:8px;letter-spacing:.06em}.villa-title{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px}.villa-index{font-family:var(--display);font-size:40px;color:#727272}.villa>.eyebrow{font-size:9px}.villa>p:not(.eyebrow){font-size:13px;margin:18px 0}.villa details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0 10px;font-size:12px}.villa summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:48px}.villa summary::-webkit-details-marker{display:none}.villa summary span{font-size:20px}.villa details[open] summary span{transform:rotate(45deg)}.villa details p{padding:0 0 18px;color:var(--muted)}
.together{border-block:1px solid var(--line)}.together-stage{min-height:630px;height:85svh;max-height:900px;padding:70px var(--gutter);display:grid;grid-template-columns:55% 45%;align-items:center;overflow:hidden}.orbit-art{height:400px;position:relative;width:100%;display:flex;align-items:center;justify-content:center;perspective:1000px}.orbit{width:300px;height:300px;border:1px solid var(--ink);border-radius:50%;position:absolute;display:flex;align-items:center;justify-content:center}.orbit-left{transform:translateX(-72px)}.orbit-right{transform:translateX(72px)}.orbit span{font-size:9px;letter-spacing:.2em}.orbit-left span{transform:translateX(-55px)}.orbit-right span{transform:translateX(55px)}.orbit-star{width:32px;height:32px;z-index:2;background:white}.together-copy .eyebrow{margin-bottom:24px}.together-copy p:not(.eyebrow){margin:28px 0;font-size:15px}.together-copy .button{margin-top:8px}
.journal-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);gap:40px}.journal-list article{padding-top:24px}.journal-list h3{font-size:clamp(36px,3.6vw,56px);margin:36px 0 30px;line-height:1.05}.coming{font-size:11px;color:var(--muted);border-top:1px solid var(--line);display:block;padding-top:16px}.stay{display:grid;grid-template-columns:1fr 1fr;gap:10vw;border-block:1px solid var(--line)}.stay-intro h2{margin:24px 0 30px}.stay-intro>p:not(.eyebrow){font-size:15px}.stay-intro .star{margin-top:50px}.stay-form-wrap{padding-top:12px}.prototype-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:18px;margin-bottom:26px}form label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin:20px 0 8px}form select,form input{width:100%;min-height:50px;border:1px solid var(--line);border-radius:0;background:white;padding:12px;font-size:14px;min-width:0}.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.date-fields>div{min-width:0}form>.button{width:100%;margin:30px 0 14px}.form-note{font-size:11px;line-height:1.7;color:var(--muted)}.stay-result{padding:24px 0;border-top:1px solid var(--ink);margin-top:22px;font-size:13px}.stay-result strong{font:700 32px var(--display);display:block;margin-bottom:10px}footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;padding:32px var(--gutter) 95px;font-size:10px}footer a{text-decoration:underline;text-underline-offset:4px}.journey-controls{position:fixed;bottom:18px;left:var(--gutter);right:var(--gutter);z-index:90;display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:none}.chapter,#motion-toggle{pointer-events:auto;background:white;border:1px solid var(--line);padding:9px 14px;min-height:40px;font-size:9px;letter-spacing:.1em}.chapter{display:flex;align-items:center}.journey-controls button{display:flex;align-items:center;gap:6px}#motion-toggle i{width:6px;height:6px;border:1px solid var(--ink);border-radius:50%;background:var(--ink);margin-left:5px}#motion-toggle[aria-pressed=false] i{background:white}.journey-progress{position:absolute;bottom:-18px;left:calc(-1 * var(--gutter));width:100vw;height:2px;background:#eee;pointer-events:none}.journey-progress span{display:block;width:100%;height:100%;background:var(--ink);transform:scaleX(0);transform-origin:left}
.static-motion .inside-stage{height:auto;max-height:none;align-items:start}.static-motion .photo-space{height:auto;perspective:none}.static-motion .photo-plane{position:relative;inset:auto;margin-bottom:24px;transform:none!important;height:350px}.static-motion .inside-hint{display:none}.static-motion .scroll-cue{display:none}
@media(min-width:1600px){.arrival-stage{padding-top:60px}.hero-copy{padding-top:6vh}.hero-signature{margin-top:85px}.villa-image{height:440px}.villa-image.arched{height:530px}}
@media(max-width:1000px){:root{--header:80px;--gutter:32px}.header nav{gap:24px}.hero-copy{padding-top:8vh}h1{font-size:clamp(60px,8.4vw,96px)}.arrival-stage{min-height:620px}.hero-signature{margin-top:35px}.portal-wrap{width:46%;bottom:65px;top:40px}.inside-stage{grid-template-columns:38% 62%;padding-block:70px}.inside-copy h2{font-size:68px}.photo-space{height:62%}.photo-plane figcaption{font-size:9px}.villa-image{height:290px}.villa-image.arched{height:380px}.orbit{width:230px;height:230px}.orbit-left{transform:translateX(-55px)}.orbit-right{transform:translateX(55px)}.orbit-left span{transform:translateX(-38px)}.orbit-right span{transform:translateX(38px)}.together-copy h2{font-size:80px}.stay{gap:7vw}}
@media(max-width:760px){:root{--gutter:22px;--header:76px}.brand{width:78px}.header{padding-block:12px}.header nav{display:none}.button-small{font-size:11px;min-height:42px;padding:10px 14px;gap:22px}.arrival-stage{height:auto;min-height:calc(100svh - var(--header));max-height:none;padding:42px var(--gutter) 55px;overflow:hidden}.hero-copy{width:100%;padding:0}.hero-copy .eyebrow{margin-bottom:18px;font-size:9px}h1{font-size:clamp(62px,15.5vw,92px);line-height:.95}.hero-description{font-size:13px;margin:22px 0 8px}.hero-copy>.text-link{font-size:11px}.hero-signature{position:absolute;right:0;bottom:12px;margin:0;width:auto}.hero-signature .eyebrow{display:none}.hero-signature .star{width:28px;height:28px}.portal-wrap{position:relative;top:auto;right:auto;bottom:auto;width:100%;height:340px;margin-top:30px;perspective:800px}.portal{border-radius:48% 48% 0 0}.scroll-cue{bottom:16px;font-size:9px}.journey-strip{padding-block:16px;flex-wrap:wrap;gap:8px 16px}.journey-strip>.eyebrow{font-size:8px}.journey-strip>span:not(.eyebrow){display:none}.journey-strip .text-link{font-size:11px;min-height:36px}.inside-stage{height:770px;min-height:0;max-height:none;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:65px var(--gutter) 55px;gap:32px}.inside-copy h2{font-size:64px;margin:16px 0}.inside-copy>p:not(.eyebrow){font-size:13px}.inside-hint{display:none}.photo-space{height:320px;flex-shrink:0;margin-right:15px}.photo-plane{border-width:7px}.photo-plane img{height:calc(100% - 44px)}.photo-plane figcaption{font-size:8px;padding:12px 0}.section-pad{padding:65px var(--gutter)}.section-heading{display:block;margin-bottom:36px}.section-heading>p{margin-top:24px;font-size:12px}.section-heading .eyebrow{margin-bottom:20px}h2{font-size:64px}.villa-grid{grid-template-columns:1fr;gap:55px}.villa-elara{padding:0}.villa-image{height:300px}.villa-image.arched{height:400px}.villa-title{margin-top:18px}h3{font-size:48px}.villa>p:not(.eyebrow){font-size:13px}.together-stage{display:flex;flex-direction:column;height:auto;min-height:0;max-height:none;padding:55px var(--gutter) 65px;gap:40px;align-items:stretch}.orbit-art{height:245px;width:100%}.orbit{width:205px;height:205px}.orbit-left{transform:translateX(-48px)}.orbit-right{transform:translateX(48px)}.orbit-left span{transform:translateX(-38px)}.orbit-right span{transform:translateX(38px)}.orbit-star{width:25px;height:25px}.together-copy h2{font-size:70px}.together-copy h2 br{display:none}.together-copy p:not(.eyebrow){font-size:13px;margin:20px 0}.journal-list{grid-template-columns:1fr;gap:0}.journal-list article{padding:24px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:16px}.journal-list .eyebrow{font-size:8px}.journal-list h3{font-size:34px;margin:0;grid-column:2;grid-row:1/3}.coming{border:0;padding:0;font-size:9px}.stay{grid-template-columns:1fr;gap:36px}.stay-intro .star{display:none}.stay-intro h2 br{display:none}.stay-intro>p:not(.eyebrow){font-size:13px}.date-fields{gap:12px}form input{font-size:12px;padding:8px}.stay-form-wrap{padding:0}footer{display:grid;grid-template-columns:1fr 1fr;gap:22px;font-size:9px;padding-bottom:100px}.journey-controls{bottom:12px}.chapter,#motion-toggle{padding:8px 10px;font-size:8px;min-height:36px}.journey-progress{bottom:-12px}.static-motion .photo-plane{height:300px}.static-motion .inside-stage{height:auto}.static-motion .photo-space{height:auto;margin:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}.inside-stage{height:auto;max-height:none}.photo-space{height:auto;perspective:none}.photo-plane{position:relative;transform:none;inset:auto;margin:24px 0;height:330px}.inside-hint,.scroll-cue{display:none}}

/* Revision 02: an unpinned hero and a touch-first reading sequence. */
.mobile-nav{display:none}
.button .cta-label{transform:none}
.arrival-stage{height:calc(100svh - var(--header));min-height:580px;max-height:840px;padding-top:32px}
.hero-copy{padding-top:clamp(26px,5vh,64px)}
.hero-signature{margin-top:clamp(32px,5vh,56px)}
.portal-wrap{top:24px;bottom:62px}
.portal{transform-origin:50% 50%}
.portal-threshold{position:absolute;inset:0;z-index:2;border:clamp(12px,1.8vw,24px) solid white;border-bottom:0;border-radius:48% 48% 0 0;box-shadow:0 0 0 1px #c9c9c9;transform-origin:50% 64%;pointer-events:none}
.portal-threshold::after{content:"";position:absolute;inset:-1px;border:1px solid #ddd;border-bottom:0;border-radius:48% 48% 0 0;pointer-events:none}
@media(max-width:1000px) and (min-width:761px){.arrival-stage{min-height:620px}.hero-copy{padding-top:48px}}
@media(max-width:760px){
  :root{--header:72px;--gutter:20px}
  html{scroll-padding-top:88px}
  body{padding-bottom:48px}
  .header{gap:10px;padding-block:10px}
  .brand{width:74px;margin-right:auto}
  .button-small{min-height:44px;padding:10px 12px;gap:12px;font-size:11px}
  .mobile-nav{display:block}
  .mobile-nav summary{list-style:none;display:flex;align-items:center;gap:7px;min-width:52px;min-height:44px;font-size:12px;cursor:pointer}
  .mobile-nav summary::-webkit-details-marker{display:none}
  .mobile-nav summary span{font-size:19px;line-height:1}
  .mobile-nav[open] summary span{transform:rotate(45deg)}
  .header .mobile-nav nav{position:absolute;top:100%;left:0;right:0;display:flex;flex-direction:column;gap:0;padding:8px var(--gutter) 16px;background:white;border-bottom:1px solid var(--line)}
  .mobile-nav nav a{display:flex;justify-content:space-between;min-height:52px;align-items:center;border-bottom:1px solid var(--line);font-size:14px}
  .arrival-stage{height:auto;min-height:0;max-height:none;padding:30px var(--gutter) 40px}
  .hero-copy{width:100%;padding:0}
  .hero-copy .eyebrow{font-size:9px;letter-spacing:.16em;margin-bottom:14px}
  h1{font-size:clamp(58px,15.2vw,88px);line-height:.96;letter-spacing:-.025em}
  .hero-description{font-size:14px;line-height:1.65;margin:16px 0 8px}
  .hero-copy>.text-link{font-size:12px;min-height:44px}
  .hero-signature{position:absolute;right:4px;bottom:7px;margin:0;width:auto}
  .hero-signature .star{height:26px;width:26px}
  .portal-wrap{position:relative;inset:auto;height:clamp(290px,78vw,410px);margin:24px 0 0;width:100%}
  .portal{border-radius:48% 48% 0 0}
  .portal-threshold{border-width:12px;border-bottom:0}
  .portal img{object-position:52% 57%}
  .scroll-cue{bottom:9px;font-size:9px;min-height:24px}
  .journey-strip{padding-block:14px}
  .journey-strip .text-link{min-height:44px;font-size:12px}
  .inside-stage,.static-motion .inside-stage{height:auto;min-height:0;max-height:none;display:block;padding:56px var(--gutter);overflow:hidden}
  .inside-copy{margin-bottom:30px}
  .inside-copy h2{font-size:64px;margin:16px 0 20px}
  .inside-copy>p:not(.eyebrow){font-size:15px;line-height:1.65}
  .photo-space,.static-motion .photo-space{height:auto;margin:0;perspective:none;transform-style:flat}
  .photo-plane,.static-motion .photo-plane{position:relative;inset:auto;height:auto;margin:0 0 32px;transform:none;border:0;outline:0;transform-style:flat}
  .photo-plane:last-child{margin-bottom:0}
  .photo-plane img{height:auto;aspect-ratio:4/3;object-fit:cover}
  .photo-plane figcaption{padding:14px 0 0;font-size:11px;line-height:1.6;gap:12px}
  .photo-plane figcaption span:first-child{font-size:10px;letter-spacing:.08em}
  .section-pad{padding:56px var(--gutter)}
  .section-heading{margin-bottom:32px}
  .section-heading>p{font-size:15px;line-height:1.65;margin-top:22px}
  .villa-grid{gap:48px}
  .villa-image{height:auto;aspect-ratio:4/3}
  .villa-image.arched{height:auto;aspect-ratio:4/4.3}
  .villa>p:not(.eyebrow){font-size:15px;line-height:1.65}
  .villa>.eyebrow{font-size:10px;letter-spacing:.12em}
  .villa details{font-size:14px;margin-top:20px}
  .villa summary{min-height:52px}
  .villa .text-link{font-size:14px;min-height:48px}
  .image-note{font-size:9px}
  .together-stage{padding:40px var(--gutter) 56px;gap:28px}
  .orbit-art{height:230px}
  .orbit{width:190px;height:190px}
  .orbit-left{transform:translateX(-44px)}
  .orbit-right{transform:translateX(44px)}
  .orbit span{font-size:10px}
  .together-copy h2{font-size:clamp(52px,14vw,72px);line-height:1}
  .together-copy p:not(.eyebrow){font-size:15px;line-height:1.65}
  .together-copy .button{min-height:52px;font-size:14px}
  .journal-list article{grid-template-columns:1fr;padding:24px 0;gap:14px}
  .journal-list h3{grid-row:auto;grid-column:auto;font-size:40px;line-height:1.05}
  .journal-list .eyebrow{font-size:10px}
  .coming{font-size:12px}
  .stay{gap:32px}
  .stay-intro h2{font-size:clamp(60px,16vw,76px)}
  .stay-intro>p:not(.eyebrow){font-size:15px}
  form label{font-size:11px}
  form select,form input{font-size:16px;min-height:52px;padding:12px;min-width:0}
  .date-fields{grid-template-columns:1fr;gap:0}
  .form-note{font-size:12px;line-height:1.65}
  .prototype-label{font-size:10px}
  footer{font-size:11px;line-height:1.7;padding:28px var(--gutter) 36px;gap:24px}
  .journey-controls{left:0;right:0;bottom:0;height:48px;padding:0 var(--gutter);background:white;border-top:1px solid var(--line)}
  .chapter,#motion-toggle{border:0;min-height:44px;padding:0;background:none;font-size:10px;letter-spacing:.06em}
  .journey-progress{bottom:0;left:0;width:100%;height:2px}
}
@media(max-width:360px){.button-small{gap:8px;padding-inline:10px;font-size:10px}.mobile-nav summary{font-size:11px;min-width:48px}.brand{width:66px}h1{font-size:54px}.portal-wrap{height:280px}.orbit{width:170px;height:170px}}

@media(min-width:761px){.scroll-cue{left:calc(var(--gutter) + 132px)}}

/* Owner-supplied villa photography, within the original white journey. */
.portal img{object-position:50% 58%}
.plane-three img{object-position:50% 60%}
.villa-gallery{min-width:0}
.villa-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.villa{min-width:0}
.journal-all{margin-top:30px}
.journal-list h3 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.villa-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:24px}
.villa-actions .button{min-height:46px;padding:11px 16px;font-size:12px;gap:24px}
.gallery-cover{display:block;width:100%;padding:0;border:0;background:#f3f2ef;text-align:left;color:var(--ink)}
.gallery-cover .image-note{padding:8px 12px;font-size:10px}
.gallery-meta{display:flex;justify-content:space-between;gap:16px;padding:15px 0 12px;font-size:9px;text-transform:uppercase;letter-spacing:.12em}
.gallery-count{font-variant-numeric:tabular-nums;white-space:nowrap}
.gallery-thumbnails{display:flex;gap:9px;overflow-x:auto;padding:3px 3px 12px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#c8c8c8 white}
.gallery-thumb{flex:0 0 76px;height:66px;padding:3px;background:white;border:1px solid transparent;scroll-snap-align:start}
.gallery-thumb[aria-pressed=true]{border-color:var(--ink)}
.gallery-thumb img{height:100%;width:100%;object-fit:cover}
.gallery-thumb:hover{border-color:#a0a0a0}
.gallery-open{overflow:hidden}
.photo-dialog{width:min(1100px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 40px);padding:24px 28px;border:1px solid var(--line);background:white;color:var(--ink);margin:auto;overflow:auto}
.photo-dialog::backdrop{background:rgba(35,35,35,.35);backdrop-filter:blur(5px)}
.photo-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:20px}
.photo-dialog-header h2{font:500 11px var(--body);text-transform:uppercase;letter-spacing:.12em;line-height:1.6}
.gallery-close,.gallery-prev,.gallery-next{min-height:44px;min-width:44px;background:white;color:var(--ink);border:1px solid var(--line);padding:10px 14px;font-size:13px}
.gallery-close{display:flex;gap:24px;align-items:center;border:0;padding-right:0}
.gallery-close span{font-size:24px}
.photo-dialog-stage{height:min(65dvh,700px);background:#f7f7f5}
.photo-dialog-stage img{width:100%;height:100%;object-fit:contain}
.photo-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:20px}
.photo-dialog-footer p{font-size:12px;line-height:1.6;text-align:center;max-width:70ch}
@media(max-width:760px){
  .villa-grid{grid-template-columns:minmax(0,1fr)}
  .portal img{object-position:50% 56%}
  .gallery-thumb{flex-basis:70px;height:62px}
  .gallery-meta{font-size:9px;letter-spacing:.08em}
  .photo-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px);padding:14px}
  .photo-dialog-header{gap:10px;padding-bottom:10px}
  .photo-dialog-header h2{font-size:10px}
  .gallery-close{gap:10px;font-size:12px}
  .photo-dialog-stage{height:58dvh}
  .photo-dialog-footer{gap:10px;padding-top:14px}
  .photo-dialog-footer p{font-size:11px}
}

/* Guest enquiry review */
.stay-result h3{font-family:Barlow,sans-serif;font-size:clamp(32px,4vw,48px);line-height:1;margin:0 0 16px}.stay-result pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.8;background:#f5f4f1;padding:24px;margin:20px 0}.stay-result:focus{outline:2px solid currentColor;outline-offset:8px}.stay-result .button{white-space:normal;text-align:center}.stay-form-wrap button:disabled{opacity:.5;cursor:wait}@media(max-width:760px){.stay-form-wrap input,.stay-form-wrap select{font-size:16px}.stay-result pre{padding:18px}.stay-result .button{padding:16px 18px;font-size:12px}}

/* Source-attributed notes from the two-bedroom Airbnb listing. */
.guest-notes{display:grid;grid-template-columns:1fr 1.3fr;gap:8vw;border-top:1px solid var(--line);background:var(--paper)}.guest-notes h2{font-size:clamp(56px,7vw,100px);line-height:.95;margin:22px 0 32px}.guest-rating{font-size:14px;line-height:1.7}.guest-rating strong{font-size:22px}.guest-source{font-size:12px;color:var(--muted);line-height:1.8;margin:12px 0 24px}.guest-note{margin:0;padding:26px 0;border-bottom:1px solid var(--line)}.guest-note:first-child{padding-top:0}.guest-note blockquote{margin:0}.guest-note blockquote p{font-size:clamp(23px,2.5vw,35px);line-height:1.4;letter-spacing:-.035em;max-width:27ch}.guest-note figcaption{font-size:12px;line-height:1.8;margin-top:20px}.guest-note figcaption span{display:block;font-size:10px;color:var(--muted)}@media(max-width:760px){.guest-notes{grid-template-columns:1fr;gap:44px}.guest-notes h2{font-size:64px}.guest-note blockquote p{font-size:26px}}
