@font-face{font-family:BookSerif;src:url('assets/book-serif.woff2?v=1.5-datong1') format('woff2');font-display:swap;font-weight:400}
@font-face{font-family:BookSans;src:url('assets/book-sans.woff2?v=1.5-datong1') format('woff2');font-display:swap;font-weight:400}
:root{--brand:#2E6478;--gold:#B78B4A;--paper:#F7F3EA;--ink:#2B2B28;--muted:#716f66;--line:rgba(46,100,120,.2);--serif:BookSerif,'Noto Serif SC','Songti SC',serif;--sans:BookSans,'PingFang SC','Microsoft Yahei',sans-serif;--page-w:440px;--page-h:650px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;border:0;background:transparent;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:inherit}button:disabled{opacity:.28;cursor:default}button{touch-action:manipulation}img{max-width:100%}p{line-height:1.8;margin:0 0 1em}h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;letter-spacing:.025em}h2{font-size:32px;line-height:1.5}small{font-size:11px}.reader-header{height:66px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;max-width:1440px;margin:auto;gap:16px}.brand-home{text-decoration:none;color:var(--brand);display:flex;align-items:baseline;gap:13px;white-space:nowrap}.brand-home span{font-family:var(--serif);font-size:20px;letter-spacing:.18em}.brand-home small{font-family:Georgia,serif;letter-spacing:.13em;font-size:10px}.edition{font-size:11px;letter-spacing:.17em;color:var(--muted)}.menu-button{display:flex;align-items:center;gap:8px;font-size:13px;min-height:44px;min-width:58px;justify-content:flex-end}.menu-lines{width:17px;height:10px;border-top:1px solid var(--brand);border-bottom:1px solid var(--brand)}main{max-width:1440px;margin:auto}.stage{height:calc(100svh - 156px);min-height:390px;max-height:950px;margin:5px 30px 0;display:flex;align-items:center;justify-content:center;overflow:visible}.book{flex-shrink:0;position:relative;box-shadow:0 20px 48px rgba(22,47,54,.16),0 2px 5px rgba(22,47,54,.1)}.book:not(.stf__parent) .leaf:not(:first-child){display:none}.book:not(.stf__parent){width:var(--page-w);height:var(--page-h)}.book:not(.stf__parent) .leaf:first-child{width:100%;height:100%}.leaf{background:var(--paper);overflow:hidden;color:var(--ink);position:relative;container-type:inline-size}.page-inner{height:100%;position:relative;overflow:hidden;background:var(--paper)}.page-inner::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:12;box-shadow:inset 1px 0 2px rgba(22,47,54,.1)}.stf__item.--left .page-inner::after{background:linear-gradient(90deg,transparent 95%,rgba(22,47,54,.07))}.stf__item.--right .page-inner::after{background:linear-gradient(90deg,rgba(22,47,54,.07),transparent 5%)}.page-body{padding:clamp(22px,7cqw,38px);height:100%;position:relative;z-index:2}.eyebrow{font-size:10px;letter-spacing:.18em;font-family:var(--sans);line-height:1.6;text-transform:uppercase}.folio{position:absolute;bottom:18px;left:7%;right:7%;font-size:9px;letter-spacing:.13em;display:flex;justify-content:space-between;align-items:center;z-index:10}.photo{position:relative;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover;display:block}.photo-watermark{position:absolute;z-index:5;pointer-events:none;left:0;right:0;top:63%;text-align:center;transform:rotate(-18deg);font-family:var(--sans);font-size:clamp(15px,4.3cqw,23px);letter-spacing:.17em;color:#fff;opacity:.2;text-shadow:0 1px 1px rgba(0,0,0,.25);white-space:nowrap}.watermark-dark{color:var(--brand);opacity:.13}.zoom-photo{position:absolute;right:16px;top:16px;z-index:10;color:#fff;width:44px;height:44px;border:1px solid rgba(255,255,255,.5);border-radius:50%;font-size:20px;display:grid;place-items:center;background:rgba(0,0,0,.12);backdrop-filter:blur(5px)}.photo>button{opacity:.82}.cover-photo{position:absolute;inset:0}.cover-photo img{object-position:46% 50%}.cover-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,24,29,.1) 5%,rgba(8,24,29,.15) 30%,rgba(8,24,29,.78) 100%)}.cover .page-inner{background:var(--brand);color:var(--paper)}.cover .logo{width:104px;height:auto;position:absolute;top:6%;left:7%;z-index:4}.cover .edition-top{position:absolute;top:6.5%;right:7%;font-size:10px;line-height:1.8;letter-spacing:.18em;text-align:right}.cover-copy{position:absolute;left:7%;right:7%;bottom:12%;z-index:4}.cover h1{font-size:clamp(36px,11cqw,61px);line-height:1.4;letter-spacing:.08em;white-space:normal}.cover .cover-sub{font-size:12px;letter-spacing:.12em;margin:20px 0 0}.cover-bottom{position:absolute;bottom:4%;left:7%;right:7%;display:flex;align-items:flex-end;justify-content:space-between;font-size:10px;letter-spacing:.16em;z-index:4}.cover-bottom .year{font-family:Georgia,serif;font-size:40px;line-height:1}.cover .watermark{opacity:.13}.overview .collage-photo{position:absolute;inset:0 0 9%;height:auto}.overview .collage-photo img{object-position:center center}.overview .collage-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,53,62,.28),transparent 32%,transparent 80%,var(--paper))}.overview .overview-top{position:absolute;top:6%;left:7%;color:#fff;z-index:6}.overview h2{font-size:clamp(28px,8.8cqw,45px);line-height:1.5;margin-top:12px;text-shadow:0 1px 15px rgba(0,0,0,.15)}.overview .overview-bottom{position:absolute;bottom:7%;left:7%;right:7%;z-index:8;font-size:11px;line-height:1.7;letter-spacing:.05em}.selector .page-body{display:flex;flex-direction:column;padding-bottom:45px}.selector h2{font-size:clamp(26px,8cqw,40px);line-height:1.5;margin-top:15px}.destination-list{margin-top:auto}.destination-link{display:flex;align-items:center;justify-content:space-between;text-align:left;width:100%;padding:15px 0;border-bottom:1px solid var(--line);gap:8px;min-height:65px}.destination-link:last-child{border-bottom:0}.destination-link b{font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:.07em}.destination-link small{color:var(--muted);display:block;font-size:10px;letter-spacing:.07em;margin-top:5px}.destination-link .arrow{color:var(--gold);font-size:23px}.destination-link em{font-size:10px;font-style:normal;color:var(--gold);margin-left:8px;white-space:nowrap}.letter .page-body{display:flex;flex-direction:column}.letter h2{font-size:clamp(28px,8.2cqw,43px);line-height:1.5;margin-top:7%}.letter .letter-copy{font-size:clamp(13px,3.65cqw,17px);line-height:2.05;margin-top:8%}.letter .signature{margin-top:auto;align-self:flex-end;color:var(--brand);font-family:var(--serif);font-size:20px;letter-spacing:.12em;margin-bottom:24px}.family .page-inner{background:var(--brand);color:var(--paper)}.family h2{font-size:clamp(30px,9cqw,46px);margin-top:14%;line-height:1.65}.family-tabs{display:flex;gap:20px;margin-top:15%;border-bottom:1px solid rgba(247,243,234,.3)}.family-tabs button{font-size:14px;padding:12px 0;min-height:44px;opacity:.5;position:relative}.family-tabs button[aria-pressed=true]{opacity:1}.family-tabs button[aria-pressed=true]::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--gold)}.family-text{margin-top:9%;font-size:14px;line-height:2.1}.family-text h3{font-family:var(--serif);font-size:23px;margin-bottom:20px;line-height:1.6}.family-text p{opacity:.85}.hero .hero-image{position:absolute;inset:0}.hero .hero-image img{object-position:center}.hero .hero-image::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,31,37,.15),transparent 28%,rgba(14,31,37,.15) 48%,rgba(14,31,37,.78) 100%)}.hero .hero-content{position:absolute;inset:0;color:var(--paper);z-index:4;padding:7%}.hero .hero-top{display:flex;justify-content:space-between;gap:10px;font-size:10px;letter-spacing:.14em}.hero .hero-title{position:absolute;bottom:16%;left:7%;right:7%}.hero .collection{font-family:var(--serif);font-size:clamp(70px,23cqw,120px);line-height:1.05;letter-spacing:.12em;margin-bottom:22px}.hero h2{font-size:clamp(26px,7.5cqw,40px);line-height:1.65;white-space:pre-line}.hero .hero-subtitle{margin-top:18px;font-size:12px;letter-spacing:.04em}.hero .region{position:absolute;bottom:7.5%;left:7%;font-size:11px;letter-spacing:.08em}.hero .folio{color:rgba(255,255,255,.7)}.hero-changbai .hero-image img{object-position:46% 50%}.hero-changbai .hero-image::after{background:linear-gradient(180deg,rgba(247,243,234,.1),transparent 40%,rgba(230,239,244,.25) 60%,rgba(232,239,241,.85) 100%)}.hero-changbai .hero-content,.hero-changbai .folio{color:var(--brand)}.hero-changbai .hero-title{bottom:13%}.hero-changbai .photo-watermark{color:var(--brand);opacity:.12}.hero-datong .hero-image img{object-position:50% 23%}.hero-datong .hero-image::after{background:linear-gradient(180deg,rgba(29,25,17,.12),transparent 25%,transparent 45%,rgba(32,27,21,.85) 100%)}.hero-fujian .hero-image img{object-position:50% 12%}.hero-fujian .hero-image::after{background:linear-gradient(180deg,rgba(30,26,21,.14),transparent 25%,rgba(30,26,21,.35) 60%,rgba(30,26,21,.8) 100%)}.detail .detail-photo{height:30%;min-height:100px}.detail .detail-photo img{object-position:center}.detail .detail-body{padding:6% 7% 10%;height:70%;display:flex;flex-direction:column}.detail .detail-meta{font-size:10px;color:var(--brand);letter-spacing:.09em;margin-bottom:3%}.detail h2{font-size:clamp(25px,7.2cqw,37px);white-space:pre-line;line-height:1.5}.detail .intro{font-size:clamp(12px,3.4cqw,15px);line-height:1.95;margin:4% 0}.detail .highlights{margin:0;display:grid;gap:10px}.detail .highlight{display:grid;grid-template-columns:80px 1fr;gap:8px;font-size:11px;line-height:1.8}.detail .highlight strong{font-size:12px;font-weight:400;color:var(--brand)}.detail .highlight span{color:var(--muted)}.detail .detail-actions{margin-top:auto;padding-top:12px;display:flex;justify-content:space-between;gap:10px}.text-link{padding:9px 0;min-height:44px;font-size:12px;color:var(--brand);border-bottom:1px solid var(--gold);display:inline-flex;align-items:center;gap:12px}.text-link.light{color:var(--paper)}.detail .folio{bottom:12px}.detail-datong .detail-photo{height:37%}.detail-datong .detail-photo img{object-position:50% 27%}.detail-datong .detail-body{height:63%;padding-top:5%}.detail-datong .intro{margin:3% 0}.detail-datong .highlights{gap:6px}.detail-changbai .detail-photo{height:34%}.detail-changbai .detail-body{height:66%;padding-top:5%}.detail-changbai .intro{margin:3% 0}.detail-changbai .highlights{gap:6px}.detail-yunnan .detail-photo img{object-position:50% 50%}.detail-fujian .detail-photo img{object-position:50% 58%}.heritage{position:absolute;top:6%;right:7%;font-size:8px;line-height:1.7;letter-spacing:.08em;text-align:right;color:var(--paper)}.xinjiang .page-body{display:flex;flex-direction:column}.xinjiang h2{font-size:clamp(42px,14cqw,72px);line-height:1.45;margin-top:13%;color:var(--brand)}.xinjiang .far{font-family:Georgia,serif;font-size:clamp(100px,30cqw,170px);color:rgba(46,100,120,.065);position:absolute;top:24%;right:3%;writing-mode:vertical-rl;line-height:1;letter-spacing:.08em;pointer-events:none}.xinjiang p{margin-top:14%;font-size:14px;line-height:2;color:var(--muted);max-width:85%}.xinjiang .text-link{align-self:flex-start;margin-top:auto;margin-bottom:7%}.value-page .page-inner{background:var(--brand);color:var(--paper)}.value-page .page-body{display:flex;flex-direction:column;justify-content:center}.value-page h2{font-size:clamp(30px,9cqw,48px);line-height:1.9;margin:12% 0}.value-page p{font-size:14px;line-height:2;color:rgba(247,243,234,.82)}.value-page .value-rule{width:34px;height:1px;background:var(--gold);margin:5% 0}.service-page h2,.process-page h2{font-size:clamp(28px,8.3cqw,43px);line-height:1.6;margin:5% 0 9%}.service-row{border-top:1px solid var(--line);padding:14px 0}.service-row h3{font-family:var(--sans);font-size:14px;color:var(--brand);margin-bottom:5px}.service-row p{font-size:12px;line-height:1.85;color:var(--muted);margin:0}.service-footnote{font-size:10px!important;margin-top:12px!important;line-height:1.8!important;color:var(--muted)}.process-step{display:grid;grid-template-columns:27px 1fr;gap:12px;padding:18px 0;border-top:1px solid var(--line)}.step-number{font-family:Georgia,serif;font-size:24px;color:var(--gold)}.process-step h3{font-family:var(--sans);font-size:14px;margin-bottom:7px}.process-step p{font-size:12px;line-height:1.9;color:var(--muted);margin:0}.process-page .early-note{font-size:12px;line-height:1.9;margin-top:9%;color:var(--brand)}.wishlist h2{font-size:clamp(27px,8cqw,42px);margin:6% 0 7%;line-height:1.6}.wishlist .page-body{display:flex;flex-direction:column;padding-bottom:45px}.wish-label{font-size:12px;color:var(--muted);margin-bottom:8px}.wish-options{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6%}.wish-option{min-height:40px;padding:7px 12px;font-size:12px;border:1px solid var(--line);border-radius:2px}.wish-option[aria-pressed=true]{background:var(--brand);color:var(--paper);border-color:var(--brand)}.wishlist textarea{width:100%;border:1px solid var(--line);padding:12px;resize:none;background:rgba(255,255,255,.25);color:var(--ink);font-size:14px;line-height:1.8;min-height:85px}.primary-action{background:var(--brand);color:var(--paper);padding:14px 18px;min-height:48px;font-size:13px;display:flex;align-items:center;justify-content:space-between;width:100%;letter-spacing:.05em}.wishlist .primary-action{margin-top:auto}.wishlist .local-note{font-size:10px;line-height:1.8;color:var(--muted);margin-top:10px;margin-bottom:7%}.contact-page .page-body{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:12%}.contact-page h2{font-size:clamp(29px,8.4cqw,43px);line-height:1.7;margin:7% 0}.qr-frame{width:48%;max-width:215px;background:#fff;padding:10px;margin:5% 0}.qr-frame img{display:block;width:100%;height:auto}.contact-page p{font-size:12px;line-height:1.9;color:var(--muted)}.contact-page .qr-caption{font-size:14px;color:var(--brand);letter-spacing:.06em}.contact-page .consult-note{font-size:10px;line-height:1.9;margin-top:auto;margin-bottom:5%;text-align:left;color:var(--muted)}.back-cover .page-inner{background:var(--brand);color:var(--paper)}.back-cover .page-body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.back-cover .logo{width:115px}.back-cover h2{font-size:clamp(25px,7.4cqw,39px);line-height:1.85;margin:14% 0}.back-cover p{font-size:12px;line-height:2;letter-spacing:.04em;color:rgba(247,243,234,.75)}.back-cover .closing-brand{font-family:Georgia,serif;font-size:10px;letter-spacing:.2em;color:var(--gold);margin-top:9%}.back-cover .credits-button{position:absolute;bottom:35px;font-size:9px;color:rgba(247,243,234,.65);padding:12px}.reader-controls{height:58px;display:flex;align-items:center;justify-content:space-between;max-width:620px;padding:0 26px;margin:8px auto 0}.reader-controls>button{min-height:44px;display:flex;align-items:center;gap:12px;font-size:21px;color:var(--brand)}.control-word{font-size:11px;letter-spacing:.06em}.reader-controls #page-status{font-size:12px;gap:4px;flex-wrap:wrap;justify-content:center;max-width:220px}.page-divider{color:var(--gold);margin:0 7px}#chapter-name{flex-basis:100%;color:var(--muted);font-size:9px;letter-spacing:.08em}.reading-progress{max-width:320px;height:1px;margin:auto;background:rgba(46,100,120,.12)}.reading-progress span{display:block;height:100%;background:var(--gold);width:5%;transition:width .35s}.gesture-hint{text-align:center;font-size:9px;letter-spacing:.1em;color:var(--muted);line-height:1.8;margin:10px 0 12px}.announcement{position:fixed;left:50%;bottom:70px;transform:translateX(-50%);max-width:90vw;background:var(--brand);color:var(--paper);padding:12px 18px;font-size:12px;line-height:1.7;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s}.announcement.visible{opacity:1}dialog{border:0;padding:30px;background:var(--paper);color:var(--ink);max-width:min(92vw,560px);max-height:88svh;overflow:auto;box-shadow:0 24px 80px rgba(0,0,0,.22)}dialog::backdrop{background:rgba(17,37,46,.62);backdrop-filter:blur(6px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;color:var(--brand)}.dialog-close{font-size:29px;width:44px;height:44px;flex-shrink:0;font-family:var(--sans)}.contents-dialog h2{font-size:27px;line-height:1.5;margin-bottom:20px}.contents-item{display:flex;justify-content:space-between;gap:14px;width:100%;min-height:48px;align-items:center;text-align:left;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.contents-item small{color:var(--gold);font-family:Georgia,serif}.small-note{font-size:12px;color:var(--muted);line-height:1.9;margin:24px 0 0}.itinerary-dialog h2{font-size:31px;margin-bottom:10px}.itinerary-region{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:28px}.itinerary-day{display:grid;grid-template-columns:33px 1fr;gap:12px;border-top:1px solid var(--line);padding:18px 0}.itinerary-day .day-number{font-size:11px;color:var(--gold);padding-top:4px}.itinerary-day h3{font-size:18px;line-height:1.6;margin-bottom:7px}.itinerary-day p{font-size:13px;color:var(--muted);line-height:1.9;margin:0}.itinerary-note{font-size:11px;color:var(--muted);line-height:1.9;margin-top:20px}.photo-dialog{max-width:95vw;max-height:95svh;width:min(1100px,95vw);padding:0;background:#172e36;color:var(--paper);overflow:hidden}.photo-dialog .dialog-close{position:absolute;top:8px;right:8px;z-index:25;color:#fff;background:rgba(0,0,0,.3);border-radius:50%}.photo-view{position:relative}.photo-view img{display:block;width:100%;height:80svh;object-fit:contain}.photo-dialog p{font-size:11px;text-align:center;line-height:1.7;padding:12px 20px;margin:0}.credits-dialog h2{font-size:26px;margin-bottom:20px}.credits-dialog p{font-size:12px;color:var(--muted);line-height:1.9}.no-script{padding:40px;text-align:center}
@media(min-width:1100px){.reader-header{padding-left:48px;padding-right:48px}.stage{margin-left:55px;margin-right:55px}.book{box-shadow:0 25px 60px rgba(22,47,54,.18),0 2px 5px rgba(22,47,54,.12)}}
@media(max-width:600px){.reader-header{height:54px;padding:0 18px;gap:10px}.brand-home{gap:0;display:block}.brand-home span{font-size:16px}.brand-home small{display:none}.edition{font-size:9px;letter-spacing:.09em;margin-left:auto}.menu-button{font-size:11px;min-width:49px;gap:7px}.stage{height:calc(100svh - 138px);max-height:none;min-height:350px;margin:0 8px}.reader-controls{margin-top:5px;height:52px;padding:0 22px}.reader-controls>button{gap:8px}.reading-progress{max-width:170px}.gesture-hint{font-size:8px;margin:7px 0;padding-bottom:env(safe-area-inset-bottom,0)}.folio{bottom:14px}.destination-link{padding:11px 0;min-height:61px}.destination-link b{font-size:23px}.selector .page-body{padding-bottom:36px}.detail .detail-body{padding-bottom:12%}.detail .highlights{gap:7px}.detail .highlight{font-size:10.5px;grid-template-columns:72px 1fr}.detail .highlight strong{font-size:11px}.detail .intro{font-size:12px}.detail .text-link{font-size:11px}.service-row{padding:11px 0}.service-row p{font-size:11px}.process-step{padding:14px 0}.process-step p{font-size:11px}.wish-options{margin-bottom:5%}.wish-option{min-height:36px;font-size:11px}.wish-label{font-size:11px}.wishlist h2{margin-bottom:6%}.contact-page .page-body{padding-top:10%}.qr-frame{width:51%}.contact-page .consult-note{font-size:9px}dialog{padding:22px;max-width:94vw}.dialog-top .eyebrow{font-size:8px}}
@media(max-height:660px){.stage{height:calc(100svh - 122px);min-height:310px}.reader-header{height:47px}.reader-controls{height:46px;margin-top:0}.gesture-hint{margin:4px 0;font-size:8px}.page-body{padding:6%}.destination-link{padding:8px 0;min-height:49px}.destination-link b{font-size:20px}.destination-link small{font-size:9px;margin-top:2px}.selector h2{font-size:26px}.letter .letter-copy{font-size:12px;line-height:1.9;margin-top:5%}.letter h2{font-size:27px}.family h2{font-size:28px;margin-top:8%}.family-tabs{margin-top:8%}.family-text{margin-top:6%;font-size:12px}.family-text h3{font-size:20px;margin-bottom:12px}.detail .intro{font-size:11px;line-height:1.8;margin:3% 0}.detail .highlights{gap:5px}.detail .highlight{font-size:9.5px;line-height:1.7}.detail .highlight strong{font-size:10px}.detail h2{font-size:24px}.detail .detail-photo{height:27%}.detail .detail-body{height:73%;padding-top:4%;padding-bottom:11%}.detail .detail-actions{padding-top:4px}.detail .detail-meta{font-size:9px}.service-page h2,.process-page h2{font-size:27px;margin:4% 0 6%}.service-row{padding:8px 0}.service-row h3{font-size:12px}.service-row p{font-size:10px;line-height:1.75}.service-footnote{font-size:9px!important}.process-step{padding:11px 0}.process-step h3{font-size:12px}.process-step p{font-size:10px}.process-page .early-note{font-size:11px;margin-top:5%}.wishlist h2{font-size:26px;margin:3% 0 5%}.wish-option{min-height:31px;padding:5px 8px;font-size:10px}.wish-options{margin-bottom:4%}.wishlist textarea{min-height:65px;font-size:12px}.wishlist .local-note{margin-bottom:5%;font-size:9px}.contact-page .page-body{padding-top:7%}.contact-page h2{font-size:27px;margin:6% 0}.qr-frame{width:44%;margin:2% 0}.contact-page p{font-size:10px}.contact-page .qr-caption{font-size:12px}.folio{bottom:10px;font-size:8px}.hero .collection{font-size:68px;margin-bottom:12px}.hero h2{font-size:25px}.hero .hero-subtitle{font-size:10px;margin-top:10px}.hero .region{font-size:9px}.cover h1{font-size:38px}.cover .cover-sub{font-size:10px}.cover .logo{width:84px}.cover .edition-top{font-size:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.gesture-hint{opacity:.75}}
/* Refinements after mobile proofing: the page keeps its white space; long detail opens separately. */
.book{box-shadow:none;transition:transform .5s ease}.book.is-front-cover{transform:translateX(-25%)}.book.is-back-cover{transform:translateX(25%)}.leaf{box-shadow:0 12px 26px rgba(22,47,54,.12)}.detail .highlights{display:flex;flex-wrap:wrap;gap:7px 18px;border-top:1px solid var(--line);padding-top:12px;margin-top:2%}.detail .highlight{display:block}.detail .highlight strong{font-size:12px}.detail .intro{font-size:14px;line-height:1.95;margin:6% 0}.detail h2{font-size:clamp(25px,7.2cqw,37px)}.detail .detail-photo{height:36%}.detail .detail-body{height:64%}.detail .detail-actions{padding-top:12px}.wish-prose{font-size:15px;line-height:2.1;margin:7% 0}.wish-summary{border-top:1px solid var(--line);padding-top:6%;margin-top:auto}.wish-summary p{font-family:var(--serif);font-size:19px;line-height:1.8;margin:10px 0 0;color:var(--brand)}.wishlist .local-note{margin:5% 0 7%;font-size:11px}.wish-dialog h2{font-size:27px;margin-bottom:27px}.wish-dialog .wish-options{margin-bottom:22px}.wish-dialog .wish-option{min-height:44px;font-size:13px;padding:9px 13px}.wish-dialog textarea{display:block;width:100%;border:1px solid var(--line);background:rgba(255,255,255,.4);font-size:16px;line-height:1.8;padding:12px;min-height:100px;resize:vertical;color:var(--ink)}.wish-dialog .wish-label{display:block;font-size:13px}.wish-dialog .local-note{font-size:11px;line-height:1.8;margin-top:16px;color:var(--muted)}.wish-dialog .primary-action{position:sticky;bottom:-22px;min-height:48px}.itinerary-intro{font-size:14px;line-height:1.95}.itinerary-highlights{margin-bottom:25px}.itinerary-highlights p{font-size:12px;line-height:1.9;color:var(--muted)}.itinerary-highlights strong{color:var(--brand);font-weight:400}.photo-dialog:has(#large-photo[src$="wechat-qrcode.jpg"]) .photo-view{background:#fff}.photo-dialog:has(#large-photo[src$="wechat-qrcode.jpg"]) #large-photo{height:65svh;padding:40px}.photo-dialog:has(#large-photo[src$="wechat-qrcode.jpg"]) .photo-watermark{display:none}
@media(max-height:660px){.detail .detail-photo{height:32%}.detail .detail-body{height:68%;padding-top:4%}.detail .intro{font-size:12px;line-height:1.9;margin:4% 0}.detail .highlight strong{font-size:10px}.detail .highlights{padding-top:8px;gap:6px 14px}.detail .detail-actions{padding-top:5px}.detail .text-link{font-size:10px}.wish-prose{font-size:13px;line-height:2;margin:5% 0}.wish-summary p{font-size:17px}.wishlist .local-note{font-size:10px}.wishlist .primary-action{font-size:12px;padding:12px;min-height:44px}}
/* V1.1 — readable body type, family scenes and a protected footer area. */
@font-face{font-family:BookDisplay;src:url('assets/book-display.woff2?v=1.5-datong1') format('woff2');font-display:swap;font-weight:300}
@font-face{font-family:BookSerif;src:url('assets/book-serif-medium.woff2?v=1.5-datong1') format('woff2');font-display:swap;font-weight:500}
h1,.hero .collection,.hero h2,.overview h2,.xinjiang h2{font-family:BookDisplay,var(--serif);font-weight:300}
.page-body{padding-bottom:48px}.folio{height:14px;bottom:15px;line-height:14px}
.family-photo{height:34%}.family-photo img{object-position:50% 38%}.family .page-body{height:66%;padding:6% 7% 45px}.family .eyebrow{font-size:9px}.family h2{font-size:clamp(25px,7.1cqw,35px);margin-top:4%;line-height:1.45}.family-tabs{margin-top:4%;gap:25px}.family-tabs button{padding:8px 0;font-size:13px}.family-text{margin-top:5%;font-size:13px;line-height:1.85}.family-text h3{font-family:var(--sans);font-size:15px;line-height:1.7;margin-bottom:9px}.family-text p{line-height:1.85;margin:0}
.detail .detail-photo{height:35%;min-height:0}.detail .detail-body{height:65%;padding:5% 7% 45px}.detail .detail-meta{font-size:10px;margin:0 0 8px;letter-spacing:.04em}.detail h2{font-size:clamp(25px,7cqw,34px);line-height:1.45;font-weight:500}.detail .intro{font-size:13px;line-height:1.9;margin:4% 0}.detail .detail-actions{padding-top:5px;min-height:44px;flex-shrink:0}.detail .text-link{font-size:12px;min-height:44px}.detail .folio{bottom:13px}.budget-preview{text-align:left;padding:9px 0 7px;border-top:1px solid var(--line);width:100%;display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:3px 6px;margin-top:auto;flex-shrink:0}.budget-preview>span{font-size:10px;color:var(--muted)}.budget-preview strong{font-size:16px;font-weight:400;color:var(--brand)}.budget-preview small{font-size:10px;color:var(--muted);grid-column:1/-1}.detail-datong .detail-photo img{object-position:50% 58%}.detail-yunnan .detail-photo img{object-position:50% 55%}
.wish-photo{height:39%}.wish-photo img{object-position:50% 41%}.wishlist .page-body{height:61%;padding:5% 7% 45px}.wishlist h2{font-size:clamp(24px,7cqw,34px);line-height:1.45;margin:3% 0}.wishlist .eyebrow{font-size:9px}.wish-prose{font-size:13px;line-height:1.85;margin:4% 0}.wish-summary{margin-top:auto;padding-top:9px}.wish-summary p{font-family:var(--sans);font-size:13px;line-height:1.65;margin:4px 0}.wishlist .local-note{font-size:11px;margin:9px 0 12px}.wishlist .primary-action{font-size:12px;min-height:44px;padding:12px}
.service-page h2,.process-page h2{margin-bottom:5%}.service-row{padding:10px 0}.service-row p{font-size:12px;line-height:1.8}.process-step{padding:13px 0}.process-step p{font-size:12px;line-height:1.8}.process-page .early-note{font-size:12px;margin:5% 0 0}.process-page>.page-inner>.page-body>.text-link{display:flex;width:100%;justify-content:space-between;min-height:40px;font-size:11px}
.review-label{color:var(--brand);font-size:12px;display:block;border-left:2px solid var(--gold);padding-left:12px;margin-bottom:20px}.budget-dialog h2,.sales-dialog h2{font-size:30px;line-height:1.6;margin:10px 0 20px}.budget-amount{font-size:27px;color:var(--brand);margin:20px 0}.budget-dialog p,.sales-dialog p{font-size:14px;line-height:1.95}.budget-disclaimer{background:rgba(46,100,120,.06);padding:16px;color:var(--muted)}.sales-item{padding:20px 0;border-top:1px solid var(--line)}.sales-item h3{font-family:var(--sans);font-size:17px;color:var(--brand);margin-bottom:10px}.sales-item p{margin:0}.sales-dialog .small-note{font-size:12px}.itinerary-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.itinerary-gallery figure{margin:0}.itinerary-gallery .photo{aspect-ratio:3/4}.itinerary-gallery figcaption{font-size:11px;color:var(--muted);line-height:1.7;margin-top:9px}
@media(max-height:660px){.family-photo{height:31%}.family .page-body{height:69%;padding-top:4%}.family h2{font-size:24px;line-height:1.4}.family-tabs{margin-top:2%}.family-text{margin-top:3%;font-size:12px}.family-text h3{font-size:14px;margin-bottom:5px}.detail .detail-photo{height:31%}.detail .detail-body{height:69%;padding-top:4%}.detail h2{font-size:24px}.detail .intro{font-size:12px;line-height:1.85;margin:3% 0}.detail .detail-meta{margin-bottom:6px;font-size:9px}.detail .text-link{font-size:11px}.budget-preview{padding:7px 0 3px}.budget-preview strong{font-size:14px}.budget-preview small,.budget-preview>span{font-size:9px}.wish-photo{height:33%}.wishlist .page-body{height:67%;padding-top:4%}.wishlist h2{font-size:24px}.wish-prose{margin:3% 0;font-size:12px}.wishlist .local-note{font-size:10px;margin:7px 0}.service-row{padding:7px 0}.service-row p{font-size:11px}.service-row h3{font-size:13px}.process-step{padding:9px 0}.process-step p{font-size:11px}.process-page .early-note{font-size:11px;margin-top:3%}}
/* Layout proof uses the same fixed page dimensions without animated hiding. */
body.layout-proof .reader-header,body.layout-proof .reader-controls,body.layout-proof .reading-progress,body.layout-proof .gesture-hint{display:none}body.layout-proof .stage{height:auto;max-height:none;min-height:0;margin:0;padding:12px;display:block}body.layout-proof .book{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--proof-width,360px),1fr));gap:20px;width:100%!important;height:auto!important;max-width:none!important;max-height:none!important;transform:none!important}body.layout-proof .book .leaf{display:block!important;position:relative!important;inset:auto!important;width:var(--proof-width,360px)!important;height:var(--proof-height,540px)!important;transform:none!important}
.festival .page-inner{background:#191c1c;color:var(--paper)}.festival-main{height:62%;position:relative}.festival-main>.photo{height:100%}.festival-main>.photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.75))}.festival-main .photo img{object-position:50% 45%}.festival-heading{position:absolute;left:7%;right:7%;bottom:7%;z-index:6;pointer-events:none}.festival-heading h2{font-family:BookDisplay,var(--serif);font-size:clamp(26px,7.2cqw,38px);line-height:1.55;margin-top:10px}.festival-heading .eyebrow{font-size:9px}.festival-pair{display:grid;grid-template-columns:1fr 1fr;gap:5px;height:29%;padding:5px 5px 0}.festival-pair .photo img{object-fit:cover;object-position:50% 45%}.festival .photo-watermark{font-size:11px}.festival .zoom-photo{width:36px;height:36px;right:9px;top:9px}.festival-gallery-link{position:absolute;left:7%;right:7%;bottom:30px;color:var(--paper);display:flex;justify-content:space-between;align-items:center;font-size:11px;min-height:30px}.festival .folio{font-size:8px;bottom:10px;color:rgba(247,243,234,.6)}.festival-dialog h2{font-size:28px;line-height:1.6}.festival-dialog figure{margin:28px 0}.festival-dialog .photo img{height:auto;object-fit:contain}.festival-dialog figcaption{font-size:12px;color:var(--muted);line-height:1.8;margin-top:8px}.festival-dialog .small-note{margin:12px 0 20px}
/* Reserve the same footer clearance even on compact screens. */
.selector .page-body{padding-bottom:48px}.destination-link{padding:10px 0;min-height:57px}.destination-link b{font-size:22px}.selector h2{font-size:clamp(25px,7.4cqw,36px);margin-top:10px}
.wishlist .wish-summary{margin-top:5%;padding-top:10px}.wishlist .primary-action{margin-top:auto}.wishlist .local-note{margin:8px 0 12px}.wishlist .page-body{padding-bottom:48px}.wishlist h2{margin-bottom:5%}
.contact-page .page-body{padding:6% 7% 48px;gap:0}.contact-page .eyebrow{font-size:9px}.contact-page h2{font-size:clamp(25px,7.5cqw,36px);line-height:1.45;margin:5% 0}.contact-page .qr-frame{width:46%;max-width:180px;margin:3% 0;padding:7px}.contact-page .qr-caption{font-size:13px;margin:8px 0}.contact-page p{font-size:12px;line-height:1.85;margin-bottom:8px}.contact-page .text-link{min-height:44px}.contact-page .consult-note{font-size:11px;line-height:1.8;margin:auto 0 0;max-width:100%}
.service-page .page-body{padding-top:6%;padding-bottom:48px}.service-page h2{font-size:clamp(27px,7.5cqw,37px);line-height:1.5;margin:4% 0 6%}.service-row{padding:10px 0}.service-row h3{font-size:14px}.service-row p{font-size:12px}.service-footnote{font-size:11px!important}
.process-page .page-body{padding-top:6%;padding-bottom:48px}.process-page h2{font-size:clamp(27px,7.5cqw,37px);line-height:1.5;margin:4% 0 5%}.process-step{padding:11px 0}.process-step h3{font-size:14px}.process-step p{font-size:12px}.process-page .early-note{font-size:12px;margin:3% 0 0}.process-page>.page-inner>.page-body>.text-link{margin-top:6px}
@media(max-height:660px){.destination-link{padding:7px 0;min-height:47px}.selector .page-body{padding-bottom:45px}.service-page h2,.process-page h2{font-size:25px;margin:3% 0 4%}.service-row{padding:7px 0}.service-row h3{font-size:13px}.service-row p{font-size:11px}.service-footnote{font-size:10px!important}.process-step{padding:8px 0}.process-step h3{font-size:13px;margin-bottom:5px}.process-step p,.process-page .early-note{font-size:11px}.contact-page .qr-frame{width:40%;margin:2% 0}.contact-page h2{font-size:25px;margin:4% 0}.contact-page .consult-note{font-size:10px}.wishlist h2{font-size:24px}}
.selector .destination-link b{line-height:1.3}.selector .destination-link small{line-height:1.4;font-size:10px}.selector .destination-link{padding:8px 0;min-height:50px}.letter .signature{margin-bottom:16px}
.back-cover h2{font-size:clamp(22px,6.7cqw,32px);line-height:1.65;margin:7% 0}.back-cover .logo{width:100px}.back-cover .closing-brand{margin-top:5%}
@media(max-height:660px){.selector h2{font-size:24px;line-height:1.4}.selector .destination-link{padding:5px 0;min-height:44px}.selector .destination-link small{font-size:9px;margin-top:2px}.selector .destination-link b{font-size:20px}.letter h2{font-size:24px;line-height:1.5}.letter .letter-copy{font-size:12px;line-height:1.8}.letter .signature{font-size:17px;margin-bottom:12px}.back-cover h2{font-size:22px;margin:4% 0}.back-cover p{font-size:11px;line-height:1.8}.back-cover .closing-brand{margin-top:3%}.back-cover .page-body{padding-bottom:62px}.service-page .service-footnote{margin-top:7px!important}.detail .detail-photo{height:28%}.detail .detail-body{height:72%}}
@container(max-width:310px){.detail .intro{display:none}.detail h2{margin-bottom:6%}.detail .budget-preview{margin-top:auto}.wish-summary p{font-size:12px}.wishlist .local-note{margin:6px 0}.wishlist .page-body{padding-top:4%}.wishlist h2{font-size:23px;margin-bottom:3%}}
.hero-fujian .hero-image img{object-position:50% 40%}.hero-fujian .hero-image::after{background:linear-gradient(180deg,rgba(20,18,16,.12),transparent 30%,rgba(20,18,16,.25) 55%,rgba(20,18,16,.82))}.detail-fujian .detail-photo img{object-position:50% 28%}.heritage{top:12%;z-index:5}.festival-fujian .festival-main .photo img{object-position:50% 44%}
/* Yunnan: a quiet portrait beside a vertical contact strip, then a luminous night page. */
.festival-yunnan .page-inner{background:#e8e3d5}.festival-yunnan .festival-gallery-link,.festival-yunnan .folio{color:var(--brand)}.festival-yunnan.story-life .festival-main{height:91%;width:66%}.festival-yunnan.story-life .festival-main>.photo img{object-position:59% 45%}.festival-yunnan.story-life .festival-pair{position:absolute;top:0;right:0;width:34%;height:91%;display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;padding:0 0 0 5px;gap:5px}.festival-yunnan.story-life .festival-heading{left:10%;right:8%;bottom:7%;color:var(--paper)}.festival-yunnan.story-life .festival-heading h2{font-size:clamp(24px,6.8cqw,34px)}.festival-yunnan.story-life .eyebrow{font-size:7px;letter-spacing:.1em}.festival-yunnan.story-life .festival-pair>.photo:first-child img{object-position:50% 10%}.festival-yunnan.story-life .festival-pair>.photo:last-child img{object-position:45% 35%}
.festival-yunnan.story-night .page-inner{background:#171e21}.festival-yunnan.story-night .festival-main{height:91%}.festival-yunnan.story-night .festival-main>.photo img{object-position:50% 50%}.festival-yunnan.story-night .festival-main>.photo::after{background:linear-gradient(180deg,rgba(0,0,0,.07),transparent 35%,rgba(0,0,0,.8))}.festival-yunnan.story-night .festival-pair{position:absolute;top:5%;right:6%;width:27%;height:34%;display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;gap:7px;padding:0;box-shadow:0 4px 18px rgba(0,0,0,.18)}.festival-yunnan.story-night .festival-pair>.photo{border:2px solid rgba(247,243,234,.7)}.festival-yunnan.story-night .festival-pair .zoom-photo{width:28px;height:28px;right:5px;top:5px;font-size:16px}.festival-yunnan.story-night .festival-pair .photo-watermark{font-size:8px}.festival-yunnan.story-night .festival-gallery-link,.festival-yunnan.story-night .folio{color:var(--paper)}.itinerary-gallery-label{font-family:var(--sans);font-size:16px;color:var(--brand);line-height:1.8;margin:28px 0 0}
.festival .zoom-photo,.festival-yunnan.story-night .festival-pair .zoom-photo{width:44px;height:44px;font-size:20px;right:6px;top:6px}

/* The closing section changes pace: family photography, editorial service grid,
   seasonal invitation, then a quiet colophon. */
@font-face{font-family:BookHand;src:url('assets/book-hand.woff2?v=1.5-datong1') format('woff2');font-display:swap;font-weight:400}
:root{--hand:BookHand,BookSerif,'Kaiti SC',serif}
.letter h2,.letter .signature,.value-page h2,.offer-page h2,.contact-invitation h2,.back-cover h2{font-family:var(--hand);font-weight:400;letter-spacing:.015em}
.letter h2{font-size:clamp(30px,9cqw,46px);line-height:1.45}
.family-photo img{object-position:50% 38%}.detail-yunnan .detail-photo img{object-position:50% 52%}
.festival-yunnan.story-life .festival-main>.photo img{object-position:60% 45%}
.value-page .page-inner{background:var(--paper);color:var(--ink)}
.value-page .value-photo{height:42%}.value-photo img{object-position:50% 44%}
.value-page .page-body{height:58%;padding:5% 7% 45px;display:block}
.value-page h2{font-size:clamp(24px,6.9cqw,36px);line-height:1.45;margin:4% 0 5%;color:var(--brand)}
.value-page p{font-size:clamp(12px,3.2cqw,15px);line-height:1.85;color:var(--muted);margin:0 0 4%}
.service-page .page-body{padding:7% 7% 48px;display:flex;flex-direction:column}
.service-page h2{font-size:clamp(26px,7.3cqw,38px);line-height:1.45;margin:4% 0 7%}
.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:7% 9%;flex:1}
.care-item{border-top:1px solid var(--line);padding-top:10px;position:relative}
.care-character{font-family:var(--hand);color:var(--gold);font-size:clamp(34px,9cqw,50px);line-height:1;display:block;margin-bottom:8px}
.care-item small{font-size:7px;letter-spacing:.1em;color:var(--muted);display:block;line-height:1.5}
.care-item h3{font-family:var(--sans);font-size:clamp(13px,3.6cqw,17px);color:var(--brand);margin:6px 0}
.care-item p{font-size:clamp(11px,3cqw,14px);line-height:1.85;color:var(--muted);margin:0}
.service-page .service-footnote{font-size:10px!important;line-height:1.8;margin:6% 0 0!important;padding-top:9px;border-top:1px solid var(--line)}
.offer-page .page-inner{background:var(--brand);color:var(--paper)}
.offer-page .page-body{padding:7% 7% 45px;display:flex;flex-direction:column}
.offer-page .eyebrow{font-size:8px;letter-spacing:.12em;color:rgba(247,243,234,.65)}
.offer-label{font-size:11px;color:#e6c492;letter-spacing:.14em;margin:5% 0 2%}
.offer-page h2{font-size:clamp(29px,8cqw,42px);line-height:1.35;margin-bottom:6%}
.season-gifts{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid rgba(247,243,234,.24);padding:13px 0;gap:9px}
.season-gifts>div+div{border-left:1px solid rgba(247,243,234,.24);padding-left:9px}
.season-gifts span{font-size:10px;color:#e6c492;display:block;margin-bottom:7px}
.season-gifts h3{font-family:var(--sans);font-size:clamp(12px,3.5cqw,17px);line-height:1.7}
.offer-note,.offer-fine{font-size:10px;line-height:1.8;color:rgba(247,243,234,.65);margin:9px 0 0}
.season-capacity{margin-top:auto;padding-top:4%}.capacity-label{font-size:10px;display:block;letter-spacing:.04em}
.season-capacity>div{display:flex;justify-content:space-between;margin:10px 0}
.season-capacity>div>span{font-size:11px;display:flex;align-items:center;gap:9px}
.season-capacity b{font:30px Georgia,serif;color:#e6c492}.season-capacity b small{font:10px var(--sans);margin-left:3px}.season-capacity>small{font-size:9px;color:rgba(247,243,234,.65)}
.reservation-link{border-top:1px solid rgba(247,243,234,.24);text-align:left;margin-top:5%;padding:12px 0 0;min-height:56px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.reservation-link strong{font:clamp(22px,6cqw,31px) Georgia,serif;color:#e6c492}.reservation-link strong small{font:9px var(--sans);color:var(--paper);display:block;margin-top:5px}.reservation-link>span{font-size:10px;line-height:1.9}.reservation-link i{font-style:normal;font-size:19px;margin-left:4px}
.contact-page .page-inner{background:var(--brand);color:var(--paper)}
.contact-invitation{position:absolute;inset:5% 6% 9%;padding:8% 7% 7%;background:var(--paper);color:var(--brand);text-align:center;display:flex;flex-direction:column;align-items:center;box-shadow:0 6px 20px rgba(0,0,0,.12)}
.contact-invitation::before{content:'';width:26px;height:1px;background:var(--gold);margin-bottom:5%}
.contact-invitation .eyebrow{font-size:8px;letter-spacing:.1em;color:var(--muted)}
.contact-invitation h2{font-size:clamp(27px,7.5cqw,39px);line-height:1.4;margin:6% 0}
.contact-invitation .qr-frame{width:53%;max-width:180px;padding:7px;background:white;border:1px solid var(--line);margin:0 0 3%}
.contact-invitation .qr-frame img{display:block;width:100%;height:auto}
.contact-invitation p{font-size:11px;line-height:1.8;margin:4px 0}.contact-invitation .qr-caption{font-size:12px}
.contact-invitation .text-link{font-size:11px;margin:0}.contact-invitation .consult-note{font-size:10px;color:var(--muted);margin:auto 0 0;padding-top:8px}
.back-cover .page-inner{background:var(--paper);color:var(--brand)}
.closing-masthead{height:16%;padding:5% 7%;display:flex;align-items:center;justify-content:space-between;background:var(--brand);color:var(--paper)}
.back-cover .closing-masthead .logo{width:93px;max-height:100%;object-fit:contain;margin:0}.closing-masthead>span{font-size:8px;letter-spacing:.15em;line-height:1.8;text-align:right}
.back-cover .page-body{height:84%;padding:8% 7% 50px;display:flex;flex-direction:column;align-items:flex-start;text-align:left}
.back-cover .page-body>.eyebrow{font-size:8px;letter-spacing:.1em;color:var(--muted)}
.back-cover h2{font-size:clamp(26px,7.5cqw,40px);line-height:1.55;margin:9% 0 5%}
.closing-rule{height:1px;width:32px;background:var(--gold);margin:3% 0 7%}
.back-cover p{font-size:clamp(11px,3cqw,14px);color:var(--muted);line-height:1.95;margin:0}
.back-cover .closing-brand{font-family:var(--sans);color:var(--brand);font-size:9px;letter-spacing:.16em;margin-top:auto;padding-top:10px}
.closing-year{font:clamp(62px,20cqw,108px) Georgia,serif;letter-spacing:.03em;color:var(--gold);opacity:.2;line-height:1;position:absolute;right:7%;bottom:7%;pointer-events:none}
.back-cover .credits-button{font-size:9px;min-height:32px;padding:0;position:relative;z-index:2;margin-top:5px;color:var(--muted)}
.festival-changbai .page-inner{background:#e9eff0}.festival-changbai .festival-gallery-link,.festival-changbai .folio{color:var(--brand)}
.festival-changbai.story-snow .festival-main{height:67%}.festival-changbai.story-snow .festival-main>.photo img{object-position:50% 54%}.festival-changbai.story-snow .festival-heading{color:#fff}
.festival-changbai.story-snow .festival-pair{height:24%;padding:5px 5px 0;gap:5px}
.festival-changbai.story-play .festival-main{height:91%}.festival-changbai.story-play .festival-main>.photo img{object-position:50% 45%}.festival-changbai.story-play .festival-main>.photo::after{background:linear-gradient(180deg,transparent 35%,rgba(15,42,54,.65))}
.festival-changbai.story-play .festival-pair{position:absolute;right:6%;top:5%;width:28%;height:33%;display:grid;grid-template-columns:1fr;grid-template-rows:1fr 1fr;gap:6px;padding:0}.festival-changbai.story-play .festival-pair>.photo{border:2px solid rgba(247,243,234,.75)}
@container(max-width:310px){.letter h2{font-size:28px}.value-page .value-photo{height:38%}.value-page .page-body{height:62%;padding-top:4%}.value-page h2{font-size:23px;margin:3% 0 4%}.value-page p{font-size:11px;line-height:1.8;margin-bottom:3%}.service-grid{gap:10px 17px}.service-page h2{font-size:25px;margin:3% 0 5%}.care-character{font-size:30px;margin-bottom:5px}.care-item{padding-top:7px}.care-item h3{font-size:12px;margin:4px 0}.care-item p{font-size:10px;line-height:1.75}.service-page .service-footnote{font-size:9px!important;margin-top:4%!important;padding-top:7px}.offer-page .page-body{padding-top:6%}.offer-page h2{font-size:27px;margin-bottom:4%}.offer-label{margin-top:3%;font-size:10px}.season-gifts{padding:9px 0}.season-gifts h3{font-size:11px}.season-gifts span{margin-bottom:4px;font-size:9px}.offer-note,.offer-fine{font-size:9px;margin-top:6px}.season-capacity>div{margin:6px 0}.season-capacity b{font-size:24px}.reservation-link{margin-top:3%;min-height:48px;padding-top:9px}.reservation-link strong{font-size:21px}.reservation-link>span{font-size:9px}.contact-invitation{padding-top:6%}.contact-invitation h2{font-size:26px;margin:4% 0}.contact-invitation p{font-size:10px}.contact-invitation .qr-frame{width:45%}.contact-invitation .consult-note{font-size:9px}.back-cover h2{font-size:24px;margin:6% 0 4%}.back-cover p{font-size:10px}.closing-rule{margin:3% 0 5%}}
/* V1.4: letter handwriting, theme hierarchy and flexible journeys. */
.letter .letter-copy{font-family:var(--hand);font-size:clamp(14px,3.9cqw,19px);line-height:1.95;letter-spacing:.01em;margin-top:7%}
.letter .letter-copy p{line-height:inherit;margin-bottom:1.3em}
.letter .letter-emphasis{color:var(--brand)}.letter .signature{font-family:var(--hand);font-size:clamp(22px,6cqw,30px);margin-bottom:10px}
.closing-emphasis{color:#976e33}.hero-datong .collection{font-size:clamp(38px,13.7cqw,74px);letter-spacing:.07em}
.selector .destination-list{margin-top:auto}.selector .destination-link{min-height:51px;padding:8px 0;gap:5px}.selector .destination-link b{font-size:clamp(18px,5.5cqw,27px);letter-spacing:0;display:block;line-height:1.5}.selector .destination-link b em{font-family:var(--sans);font-size:clamp(11px,3.1cqw,15px);color:var(--brand);letter-spacing:0;margin:0;white-space:normal}.selector .coming-soon{color:#976e33}
.flexible-choice{font-size:clamp(10px,2.65cqw,13px);line-height:1.7;margin:10px 0 0;padding:9px 0 0;border-top:1px solid var(--gold);color:var(--muted)}.flexible-choice strong{display:block;font-weight:400;color:var(--brand);margin-bottom:3px}
.itinerary-theme{display:block;color:#976e33;font-size:15px;letter-spacing:.1em;margin:12px 0}.itinerary-dialog h2{font-size:clamp(23px,4.8vw,32px);line-height:1.6;margin:0 0 22px}.itinerary-intro p{line-height:1.95}.design-intent{padding:20px 0;border-block:1px solid var(--line);margin:20px 0}.design-intent h3,.itinerary-fees h3,.related-itineraries h3{font-family:var(--sans);color:var(--brand);font-size:17px;margin-bottom:12px}.design-intent p{margin:0;line-height:1.95}.flexible-itinerary{font-size:13px;color:var(--brand);line-height:1.9;padding-left:14px;border-left:2px solid var(--gold);margin:24px 0}.itinerary-day p{line-height:1.95;margin:0 0 .8em}.itinerary-day p:last-child{margin-bottom:0}.itinerary-day h3{margin-bottom:14px}.itinerary-fees{border-block:1px solid var(--line);padding:22px 0;margin:20px 0}.itinerary-fees p{margin:0}.related-itineraries{margin:30px 0}.related-itineraries>button{width:100%;border-top:1px solid var(--line);padding:18px 0;text-align:left;display:flex;justify-content:space-between;gap:15px;font-size:17px;color:var(--brand)}.related-itineraries small{display:block;font-size:12px;line-height:1.8;color:var(--muted);margin-top:5px}.related-itineraries>button>span:last-child{color:var(--gold)}
@container(max-width:310px){.letter .letter-copy{font-size:13px;line-height:1.85;margin-top:6%}.letter .letter-copy p{margin-bottom:1em}.letter .signature{font-size:22px}.selector h2{font-size:24px;margin-top:6px;line-height:1.4}.selector .eyebrow{font-size:8px}.selector .destination-link{min-height:43px;padding:5px 0}.selector .destination-link b{font-size:18px}.selector .destination-link b em{font-size:11px}.selector .destination-link small{font-size:9px;letter-spacing:0}.flexible-choice{font-size:9px;margin-top:7px;padding-top:6px}.selector .page-body{padding-top:6%;padding-bottom:42px}}
/* Compact pages retain the same protected folio area. */
@container(max-width:310px){.selector .destination-link{min-height:44px;padding:2px 0}.selector .destination-link b{line-height:1.35}.service-page .page-body{padding-top:5%}.service-page h2{font-size:24px;line-height:1.35;margin:3% 0 4%}.service-page .service-footnote{line-height:1.6;margin-top:6px!important}.contact-invitation{top:4%}.contact-page .contact-invitation .qr-caption{font-size:10px;line-height:1.8;margin:4px 0}}
@container(max-width:310px){.service-page h2{margin-bottom:2%}}
/* Editorial typography follows the subject rather than a single book-wide face. */
@font-face{font-family:BookTitle;src:url('assets/book-title.woff2?v=1.5-datong1') format('woff2');font-display:swap;font-weight:500}
:root{--title:BookTitle,BookSerif,'Songti SC',serif}
.cover h1{font-family:var(--title);font-weight:500;font-synthesis:none;letter-spacing:0;font-size:clamp(35px,10.6cqw,58px);line-height:1.4}
.cover-copy .eyebrow,.cover .cover-sub{letter-spacing:0}
/* Keep the reservation note clear of the folio on short, narrow pages. */
@container(max-width:310px){.offer-page .offer-label{margin:2% 0 1%}.offer-page h2{font-size:26px;line-height:1.3;margin-bottom:3%}.offer-page .season-capacity{padding-top:2%}.offer-page .offer-fine{line-height:1.55;margin-top:5px}}
.hero-datong .collection,.hero-fujian .collection{font-family:var(--title);font-weight:400;letter-spacing:.08em;font-size:clamp(65px,22cqw,112px)}
.hero-yunnan .collection{font-family:var(--hand);font-weight:400;letter-spacing:.1em;font-size:clamp(68px,23cqw,118px)}
.hero-changbai .collection{font-family:var(--sans);font-weight:400;letter-spacing:.16em;font-size:clamp(62px,21cqw,108px)}
.hero .hero-subtitle{letter-spacing:.14em;font-size:clamp(11px,3cqw,15px);font-family:var(--sans);margin-top:17px}
.selector .destination-link b{font-family:var(--title)}
.service-page h2,.offer-page h2{font-family:var(--title);font-weight:400;letter-spacing:.015em}
.value-page h2{font-family:var(--serif);font-weight:500}
.contact-invitation h2,.back-cover h2{font-family:var(--hand);letter-spacing:.02em}
.design-intent h3,.itinerary-fees h3{font-family:var(--title);font-size:21px;font-weight:400}
.itinerary-dialog h2{font-family:var(--serif);font-weight:500}.itinerary-day h3{font-family:var(--sans);font-weight:400;line-height:1.7}
@font-face{font-family:BookDatong;src:url('assets/book-datong.woff2') format('woff2');font-display:swap;font-weight:400}
@font-face{font-family:BookEnglishDisplay;src:url('assets/book-english-display.woff2') format('woff2');font-display:swap;font-weight:400}
@font-face{font-family:BookEnglishSans;src:url('assets/book-english-sans.woff2') format('woff2');font-display:swap;font-weight:300 800;font-stretch:75% 100%}
:root{--sans:BookEnglishSans,BookSans,'PingFang SC','Microsoft Yahei',sans-serif}
.hero-datong .collection{font-family:BookDatong,var(--title);font-size:clamp(70px,25cqw,128px);letter-spacing:.06em}
.cover-bottom .year,.closing-year,.season-capacity b,.reservation-link strong{font-family:BookEnglishDisplay,Georgia,serif;font-weight:400}
.brand-home small{font-family:BookEnglishDisplay,Georgia,serif;font-weight:400}

/* Reading titles stay distinct from the expressive destination names. */
.photo-dialog:has(#large-photo[src$="wechat-contact-v1.5.png"]) .photo-view{background:#fff}
.photo-dialog:has(#large-photo[src$="wechat-contact-v1.5.png"]) #large-photo{height:65svh;padding:24px}
.photo-dialog:has(#large-photo[src$="wechat-contact-v1.5.png"]) .photo-watermark{display:none}
.contact-invitation h2{margin:3% 0}
.contact-invitation .consult-note{line-height:1.65;flex-shrink:0}
.hero h2,.festival-heading h2{font-family:var(--serif);font-weight:400;letter-spacing:0}
.reader-controls,.day-number,.season-capacity b,.reservation-link strong{font-variant-numeric:tabular-nums}
@font-face{font-family:BookSans;src:url('assets/book-sans-medium.woff2?v=1.5-datong1') format('woff2');font-display:swap;font-weight:500}
body{font-weight:500}

/* Fit the mobile stage to the page, not the spare height of a tall screen. */
@media(max-width:600px){
  body:not(.layout-proof) .stage{
    height:calc((100vw - 16px) * 1.5);
    height:min(calc((100vw - 16px) * 1.5),calc(100svh - 144px));
    min-height:0;
    max-height:none;
    margin:6px 8px 0;
  }
}

/* Keep photo zoom, but avoid backdrop sampling during paper turns by default. */
html:not([data-photo-controls="original"]) .zoom-photo{
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  background:rgba(0,0,0,.28);
}
/* Datong detail images extend the itinerary without changing the 28-page reader. */
.itinerary-duration{display:block;font-family:var(--sans);font-size:14px;line-height:1.8;color:var(--muted);letter-spacing:0;margin-top:7px}
.itinerary-media{margin:32px 0 40px}
.itinerary-media h4{font-family:var(--title);font-size:21px;font-weight:500;line-height:1.7;letter-spacing:0;color:var(--brand);margin:0 0 15px}
.itinerary-scene{position:relative}
.itinerary-main{aspect-ratio:3/4}
.itinerary-inset{position:relative;width:62%;margin:-18% 4% 0 auto;padding:5px;background:var(--paper)}
.itinerary-inset .photo{aspect-ratio:3/2}
.itinerary-inset figcaption,.itinerary-dishes figcaption{font-size:11px;line-height:1.7;color:var(--muted);margin:7px 0 0}
.itinerary-media .photo-watermark{font-size:clamp(10px,2vw,17px);letter-spacing:0}
.itinerary-dishes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
.itinerary-dishes figure{margin:0;min-width:0}
.itinerary-dishes .photo{aspect-ratio:4/3}
.itinerary-media .itinerary-media-note{font-size:12px;line-height:1.85;color:var(--muted);margin:16px 0 0}
@media(max-width:600px){.itinerary-media h4{font-size:19px}.itinerary-dishes{gap:7px}.itinerary-inset{width:66%}.itinerary-media .itinerary-media-note{font-size:11px}}
