:root{color-scheme:light;--paper:#f5f2eb;--ink:#243d36;--muted:#535c54;--line:#d5d9cd;--forest:#102b27;--lime:#d1d9ae;--sans:"Microsoft JhengHei","PingFang SC","Microsoft YaHei",sans-serif;--serif:Georgia,"Times New Roman",serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:4rem}
body{margin:0;background:#e7e7e1;color:var(--ink);font:1rem/1.85 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-weight:500;line-height:1.5;text-wrap:pretty}
p+p{margin-top:1rem}
a{color:inherit;text-underline-offset:.3em}
button,input,textarea{font:inherit}
button,a,input{touch-action:manipulation}
button{cursor:pointer;color:inherit;border:1px solid var(--line);background:transparent;padding:.4rem .8rem;min-height:44px}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #728349;outline-offset:4px}
img,video{display:block;max-width:100%}
[hidden]{display:none!important}
summary{cursor:pointer}
textarea{width:100%;resize:vertical;font:1rem/1.7 var(--sans);padding:.75rem;border:1px solid #b5bdad;color:var(--ink);background:#fffefb}
input{accent-color:#2e4a3f}
.skip-link{position:absolute;top:-8rem;z-index:30;background:white;padding:1rem}
.skip-link:focus{top:0}
.copy-separator{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.review-toolbar{max-width:1100px;margin:auto;position:sticky;top:0;z-index:10;background:#e7e7e1f5;display:flex;justify-content:space-between;align-items:center;gap:.7rem;padding:.35rem 1rem;font-size:.8125rem;border-bottom:1px solid #cbd0c4}
.review-controls{display:flex;gap:.5rem;align-items:center}
.review-controls button{font-size:.8125rem;min-height:38px;padding:.2rem .6rem;border-color:#bac4b6}
.review-controls [aria-pressed=true]{background:var(--forest);color:white;border-color:var(--forest)}
.review-controls a{font-size:.875rem;margin-left:.2rem}
.proof{container-type:inline-size;container-name:book;max-width:1100px;margin:0 auto 2.5rem;background:var(--paper);box-shadow:0 12px 36px #18332a12}
.proof.phone{max-width:430px}
.proof p{color:var(--muted)}
.section-pad{padding:4rem 4.5rem}
.chapter-label{display:block;font: .75rem/1.5 var(--serif);letter-spacing:.17em;color:#657561;margin-bottom:.75rem}

/* Cover: keep the full selected portrait; its water fades into the title panel. */
.cover{position:relative;background:var(--forest);color:#fffdf4;isolation:isolate;overflow:hidden}
.cover-photo{width:100%;height:auto;object-fit:contain}
.brand{position:absolute;top:1.4rem;left:1.75rem;right:1.75rem;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;font-size:1.2rem;letter-spacing:.08em;line-height:1.3;text-shadow:0 1px 12px #052d3dcc}
.brand small{display:block;font: .7rem/1.5 var(--sans);letter-spacing:.11em;margin-top:.25rem}
.brand>span:last-child{text-align:right;font:.75rem/1.4 var(--sans);letter-spacing:.18em}
.cover-title{position:relative;margin-top:-8rem;padding:2rem 1.75rem 1.9rem;background:linear-gradient(180deg,transparent 0,var(--forest) 6rem)}
.cover-title .eyebrow{font-size:.75rem;color:var(--lime);letter-spacing:.16em;display:flex;align-items:center;gap:.6rem}
.eyebrow i{display:inline-block;width:1.75rem;height:1px;background:currentColor}
.cover-title h1{font-family:var(--sans);font-weight:500;letter-spacing:.1em;font-size:3rem;line-height:1.3;margin:.45rem 0 .8rem;color:#fffdf5}
.cover-title .cover-subtitle{font-size:1.0625rem;font-weight:400;line-height:1.8;letter-spacing:.035em;color:#eeefe2;max-width:22rem}
.cover-title .edition{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin:1.4rem 0 0;color:#fafaf2;font-size:.875rem;line-height:1.5}
.edition strong{font-weight:400;font-size:1.5rem;color:var(--lime);letter-spacing:.06em}
.edition small{display:block;flex-basis:100%;margin-top:-.55rem;font-size:.8125rem;color:#c6d0be}
.cover-contents{display:grid;gap:.75rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid #ffffff30}
.cover-contents>div{display:grid;gap:.05rem}
.cover-contents span{font-size:.75rem;color:#b6c7ba;letter-spacing:.06em}
.cover-contents b{font:400 .9375rem/1.55 var(--serif);color:#f5f4e8}
.chapter-nav{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.75rem;border-bottom:1px solid var(--line);font-size:.875rem;line-height:1.7}
.chapter-nav a{text-decoration:none}
.chapter-nav a:hover{text-decoration:underline}
.opening-story{display:grid;grid-template-columns:.95fr 1.2fr;gap:3.5rem}
.opening-question h2{font-size:1.65rem;line-height:1.75;color:var(--ink)}
.prose p{font-size:1rem;line-height:1.85}
.series{background:#e9eddf;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:.95fr 1.2fr;column-gap:3.5rem}
.series>.chapter-label{grid-column:1/-1}
.series h2{font-size:1.65rem;line-height:1.7}
.series-label{display:block;font-size:.875rem;font-weight:400;margin-bottom:.65rem;color:#586953}
.connection{margin-top:1.2rem;border-top:1px solid #c6cfbc;padding-top:.8rem}
.connection summary{font-size:.875rem;color:#354d3b;line-height:1.8}
.connection p{margin-top:1rem}
.section-heading{margin-bottom:1.6rem}
.section-heading h2{font-size:2rem;line-height:1.6;letter-spacing:.035em}
.photo{min-width:0}
.image-open{border:0;padding:0;display:block;width:100%;min-height:0;background:#e4e7dc;overflow:hidden}
.image-open img{width:100%;height:auto;transition:opacity .2s}
.image-open:hover img{opacity:.92}
.photo figcaption,.motion figcaption{font-size:.75rem;line-height:1.65;color:#697465;margin-top:.45rem}
.yoga-arrival{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;align-items:center}
.yoga-outdoors .image-open{aspect-ratio:4/5}
.yoga-outdoors img{height:100%;object-fit:cover;object-position:50% 66%}
.practice-spread{display:grid;grid-template-columns:1.2fr 1fr;gap:1.1rem;margin:2rem 0;align-items:start}
.practice-main .image-open{aspect-ratio:4/3}
.practice-main img{height:100%;object-fit:cover;object-position:50% 55%}
.practice-detail .image-open{aspect-ratio:4/3}
.practice-detail img{height:100%;object-fit:cover;object-position:50% 60%}
.care-spread{display:grid;grid-template-columns:1fr 252px;gap:2.5rem;align-items:center;padding:2rem;background:#e9eddf}
.care-prose .detail-note{margin-top:1.2rem;padding-top:1rem;border-top:1px solid #c9d0be;font-size:.875rem;line-height:1.85;color:#566750}
.motion{width:100%;max-width:252px;justify-self:center}
/* Intrinsic width/height attributes preserve the ratio, never the displayed height. */
.motion video{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:contain;background:#102b27}
.motion-fallback{width:100%;height:auto;aspect-ratio:9/16;background:#102b27}
.motion-fallback img{width:100%;height:auto;object-fit:contain}
.media-controls{display:flex;gap:.5rem;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:.35rem;font-size:.8125rem}
.media-controls button{font-size:.8125rem;padding:.25rem .2rem;border:0;border-bottom:1px solid #97a589;min-height:38px}
.media-status:empty{display:none}
.media-status{font-size:.8125rem;margin-top:.5rem!important}
.hotels{border-top:1px solid var(--line)}
.hotel-intro{max-width:740px;margin-bottom:2rem}
.hotel-entry{border-top:1px solid #b8c2af;padding:1.75rem 0 2.4rem}
.hotel-heading{display:grid;grid-template-columns:2rem 1fr;gap:1rem;align-items:start;margin-bottom:1.3rem}
.hotel-index{font:italic 1.5rem/1.3 var(--serif);color:#819275;padding-top:.1rem}
.hotel-heading h3{min-width:0}
.hotel-style{display:block;font-family:var(--sans);font-size:1.0625rem;font-weight:500;line-height:1.65;letter-spacing:.06em;color:#486047}
.hotel-name{display:block;font:400 1.9rem/1.25 var(--serif);letter-spacing:-.015em;color:var(--ink);margin-top:.4rem;text-wrap:balance}
.hotel-spread{display:grid;grid-template-columns:1.3fr 1fr;gap:2.2rem;align-items:start}
.hotel-main .image-open{aspect-ratio:3/2}
.hotel-main img{height:100%;object-fit:cover}
.hotel-1 .hotel-main img{object-position:50% 50%}
.hotel-2 .hotel-main img{object-position:60% 62%}
.hotel-3 .hotel-main img{object-position:62% 48%}
.hotel-pair{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.8rem}
.hotel-pair .image-open{aspect-ratio:3/2}
.hotel-pair img{height:100%;object-fit:cover}
.hotel-prose p{font-size:1rem;line-height:1.85}
.hotel-prose p+p{padding:.9rem 0 0;margin-top:1rem;border-top:1px solid var(--line);font-size:.875rem;color:#66715f}
.hotel-closing{border-top:1px solid #b8c2af;padding-top:1.25rem;font-size:.875rem}
.handbook-footer{display:flex;justify-content:space-between;gap:1rem;padding:1.4rem 1.75rem;border-top:1px solid var(--line);font-size:.75rem;color:#69765f;letter-spacing:.08em}

/* The proof controls are outside the customer-facing handbook. */
.review-panel{max-width:880px;margin:0 auto 3rem;padding:2.2rem;background:#fffdf8;border:1px solid #c9d0c0}
.review-eyebrow{font-size:.875rem;color:#66785d}
.review-panel h2{font-size:1.5rem;margin:.5rem 0 1rem;line-height:1.5}
.review-panel>p,.review-context{font-size:.9375rem;color:#5c6957}
.review-context{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:1.5rem 0;padding:1rem 0}
.review-context summary{color:#344b3c}
.review-context li{margin:.5rem 0}
.review-context ul{padding-left:1.3rem}
.review-panel fieldset{margin-top:1.8rem;border:1px solid #c9d0c0;padding:1rem}
.review-panel legend{padding:0 .5rem;font-weight:600}
.choices{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-bottom:.75rem}
.choices label{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;cursor:pointer;min-height:40px}
.choices input{width:1.1rem;height:1.1rem;margin:0}
.review-panel fieldset>label,.review-panel>label{display:block;font-size:.875rem;margin:.7rem 0 .4rem}
.feedback-actions{display:flex;gap:.8rem;flex-wrap:wrap}
.primary-button{background:var(--forest);color:#fffaf0;border-color:var(--forest)}
.review-status{font-size:.875rem;min-height:1.75rem;margin:.5rem 0}
#feedback-output{background:#eef0e6;font-size:.875rem}
.review-note{font-size:.8125rem!important;margin-top:1rem}
.review-panel button{font-size:.9375rem}
#photo-dialog{max-width:min(95vw,1200px);max-height:95dvh;padding:2.8rem 1rem 1rem;border:0;background:var(--paper);color:var(--ink)}
#photo-dialog::backdrop{background:#0e2523e6}
#photo-dialog figure{margin:0;display:flex;flex-direction:column;align-items:center}
#photo-full{width:auto;max-width:100%;max-height:78dvh;object-fit:contain}
#photo-caption{font-size:.875rem;text-align:center;margin-top:.6rem}
#photo-close{position:absolute;right:.5rem;top:.25rem;border:0;font-size:.875rem}
body:has(#photo-dialog[open]){overflow:hidden}

@container book (min-width:46.01rem){
 .cover{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
 .cover-photo{height:100%;object-fit:cover}
 .cover-title{margin:0;background:none;align-self:center;padding:6rem 3rem 3rem}
 .cover-title h1{font-size:3.3rem}
 .brand>span:last-child{color:#d9e3cf}
 .chapter-nav{justify-content:center;gap:4rem}
}
@container book (max-width:46rem){
 .section-pad{padding:2.4rem 1.75rem}
 .opening-story{display:block}
 .opening-question h2{font-size:1.3125rem;line-height:1.8;margin-bottom:1.25rem}
 .series{display:block}
 .series h2{font-size:1.375rem;line-height:1.7;margin-bottom:1.15rem}
 .section-heading h2{font-size:1.55rem;line-height:1.6}
 .yoga-arrival{display:block}
 .yoga-arrival .prose{margin-top:1.3rem}
 .yoga-outdoors .image-open{aspect-ratio:4/3}
 .yoga-outdoors img{object-position:50% 64%}
 .practice-spread{gap:.65rem;margin:1.5rem 0}
 .practice-main .image-open,.practice-detail .image-open{aspect-ratio:3/4}
 .care-spread{display:flex;flex-direction:column;padding:1.25rem;gap:1.4rem}
 .motion{max-width:252px;align-self:center}
 .hotel-heading{gap:.7rem;grid-template-columns:1.65rem 1fr;margin-bottom:1.15rem}
 .hotel-name{font-size:1.6875rem;line-height:1.25}
 .hotel-style{font-size:1.0625rem}
 .hotel-spread{display:block}
 .hotel-prose{margin-top:1.25rem}
 .hotel-pair{gap:.55rem}
 .handbook-footer{font-size:.75rem;display:block}
 .handbook-footer span{display:block}
}
@container book (max-width:23rem){
 .section-pad{padding-left:1.25rem;padding-right:1.25rem}
 .cover-title{padding-left:1.25rem;padding-right:1.25rem}
 .cover-title h1{font-size:2.65rem}
 .chapter-nav{padding-left:1.25rem;padding-right:1.25rem;font-size:.8125rem;gap:.6rem}
 .hotel-name{font-size:1.5rem}
 .care-spread{padding:1rem}
}
@media(max-width:760px){
 .review-toolbar{padding:.3rem .65rem;gap:.35rem;font-size:.75rem}
 .review-controls{gap:.3rem}
 .review-controls a{font-size:.8125rem}
 .review-controls button{font-size:.75rem;padding:.2rem .5rem}
 .review-panel{margin:0 .7rem 2rem;padding:1.2rem}
 .review-panel h2{font-size:1.25rem}
 .review-panel fieldset{padding:.8rem}
 .choices{display:block}
 .feedback-actions button{width:100%}
 .proof{box-shadow:none;margin-bottom:1.5rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.image-open img{transition:none}}

/* V0.4: original company marks, uncluttered cover, one dining page. */
.brand-mark{display:block;position:relative;flex:none;width:52px;overflow:hidden}
.brand-mark img{position:absolute;display:block;max-width:none;object-fit:fill}
.brand .cover-brand{width:58px}
.section-heading,.series,.dining-heading{position:relative}
.interior-brand{position:relative;right:auto;top:auto;width:44px}
.dining-page{padding:1.4rem;background:#e9eddf;break-inside:avoid;margin:2rem 0}
.dining-heading{margin-bottom:1.2rem;padding-right:60px}
.dining-heading h3,.care-heading h3{font-size:1.375rem;font-weight:500;line-height:1.6;letter-spacing:.04em}
.dining-photos{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;align-items:start}
.dining-photos img{width:100%;height:auto;object-fit:contain}
.dining-copy{margin-top:1.3rem;font-size:1rem;line-height:1.85}
.bamboo-page{margin-top:2rem}
.care-heading{margin-bottom:1.25rem}
.bamboo-page .care-spread{grid-template-columns:252px 1fr;align-items:center}
.bamboo-page .detail-note{border:0;margin:0;padding:0}
.retained-approval{margin-top:1.8rem;border:1px solid #c9d0c0;background:#eef2e7;padding:1rem;font-size:.9375rem}
.retained-approval p{margin-top:.5rem;font-size:.875rem;color:#5c6957}
@container book (max-width:46rem){
 .dining-page{margin:1.6rem 0;padding:1.2rem}
 .dining-photos{gap:.6rem}
 .dining-heading{padding-right:55px}
 .dining-heading h3{font-size:1.25rem}
 .bamboo-page .care-spread{gap:1rem}
}
@container book (max-width:23rem){
 .dining-page{padding:1rem}
 .interior-brand{width:40px}
}

/* Inner logos participate in layout and cannot occupy the paragraph area. */
.chapter-masthead{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;min-width:0;margin-bottom:1rem}
.chapter-masthead>.chapter-label{margin:0;overflow-wrap:anywhere}
.chapter-masthead>.interior-brand{position:relative;inset:auto;justify-self:end}
.series>.chapter-masthead{grid-column:1/-1}
.dining-heading{padding-right:0}
.chapter-nav{flex-wrap:wrap;justify-content:center;gap:.75rem 1.5rem}
.highlight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
.small-index{font:italic 1.5rem/1.4 var(--serif);color:#829476;display:block;margin-bottom:.6rem}
.highlight-grid h3,.venue h3,.day-entry h3,.service-pages h3,.contact-pages h3{font-size:1.25rem;font-weight:500;line-height:1.7;margin-bottom:1rem}
.highlight-grid h3 strong,.venue h3 strong,.day-entry h3 strong,.service-pages h3 strong,.contact-pages h3 strong{font-weight:500}
.highlights,.other-experiences,.meal-details,.service-pages,.price-pages,.contact-pages{border-top:1px solid var(--line)}
.venue{padding:2rem 0;border-bottom:1px solid var(--line)}
.venue:first-of-type{padding-top:0}
.venue-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;margin-bottom:1.5rem;align-items:start}
.venue-pair img,.tirta-main img{width:100%;height:auto;object-fit:contain}
.venue>p{max-width:800px}
.tirta-main{max-width:680px;margin:0 auto 1.5rem}
.fine-note{font-size:.875rem;line-height:1.85;color:#61705a!important;margin-top:1rem}
.itinerary-pages{background:#e9eddf;border-block:1px solid var(--line)}
.day-entry{display:grid;grid-template-columns:3rem minmax(0,1fr);gap:1.5rem;padding:1.8rem 0;border-top:1px solid #c6cfbd}
.day-marker{font:italic 2rem/1.5 var(--serif);color:#758b68}
.meal-details-spread{display:grid;grid-template-columns:1.15fr 1fr;gap:2.5rem;align-items:start}
.meal-details-spread .venue-pair{gap:.8rem}
.service-intro{max-width:780px}
.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}
.service-grid article{background:#e9eddf;padding:1.5rem}
.service-grid strong,.fee-grid strong{display:block;color:#294538;font-size:1.0625rem;margin-bottom:.6rem}
.price-panel{background:var(--forest);padding:2rem;color:#fffdf4}
.price-panel p{color:#dfe6d6;font-size:.9375rem;margin-top:1rem}
.price-label{display:block;font-size:.875rem;font-weight:400;letter-spacing:.06em;color:var(--lime);margin-bottom:.6rem}
.price-number{font:2.75rem/1.3 var(--serif);color:#f5f5df}
.price-panel small{font-size:.9375rem;font-weight:400}
.fee-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0}
.fee-grid>div{border-top:1px solid #b8c2af;padding-top:1.1rem}
.contact-spread{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;margin-top:1.5rem}
.inquiry{background:#e9eddf;padding:1.5rem;align-self:start}
.inquiry label{display:block;font-size:.875rem;margin-bottom:.8rem}
.inquiry button{margin-top:.8rem}
.inquiry-status{font-size:.8125rem;line-height:1.7;margin-top:.8rem!important}
@container book (max-width:46rem){
 .highlight-grid{grid-template-columns:1fr;gap:1.4rem}
 .highlight-grid article+article{border-top:1px solid var(--line);padding-top:1.4rem}
 .venue-pair{gap:.7rem}
 .day-entry{grid-template-columns:2rem minmax(0,1fr);gap:.8rem;padding:1.5rem 0}
 .day-marker{font-size:1.6rem}
 .day-entry h3{font-size:1.125rem}
 .meal-details-spread,.service-grid,.fee-grid,.contact-spread{grid-template-columns:1fr;gap:1.5rem}
 .price-panel{padding:1.4rem}
 .service-grid article,.inquiry{padding:1.2rem}
 .chapter-nav{font-size:.8125rem;gap:.7rem 1.2rem}
}
