:root{--paper:#f4f1e9;--ink:#29372f;--muted:#74796e;--line:#d4d6c8;--green:#273c32;--serif:'Noto Serif SC','Source Han Serif SC','Songti SC','STSong','SimSun',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Microsoft YaHei','PingFang SC',sans-serif;font-size:14px;line-height:1.8}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid #ae793b;outline-offset:6px}img{display:block;width:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(32px,3.5vw,52px);line-height:1.45;letter-spacing:.09em}h3{font-size:clamp(30px,3vw,44px);line-height:1.5;letter-spacing:.07em}.eyebrow{font-size:11px;letter-spacing:.2em;margin-bottom:24px}.green{color:#687c61}.skip{position:fixed;top:-100px;z-index:100;background:white;padding:10px}.skip:focus{top:5px}header{height:98px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:var(--paper);position:relative;z-index:10}.brand{display:flex;gap:12px;align-items:center}.brand svg{width:53px;height:43px;stroke:var(--ink);stroke-width:1.3;fill:none}.brand>span{font-family:var(--serif);font-size:30px;line-height:1.1;letter-spacing:.18em}.brand small{display:block;font-family:Georgia,serif;font-size:9px;letter-spacing:.14em;margin-top:9px}nav{display:flex;gap:32px;font-size:12px;letter-spacing:.08em}nav a{padding:9px 0;border-bottom:1px solid transparent}nav a:hover{border-color:var(--ink)}.book{background:var(--green);border:1px solid var(--green);padding:14px 24px;color:var(--paper);display:inline-flex;justify-content:space-between;gap:36px;font-size:12px;letter-spacing:.1em;transition:background .2s}.book:hover{background:#405645}.menu{display:none}.hero{height:min(780px,calc(100svh - 98px));min-height:600px;position:relative;color:#fff;overflow:hidden}.hero>img{height:100%;object-position:center 58%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,21,15,.58),rgba(8,21,15,.08) 72%),linear-gradient(0deg,rgba(0,0,0,.4),transparent 30%)}.hero-copy{position:absolute;top:16%;left:9%}.hero h1{font-size:clamp(52px,5.6vw,84px);line-height:1.4;letter-spacing:.14em}.hero-sub{margin-top:25px;font-size:14px;line-height:2.1;letter-spacing:.12em;color:#eee}.hero-link{display:inline-flex;gap:65px;align-items:center;border-bottom:1px solid #ffffff8c;padding:16px 0 10px;margin-top:20px;font-size:13px}.hero-link span{font-size:22px}.hero-bottom{position:absolute;bottom:29px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.17em;align-items:center}.hero-bottom a{font-size:11px}.hero-bottom a span{margin-left:30px}.vertical-note{position:absolute;right:5%;top:24%;writing-mode:vertical-rl;letter-spacing:.4em;font-family:var(--serif);font-size:15px}.section{padding:110px 9%}.intro{display:grid;grid-template-columns:1fr 2.2fr;gap:7%;padding-top:120px;padding-bottom:110px}.section-label{font-size:10px;letter-spacing:.2em;padding-top:10px}.section-label span{display:block;margin-top:15px;letter-spacing:.15em;font-size:13px}.intro-body h2{font-size:clamp(34px,3.5vw,52px)}.intro-text{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:36px;color:var(--muted);font-size:13px;line-height:2.2}.intro-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:45px;padding-top:20px;color:var(--muted);font-size:10px;letter-spacing:.15em}.intro-foot svg{width:95px;stroke:#9b9e88;stroke-width:1;fill:none}.stay{background:#e9eade}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:55px}.section-heading>p{font-size:12px;line-height:2.2;color:var(--muted);padding-bottom:6px}.section-heading .eyebrow{margin-bottom:18px}.feature{display:grid;grid-template-columns:1.45fr 1fr;gap:9%;align-items:center;margin-top:65px}.photo-button{display:block;border:0;padding:0;background:transparent;position:relative;width:100%;overflow:hidden;text-align:left}.photo-button img{transition:transform .7s}.photo-button:hover img{transform:scale(1.025)}.feature .photo-button img{aspect-ratio:1.16;height:auto}.photo-hint{position:absolute;bottom:20px;right:22px;background:#24362dba;color:white;padding:6px 12px;font-size:10px}.feature-no{font-size:10px;letter-spacing:.16em;color:var(--muted);display:block;margin-bottom:22px}.feature-copy p{font-size:13px;color:var(--muted);line-height:2.2;margin-top:25px;max-width:310px}.tags{display:block;margin-top:25px;font-size:10px;letter-spacing:.1em}.text-button{border:0;border-bottom:1px solid #9da58e;background:none;padding:15px 0 9px;display:flex;justify-content:space-between;width:100%;max-width:260px;margin-top:23px;font-size:12px}.reverse{grid-template-columns:1fr 1.45fr;margin-top:100px}.reverse .photo-button{order:2}.reverse .feature-copy{padding-left:16%}.stay-note{margin-top:45px;text-align:center;font-size:10px;color:var(--muted)}.moments{padding:110px 9%;background:#293c33;color:var(--paper)}.moments .section-heading>p{color:#bec7b9}.moments-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:28px;align-items:start}.moments-grid figure:nth-child(2){margin-top:65px}.moments-grid figure:nth-child(3){margin-top:130px}.moments-grid img{aspect-ratio:4/5;height:auto}.moments-grid figcaption{margin-top:19px}.moments-grid figcaption span{font-family:var(--serif);font-size:18px;letter-spacing:.07em}.moments-grid small{display:block;font-size:11px;color:#bec7b9;margin-top:7px}.filters{display:flex;gap:20px;flex-wrap:wrap}.filters button{border:0;border-bottom:1px solid transparent;padding:7px 0;background:none;font-size:12px;color:var(--muted)}.filters button.active{color:var(--ink);border-color:var(--ink)}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.gallery-grid img{aspect-ratio:1;height:auto}.gallery-grid button[hidden]{display:none}.gallery-note{text-align:center;margin-top:26px;color:var(--muted);font-size:10px;letter-spacing:.12em}.visit{background:#e6e5d8;padding:65px 9% 95px}.visit-top{display:flex;justify-content:space-between;border-bottom:1px solid #bdc3b1;font-size:12px;margin-bottom:50px}.visit-body{display:grid;grid-template-columns:1.2fr 1fr;gap:15%}.visit-body>div>p{margin:22px 0 30px;color:var(--muted);font-size:13px}.contact-label{display:block;font-size:10px;letter-spacing:.12em;margin-bottom:15px;color:#65705e}.contact .map-link{display:block;font-family:var(--serif);font-size:20px;line-height:1.8;position:relative}.map-link>span{position:absolute;right:0;top:15px}.map-link small{display:block;font-family:'Microsoft YaHei',sans-serif;font-size:11px;color:var(--muted);margin-top:12px;margin-bottom:35px}.phone{font-family:Georgia,serif;font-size:30px;letter-spacing:.04em;display:flex;justify-content:space-between}.phone span{font-size:22px}.contact p{font-size:11px!important}footer{display:flex;gap:25px;justify-content:space-between;align-items:center;padding:40px 5%;font-size:10px;color:var(--muted)}.footer-brand{font-family:var(--serif);font-size:25px;color:var(--ink)}.footer-brand span{font-family:Georgia,serif;font-size:9px;letter-spacing:.15em;margin-left:10px}dialog{border:0;padding:55px;background:var(--paper);color:var(--ink);max-width:min(580px,calc(100vw - 32px));max-height:90svh;box-shadow:0 20px 100px #0004}dialog::backdrop{background:#101b16bc;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:16px;top:12px;background:none;border:0;font-size:28px;width:40px;height:40px;line-height:1}#booking h2{font-size:30px;margin:0 0 24px}#booking>p:not(.eyebrow){font-size:12px;color:var(--muted)}#booking label{font-size:11px;display:block;margin-top:24px}#booking input{width:100%;padding:12px;border:1px solid #bbc3b2;background:#fff8;color:var(--ink);font-size:13px;margin:8px 0 16px}#booking .book{width:100%}.copy-status{min-height:28px;margin-top:8px}.booking-phone{border-top:1px solid var(--line);padding:20px 0}.booking-phone span{font-size:11px;display:block}.booking-phone a{font-size:22px;font-family:Georgia,serif}#booking>small{font-size:10px;color:var(--muted);display:block}#lightbox{background:#17221d;color:white;padding:50px 65px 22px;max-width:95vw;width:1100px}#lightbox img{height:min(72svh,750px);object-fit:contain;width:100%}#lightbox figcaption{text-align:center;font-size:12px;margin-top:15px}.gallery-prev,.gallery-next{position:absolute;top:48%;border:0;background:none;color:white;font-size:25px;width:42px;height:48px}.gallery-prev{left:8px}.gallery-next{right:8px}.mobile-bar{display:none}@media(min-width:1600px){.section,.moments,.visit{padding-left:max(9%,calc((100% - 1320px)/2));padding-right:max(9%,calc((100% - 1320px)/2))}}@media(max-width:1000px){nav{gap:18px}.header-book{padding:12px 16px;gap:20px}.section,.moments{padding:80px 6%}.feature{gap:6%}.section-heading{align-items:flex-start}.gallery .section-heading{display:block}.filters{margin-top:25px}.reverse .feature-copy{padding-left:0}.visit{padding:60px 6%}.visit-body{gap:8%}.hero-copy{left:7%}.moments-grid{gap:18px}}@media(max-width:720px){html{scroll-padding-top:20px}header{height:80px;padding:0 6%}.brand svg{width:42px}.brand>span{font-size:26px}.brand small{font-size:8px}.header-book{margin-left:auto;padding:9px 12px;gap:15px;font-size:10px}.menu{display:block;background:none;border:0;font-size:22px;width:42px;margin-left:10px}.menu:focus-visible{outline-offset:0}nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--paper);padding:20px 7% 30px;box-shadow:0 15px 20px #0001}nav.open{display:flex;flex-direction:column;gap:10px}.hero{min-height:620px;height:calc(92svh - 80px);max-height:800px}.hero>img{object-position:58% center}.hero-copy{left:8%;top:17%}.hero h1{font-size:53px}.hero .eyebrow{font-size:9px}.hero-sub{font-size:12px}.hero-bottom{left:8%;right:8%;bottom:25px}.hero-bottom>span:last-child{display:none}.hero-bottom>span:first-child{font-size:9px}.hero-bottom a{font-size:9px}.vertical-note{right:7%;font-size:12px}.section,.moments{padding:70px 7%}.intro{display:block}.section-label{margin-bottom:35px}.section-label span{display:inline;margin-left:20px}.intro-text{grid-template-columns:1fr;gap:18px;margin-top:28px}.intro-body h2{font-size:35px}.section-heading{display:block;margin-bottom:32px}.section-heading>p{margin-top:22px}.section-heading h2{font-size:34px}.feature,.reverse{display:flex;flex-direction:column;gap:30px;margin-top:40px;align-items:stretch}.reverse{margin-top:65px}.reverse .photo-button{order:0}.feature-copy p{max-width:none}.feature-copy h3{font-size:32px}.feature-copy .feature-no{margin-bottom:16px}.feature-copy .tags{margin-top:18px}.feature-copy .text-button{margin-top:12px}.feature .photo-button img{aspect-ratio:1.15}.stay-note{text-align:left;line-height:1.9;font-size:10px}.moments-grid{grid-template-columns:1fr;gap:35px}.moments-grid figure:nth-child(n){margin-top:0}.moments-grid img{aspect-ratio:1.24}.moments-grid figcaption{display:flex;justify-content:space-between;gap:10px;align-items:center}.moments-grid figcaption span{font-size:16px}.moments-grid figcaption small{font-size:10px;margin:0}.gallery-grid{grid-template-columns:1fr 1fr;gap:10px}.filters{gap:22px}.filters button{font-size:11px}.visit{padding:55px 7% 60px}.visit-body{grid-template-columns:1fr;gap:45px}.visit h2{font-size:36px}.contact .map-link{font-size:18px}.visit-top{margin-bottom:35px}.visit-top span{font-size:10px}.visit-top .eyebrow{font-size:9px}.phone{font-size:30px}footer{padding:35px 7% 90px;display:grid;grid-template-columns:1fr auto;gap:17px}footer p{display:none}.footer-brand{grid-column:1/-1}.mobile-bar{display:grid;grid-template-columns:1fr 1.2fr;position:fixed;bottom:0;left:0;right:0;z-index:15;background:var(--paper);padding:8px 14px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:12px;text-align:center;align-items:center}.mobile-bar button{background:var(--green);border:0;color:var(--paper);padding:12px}.mobile-bar a{padding:10px}dialog{padding:45px 25px 28px}#booking h2{font-size:26px}#lightbox{padding:50px 35px 22px}#lightbox img{height:62svh}.gallery-prev{left:0}.gallery-next{right:0}.gallery-prev,.gallery-next{width:34px}#lightbox figcaption{font-size:10px}.intro-foot{margin-top:30px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Touch screens, narrow phones, and browser safe areas. */
@media(max-width:720px){
 body{padding-bottom:env(safe-area-inset-bottom);-webkit-text-size-adjust:100%}
 header{padding-left:max(6%,env(safe-area-inset-left));padding-right:max(4%,env(safe-area-inset-right))}
 .brand{flex-shrink:0;gap:8px}.header-book{white-space:nowrap;min-height:44px}
 .menu{min-width:44px;min-height:44px;flex-shrink:0;margin-left:4px}
 nav a{min-height:44px;display:flex;align-items:center}
 .hero h1{font-size:clamp(40px,13.6vw,58px)}
 .hero{min-height:540px;height:calc(100svh - 148px - env(safe-area-inset-bottom))}
 .hero-copy{top:14%}.vertical-note{top:20%}
 .hero-sub{font-size:13px}.hero-bottom{bottom:22px}
 .intro-text,.feature-copy p,.section-heading>p{font-size:14px}
 .feature-copy .text-button{min-height:48px;font-size:13px}
 .filters{gap:8px 18px}.filters button{min-height:44px;font-size:13px}
 .moments-grid figcaption{flex-wrap:wrap;row-gap:4px}
 .moments-grid small{font-size:12px!important}
 .map-link{padding-right:22px}.contact .map-link small{font-size:12px}
 .mobile-bar{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
 .mobile-bar button,.mobile-bar a{min-height:46px;display:flex;align-items:center;justify-content:center;font-size:14px}
 footer{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
 dialog{max-height:calc(100svh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}
 #booking input{font-size:16px}#booking .book{min-height:48px}
 .dialog-close{width:44px;height:44px;right:8px;top:5px}
 #lightbox{padding-left:44px;padding-right:44px}
 .gallery-prev,.gallery-next{width:44px;height:52px;touch-action:manipulation}
 #lightbox img{height:min(62svh,650px)}
}
@media(max-width:360px){
 header{padding-left:5%;padding-right:3%}.brand svg{width:30px}.brand>span{font-size:23px}.brand small{font-size:7px}
 .header-book{padding:8px 10px;gap:8px}.hero-copy{left:7%}.vertical-note{right:5%}
 .hero-bottom{left:7%;right:7%;letter-spacing:.04em}.hero-bottom a span{margin-left:10px}
 h2,.intro-body h2,.section-heading h2,.visit h2{font-size:30px}
 .contact .map-link{font-size:16px}.phone{font-size:26px}
 .section-label{letter-spacing:.1em}.section-label span{margin-left:12px;font-size:12px}
 .intro-foot{letter-spacing:.03em}.intro-foot svg{width:65px}
 #booking h2{font-size:23px}dialog{padding-left:20px;padding-right:20px}
}
@media(max-height:500px) and (orientation:landscape){
 #lightbox{padding-top:35px}#lightbox img{height:55svh}
}
