/* Archival scenes: complete photographs, readable source notes, native scrolling. */
body.story-edition .birth-scene{margin:15px 0 65px;scroll-margin-top:110px}
.birth-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(30px,6vw,80px);align-items:start}
body.story-edition .birth-title{font:clamp(50px,6vw,82px)/1.06 var(--serif);font-weight:400;letter-spacing:-.05em;margin:14px 0;max-width:6ch;color:var(--red)}
body.story-edition .birth-scene .story-copy{max-width:650px}
.archive-spread{display:grid;grid-template-columns:.85fr 1.35fr;gap:clamp(32px,5vw,64px);align-items:center;margin:80px 0 110px;position:relative}
.archive-narrative{min-width:0}
body.story-edition .archive-narrative h3{font:clamp(32px,4vw,52px)/1.13 var(--serif);font-weight:400;letter-spacing:-.03em;margin:18px 0 26px}
body.story-edition .archive-narrative>p:not(.beat-date){font:21px/1.7 var(--serif);max-width:44ch;text-wrap:pretty}
.archive-sheet{margin:0;min-width:0;background:#f9f5ec;padding:clamp(14px,2vw,24px);box-shadow:0 16px 40px #24272118;border:1px solid #d3ccbd}
.archive-image{display:block;position:relative;text-decoration:none;min-width:0;color:inherit}
body.story-edition .archive-image img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;filter:none}
.archive-image:focus-visible{outline:3px solid var(--red);outline-offset:6px}
.archive-zoom{display:table;padding:5px 0 1px;border-bottom:1px solid currentColor;font:12px/1.6 var(--sans);letter-spacing:.04em}
.archive-image:hover .archive-zoom{color:var(--red)}
body.story-edition .archive-sheet figcaption,
body.story-edition .archive-panel figcaption,
body.story-edition .hong-kong-archive figcaption,
body.story-edition .school-lamplight figcaption{font:15px/1.6 var(--sans);margin-top:16px;color:#50544a;text-wrap:pretty}
body.story-edition .archive-credit{font:12px/1.65 var(--sans);color:#53584f;margin:9px 0 0;overflow-wrap:anywhere;max-width:90ch}
.archive-credit a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
body.story-edition .artifact-reading,
body.story-edition .archive-narrative>p.artifact-reading{font:15px/1.65 var(--sans);color:#53584f;margin-top:18px}
body.story-edition .war-archive{margin:40px 0 80px}
body.story-edition .war-archive .horiz-pin{background:#e8e1d3;padding:22px clamp(16px,2vw,28px) 24px}
.war-archive .gallery-heading{align-items:center}
.war-archive .gallery-heading h3{font-size:clamp(27px,3vw,40px);margin:6px 0 0}
.war-archive .eyebrow{font-size:12px;margin:0;color:#744237}
.war-archive .gallery-hint{font-size:14px;line-height:1.6;margin:12px 0 18px;max-width:75ch}
.war-archive .horiz-track{grid-template-columns:1fr 1fr}
.war-archive .archive-panel{padding-right:8px}
.war-archive .archive-panel .archive-image img{height:clamp(240px,43vh,400px);aspect-ratio:auto;width:auto;max-width:100%;object-position:left center;background:none}
.war-archive .archive-panel figcaption{max-width:65ch;margin-top:10px}
/* Controls remain usable when animation is disabled. No-JS keeps a simple grid. */
.js-motion .gallery-controls{display:flex}
.js-motion .horiz-wrap{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity}
.js-motion .horiz-track{display:flex}
.js-motion .horiz-track figure{flex:0 0 clamp(250px,30vw,370px);scroll-snap-align:start}
.js-motion body.story-edition .war-archive .horiz-track figure{flex-basis:min(68vw,720px);max-width:none}
.famine-archive{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,5vw,65px);align-items:center;margin:75px 0 65px}
body.story-edition .famine-archive .famine-memory{border:0;border-left:2px solid var(--red);background:none;margin:0;padding:0 0 0 clamp(18px,2.5vw,30px)}
body.story-edition .famine-archive .famine-memory h3{font-size:clamp(32px,4vw,48px);line-height:1.15;margin-block:18px 26px}
body.story-edition .famine-archive .famine-memory>p:not(.beat-date):not(.memory-credit){font-size:20px}
.food-report{max-width:480px;justify-self:end}
.school-lamplight{margin:40px 0 50px;max-width:680px}
.school-lamplight img{display:block;width:100%;height:auto}
.star-crossing{margin:70px 0 80px;background:#142b35;color:#f4efe3;position:relative;overflow:hidden;isolation:isolate;scroll-margin-top:90px}
.star-art{margin:0;position:relative}
.star-art-window{position:relative;overflow:hidden;isolation:isolate}
.star-art-window img{display:block;width:100%;height:auto;max-width:none}
.star-art-window:after{content:'';position:absolute;inset:75% 0 0;background:linear-gradient(transparent,#142b35);pointer-events:none}
.star-plane{position:absolute;inset:0 0 45%;pointer-events:none;opacity:.7;background:radial-gradient(circle at 16% 29%,#e6dfc5 0 1px,transparent 2px),radial-gradient(circle at 72% 16%,#e6dfc5 0 1px,transparent 2px),radial-gradient(circle at 84% 43%,#e6dfc5 0 1px,transparent 2px)}
.star-art figcaption{position:relative;font:13px/1.6 var(--sans);color:#c9d2d1;padding:14px clamp(24px,5vw,60px) 0;margin:0;max-width:80ch}
body.story-edition .star-crossing .crossing-night{margin:0;padding:35px clamp(24px,5vw,60px) 55px;background:transparent;border:0}
body.story-edition .star-crossing .crossing-night h3{font-size:clamp(36px,5vw,68px);max-width:18ch;margin:25px 0 32px}
body.story-edition .star-crossing .crossing-night>p:not(.eyebrow):not(.crossing-memory-credit){max-width:56ch}
.testimony-archive{margin:55px 0 95px;grid-template-columns:.85fr 1.3fr}
.testimony-archive .archive-sheet{padding:16px}
.hong-kong-archive{position:relative;margin:90px 0 80px;padding-top:65px;isolation:isolate}
.archive-place{font:clamp(55px,10vw,150px)/.85 var(--sans);font-weight:600;letter-spacing:-.07em;color:#bdc4bb;margin:0 0 -15px;position:relative;z-index:-1;white-space:nowrap;max-width:100%}
.archive-place>.place-year{font-size:1.4em}
.hong-kong-photo{width:87%;margin-left:auto}
.hong-kong-archive>figcaption,.hong-kong-archive>.archive-credit{margin-left:13%;max-width:80ch}
html[lang=zh-Hant] .birth-title,
html[lang=zh-Hant] .archive-narrative h3,
html[lang=zh-Hant] body.story-edition .famine-archive .famine-memory h3{font-family:var(--brush);line-height:1.5;letter-spacing:.02em}
html[lang=zh-Hant] body.story-edition .archive-narrative>p{line-height:1.9}
html[lang=zh-Hant] .birth-title{max-width:5ch}
html[data-motion=off] [data-drift-x],html[data-motion=off] [data-drift-y]{transform:none!important}
@media(max-width:800px){
 .birth-layout,.archive-spread,.famine-archive,.testimony-archive{grid-template-columns:minmax(0,1fr);gap:28px}
 body.story-edition .birth-title{font-size:clamp(46px,9vw,70px);max-width:12ch;margin:8px 0}
 html[lang=zh-Hant] body.story-edition .birth-title{max-width:none}
 .archive-spread{margin-block:55px 70px}
 .archive-sheet{max-width:650px;width:100%}
 .food-report{max-width:420px;justify-self:center;margin-top:10px}
 .famine-archive{margin-block:60px}
 .hong-kong-photo{width:100%}
 .hong-kong-archive>figcaption,.hong-kong-archive>.archive-credit{margin-left:0}
 .hong-kong-archive{padding-top:0;margin-block:65px}
 .star-crossing{margin-block:50px}
 body.story-edition .star-crossing .crossing-night{padding-top:20px}
 body.story-edition .star-crossing .crossing-night h3{font-size:clamp(31px,6vw,48px);letter-spacing:-.025em}
 body.story-edition .star-crossing .crossing-night>p:not(.eyebrow):not(.crossing-memory-credit){font-size:20px}
 [data-drift-x],[data-drift-y]{transform:none!important}
}
@media(max-width:700px){
 .war-archive .horiz-track{grid-template-columns:1fr;gap:30px}
 .js-motion .horiz-track figure{flex-basis:82%;max-width:340px}
 .js-motion body.story-edition .war-archive .horiz-track figure{flex-basis:90%;max-width:none}
 .war-archive .archive-panel .archive-image img{height:auto;max-height:none;width:100%}
 .war-archive .gallery-heading{align-items:flex-start}
 .war-archive .gallery-controls{gap:5px}
 .war-archive .gallery-controls button{width:42px;height:44px;font-size:23px}
 .war-archive .gallery-heading h3{font-size:25px;line-height:1.25}
 .archive-place{font-size:clamp(39px,10vw,70px)}
}
@media(prefers-reduced-motion:reduce){[data-drift-x],[data-drift-y]{transform:none!important}.star-plane{display:none}}
@media print{[data-drift-x],[data-drift-y]{transform:none!important}.archive-spread,.famine-archive,.birth-layout{display:block}.archive-sheet{max-width:500px}.star-plane,.archive-zoom{display:none}.star-crossing{color:#000;background:none}.star-art figcaption{color:#000}.archive-credit{overflow-wrap:anywhere}.hong-kong-photo{width:100%}}
/* Education unfolds as original records beside the years that earned them. */
.education-records{margin:70px 0;scroll-margin-top:110px}
.education-record{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(26px,5vw,64px);align-items:center;padding-block:50px;border-top:1px solid var(--rule);scroll-margin-top:110px}
.education-copy{min-width:0;max-width:560px}
body.story-edition .education-copy h3{font:clamp(30px,3.5vw,46px)/1.15 var(--serif);font-weight:400;letter-spacing:-.025em;margin:16px 0 24px}
body.story-edition .education-copy>p:not(.beat-date){font:21px/1.7 var(--serif);text-wrap:pretty}
.education-record .archive-sheet{transform:none;max-width:none}
.education-record .archive-sheet figcaption strong{font-weight:500;color:var(--ink)}
.graduation-portrait{max-width:203px;margin:30px 0 0}
.graduation-portrait img{display:block;width:100%;height:auto;filter:none}
.graduation-portrait figcaption{font:13px/1.65 var(--sans);color:var(--muted);margin-top:12px}
html[lang=zh-Hant] body.story-edition .education-copy h3{font-family:var(--brush);line-height:1.5;letter-spacing:.02em}
html[lang=zh-Hant] body.story-edition .education-copy>p:not(.beat-date){line-height:1.9}
@media(max-width:800px){.education-record{grid-template-columns:minmax(0,1fr);gap:30px;padding-block:35px}.education-records{margin-block:50px}.education-copy{max-width:none}.graduation-portrait{max-width:203px;margin-inline:auto}.education-record .archive-sheet{width:100%}}
@media print{.education-record{display:block;break-inside:avoid}.education-record .archive-sheet{max-width:600px}.graduation-portrait{max-width:160px}}
.education-key-link{font:16px/1.6 var(--sans);display:inline-block;padding-block:10px;text-underline-offset:4px}
body.story-edition .education-copy>p.artifact-reading{font:14px/1.7 var(--sans);color:var(--muted);margin-top:12px}
.document-reading{grid-column:1/-1;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:8px 0;max-width:850px;width:100%;justify-self:center}
.document-reading summary{font:17px/1.65 var(--sans);padding:12px 0;cursor:pointer;min-height:48px;text-decoration:underline;text-underline-offset:4px}
.document-reading>div{padding:8px 0 20px;max-width:72ch}
.document-reading p{font:20px/1.75 var(--serif);margin:0 0 22px;text-wrap:pretty}
.document-reading p.document-reading-note{font:14px/1.7 var(--sans);color:var(--muted)}
html[lang=zh-Hant] .document-reading p{line-height:1.95}
.gratitude-record .chapter-pullquote{margin-top:32px}
/* Family originals remain complete, with readable captions and native scrolling. */
.student-archive{max-width:820px;margin:34px auto 44px;padding:clamp(12px,2vw,24px);background:#f9f5ec;border:1px solid var(--rule);box-shadow:0 14px 35px #24272114}
.student-archive .archive-panel{margin:0}
.hymn-memory{border-left:2px solid var(--red);padding-left:clamp(20px,3vw,38px)}
body.story-edition .family-archive{margin:65px 0 80px}
.family-archive .horiz-pin{background:#e8e1d3;padding:clamp(18px,3vw,34px)}
.family-archive .gallery-heading{gap:20px;align-items:center}
body.story-edition .family-archive .gallery-heading h3{font:clamp(29px,3.8vw,46px)/1.2 var(--serif);font-weight:400;letter-spacing:-.025em;margin:12px 0 0}
body.story-edition .family-archive p.archive-intro{font:20px/1.7 var(--serif);max-width:70ch;margin:18px 0 25px;text-wrap:pretty}
.family-archive .horiz-track{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr);gap:30px;align-items:start}
.family-archive .archive-panel{margin:0;min-width:0}
body.story-edition .family-archive .archive-image img{width:100%;height:clamp(300px,46vh,410px);object-fit:contain;background:#f9f5ec;object-position:left center}
body.story-edition .family-archive .archive-panel figcaption{font-size:17px;line-height:1.65;max-width:58ch}
.js-motion .family-archive .horiz-track{display:flex}
.js-motion body.story-edition .family-archive .horiz-track figure{flex:0 0 min(66vw,730px);max-width:none;scroll-snap-align:start}
.family-archive .archive-credit{margin-top:20px}
.faith-artwork{margin:60px 0 70px;padding:clamp(22px,4vw,48px);background:#eee8db;border-top:1px solid var(--rule);scroll-margin-top:110px}
body.story-edition .faith-artwork h3{font:clamp(30px,4vw,48px)/1.2 var(--serif);font-weight:400;letter-spacing:-.025em;margin:16px 0 24px}
body.story-edition .faith-artwork>p:not(.beat-date){font:21px/1.7 var(--serif);max-width:62ch;text-wrap:pretty}
.faith-artwork-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.85fr);gap:clamp(24px,4vw,50px);align-items:start;margin:32px 0}
.faith-artwork .archive-panel{margin:0;min-width:0}
.faith-artwork .archive-panel:nth-child(2){padding-top:50px}
.faith-artwork .document-reading{max-width:none}
html[lang=zh-Hant] body.story-edition .family-archive .gallery-heading h3,
html[lang=zh-Hant] body.story-edition .faith-artwork h3{font-family:var(--brush);letter-spacing:.02em;line-height:1.5}
html[lang=zh-Hant] body.story-edition .family-archive p.archive-intro,
html[lang=zh-Hant] body.story-edition .faith-artwork>p:not(.beat-date){line-height:1.9}
@media(max-width:800px){
 .faith-artwork-grid{grid-template-columns:minmax(0,1fr)}
 .faith-artwork .archive-panel:nth-child(2){padding-top:0;max-width:470px;margin-inline:auto}
 .family-archive .gallery-heading{align-items:flex-start}
 .family-archive .gallery-controls{gap:5px;flex-shrink:0}
 .family-archive .gallery-controls button{width:42px;height:44px;font-size:23px}
 .family-archive .horiz-track{grid-template-columns:minmax(0,1fr)}
 .js-motion body.story-edition .family-archive .horiz-track figure{flex-basis:92%}
 body.story-edition .family-archive .archive-image img{height:clamp(240px,43vh,360px);object-position:center}
}
@media(max-width:420px){
 .family-archive .gallery-heading{flex-wrap:wrap}
 .family-archive .gallery-controls{margin-left:auto}
 body.story-edition .family-archive .gallery-heading h3{font-size:29px}
 .faith-artwork{padding:20px 16px}
}
@media print{
 .student-archive,.faith-artwork,.family-archive .horiz-pin{background:none;box-shadow:none}
 .family-archive .horiz-track,.js-motion .family-archive .horiz-track,.faith-artwork-grid{display:block;transform:none!important}
 .family-archive .horiz-wrap{overflow:visible}
 .family-archive .archive-panel,.faith-artwork .archive-panel{max-width:500px;margin-bottom:24px}
 body.story-edition .family-archive .archive-image img{height:auto}
}

/* The government law remains a full, uncropped portrait document. */
.reform-spread{scroll-margin-top:105px;align-items:start}
.reform-document{width:100%;max-width:560px;justify-self:center}
