:root{color-scheme:light;--paper:#f5f7f7;--ink:#303c3b;--muted:#687572;--line:#d9e1df;--accent:#456d68;--frame:#e9efed;--hover:#e0e9e6;--overlay-control:rgba(245,247,247,.92);--note-line:#aebfbb;--footer:#738781;--serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button[hidden]{display:none}body:has(dialog[open]){overflow:hidden}

main{max-width:1200px;margin:auto;padding:0 40px}h1{display:flex;align-items:baseline;gap:18px;font-family:var(--serif);font-size:30px;font-weight:400;letter-spacing:.12em;line-height:1.6;margin:0 0 42px}h2{font-family:var(--serif);font-weight:400}
.gallery{display:flex;flex-direction:column;gap:64px}.entry{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);column-gap:58px;padding-bottom:64px;border-bottom:1px solid var(--line);align-items:center}.photos{min-width:0;display:grid;gap:20px}.photo{margin:0}.photo-button{display:block;border:0;padding:0;width:100%;background:var(--frame);line-height:0;position:relative}.photo-button img{display:block;width:100%;height:auto;max-height:680px;object-fit:contain}.photo-button .expand{position:absolute;bottom:12px;right:12px;background:var(--overlay-control);color:var(--ink);width:32px;height:32px;display:grid;place-items:center;line-height:1;font-size:18px;opacity:0;transition:opacity .15s}.photo-button:hover .expand,.photo-button:focus-visible .expand{opacity:1}.entry:first-child .photos{width:min(100%,420px);justify-self:center}.entry-copy{font-family:var(--serif);font-size:17px;line-height:2;letter-spacing:.025em}.entry-copy p{margin:0 0 1.25em}.entry-copy p:last-child{margin-bottom:0}.entry-number{display:block;font-family:system-ui,sans-serif;font-size:13px;color:var(--muted);letter-spacing:.15em;margin-bottom:24px}.ai-note{display:inline-flex;align-items:center;gap:7px;background:none;border:0;border-bottom:1px solid var(--note-line);color:var(--accent);padding:7px 0;min-height:44px;font-size:14px;line-height:1.5;letter-spacing:.015em}
.memoir{display:grid;grid-template-columns:1fr 3fr;gap:40px;padding-top:82px;max-width:990px;margin:0 auto}.memoir h2{font-size:30px;letter-spacing:.16em;margin:0;padding-top:4px}.memoir p{font-family:var(--serif);font-size:18px;line-height:2.2;margin:0 0 1.7em;letter-spacing:.02em;text-align:justify}footer{display:flex;justify-content:center;align-items:center;gap:24px;margin:94px 24px 52px;color:var(--footer);font-family:var(--serif);font-size:14px;letter-spacing:.22em}footer span:first-child,footer span:last-child{width:40px;height:1px;background:var(--line)}
dialog{border:1px solid var(--line);padding:0;color:var(--ink);background:var(--paper);box-shadow:0 24px 100px #18292530}dialog::backdrop{background:#293a3bc9;backdrop-filter:blur(6px)}.icon-button{display:inline-grid;place-items:center;flex-shrink:0;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font-family:system-ui,sans-serif;font-size:20px;line-height:1}.icon-button:hover{background:var(--hover)}.lightbox{width:min(1200px,calc(100% - 48px));max-width:none;max-height:calc(100dvh - 40px);border-radius:8px;padding:12px 20px 18px}.lightbox-bar{display:flex;align-items:center;justify-content:space-between;min-height:44px;font-size:14px;color:var(--muted)}.lightbox-stage{position:relative;display:flex;align-items:center;justify-content:center;padding:8px 52px;min-height:100px}.lightbox-stage img{display:block;max-width:100%;width:auto;max-height:65dvh;object-fit:contain}.previous,.next{position:absolute;top:50%;transform:translateY(-50%);font-size:30px}.previous{left:0}.next{right:0}.lightbox-caption{max-width:760px;margin:16px auto 0}.lightbox-caption p{font-size:15px;line-height:1.8;margin:0}.ai-dialog{width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 32px);border-radius:8px;padding:24px}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.dialog-header h2{font-family:inherit;font-size:17px;margin:0;line-height:1.6}.ai-dialog>p{font-size:16px;line-height:1.8;margin:20px 0}.original{margin:0;padding:20px;background:var(--frame);text-align:center}.original img{display:block;width:240px;max-width:100%;height:auto;margin:0 auto}.original figcaption{font-size:14px;margin-top:14px;color:var(--muted)}
@media(min-width:1500px){.gallery{gap:80px}.entry{padding-bottom:80px}}
@media(max-width:760px){main{padding:0 24px}h1{font-size:26px;gap:14px;margin-bottom:28px;letter-spacing:.1em}.gallery{gap:36px}.entry{display:block;padding-bottom:36px}.entry:first-child .photos{width:100%;max-width:420px;margin:auto}.entry:first-child .photo-button img{max-height:66dvh}.entry-copy{font-size:16px;line-height:1.95;margin-top:22px}.entry-number{margin-bottom:12px;font-size:12px}.photos{gap:14px}.photo-button .expand{opacity:1;width:28px;height:28px;font-size:16px;bottom:10px;right:10px}.ai-note{font-size:14px}.memoir{display:block;padding-top:44px}.memoir h2{font-size:27px;margin-bottom:28px}.memoir p{font-size:17px;line-height:2.1;margin-bottom:1.6em}footer{margin:56px 24px 36px}.lightbox{width:calc(100% - 16px);padding:10px 12px 18px;max-height:calc(100dvh - 16px)}.lightbox-stage{padding:10px 0 56px}.lightbox-stage img{max-height:58dvh}.previous,.next{top:auto;bottom:0;transform:none}.previous{left:calc(50% - 52px)}.next{right:calc(50% - 52px)}.lightbox-caption{margin-top:14px}.ai-dialog{padding:18px}.original{padding:14px}}
.photo-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 16px;margin-top:10px;min-height:28px}.photo-date{color:var(--muted);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:1.7;letter-spacing:.06em;font-variant-numeric:tabular-nums}.lightbox-caption>.photo-date{display:block;margin-bottom:8px}.lightbox-caption>.photo-date[hidden]{display:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.topic-label{font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;font-size:14px;font-weight:400;color:var(--muted);letter-spacing:.14em}.info-icon{display:inline-block;flex:none;vertical-align:-.15em}#ai-title{display:flex;align-items:center;gap:8px}.text-button{display:inline-block;background:none;border:0;padding:8px;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.memoir .memoir-error{font-family:system-ui,sans-serif;font-size:16px;color:var(--muted)}

:root[data-theme="dark"]{color-scheme:dark;--paper:#222b2a;--ink:#e0e6e2;--muted:#adbcb5;--line:#414f4b;--accent:#b0cdc0;--frame:#2b3633;--hover:#36453f;--overlay-control:rgba(34,43,42,.94);--note-line:#6c897b;--footer:#a4b9ad}
.theme-toggle{width:44px;height:44px}.theme-sun{display:none}:root[data-theme="dark"] .theme-moon{display:none}:root[data-theme="dark"] .theme-sun{display:block}


.cover{position:relative;display:grid;place-items:center;min-height:100vh;min-height:100svh;padding:100px 0 120px}
.cover h1{display:flex;flex-direction:column;align-items:center;gap:24px;margin:0;text-align:center;font-weight:400;line-height:1.6;transform:translateY(-2vh)}
.cover .topic-label{font-size:14px;letter-spacing:.35em;padding-left:.35em}
.cover-name{font-size:clamp(40px,5vw,64px);letter-spacing:.24em;padding-left:.24em;white-space:nowrap}
.cover .theme-toggle{position:absolute;top:max(28px,env(safe-area-inset-top));right:0}
.cover-scroll{position:absolute;bottom:max(32px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:44px;height:44px;display:grid;place-items:center;color:var(--muted);border-radius:50%;text-decoration:none}
.cover-scroll:hover{color:var(--ink);background:var(--hover)}
@media(max-width:760px){.cover h1{gap:20px}.cover-name{font-size:clamp(32px,10vw,44px);letter-spacing:.2em;padding-left:.2em}.cover .theme-toggle{top:max(20px,env(safe-area-inset-top))}}
