/* A continuous voyage: full scenes alternate with quieter editorial passages. */
:root{--tidal-ink:#23463e;--tidal-paper:#f6efdf;--tidal-ease:cubic-bezier(.23,1,.32,1)}
body>header{position:fixed;padding:19px 4.5%;transition:background 180ms ease;z-index:30}body.scrolled>header{background:#f6efdfed;border-bottom:1px solid #23463e18}.wordmark{font-size:27px}.nav{gap:22px}.nav #motion{min-height:35px}.scene-copy h2,.atlas h2,.letters-heading h2{white-space:pre-line}.journey-nav{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:25;display:flex;flex-direction:column;gap:7px;padding:12px 8px;border:1px solid #23463e26;border-radius:28px;background:#f6efdfed;box-shadow:0 4px 25px #24473b0c}.journey-nav a{display:flex;align-items:center;justify-content:flex-end;gap:10px;border-radius:30px;padding:8px 10px;font-size:9px;position:relative;min-width:37px;min-height:34px}.journey-nav span{font-size:10px}.journey-nav b{position:absolute;right:46px;white-space:nowrap;font-size:10px;font-weight:400;padding:7px 12px;background:var(--tidal-paper);border:1px solid #23463e22;border-radius:20px;opacity:0;pointer-events:none}.journey-nav a[aria-current=step]{background:var(--tidal-ink);color:var(--tidal-paper)}.journey-nav a[aria-current=step] b{color:var(--tidal-ink)}.journey-nav a:focus-visible b{opacity:1}.atlas{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:9%;padding:120px 9%;min-height:90svh;background:var(--tidal-paper)}.atlas h2{font-size:clamp(38px,4.6vw,68px);line-height:1.1;letter-spacing:-2px}.atlas-intro>p:last-child{max-width:420px;font-size:14px;line-height:1.9}.route-list a{display:flex;gap:22px;padding:28px 0;border-top:1px solid #23463e40;align-items:center}.route-list a:last-child{border-bottom:1px solid #23463e40}.route-list a>span{font:italic 25px Georgia,serif}.route-list h3{font:normal 23px/1.3 Georgia,"Songti SC",serif;margin:0 0 9px}.route-list p{font-size:11px;line-height:1.7;margin:0}.route-list i{margin-left:auto;font-size:25px;font-style:normal}.long-stage{position:relative}.scene-pin{height:100svh;position:sticky;top:0;overflow:hidden;isolation:isolate}.scene-copy{position:absolute;left:8%;top:19%;z-index:3;max-width:70%}.scene-copy h2{font-size:clamp(56px,6.5vw,100px)}.scene-instruction{position:absolute;z-index:4;bottom:33px;left:8%;font-size:9px;letter-spacing:2px}.harbor-stage{height:280svh;background:#c4ddd6}.harbor-pan{display:block;position:absolute;left:0;top:0;height:100%;width:max(160vw,300svh);max-width:none;object-fit:cover;object-position:center}.harbor-copy{top:16%}.harbor-copy:before{content:'';position:absolute;inset:-30px -50px;z-index:-1;background:radial-gradient(ellipse,#eff0d9dc,transparent 75%)}.harbor-copy h2{font-size:clamp(48px,5.5vw,85px)}.harbor-boat{position:absolute;z-index:2;width:clamp(140px,18vw,280px);height:auto;top:55%;left:54%;filter:drop-shadow(0 15px 20px #183f381f)}.harbor-notes{position:absolute;left:8%;bottom:10%;width:330px;z-index:3;background:#f6efdfef;padding:25px 29px;border:1px solid #23463e22}.harbor-notes .eyebrow{font-size:8px;margin-bottom:15px;letter-spacing:1.5px}#harbor-caption{font:normal 20px/1.45 Georgia,"Songti SC",serif;min-height:87px;margin:0 0 18px}.harbor-stops{display:flex;gap:8px}.harbor-stops button{border:1px solid #23463e55;border-radius:50%;background:transparent;width:33px;height:33px;font-size:10px}.harbor-stops button[aria-pressed=true]{background:var(--tidal-ink);color:var(--tidal-paper)}.breathing-room{padding:100px 20px;text-align:center;background:#e1e8d6;min-height:65svh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:28px}.breathing-room>p{font:normal clamp(32px,4.5vw,64px)/1.2 Georgia,"Songti SC",serif;white-space:pre-line;letter-spacing:-1.5px;margin:0}.breathing-room .eyebrow{font-size:8px;margin:0}.tiny-star{font-size:40px;color:#7e925e}.hills-stage{height:240svh;background:#e1e8d6}.hills-window{position:absolute;inset:0;clip-path:circle(16% at 74% 52%)}.hills-window img{height:100%;width:100%;object-fit:cover;object-position:center}.hills-copy{max-width:65%;top:22%}.hills-copy:before{content:'';position:absolute;inset:-50px -30px -25px;z-index:-1;background:radial-gradient(ellipse at 35% 45%,#ecedd5ca,transparent 75%)}.wind-compass{width:90px;position:relative;margin-top:30px}.wind-compass>span{position:absolute;top:-15px;left:42px;font-size:8px}.wind-compass svg{display:block;width:90px;fill:none;stroke:var(--tidal-ink);stroke-width:.8}.wind-compass g path{fill:#23463e55}.wind-label{font-size:8px;letter-spacing:1.6px;margin-top:15px}.clouds-stage{height:220svh;background:#bed9de}.clouds-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.clouds-copy{top:20%;max-width:62%}.cloud-boat{position:absolute;left:0;top:0;width:clamp(120px,18vw,250px);height:auto;z-index:2;pointer-events:none}.cloud-next{position:absolute;bottom:12%;left:8%;z-index:4}.letters-section{padding:110px 8% 100px;background:var(--tidal-paper)}.letters-heading{max-width:900px;margin-bottom:65px}.letters-heading h2{font-size:clamp(50px,6.5vw,94px)}.letters-heading>p:last-child{font-size:14px;line-height:1.8}.postcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.postcard{padding:0;text-align:left;border:0;background:transparent;perspective:1200px;min-width:0;height:360px;border-radius:0}.postcard-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform 500ms var(--tidal-ease)}.postcard[aria-expanded=true] .postcard-inner{transform:rotateY(180deg)}.postcard-front,.postcard-back{position:absolute;inset:0;display:flex;flex-direction:column;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fffaf0;border:1px solid #23463e26;box-shadow:0 8px 18px #4b3c2212}.postcard-front{padding:12px}.postcard-front img{width:100%;height:calc(100% - 44px);object-fit:cover}.postcard-caption{display:flex;justify-content:space-between;align-items:center;padding:19px 7px 0;font-size:8px;letter-spacing:1.6px}.postcard-back{transform:rotateY(180deg);padding:30px;justify-content:space-between}.letter-no{font-size:8px;letter-spacing:2px;border-bottom:1px solid #23463e33;padding-bottom:16px}.postcard-back strong{font:italic 23px Georgia,"Songti SC",serif}.letter-message{font:normal 20px/1.55 Georgia,"Songti SC",serif}.signature{font:italic 18px/1.2 Georgia,serif;align-self:flex-end}.letter-hint{font-size:8px;letter-spacing:2px;text-align:center;margin:35px 0 0}.epilogue{padding-top:90px;border-top:1px solid #23463e26}.epilogue>h2{max-width:850px}.end-actions{display:flex;gap:28px;align-items:center;margin-top:30px}.end-actions>a{font-size:12px;border-bottom:1px solid;padding-bottom:5px}.bottom{right:9%}body.static-view .journey-nav{background:var(--tidal-paper)}
@media(hover:hover) and (pointer:fine){.journey-nav a:hover b{opacity:1}.route-list a:hover{color:#9a623e}.postcard:hover .postcard-front{box-shadow:0 12px 22px #4b3c2225}.harbor-stops button:hover{border-color:#23463e}}
@media(max-width:900px){.journey-nav{right:10px}.atlas{gap:5%;padding:95px 7%}.route-list h3{font-size:20px}.postcards{gap:17px}.postcard{height:330px}.postcard-back{padding:20px}.letter-message{font-size:17px}.postcard-back strong{font-size:20px}}
@media(max-width:640px){body>header{padding:16px 6%}.wordmark{font-size:24px}.nav{gap:18px}.journey-nav{left:50%;right:auto;top:auto;bottom:12px;transform:translateX(-50%);flex-direction:row;gap:2px;padding:5px 7px;max-width:calc(100% - 24px);border-radius:30px}.journey-nav a{width:45px;min-width:0;padding:6px 3px;flex-direction:column;gap:3px;justify-content:center}.journey-nav b{position:static;opacity:1;background:transparent;border:0;padding:0;font-size:8px;font-weight:400;color:inherit!important}.journey-nav span{font-size:8px;opacity:.65}.bottom{bottom:83px;right:6%}.atlas{grid-template-columns:1fr;gap:35px;padding:75px 7%;min-height:0}.atlas h2{font-size:42px}.atlas-intro>p:last-child{font-size:13px}.route-list a{padding:24px 0}.route-list h3{font-size:23px}.harbor-stage{height:260svh}.harbor-copy{top:15%;left:7%;max-width:86%}.scene-copy h2,.harbor-copy h2{font-size:clamp(39px,10vw,58px);letter-spacing:-1.5px}.harbor-copy:before{inset:-20px -20px;background:radial-gradient(ellipse,#eef0d6ef,transparent 90%)}.harbor-boat{top:46%;width:145px}.harbor-notes{left:7%;bottom:18%;width:min(285px,82%);padding:18px 22px}#harbor-caption{font-size:18px;min-height:75px;margin-bottom:13px}.harbor-notes .eyebrow{font-size:7px}.scene-instruction{bottom:86px;left:7%;font-size:7px;letter-spacing:1.2px}.breathing-room{min-height:55svh;padding:75px 7%;gap:24px}.breathing-room>p{font-size:33px;letter-spacing:-.7px}.hills-stage{height:220svh}.hills-window img{object-position:67% center}.hills-copy{left:7%;top:19%;max-width:84%}.hills-copy:before{inset:-25px;background:radial-gradient(ellipse,#ecedd5ed,transparent 90%)}.wind-compass{margin-top:32px;width:65px}.wind-compass svg{width:65px}.wind-compass>span{left:29px}.wind-label{font-size:7px}.clouds-stage{height:200svh}.clouds-art{object-position:67% center}.clouds-copy{left:7%;top:16%;max-width:86%}.clouds-copy:before{content:'';position:absolute;inset:-25px;z-index:-1;background:radial-gradient(ellipse,#d9e6e1e8,transparent 85%)}.cloud-next{left:7%;bottom:17%}.letters-section{padding:75px 7% 85px}.letters-heading{margin-bottom:36px}.letters-heading h2{font-size:50px}.letters-heading>p:last-child{font-size:13px}.postcards{grid-template-columns:1fr;gap:26px}.postcard{height:360px;width:min(100%,370px);justify-self:center}.postcard-back{padding:30px}.postcard-back strong{font-size:27px}.letter-message{font-size:24px}.signature{font-size:22px}.postcard-caption{font-size:9px}.epilogue{padding-bottom:95px}.end-actions{gap:18px;flex-wrap:wrap}.epilogue footer{gap:15px;line-height:1.8;margin-top:60px}html[lang=zh] .atlas h2{font-size:39px}html[lang=zh] .scene-copy h2{font-size:42px}html[lang=zh] .letters-heading h2{font-size:43px}}
/* Content remains complete before JS and when motion is switched off. */
html:not(.enhanced) #voyage{height:auto}html:not(.enhanced) .viewport{height:auto;position:relative;overflow:hidden}html:not(.enhanced) .sea{height:100svh}html:not(.enhanced) .intro{position:relative;top:0;min-height:100svh;padding-top:180px;transform:none!important;opacity:1!important}html:not(.enhanced) .garden{position:relative;clip-path:none!important;min-height:100svh}html:not(.enhanced) .arrival{position:relative;top:0;min-height:100svh;padding-top:180px;transform:none!important}html:not(.enhanced) .ship,html:not(.enhanced) .rigging,html:not(.enhanced) .bottom{display:none}html:not(.enhanced) .long-stage{height:auto}html:not(.enhanced) .scene-pin{position:relative;height:100svh;min-height:680px}html:not(.enhanced) .harbor-pan{width:100%;object-fit:cover;transform:none!important}html:not(.enhanced) .hills-window{clip-path:none!important}html:not(.enhanced) .clouds-art{transform:none!important}html:not(.enhanced) .cloud-boat,html:not(.enhanced) .harbor-boat{display:none}html:not(.enhanced) .postcard-inner{transition:none}html:not(.enhanced) #compass-needle{transform:none!important}html:not(.enhanced) .harbor-copy{opacity:1!important}
@media(prefers-reduced-motion:reduce){body>header{transition:none}.postcard-inner{transition:none}.nav #motion{display:none}}

/* A soft painted veil keeps type readable over detailed foliage. */
.harbor-copy:before{background:radial-gradient(ellipse,#f6efdfed 25%,#f6efdf9c 55%,transparent 78%);filter:blur(12px)}
@media(max-width:640px){.harbor-copy:before{inset:-25px -35px;background:radial-gradient(ellipse,#f6efdff5 25%,#f6efdfbb 55%,transparent 80%)}}
/* Keep narrative clues in frame on a narrow screen. */
@media(max-width:640px){.garden-art{background-position:88% center}.hills-window img{object-position:88% center}.clouds-art{object-position:100% center}.clouds-copy:before{background:radial-gradient(ellipse,#e7eee7ef 22%,#e7eee799 52%,transparent 85%)}.harbor-copy:before{opacity:.5}.harbor-copy h2{max-width:330px}}

/* Keep the full mobile boat above the variable-height clue card and inside the shore. */
@media(max-width:900px){.harbor-boat{left:auto;right:7%;aspect-ratio:1374 / 1145}}
@media(max-width:640px) and (max-height:700px){.harbor-boat{width:120px}.harbor-copy{top:max(90px,12%);max-width:48%}.harbor-copy .eyebrow{margin-bottom:14px}html .harbor-copy h2,html[lang=zh] .harbor-copy h2{font-size:32px;margin-bottom:0}.harbor-notes{bottom:15%}}
