/* Chapter 1: a panorama becomes a travel notebook. */
.opening-chapter{--opening-fold:0;--opening-aperture:0;--opening-lift:0;--opening-route:0;--opening-exit:0;background:#092f3b;color:#fff6df}
.opening-ground{position:absolute;inset:0;background:radial-gradient(ellipse at 14% 85%,#0d817980,transparent 65%),radial-gradient(ellipse at 83% 10%,#f7965960,transparent 50%),#092f3b}
body.continuous-journey .opening-chapter .hero-art{inset:0;transform:none!important;clip-path:circle(var(--aperture-radius,100vmax) at var(--aperture-x,50%) var(--aperture-y,49%));will-change:clip-path}
.opening-chapter .hero-art img,.opening-chapter .hero-art canvas{inset:0;transform:scale(calc(1.025 + var(--opening-aperture)*.04));object-position:60% center}
.opening-chapter .hero-vignette{background:linear-gradient(90deg,#00283c55,transparent 75%),linear-gradient(0deg,#021e3d99,transparent 45%);opacity:calc(1 - var(--opening-aperture))}
.opening-title-block{position:absolute;left:7.5%;top:23%;width:83%;clip-path:inset(0 0 calc(var(--opening-lift)*100%) 0);transform:translateY(calc(var(--opening-lift)*-65px));pointer-events:auto}
.opening-title-block .mini{margin-bottom:23px}.opening-chapter h1{font-family:var(--serif);font-weight:500;font-size:inherit;line-height:1;letter-spacing:0;margin:0;text-shadow:none}
.opening-seo-title{display:block;font-family:'DM Sans',sans-serif;font-size:clamp(12px,1.25vw,18px);letter-spacing:.015em;margin-bottom:23px}
.opening-display{font-family:var(--serif);font-size:clamp(150px,22vw,360px);line-height:.7;letter-spacing:-.065em;display:block}
.opening-period{color:#ffd291}.opening-chapter h1 em{display:block;font-family:var(--serif);font-size:clamp(29px,3.5vw,56px);line-height:1.1;font-weight:500;margin:25px 0 22px;letter-spacing:-.025em}
.opening-intro{font-size:12px;line-height:1.85;max-width:440px;margin:0;text-shadow:0 2px 12px #001c3355}
.opening-bottom{position:absolute;bottom:8%;left:7.5%;right:7.5%;display:flex;justify-content:space-between;align-items:center;gap:30px;transform:translateY(calc(var(--opening-lift)*120px));clip-path:inset(0 0 calc(var(--opening-lift)*100%) 0)}
.opening-bottom button{display:flex;align-items:center;gap:15px;background:none;padding:0;font-size:8px;letter-spacing:.16em;text-align:left}.opening-bottom small{display:block;font-size:10px;letter-spacing:0;margin-top:7px}.opening-bottom>a{font-size:10px;text-decoration:none;border-bottom:1px solid #fff6df77;padding-bottom:9px}.opening-scroll-icon{width:45px;height:60px;display:grid;place-items:center;border:1px solid #fff6df88;border-radius:25px;font-size:25px}
.opening-rings{position:absolute;left:var(--aperture-x,50%);top:var(--aperture-y,49%);width:calc(var(--aperture-radius,40vw)*2 + 28px);height:calc(var(--aperture-radius,40vw)*2 + 28px);transform:translate(-50%,-50%);pointer-events:none;opacity:var(--opening-aperture);color:#fbd59f;z-index:2}
.opening-rings svg{width:100%;height:100%;overflow:visible;fill:currentColor;font-family:'DM Sans',sans-serif;font-size:8px;letter-spacing:2px}.opening-ring{fill:none;stroke:currentColor;stroke-width:.7;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--opening-aperture));transform-origin:center;transform:rotate(-90deg)}.opening-ring.inner{stroke-width:.35;stroke-dashoffset:calc(1 - var(--opening-route))}.opening-meridian{stroke:currentColor;stroke-width:1}
.opening-caption{position:absolute;left:8%;top:83%;z-index:3;opacity:var(--opening-route);transform:translateY(calc((1 - var(--opening-route))*25px));color:#fce6bb}.opening-caption>span{font-size:7px;letter-spacing:.16em}.opening-caption p{font-family:var(--serif);font-size:27px;line-height:1;margin:12px 0}.opening-caption small{font-size:5px;letter-spacing:.12em;opacity:.7}
.opening-guide{position:absolute;right:7%;top:17%;width:43%;max-width:680px;perspective:1400px;z-index:5;transform:translateX(calc((1 - var(--opening-fold))*45px));opacity:1;pointer-events:auto}
.opening-guide-inner{position:relative;background:#e7edbb;color:#173d3a;padding:32px 38px 25px;transform-origin:left center;transform:rotateY(calc((1 - var(--opening-fold))*-90deg));backface-visibility:hidden;box-shadow:calc((1 - var(--opening-fold))*-30px + 15px) 22px 65px #021a3544;border-radius:2px;will-change:transform}
.opening-guide-inner:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#18322d50,transparent 35%);opacity:calc(1 - var(--opening-fold))}
.opening-guide h2{font-family:var(--serif);font-size:clamp(38px,4.1vw,66px);line-height:.9;letter-spacing:-.035em;font-weight:500;margin:18px 0}.opening-guide h2 em{color:#4d7770}.opening-guide-inner>p{font-size:11px;line-height:1.75;max-width:490px}
.opening-picker{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0 20px}.opening-picker label{font-size:8px;letter-spacing:.04em}.opening-picker select{display:block;width:100%;border:0;border-bottom:1px solid #173d3a88;border-radius:0;background:transparent;color:#173d3a;font:inherit;font-size:13px;padding:10px 20px 10px 0;cursor:pointer}.opening-picker select:focus-visible{outline:2px solid #a86043;outline-offset:3px}
.opening-advice{padding:17px 0;border-top:1px solid #173d3a33}.opening-advice .mini{font-size:7px}.opening-advice h3{font-family:var(--display);font-size:17px;letter-spacing:-.025em;margin:10px 0;font-weight:600}.opening-advice p{font-size:11px;line-height:1.75;margin:0;min-height:56px}.opening-guide-link{display:flex;align-items:center;justify-content:space-between;font-size:11px;text-decoration:none;border-bottom:1px solid #173d3a;padding:12px 0}.opening-guide-link span{font-size:22px}.opening-guide-inner>.opening-guide-foot{font-size:8px;line-height:1.6;margin-top:13px;opacity:.8}
.opening-progress{position:absolute;bottom:25px;left:7.5%;right:7.5%;display:flex;align-items:center;gap:14px;z-index:6;font-size:6px;letter-spacing:.16em}.opening-progress>span{opacity:.4;white-space:nowrap}.opening-progress>span.active{opacity:1;color:#ffdc9d}.opening-progress i{width:60px;height:1px;background:#fff6df33}.opening-progress b{display:block;height:1px;background:#ffdc9d;transform:scaleX(var(--opening-aperture));transform-origin:left}.opening-progress i:nth-of-type(2) b{transform:scaleX(var(--opening-route))}
body.opening-active .continuity-orb{visibility:hidden}body.opening-active .cursor{opacity:0!important}
body.continuous-journey .opening-chapter .opening-guide,body.continuous-journey .opening-chapter .opening-caption,body.continuous-journey .opening-chapter .opening-rings,body.continuous-journey .opening-chapter .opening-progress{opacity:calc(1 - var(--opening-exit))}
body.continuous-journey .opening-chapter .opening-caption{opacity:calc(var(--opening-route)*(1 - var(--opening-exit)))}body.continuous-journey .opening-chapter .opening-rings{opacity:calc(var(--opening-aperture)*(1 - var(--opening-exit)))}
@media(max-height:790px) and (min-width:701px){.opening-guide{top:15%}.opening-guide-inner{padding:23px 28px 15px}.opening-guide h2{font-size:44px;margin:13px 0}.opening-guide-inner>p,.opening-advice p{font-size:10px}.opening-picker{margin:15px 0}.opening-advice{padding:12px 0}.opening-guide-inner>.opening-guide-foot{font-size:7px}.opening-title-block{top:22%}.opening-display{font-size:19vw}.opening-chapter h1 em{margin:20px 0 15px}.opening-caption{top:82%}}
@media(max-width:700px){.opening-title-block{top:28%;left:8%;width:84%}.opening-title-block .mini{font-size:7px;margin-bottom:18px}.opening-seo-title{font-size:11px;margin-bottom:25px}.opening-display{font-size:38vw}.opening-chapter h1 em{font-size:7.5vw;margin:22px 0 20px}.opening-intro{font-size:11px;max-width:300px}.opening-bottom{bottom:12%;left:8%;right:8%;align-items:end}.opening-bottom>a{max-width:100px;line-height:1.6;font-size:9px}.opening-bottom button{font-size:6px;gap:10px}.opening-bottom small{max-width:135px;font-size:8px;line-height:1.5}.opening-scroll-icon{width:32px;height:48px;font-size:20px}.opening-guide{left:7%;right:7%;top:43%;width:auto;max-width:none;transform:translateY(calc((1 - var(--opening-fold))*30px))}.opening-guide-inner{padding:20px 24px 16px;transform-origin:top;transform:rotateX(calc((1 - var(--opening-fold))*80deg));max-height:52svh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.opening-guide h2{font-size:37px;line-height:.85;margin:12px 0}.opening-guide h2 br{display:none}.opening-guide h2 em{margin-left:8px}.opening-guide-inner>.mini{font-size:6px}.opening-guide-inner>p{font-size:9px;line-height:1.6;margin:12px 0}.opening-picker{gap:15px;margin:13px 0}.opening-picker label{font-size:7px}.opening-picker select{font-size:11px;padding:7px 15px 7px 0}.opening-advice{padding:10px 0}.opening-advice h3{font-size:14px;margin:7px 0}.opening-advice p{font-size:9px;line-height:1.6;min-height:0}.opening-guide-link{font-size:10px;padding:8px 0}.opening-guide-inner>.opening-guide-foot{font-size:7px;margin:9px 0 0}.opening-caption{top:20%;left:7%;max-width:20%;}.opening-caption>span{font-size:5px}.opening-caption p{font-size:18px;line-height:1.05}.opening-caption small{display:none}.opening-rings svg{font-size:10px}.opening-progress{bottom:16px;left:7%;right:7%;gap:8px;font-size:5px}.opening-progress i{width:25px}}
body:not(.continuous-journey) .opening-chapter{height:auto;min-height:0;overflow:hidden;padding:100svh 7% 70px}body:not(.continuous-journey) .opening-chapter .hero-art{height:100svh;inset:0;transform:none}body:not(.continuous-journey) .opening-title-block{top:20svh;clip-path:none;transform:none}body:not(.continuous-journey) .opening-guide{position:relative;inset:auto;width:100%;max-width:900px;margin:auto;transform:none}body:not(.continuous-journey) .opening-guide-inner{transform:none;max-height:none}body:not(.continuous-journey) .opening-rings,body:not(.continuous-journey) .opening-caption,body:not(.continuous-journey) .opening-bottom,body:not(.continuous-journey) .opening-progress{display:none}
.opening-chapter h1>.opening-seo-title{font-family:'DM Sans',sans-serif;font-size:clamp(12px,1.25vw,18px);font-style:normal;line-height:1.3;letter-spacing:.015em;margin:0 0 23px;padding:0}.opening-chapter h1>.opening-display{font-family:var(--serif);font-size:clamp(150px,22vw,360px);font-style:normal;line-height:.7;letter-spacing:-.065em;margin:0;padding:0}
@media(max-height:790px) and (min-width:701px){.opening-chapter h1>.opening-display{font-size:19vw}}
@media(max-width:700px){.opening-chapter h1>.opening-seo-title{font-size:11px;margin:0 0 25px}.opening-chapter h1>.opening-display{font-size:38vw}}
