:root{
color-scheme:dark;
--ink:#fff;--body:#fff;--muted:rgba(255,255,255,.82);--dim:rgba(255,255,255,.65);--line:#272727;
--serif:Georgia,"Times New Roman",serif;--sans:Arial,Helvetica,sans-serif;
--title-size:clamp(36px,4.8vw,64px);--nav-title-size:clamp(28px,3.4vw,44px);
--section-size:clamp(28px,3.6vw,44px);--body-size:19px;--reading-leading:1.78;
--space-section:clamp(72px,9vw,112px);--space-block:clamp(40px,5vw,64px);
--motion-ui:.5s;--motion-surface:.8s;--motion-light:1.2s;
--ease-quiet:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}html{background:#000000;scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:#000000;color:var(--ink);-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:1px solid #b0b0b0;outline-offset:7px}img{max-width:100%}::selection{background:#cecece;color:#111111}
.document-page .site-brand,.collection-page .site-brand{position:fixed;padding:5px 0}.document-page:not(.journal-site) .site-brand,.collection-page .site-brand{background:#000000bb;border-radius:2px}:where(.document-page,.collection-page) h1{font:italic 400 var(--title-size)/1.16 var(--serif);letter-spacing:-.025em}.eyebrow{font:11px/1.7 var(--sans);letter-spacing:.18em;color:var(--muted);text-transform:uppercase}
.arrow-link{display:inline-flex;gap:16px;align-items:center;text-decoration:none;font:italic 16px/1.6 var(--serif);color:#fff;transition:color var(--motion-ui) var(--ease-quiet)}.arrow-link:hover{color:#fff}.arrow{display:inline-block;transition:transform var(--motion-ui) var(--ease-quiet);font-style:normal}.arrow-link:hover .arrow,.arrow-link:focus-visible .arrow{transform:translate(3px,-3px)}
.contact-footer{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;text-align:center;padding:var(--space-section) 24px 45px;min-height:430px;background:#000000;scroll-snap-align:start}.contact-footer h2{font:italic 400 var(--section-size)/1.2 var(--serif);margin:12px 0 14px}.contact-invitation{font:italic 15px/1.7 var(--serif);color:var(--muted);margin:0 0 22px}.contact-mail{font:14px/1.7 var(--sans);text-decoration:none;color:#fff;overflow-wrap:anywhere}.contact-mail:hover{color:#fff}.contact-footer .social-links{display:flex;gap:22px;margin:32px 0 45px}.contact-footer .social-links a{color:#fff;padding:10px}.contact-footer .social-links a:hover{color:#fff;transform:translateY(-3px);filter:drop-shadow(0 0 12px #ffffff55)}.copyright{font:10px/1.5 var(--sans);letter-spacing:.08em;color:var(--dim);margin:0}
.home-interlude{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:80px 24px;text-align:center;background:#000000;scroll-snap-align:start;scroll-snap-stop:always}.home-interlude p{font:italic 400 clamp(29px,4vw,50px)/1.5 var(--serif);margin:0;color:#fff}.home-interlude small{font:13px/1.8 "Songti SC",serif;color:#fff;letter-spacing:.08em}.feature-secondary{margin-top:8px!important;font-size:13px!important;color:#fff}.home-site .contact-footer{min-height:100svh}
.city-intro{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:104px 24px 100px;background:#000000}
.city-intro-copy{width:min(800px,100%);text-align:center}
.city-intro h1{margin:0 0 14px}
.city-title .eyebrow{font:12px/1.8 "Songti SC",serif;letter-spacing:.2em;margin:0;color:var(--muted)}
.city-intro .city-lead{font:italic 24px/1.6 var(--serif);color:var(--ink);margin:32px auto 0}
.city-opening-lines{margin:34px auto 0;display:flex;flex-direction:column;gap:10px}
.city-opening-lines p{font:17px/1.8 var(--serif);color:var(--body);margin:0}
.city-opening-scroll{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);font-size:14px;white-space:nowrap}
.city-series-note{width:min(620px,100%);margin:0 auto 40px;text-align:left}
.city-series-note summary{width:fit-content;margin:auto;display:flex;align-items:center;gap:18px;list-style:none;cursor:pointer;font:italic 16px/1.8 var(--serif);color:var(--muted);padding:8px 0;border-bottom:1px solid var(--line)}
.city-series-note summary::-webkit-details-marker{display:none}
.city-series-note summary:focus-visible{outline:1px solid var(--muted);outline-offset:6px}
.city-series-note summary span{font:18px/1 var(--sans);transition:transform var(--motion-ui) ease}
.city-series-note[open] summary span{transform:rotate(45deg)}
.city-note-prose{margin-top:28px}
.city-note-prose p{font:17px/1.85 var(--serif);color:var(--body);margin:0 0 22px}
.city-photographs{padding:0 clamp(22px,5vw,72px)}.city-frame{--city-ratio:1.50376;width:min(1060px,100%,calc((100svh - 180px)*var(--city-ratio)));min-height:100svh;margin:0 auto;padding:90px 0 60px;display:flex;flex-direction:column;justify-content:center}.city-frame .photo-link{width:100%}.city-frame .photo-link img{display:block;width:100%;height:auto;max-width:100%;max-height:none;object-fit:contain}.photo-link{display:block;text-decoration:none}.photo-link img{display:block;width:100%;height:auto;margin:auto}.city-frame.portrait{width:min(560px,80%,calc((100svh - 180px)*var(--city-ratio)))}.city-frame figcaption{display:flex;justify-content:space-between;gap:20px;font:11px/1.7 var(--sans);letter-spacing:.15em;color:var(--dim);margin:20px 0 0}.city-presence{min-height:100svh;display:grid;place-items:center;text-align:center;padding:60px 16px}.city-presence p{font:italic clamp(30px,4vw,52px)/1.45 var(--serif);color:#fff}.series-end{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:90px 24px 80px;text-align:center}.series-end>p:not(.eyebrow){font:italic clamp(22px,3vw,34px)/1.6 var(--serif);margin:30px auto 40px;max-width:650px;color:#fff}

.city-motion .city-title,.city-motion .city-lead,.city-motion .city-opening-lines p{transition:opacity 1.05s ease,transform 1.15s var(--ease-quiet)}
.city-motion .city-lead{transition-delay:.35s}
.city-motion .city-opening-lines p:nth-child(1){transition-delay:.8s}
.city-motion .city-opening-lines p:nth-child(2){transition-delay:1.05s}
.city-motion .city-opening-lines p:nth-child(3){transition-delay:1.3s}
.city-motion:not(.city-ready) .city-title,.city-motion:not(.city-ready) .city-lead,.city-motion:not(.city-ready) .city-opening-lines p{opacity:0;transform:translateY(8px)}
.city-motion .city-frame .photo-link{transition:opacity 1.1s ease,transform 1.25s var(--ease-quiet)}
.city-motion .city-frame figcaption{transition:opacity .8s ease .15s}
.city-motion .city-frame:not(.city-seen) .photo-link{opacity:0;transform:translateY(18px)}
.city-motion .city-frame:not(.city-seen) figcaption{opacity:0}
.city-motion .city-frame.arrive-left:not(.city-seen) .photo-link{transform:translate(-16px,8px)}
.city-motion .city-frame.arrive-right:not(.city-seen) .photo-link{transform:translate(16px,8px)}
.city-motion .city-presence p{transition:opacity 1.2s ease,transform 1.3s var(--ease-quiet)}
.city-motion .city-presence:not(.city-seen) p{opacity:0;transform:translateY(12px)}
.city-motion .city-frame:focus-within .photo-link{opacity:1;transform:none}
.journal-heading{text-align:center;width:min(800px,calc(100% - 48px));margin:0 auto;padding:140px 0 56px}.journal-heading h1{margin:20px 0 24px}.journal-heading h1[lang=zh]{font-style:normal;font-family:"Songti SC","Noto Serif CJK SC",serif;letter-spacing:.12em}.journal-subtitle{font:italic clamp(21px,3vw,31px)/1.6 var(--serif);color:#fff;margin:0 0 12px}.journal-deck{font:16px/1.8 var(--serif);color:var(--muted);margin:0}.journal-intro{max-width:640px;margin:38px auto 12px;font:20px/1.7 var(--serif);color:var(--body)}.zh-caption{font:14px/1.9 "Songti SC",serif;color:var(--muted);letter-spacing:.03em}.journal-heading .eyebrow:last-child{margin:35px 0 0}
.chapter-nav{display:flex;align-items:start;justify-content:center;gap:0;width:min(1000px,calc(100% - 48px));margin:0 auto 100px;border-top:1px solid var(--line);padding-top:26px}.chapter-nav a{flex:1;min-width:0;padding:0 18px;text-align:center;text-decoration:none;font:italic 17px/1.6 var(--serif);color:#fff;transition:color .4s ease,transform .5s var(--ease-quiet),text-shadow .55s ease}.chapter-nav a:hover{color:#fff}.chapter-nav small{display:block;font:11px/1.8 "Songti SC",serif;color:var(--dim);letter-spacing:.08em;margin-top:10px}
.chapter-nav a{position:relative}
.chapter-nav a::after{content:"";position:absolute;left:50%;bottom:-14px;width:24px;height:1px;background:var(--ink);opacity:0;transform:translateX(-50%) scaleX(.5);transition:opacity .4s ease,transform .5s var(--ease-quiet)}
.chapter-nav a[aria-current="location"]{color:var(--ink)}
.chapter-nav a[aria-current="location"]::after{opacity:.7;transform:translateX(-50%) scaleX(1)}
.journal-motion .about-journal .journal-heading{transition:opacity .9s ease,transform 1.1s var(--ease-quiet)}
.journal-motion .about-journal:not(.about-ready) .journal-heading{opacity:0;transform:translateY(10px)}
.journal-motion .chapter-nav:not(.tags-ready) a{opacity:0;transform:translateY(20px)}
.journal-motion .chapter-nav.tags-ready a{animation:journal-tag-in 1.1s var(--ease-quiet) var(--tag-delay,0s) backwards}
.chapter-nav a:nth-child(2){--tag-delay:.12s}
.chapter-nav a:nth-child(3){--tag-delay:.24s}
.about-journal .chapter-nav a:nth-child(1){--tag-delay:.65s}
.about-journal .chapter-nav a:nth-child(2){--tag-delay:.77s}
.about-journal .chapter-nav a:nth-child(3){--tag-delay:.89s}
@keyframes journal-tag-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.about-journal .chapter-nav a{isolation:isolate}
.about-journal .chapter-nav a::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:-12%;right:-12%;top:50%;height:90px;transform:translateY(-50%) scaleX(.86);background:radial-gradient(ellipse,rgba(255,255,255,.14),rgba(255,255,255,.045) 42%,transparent 72%);opacity:0;transition:opacity .55s ease,transform .65s var(--ease-quiet)}
.about-journal .chapter-nav small{transition:color .45s ease,text-shadow .55s ease}
.about-journal .chapter-nav a:focus-visible{color:#fff;text-shadow:0 0 12px #ffffff59,0 0 30px #ffffff33}
.about-journal .chapter-nav a:focus-visible::before{opacity:1;transform:translateY(-50%) scaleX(1)}
@media(hover:hover) and (pointer:fine){
 .about-journal .chapter-nav a:hover{transform:translateY(-3px);color:#fff;text-shadow:0 0 12px #ffffff59,0 0 30px #ffffff33}
 .about-journal .chapter-nav a:hover::before{opacity:1;transform:translateY(-50%) scaleX(1)}
 .about-journal .chapter-nav a:hover small{color:#fff;text-shadow:0 0 14px #ffffff33}
}
.reading-marker{position:fixed;left:32px;top:65px;z-index:2;max-width:155px;font:10px/1.8 var(--sans);letter-spacing:.06em;color:var(--dim);margin:0;pointer-events:none}
body:has(dialog[open]) .reading-marker{visibility:hidden}
.journal-page article [data-reading-target]:focus{outline:none}
.reading-arrival{animation:reading-land 2s ease}
@keyframes reading-land{0%,100%{text-shadow:0 0 0 transparent}16%,66%{color:#fff;text-shadow:0 0 5px #ffffffb3,0 0 18px #ffffffa6,0 0 42px #ffffff80,0 0 80px #ffffff59,0 0 120px #ffffff33}}
.journal-page article :is(.everyday-triptych,.intuition-photo-notes){position:relative;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:24px;width:min(1000px,calc(100vw - 48px));margin:var(--space-block) 0}
.journal-page article :is(.everyday-triptych,.intuition-photo-notes) figure{position:static;left:auto;transform:none;width:100%;margin:0}
.journal-page article :is(.everyday-triptych,.intuition-photo-notes) img{display:block;width:100%;height:auto;max-height:none}
@media(max-width:1399px){.reading-marker{display:none}}
@media(max-width:600px){.journal-page article :is(.everyday-triptych,.intuition-photo-notes){gap:12px;width:calc(100vw - 44px)}}

.journal-page>article{width:min(690px,calc(100% - 48px));margin:0 auto;padding:15px 0 35px}.journal-page article section{margin:0 0 90px}.journal-page article h2{font:italic 400 var(--section-size)/1.25 var(--serif);margin:22px 0 40px;letter-spacing:-.02em}.journal-page article p{font:var(--body-size)/var(--reading-leading) var(--serif);color:var(--body);margin:0 0 28px;overflow-wrap:break-word}.journal-page article .eyebrow{font:10px/1.8 var(--sans);letter-spacing:.16em;color:var(--dim)}.journal-page article blockquote{margin:var(--space-block) 0;padding:0;color:#fff;border:0;font:italic 26px/1.6 var(--serif)}.journal-page blockquote p{font:inherit;color:inherit;margin:0}.journal-page blockquote span{display:block}.journal-page blockquote [lang^=zh]{font:16px/1.9 "Songti SC",serif;color:#fff;margin-top:18px;letter-spacing:.04em;font-style:normal}.journal-page article figure{position:relative;width:min(1000px,calc(100vw - 48px));left:50%;transform:translateX(-50%);margin:65px 0 75px;text-align:center}.journal-page article figure img{width:min(100%,calc(80svh * var(--image-ratio,1)));aspect-ratio:var(--image-ratio,auto);max-width:100%;max-height:80svh;height:auto}.journal-page article figcaption{font:italic 13px/1.8 var(--serif);color:var(--dim);margin:20px auto 0;max-width:680px}.journal-page article footer,.journal-page article>nav{padding:30px 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:22px;font:italic 17px/1.8 var(--serif)}.journal-page article footer a,.journal-page article>nav a{text-decoration:none;color:#fff}.journal-page article [id]{scroll-margin-top:20px}.journal-pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,6vw,90px);width:min(860px,calc(100% - 48px));margin:0 auto 110px;align-items:center}.journal-pair img{width:auto;max-width:100%;max-height:500px}.about-journal .journal-heading{padding-top:145px}.about-journal .journal-heading h1{font-size:var(--title-size)}.about-journal .journal-heading h1 em{font-weight:400;color:#fff}.about-journal .reflection-story{padding-top:40px}.about-journal article figure.memory{margin-bottom:clamp(140px,20svh,210px)}.yellow-accent{font-style:italic;color:#fff}.closing-thought{margin-top:50px!important}.reading-next{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;padding:50px 24px 80px}.reading-next>a:not(.arrow-link){font:italic 15px/1.7 var(--serif);color:var(--dim);text-decoration:none}
.reflection-opening{position:relative;min-height:100svh;display:grid;grid-template-columns:1fr minmax(220px,430px) 1fr;gap:clamp(20px,4vw,70px);align-items:center;padding:100px max(24px,6vw) 90px}.opening-copy h1{margin:20px 0;font-size:var(--title-size)}.opening-copy>p[lang=zh]{font:15px/1.8 "Songti SC",serif;color:#fff}.reflection-opening .dream-photo{width:100%;height:auto;opacity:0;filter:blur(14px);transition:opacity 2.2s ease,filter 2.2s ease}.reflection-opening img{max-height:72svh;object-fit:contain;width:auto}.dream-ready .dream-photo{opacity:1;filter:blur(0)}.opening-aside{font:10px/2.2 var(--sans);letter-spacing:.2em;color:#fff}.opening-scroll{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);font-size:13px;white-space:nowrap}
.series-notes{width:min(750px,calc(100% - 48px));margin:0 auto;text-align:center;padding:var(--space-section) 0 var(--space-section);scroll-margin-top:50px}.series-notes h2{font:italic 400 var(--section-size)/1.4 var(--serif);margin:25px 0 40px;color:#fff}.series-notes>p:not(.eyebrow){font:18px/1.8 var(--serif);color:var(--body);max-width:570px;margin:0 auto 30px}.poem{padding:75px 0 85px}.poem p{font:italic clamp(22px,3vw,30px)/1.8 var(--serif);color:#fff;margin:0 0 55px}.series-notes>.arrow-link{margin-top:35px}
.photo-viewer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;margin:0;padding:60px 60px 45px;background:#000000ff;color:#fff}.photo-viewer::backdrop{background:#000000}.photo-viewer[open]{animation:viewer-arrive .28s ease both;display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:16px}.photo-viewer figure{margin:0;min-width:0;display:flex;align-items:center;flex-direction:column;justify-content:center;height:100%;overflow:hidden}.photo-viewer img{transition:opacity .22s ease;display:block;width:auto;height:auto;max-width:100%;max-height:calc(100svh - 155px);object-fit:contain}.photo-viewer figcaption{font:12px/1.7 var(--sans);text-align:center;max-width:700px;color:#fff;margin-top:20px}.photo-viewer button{background:none;border:0;color:#fff;min-width:40px;min-height:44px;font-size:35px;cursor:pointer;transition:color var(--motion-ui) var(--ease-quiet)}.photo-viewer button:hover{color:#fff}.photo-viewer .viewer-close{position:absolute;right:20px;top:14px;font-size:32px}.viewer-open{overflow:hidden}
@media(max-width:700px){.city-intro{padding:90px 24px}.city-intro .city-lead{font-size:20px;margin-top:26px}.city-opening-lines{margin-top:28px;gap:9px}.city-opening-lines p{font-size:16px}.city-opening-scroll{bottom:30px;font-size:13px}.city-frame{margin:0 auto;padding-top:80px;padding-bottom:50px}.city-frame figcaption{font-size:10px;letter-spacing:.1em}.city-presence{min-height:100svh}.journal-heading{padding-top:115px;padding-bottom:45px}.journal-intro{font-size:18px}.journal-subtitle{font-size:23px}.journal-page>article{width:calc(100% - 44px)}.journal-page article p{font-size:18px;line-height:1.8}.journal-page article blockquote{font-size:23px;margin:44px 0}.journal-page article blockquote [lang^=zh]{font-size:14px}.journal-page article figure{width:calc(100vw - 44px);margin:45px 0 55px}.chapter-nav{margin-bottom:65px;width:calc(100% - 36px);padding-top:22px}.chapter-nav a{font-size:13px;padding:0 6px}.chapter-nav small{font-size:10px;letter-spacing:0}.journal-pair{gap:20px;margin-bottom:70px}.reflection-opening{grid-template-columns:1fr;gap:15px;padding:90px 24px 70px;justify-items:center}.opening-copy{width:100%;display:flex;align-items:center;justify-content:space-between;gap:15px}.opening-copy h1{font-size:34px;margin:0}.opening-copy .eyebrow{display:none}.opening-copy>p[lang=zh]{font-size:12px}.reflection-opening .dream-photo{width:auto;max-width:88%;height:auto}.reflection-opening img{max-height:61svh;width:auto;max-width:100%}.opening-aside{display:none}.opening-scroll{bottom:22px;font-size:12px}.about-journal .journal-heading{padding-top:115px}.photo-viewer{padding:70px 12px 45px}.photo-viewer[open]{grid-template-columns:28px minmax(0,1fr) 28px;gap:3px}.photo-viewer button{min-width:28px;padding:0}.photo-viewer figcaption{font-size:10px}.series-notes{padding:85px 0 65px}.contact-footer{padding-top:80px}.home-site .personal-feature{--photo-height:max(72px,min(300px,calc(100svh - 330px),calc((var(--available-width) - var(--personal-gap))/3.017514)))}.feature-secondary{font-size:11px!important}}
@media(max-height:500px) and (min-width:701px){.city-frame{width:min(1060px,100%,calc((100svh - 140px)*var(--city-ratio)));padding:75px 0 45px}.reflection-opening{padding-top:75px;padding-bottom:55px}.reflection-opening img{max-height:66svh}.opening-copy h1{font-size:38px}.city-intro{padding-top:80px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;transition-delay:0ms!important}.dream-photo{opacity:1!important;filter:none!important}.arrow-link:hover .arrow{transform:none}}

.noscript-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;width:min(1000px,calc(100% - 48px));margin:60px auto}.noscript-gallery img{display:block;width:100%;height:auto}

.basic-nav{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;padding:40px 24px;font:italic 16px/1.8 var(--serif)}

html:has(.city-page){scroll-snap-type:y mandatory;scroll-padding-top:0}.city-intro,.city-frame,.city-presence,.series-end{scroll-snap-align:start;scroll-snap-stop:always}body:has(.city-page) .contact-footer{min-height:100svh}

@media(prefers-reduced-motion:reduce){html:has(.city-page){scroll-snap-type:none}}

.entry-curtain{position:fixed;inset:0;z-index:10000;background:#000000;opacity:0;pointer-events:auto;transition:opacity .3s ease .1s}
.entry-curtain.visible{opacity:1}
html.entry-arriving body>main,html.entry-arriving body>.contact-footer{opacity:0}
body>main,body>.contact-footer{transition:opacity .9s ease}
@media(prefers-reduced-motion:reduce){.entry-curtain{transition:none}body>main,body>.contact-footer{transition:none}}

@keyframes viewer-arrive{from{opacity:0}to{opacity:1}}
.photo-viewer.photo-loading figcaption{color:var(--dim)}

/* First-visit guidance leaves the approved photograph layout in place. */
.flow-controls .journey-cue{position:absolute;bottom:100%;left:0;right:0;margin:0 0 15px;font:11px/1.7 var(--sans);letter-spacing:.025em;color:#bdbdbd;pointer-events:none;text-wrap:balance}
.table-hint.journey-cue{color:#bdbdbd}
@media(max-height:550px){.flow-controls .journey-cue{display:none}}
