@font-face{font-family:Bodoni;src:url('assets/bodoni.woff2') format('woff2');font-weight:400 900;font-display:swap}@font-face{font-family:Bodoni;src:url('assets/bodoni-italic.woff2') format('woff2');font-style:italic;font-weight:400 900;font-display:swap}@font-face{font-family:SourceSerif;src:url('assets/serif.woff2') format('woff2');font-weight:400 700;font-display:swap}@font-face{font-family:SourceSans;src:url('assets/sans.woff2') format('woff2');font-weight:400 700;font-display:swap}
@property --fold-shadow{syntax:'<number>';inherits:true;initial-value:0}
:root{--paper:#f7f6f2;--ink:#22251f;--red:#a7372c;--line:#c8cbc2;--serif:Bodoni,'Bodoni MT',Georgia,serif;--body:SourceSerif,Georgia,serif;--sans:SourceSans,'Segoe UI',sans-serif;--header:68px;--controls:64px;--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header)}body{margin:0;background:var(--paper);color:var(--ink);font:1.0625rem/1.6 var(--body)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(3.5rem,7.5vw,8rem);line-height:1.02;letter-spacing:-.045em}h3{font-size:1.9rem;line-height:1.16;letter-spacing:-.02em}p{max-width:44ch}em{font-weight:400}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:5px}button{font-family:var(--sans);font-size:1rem;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.25}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:5px}button{border:0;background:none}img{width:100%;display:block;object-fit:cover}.eyebrow,.fine,.edition,.cover-top{font:600 .75rem/1.5 var(--sans);letter-spacing:.09em}.eyebrow{margin-bottom:20px}.red{color:var(--red)}.fine{font-weight:400;letter-spacing:0;color:#62665d;margin-top:20px;max-width:52ch}.masthead{height:var(--header);padding:0 4vw;position:sticky;top:0;background:var(--paper);display:flex;align-items:center;justify-content:space-between;z-index:50;border-bottom:1px solid #d9dbd3}.wordmark{font-family:var(--serif);font-size:2rem;letter-spacing:-.05em;text-decoration:none;line-height:1}.wordmark span{font-size:1.5rem;font-style:italic}.edition{font-weight:400}.contents-button{font-size:.875rem;display:flex;gap:18px;align-items:center;min-height:44px;padding:0 4px}.contents-button span{font-size:1.2rem}.page{position:relative;min-height:760px;height:calc(100svh - var(--header));max-height:1300px;background:var(--paper);overflow:hidden;isolation:isolate}.photograph{color:white}.photograph>img{position:absolute;inset:0;height:100%;object-position:var(--position,center);z-index:-2}.photograph::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#091e2005 25%,#091e201a 48%,#091e20b0);z-index:-1}.photo-copy{position:absolute;left:7%;right:7%;bottom:8%}.photo-copy h2{font-size:clamp(4rem,8.5vw,9rem)}.photo-copy>p:not(.eyebrow){font-size:1.125rem;margin-top:22px;max-width:38ch}.photo-link,.text-link{font:600 .875rem/1.5 var(--sans);text-decoration:none;border-bottom:1px solid currentColor;display:inline-block;padding:8px 0;margin-top:24px;min-height:38px}.photo-link:hover{opacity:.75}.text-link:hover{color:var(--red)}.cover-top{position:absolute;top:28px;left:4%;right:4%;display:flex;justify-content:space-between}.cover h1{font-size:26vw;line-height:1;letter-spacing:-.04em;text-align:center;margin-top:46px;font-weight:500}.cover .photo-copy{left:5%;bottom:7%}.cover .photo-copy h2{font-size:clamp(3.5rem,5.5vw,6rem)}.cover .swipe-hint{font:400 .875rem var(--sans);display:none}.cover::before{background:linear-gradient(#09232844,#09232800 35%,#092328b0)}.route-page{display:grid;grid-template-columns:1.1fr 1fr}.paper-copy{padding:7% 10%;align-self:center}.paper-copy>p:not(.eyebrow):not(.fine){margin-top:24px}.route-photo{height:100%;min-height:0}.route{list-style:none;padding:0;margin:35px 0 0}.route li{border-top:1px solid var(--line);padding:20px 0}.route span,.route small{font:400 .875rem/1.5 var(--sans);display:block}.route span{color:var(--red);font-size:.75rem;letter-spacing:.05em}.route strong{font:400 2.5rem/1.2 var(--serif);display:block;margin:7px 0}.route strong em{font-size:.7em}.route small{color:#5d6458}.picture-story{display:grid;grid-template-columns:1.15fr 1fr}.picture-story>img{height:100%;min-height:0}.picture-story .paper-copy{padding:12%}.picture-story h2{font-size:clamp(4rem,6vw,7rem)}.picture-story p{max-width:28ch}.food-page{background:#28201c;color:#f7f6f2}.food-page .red{color:#f0b299}.food-page h2{color:#f7f6f2}.food-page .paper-copy{color:#f7f6f2}.food-page .diptych-gallery{background:#1c1613;border:1px solid rgba(255,255,255,0.08)}.food-page .option-item{border-left-color:#f0b299}.food-page .option-badge{color:#f0b299}.food-page .option-item strong{color:#ffffff}.food-page .option-item p{color:#d8d5cd}.food-page .photo-link,.food-page .text-link{color:#f7f6f2}.food-page .photo-link:hover,.food-page .text-link:hover{color:#f0b299}.stays-page,.itinerary-page,.flight-page{display:flex;justify-content:center}#home.picture-story{display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch}#home.picture-story>img{height:100%;min-height:0;object-fit:cover}#home.picture-story .paper-copy{padding:6% 8%;max-width:none}#home .flight-route{margin-top:22px;padding-top:16px}#home .flight-route strong{font-size:3.2rem}.paper-copy .photo-link,.paper-copy .text-link{color:var(--ink)}.paper-copy .photo-link:hover,.paper-copy .text-link:hover{color:var(--red)}.stays-page .paper-copy,.itinerary-page .paper-copy,.flight-page .paper-copy{width:100%;max-width:1000px;padding:35px 7%;align-self:center}.stays-page h2,.itinerary-page h2,.flight-page h2{font-size:clamp(3rem,5vw,5.8rem)}.budget{font:400 1rem/1.5 var(--sans)}.budget strong{font-weight:600;color:var(--red)}.hotel-list{margin-top:30px}.hotel-list>a{display:block;text-decoration:none;border-top:1px solid var(--line);padding:17px 0}.hotel-list span{font:600 .75rem/1.5 var(--sans);letter-spacing:.07em;color:var(--red)}.hotel-list h3{font-size:1.8rem;margin-top:6px}.hotel-list p{font:400 .875rem/1.5 var(--sans);margin-top:6px}.hotel-list>a:hover h3{color:var(--red)}.stays-page .text-link{margin-top:10px}.stays-page .fine{margin-top:10px}.itinerary-page{background:#e9ede6}.day-list{list-style:none;margin:30px 0 0;padding:0}.day-list li{border-top:1px solid #bec8b9;padding:16px 0;display:grid;grid-template-columns:90px 1fr;gap:20px;align-items:center}.day-list time{font:600 .875rem var(--sans);color:#55634e}.day-list strong{font:400 1.7rem/1.2 var(--serif);display:block}.day-list small{font:400 .875rem/1.5 var(--sans);display:block;margin-top:6px;color:#5d6658}.flight-route{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:25px;margin-top:40px}.flight-route>div{display:flex;flex-direction:column}.flight-route>div:last-child{text-align:right}.flight-route strong{font:400 clamp(3.8rem,6vw,6rem)/1.1 var(--serif)}.flight-route span{font:400 1.25rem var(--sans);margin-top:12px}.flight-route b{font:400 2.5rem var(--sans);color:var(--red)}.airport-names{display:flex;justify-content:space-between;gap:20px;margin-top:24px;font:400 .875rem/1.6 var(--sans)}.airport-names>p:last-child{text-align:right}.paper-copy .flight-note{border-top:1px solid var(--line);padding-top:25px;margin-top:30px!important;font-size:1.0625rem}.closing .photo-copy{text-align:center;bottom:25%}.closing .eyebrow{max-width:none}.page-controls{display:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.photo-copy>p.image-note{font:400 .75rem/1.5 var(--sans);margin-top:16px;max-width:44ch}dialog{border:0;padding:28px 35px 40px;background:var(--paper);color:var(--ink);width:min(600px,calc(100vw - 32px));max-height:85dvh;overflow:auto;overscroll-behavior:contain;box-shadow:0 25px 100px #0006}dialog::backdrop{background:#14201bdd;backdrop-filter:blur(6px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;position:sticky;top:-28px;background:var(--paper);z-index:2;padding-top:5px}.dialog-top .eyebrow{margin:0}.dialog-top button{font-size:2rem;min-width:44px;min-height:44px}dialog h2{font-size:3.5rem;margin-bottom:26px}dialog>p{font-size:1rem;margin-top:20px}dialog>.text-link{display:table;margin-top:16px}.contents-list{display:flex;flex-direction:column}.contents-list a{text-decoration:none;border-top:1px solid var(--line);padding:14px 0;font:400 1.25rem var(--body);display:flex;justify-content:space-between;gap:20px}.contents-list span{font:400 .875rem var(--sans);color:var(--red)}#photo-credits p{border-top:1px solid var(--line);padding:15px 0;font:400 .875rem/1.6 var(--sans);overflow-wrap:anywhere}#photo-credits strong{display:block;font-weight:600}.noscript-note{padding:25px}
/* Full-Bleed Photo Collage Layouts (Edge-to-Edge Imagery) */
.photo-collage{position:relative;overflow:hidden;color:white}
.photo-collage::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#091e2005 15%,#091e2040 50%,#091e20db 100%);z-index:-1;pointer-events:none}
.collage-grid-2{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:4px;z-index:-2;background:#14201b}
.collage-grid-2>figure{position:relative;margin:0;overflow:hidden;height:100%;width:100%}
.collage-grid-2>figure>img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.collage-grid-3{position:absolute;inset:0;display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:1fr 1fr;gap:4px;z-index:-2;background:#14201b}
.collage-grid-3>figure{position:relative;margin:0;overflow:hidden;height:100%;width:100%}
.collage-grid-3>figure:first-child{grid-row:span 2}
.collage-grid-3>figure>img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.collage-tag{position:absolute;top:28px;left:7%;display:inline-flex;align-items:center;font:600 .75rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#f0b299;background:#091e2099;padding:6px 14px;border-radius:2px;backdrop-filter:blur(6px);border:1px solid #ffffff22;z-index:2}
.cover-edition-tag{display:inline-block;border:1px solid #ffffffaa;padding:4px 12px;font:600 .75rem var(--sans);letter-spacing:.12em;margin-bottom:12px;backdrop-filter:blur(6px);text-transform:uppercase;background:#ffffff15}
/* Phones become a book: one deliberately composed spread at a time. */
@media(max-width:900px){:root{--header:56px;--controls:58px}.masthead{padding:0 20px}.wordmark{font-size:1.6rem}.wordmark span{font-size:1.25rem}.edition{display:none}.contents-button{font-size:.875rem;gap:10px}.page{height:calc(100svh - var(--header));min-height:600px;max-height:none}.photo-copy{left:25px;right:25px;bottom:35px}.photo-copy h2{font-size:clamp(3.1rem,11.5vw,5.5rem);line-height:1.04}.photo-copy>p:not(.eyebrow){font-size:1rem;margin-top:18px}.eyebrow{font-size:.75rem;letter-spacing:.07em;margin-bottom:15px}.cover-top{font-size:.75rem;left:22px;right:22px;top:23px;gap:16px;letter-spacing:.02em}.cover h1{font-size:27vw;margin-top:67px}.cover .photo-copy{left:25px;bottom:36px}.cover .photo-copy h2{font-size:clamp(2.8rem,10.5vw,4.5rem)}.cover .swipe-hint{display:block;margin-top:24px}.swipe-hint span{margin-left:12px}.photo-link,.text-link{margin-top:18px}.route-page{display:block}.route-page .paper-copy{padding:35px 26px}.route-page h2{font-size:3.8rem}.route-photo{display:none}.route{margin-top:26px}.route li{padding:17px 0}.route strong{font-size:2.2rem}.picture-story{display:flex;flex-direction:column}.picture-story>img{height:52%;flex:none}.picture-story .paper-copy{padding:25px 26px;align-self:stretch;flex:1}.picture-story h2{font-size:2.9rem}.picture-story .eyebrow{margin-bottom:12px}.picture-story .paper-copy>p:not(.eyebrow):not(.fine){font-size:1rem;margin-top:14px}.picture-story .text-link{margin-top:12px}.food-page>img{height:66%}.food-page h2{font-size:3rem}.food-page .paper-copy{padding:24px 26px}.stays-page .paper-copy,.itinerary-page .paper-copy,.flight-page .paper-copy{padding:30px 25px;max-width:600px}.stays-page h2,.itinerary-page h2,.flight-page h2{font-size:3.2rem}.stays-page .eyebrow,.itinerary-page .eyebrow{margin-bottom:15px}.paper-copy>p:not(.eyebrow):not(.fine){margin-top:18px}.hotel-list{margin-top:20px}.hotel-list>a{padding:13px 0}.hotel-list h3{font-size:1.45rem;margin-top:5px}.hotel-list span{font-size:.75rem}.hotel-list p{font-size:.875rem;margin-top:4px}.fine{font-size:.75rem;line-height:1.5}.day-list{margin-top:24px}.day-list li{grid-template-columns:62px 1fr;gap:13px;padding:13px 0}.day-list time{font-size:.875rem}.day-list strong{font-size:1.35rem;line-height:1.2}.day-list small{font-size:.8125rem;margin-top:4px}.flight-route{margin-top:32px;padding-top:23px}.flight-route strong{font-size:3.8rem}.airport-names{font-size:.875rem;margin-top:22px}.flight-route span{font-size:1.125rem}.paper-copy .flight-note{font-size:1rem;padding-top:22px;margin-top:25px!important}.closing .photo-copy{bottom:26%}.closing .photo-copy h2{font-size:clamp(3.3rem,13vw,6rem)}#ryokan>img{height:40%}#ryokan h2{font-size:2.9rem}#ryokan .paper-copy{padding:22px 26px}#ryokan .fine{margin-top:10px}.paged{height:100%;overflow:hidden;overscroll-behavior:none}.paged body{height:100%;overflow:hidden}.paged #book{position:fixed;left:0;right:0;top:var(--header);bottom:calc(var(--controls) + var(--safe-bottom));perspective:1800px;perspective-origin:50% 50%;overflow:hidden;background:#d8dcd4;touch-action:pan-y pinch-zoom}.paged .page{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;visibility:hidden;pointer-events:none;transform-origin:left center;backface-visibility:hidden;-webkit-backface-visibility:hidden}.paged .page.is-current,.paged .page.is-under,.paged .page.is-turning{visibility:visible}.paged .page.is-current{z-index:2;pointer-events:auto}.paged .page.is-under{z-index:1}.paged .page.is-turning{z-index:3;will-change:transform;pointer-events:none;box-shadow:16px 0 40px #0005}.paged .page::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0000 20%,#0001 65%,#0007);opacity:var(--fold-shadow,0);z-index:5}.paged .page-controls{position:fixed;bottom:0;left:0;right:0;height:calc(var(--controls) + var(--safe-bottom));padding:0 17px var(--safe-bottom);background:var(--paper);display:flex;justify-content:space-between;align-items:center;z-index:50;border-top:1px solid #d6dbcf}.page-controls>button{font-size:1.5rem;min-height:44px;min-width:48px}.page-status{text-align:center;font-family:var(--sans);line-height:1.3;display:flex;align-items:center;gap:12px}.page-status #page-number{font-size:.75rem;letter-spacing:.07em;color:var(--red)}.page-status #page-title{font-size:.8125rem}.reading-progress{position:absolute;left:0;right:0;top:-1px;height:2px}.reading-progress i{display:block;height:100%;background:var(--red);transition:width .35s ease}.paged .noscript-note{display:none}dialog{padding:22px 25px 30px;max-height:calc(100dvh - 40px)}.dialog-top{top:-22px}dialog h2{font-size:3rem}
.photo-collage .photo-copy{left:25px;right:25px;bottom:35px}
.photo-collage .photo-copy h2{font-size:clamp(3.1rem,11.5vw,5.5rem);line-height:1.04}
.photo-collage .photo-copy>p:not(.eyebrow){font-size:1rem;margin-top:18px}
.collage-grid-2{grid-template-columns:1fr;grid-template-rows:1fr 1fr;gap:3px}
.collage-grid-3{grid-template-columns:1fr 1fr;grid-template-rows:1.2fr 1fr;gap:3px}
.collage-grid-3>figure:first-child{grid-column:span 2;grid-row:span 1}
.collage-tag{top:20px;left:25px;font-size:.7rem;padding:5px 12px}
#home.picture-story{display:flex;flex-direction:column}
#home.picture-story>img{height:42%;flex:none}
#home.picture-story .paper-copy{padding:20px 24px;flex:1;overflow-y:auto}
#home.picture-story h2{font-size:2.8rem}
#home.picture-story .flight-route{margin-top:16px;padding-top:12px}
#home.picture-story .flight-route strong{font-size:2.8rem}
}
/* Compact-height phones get tighter composition, not tiny body copy. */
@media(max-width:900px) and (max-height:760px){.paged .photo-copy{bottom:26px}.paged .photo-copy h2{font-size:clamp(2.8rem,10.5vw,4rem)}.paged .photo-copy .eyebrow{margin-bottom:12px}.paged .photo-copy>p:not(.eyebrow){margin-top:14px}.paged .route-page .paper-copy{padding:22px 25px}.paged .route-page h2{font-size:3.1rem}.paged .route{margin-top:18px}.paged .route li{padding:12px 0}.paged .route strong{font-size:1.9rem;margin:4px 0}.paged .stays-page .paper-copy,.paged .itinerary-page .paper-copy,.paged .flight-page .paper-copy{padding:20px 24px}.paged .stays-page h2,.paged .itinerary-page h2{font-size:2.7rem}.paged .stays-page .eyebrow,.paged .itinerary-page .eyebrow{margin-bottom:10px}.paged .hotel-list{margin-top:13px}.paged .hotel-list>a{padding:9px 0}.paged .hotel-list h3{font-size:1.3rem}.paged .hotel-list p{display:none}.paged .stays-page .budget{margin-top:12px!important}.paged .stays-page .text-link{margin-top:5px}.paged .day-list{margin-top:16px}.paged .day-list li{padding:10px 0}.paged .day-list strong{font-size:1.25rem}.paged .day-list small{margin-top:3px}.paged .picture-story>img{height:46%}.paged .picture-story h2{font-size:2.6rem}.paged .picture-story .paper-copy{padding:20px 25px}.paged .food-page>img{height:58%}.paged #ryokan>img{height:30%}.paged #ryokan h2{font-size:2.5rem}.paged #ryokan .paper-copy>p:not(.eyebrow):not(.fine){margin-top:10px}.paged #ryokan .text-link{margin-top:8px}.paged .flight-page h2{font-size:2.9rem}.paged .flight-route{margin-top:22px;padding-top:18px}.paged .airport-names{margin-top:16px}.paged .flight-page .fine{margin-top:12px}.paged .paper-copy .flight-note{margin-top:18px!important;padding-top:18px}.paged .photo-collage .photo-copy{bottom:26px}.paged .photo-collage .photo-copy h2{font-size:clamp(2.5rem,9.5vw,3.8rem)}}
/* Landscape and enlarged text can scroll inside a page; page controls stay available. */
@media(max-width:900px) and (max-height:550px){.paged .page:not(.photograph):not(.photo-collage){overflow-y:auto;overscroll-behavior:contain}.paged .paper-copy{min-height:fit-content}.paged .picture-story{display:grid;grid-template-columns:1fr 1fr}.paged .picture-story>img,.paged #ryokan>img{height:100%}.paged .cover h1{font-size:18vw;margin-top:35px}.paged .cover-top{top:12px}.paged .cover .photo-copy{bottom:16px}.paged .cover .photo-copy h2{font-size:2.5rem}.paged .cover .eyebrow,.paged .cover .swipe-hint{display:none}.paged .photo-copy h2{font-size:2.8rem}.paged .photo-copy>p:not(.eyebrow){display:none}.paged .photo-link{margin-top:10px}.paged .collage-grid-2{grid-template-columns:1fr 1fr;grid-template-rows:none}}
.page img{user-select:none;-webkit-user-drag:none}
.paged .page.has-overflow{overflow-y:auto;overscroll-behavior:contain}
.paged .page.has-overflow:not(.photograph):not(.photo-collage){align-items:flex-start}
.paged .page.has-overflow>.paper-copy{align-self:flex-start}
.paged .photograph.has-overflow .photo-copy, .paged .photo-collage.has-overflow .photo-copy{position:relative;left:auto;right:auto;bottom:auto;padding:30px 25px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reading-progress i{transition:none}}
@media print{.masthead,.page-controls,dialog{display:none!important}html,body{overflow:visible!important;height:auto!important}#book{position:static!important}.page{position:relative!important;visibility:visible!important;transform:none!important;height:90vh!important;break-after:page;print-color-adjust:exact}.photograph,.photo-collage{color:white}.page::after{display:none}}
