@font-face{font-family:Balsamiq;src:url('assets/journal000/balsamiq-regular.woff2') format('woff2');font-display:swap}
    @font-face{font-family:Balsamiq;src:url('assets/journal000/balsamiq-bold.woff2') format('woff2');font-weight:700;font-display:swap}
    @font-face{font-family:Russo;src:url('assets/journal000/russoone.woff2') format('woff2');font-display:swap}
    :root{--paper:#f3e9d7;--sheet:#fffaf0;--ink:#172b38;--quiet:#52616a;--gold:#edbb53;--red:#a44731;--blue:#214458;--line:#ad9b7d;scroll-behavior:smooth}
    *{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.5 Balsamiq,system-ui,sans-serif}a{color:inherit}img{display:block;max-width:100%;height:auto}button{font:inherit}h1,h2,h3{font-family:Russo,Balsamiq,sans-serif;line-height:1.1;font-weight:400;text-wrap:balance}p{max-width:65ch;text-wrap:pretty}strong{font-weight:700}a:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:4px}.skip{position:absolute;left:-9999px;top:8px;background:var(--gold);padding:10px;z-index:30}.skip:focus{left:8px}
    .top{position:sticky;top:0;z-index:20;background:#fff9ec;border-bottom:3px solid var(--ink)}.top-inner{width:min(100% - 32px,1320px);margin:auto;min-height:62px;display:flex;align-items:center;gap:18px;justify-content:space-between}.brand{text-decoration:none;font:19px Russo,sans-serif;letter-spacing:.04em}.top nav{display:flex;gap:10px;align-items:center}.top nav a{padding:8px 10px;text-decoration:none;font-size:15px;border-radius:4px}.top nav a:hover{background:var(--gold)}.top .issue{border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}
    .review{background:var(--blue);color:#fff8e6;padding:8px 16px;text-align:center;font-size:14px;letter-spacing:.02em}.review strong{color:var(--gold)}
    .wrap{width:min(100% - 40px,1320px);margin-inline:auto}.hero{padding:34px 0 52px}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:26px;align-items:stretch}.hero-copy{background:var(--sheet);border:3px solid var(--ink);box-shadow:7px 7px 0 var(--gold);padding:clamp(24px,5vw,62px);display:flex;flex-direction:column;justify-content:space-between}.eyebrow{margin:0 0 24px;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;color:var(--red)}.hero h2{font-size:clamp(44px,6.2vw,92px);margin:0 0 22px;overflow-wrap:normal}.hero-deck{font-size:clamp(21px,2.2vw,29px);line-height:1.25;margin:0 0 28px}.byline{border-top:2px solid var(--line);padding-top:16px;color:var(--quiet);font-size:16px}.hero-figure{margin:0;background:var(--blue);border:3px solid var(--ink);box-shadow:7px 7px 0 #b7a78c;display:flex;flex-direction:column}.hero-figure img{width:100%;height:100%;max-height:660px;object-fit:contain;object-position:center}.hero-figure figcaption{background:var(--sheet);border-top:2px solid var(--ink);padding:12px 16px;font-size:14px}
    .lead{max-width:1050px;margin:35px auto 0;padding:0 12px;text-align:center}.lead p{margin:0 auto;font-size:clamp(22px,3vw,34px);line-height:1.3;max-width:44ch}.lead .mark{font:48px Russo;color:var(--red);line-height:1}.chapter-map{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:44px 0 0}.chapter-map a{display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-height:105px;padding:14px;background:var(--sheet);border:2px solid var(--ink);box-shadow:3px 3px 0 #c9b69b;text-decoration:none;font-size:15px;font-weight:700}.chapter-map a:hover{background:var(--gold)}.chapter-map b{font:23px Russo;color:var(--red)}
    main{overflow:hidden}.entry{padding:80px 0;border-top:3px solid var(--ink);scroll-margin-top:70px}.entry:nth-of-type(even){background:#e9e0cf}.entry-head{display:flex;align-items:baseline;gap:18px;margin-bottom:34px;border-bottom:2px solid var(--ink)}.number{font:clamp(54px,7vw,96px) Russo;color:var(--red);line-height:1}.entry h2{font-size:clamp(33px,4.5vw,60px);margin:0 0 14px}.entry .date{font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--quiet);font-size:14px;margin:0 0 14px}.entry-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.85fr);gap:clamp(24px,6vw,90px);align-items:start}.entry p{font-size:clamp(17px,1.7vw,21px);margin:0 0 20px}.entry .pull{font:clamp(23px,2.6vw,34px)/1.25 Russo,sans-serif;color:var(--red);max-width:23ch;margin:35px 0 0}.paper{background:var(--sheet);border:3px solid var(--ink);box-shadow:6px 6px 0 #c6ad82;padding:26px}.paper h3{font-size:25px;margin:0 0 18px}.paper p{font-size:17px;margin:0 0 14px}.paper .small{font-size:14px;color:var(--quiet)}.stamp{display:inline-block;border:3px solid var(--red);padding:5px 9px;transform:rotate(-5deg);font:14px Russo;color:var(--red);margin-bottom:22px}.photo{margin:0;background:var(--blue);border:3px solid var(--ink);box-shadow:6px 6px 0 #c6ad82}.photo img{width:100%;max-height:520px;object-fit:contain}.photo figcaption{background:var(--sheet);padding:12px 15px;font-size:14px;border-top:2px solid var(--ink)}.point-logo{width:min(100%,340px);margin:0 auto 18px}.source-link{font-size:14px;font-weight:700;text-decoration-thickness:2px;text-underline-offset:3px}.tile-list{display:grid;gap:10px}.tile-list div{border:2px solid var(--ink);padding:13px 15px;background:#fff}.tile-list strong{display:block;font-size:15px}.tile-list span{font-size:14px;color:var(--quiet)}.entry.flight{background:var(--blue);color:var(--sheet)}.flight .entry-head{border-color:var(--gold)}.flight .number,.flight .date,.flight .pull{color:var(--gold)}.flight .photo{background:#0d2635;box-shadow:6px 6px 0 var(--gold)}.flight .photo figcaption{color:var(--ink)}.flight .paper{color:var(--ink)}.final{background:#152734;color:var(--sheet);padding:86px 0 100px;text-align:center}.final .eyebrow{color:var(--gold)}.final h2{font-size:clamp(44px,6vw,78px);max-width:15ch;margin:0 auto 22px}.final p{margin:0 auto 24px;font-size:clamp(19px,2vw,26px);max-width:48ch}.final .music{margin:35px auto 0;max-width:730px;border:2px solid var(--gold);padding:22px;background:#203c4d;text-align:left}.final .music h3{margin:0 0 10px;font-size:27px}.final .music p{font-size:16px}.final .music a{color:var(--gold);font-weight:700}.final .music small{font-size:13px;color:#cbd7d7}.final .pending{display:inline-block;padding:12px 16px;border:2px solid var(--gold);color:var(--gold);font-weight:700;margin-top:12px}.editorial{background:#fff9ef;padding:50px 0;font-size:15px}.editorial h2{font-size:30px}.editorial details{border-top:2px solid var(--ink);padding:16px 0}.editorial summary{cursor:pointer;font-weight:700}.editorial li{margin:8px 0}.editorial p{font-size:15px}footer{background:var(--ink);color:#fff9ed;padding:25px 0;font-size:14px}footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
    .bio{padding:20px 0 58px}.bio-shell{background:#fff9ec;border:3px solid var(--ink);box-shadow:7px 7px 0 var(--red);padding:clamp(22px,4vw,48px)}.bio-head{display:flex;align-items:baseline;gap:18px;border-bottom:2px solid var(--ink);margin-bottom:22px}.bio-head .number{font-size:clamp(44px,5vw,70px)}.bio h2{font-size:clamp(30px,4vw,50px);margin:0 0 13px}.bio-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.48fr);gap:clamp(20px,4vw,54px)}.bio p{margin:0 0 15px}.bio .paper{box-shadow:4px 4px 0 var(--gold)}.bio .paper h3{font-size:24px}.bio .paper a{display:block;margin:9px 0;font-size:15px;font-weight:700}.bio .small{font-size:13px;color:var(--quiet)}
    .documentary{margin-top:22px}.documentary img{background:#ddd;max-height:470px}.caseboard{background:#efe2c9;border:3px solid var(--ink);box-shadow:6px 6px 0 var(--gold);padding:clamp(18px,3vw,30px)}.caseboard .eyebrow{margin-bottom:12px}.caseboard h3{font-size:clamp(25px,2.6vw,36px);margin:0 0 20px}.case-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.case-steps div{min-height:110px;border:2px solid var(--ink);padding:12px;background:var(--sheet)}.case-steps b{display:block;font:25px Russo;color:var(--red);margin-bottom:4px}.case-steps span{display:block;font-size:15px;line-height:1.3}.caseboard .small{margin:18px 0 0;font-size:13px;color:var(--quiet)}
    @media(max-width:950px){.chapter-map{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-grid{grid-template-columns:1fr}.hero-figure img{max-height:none}.entry-body{gap:26px}.bio-grid{grid-template-columns:1fr}}
    @media(max-width:650px){body{font-size:16px}.top-inner{min-height:56px}.top nav a:nth-child(2){display:none}.top .issue{font-size:13px}.brand{font-size:16px}.hero{padding:19px 0 38px}.wrap{width:min(100% - 30px,1320px)}.hero-grid{gap:16px}.hero-copy{padding:24px}.eyebrow{font-size:12px}.hero-figure{box-shadow:5px 5px 0 #b7a78c}.lead{margin-top:30px}.chapter-map{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:32px}.chapter-map a{min-height:88px;padding:10px;font-size:14px}.entry{padding:54px 0;scroll-margin-top:58px}.entry-head{align-items:start;gap:10px}.number{font-size:48px}.entry h2{font-size:32px}.entry-body{grid-template-columns:1fr}.entry .pull{margin:18px 0 0}.case-steps{grid-template-columns:1fr}.case-steps div{min-height:0}.paper{padding:20px}.final{padding:60px 0}.final .music{text-align:center}}
    @media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}
  .friends-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:32px}.friends-grid .paper{height:100%}.friends-grid h3 a{color:inherit;text-decoration-thickness:2px;text-underline-offset:4px}@media(max-width:700px){.friends-grid{grid-template-columns:1fr}}
  .journey-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:38px}.journey-steps div{border:2px solid var(--gold);padding:18px;background:#183b4f;min-width:0}.journey-steps b{display:block;color:var(--gold);font:28px Russo}.journey-steps strong{display:block;margin:5px 0 8px;font-size:16px}.journey-steps span{font-size:14px}.journey-cta{display:inline-block;margin:8px 0 14px;padding:15px 20px;border:2px solid var(--gold);background:var(--gold);color:var(--ink);font:20px Russo;text-decoration:none;box-shadow:5px 5px 0 #0a1720}.journey-cta:hover{background:#ffe09b}.journey-cta:focus-visible{outline-color:#fff}.final .preview-note{font-size:14px;color:#cbd7d7}.final .music{margin-top:28px}@media(max-width:950px){.journey-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.journey-steps{grid-template-columns:1fr}.journey-steps div{padding:14px}.journey-cta{font-size:17px;max-width:100%}}
  .final .welcome{font:clamp(16px,2.2vw,27px) Russo,sans-serif;letter-spacing:.08em;color:var(--gold);margin:18px auto 22px}
.paper-spaced{margin-top:24px}
.top .issue{background:var(--gold);font-weight:700}
.top .issue:hover{background:#ffe09b}

.journal-shortcuts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:22px 0 8px}.journal-shortcuts a{display:inline-block;border:2px solid var(--ink);padding:12px 16px;background:var(--sheet);text-decoration:none;font-weight:700;box-shadow:3px 3px 0 var(--ink)}.journal-shortcuts a:last-child{background:var(--gold)}

.imagine-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.imagine-actions a{display:inline-flex;align-items:center;min-height:44px;padding:10px 14px;border:2px solid var(--gold);background:var(--gold);color:var(--ink);font-weight:700;text-decoration:none}.imagine-actions a:hover{background:#ffe09b}.final .music .imagine-note{font-size:13px;color:#cbd7d7;margin:14px 0 0}

.portal{min-height:calc(100svh - 102px);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(14px,2.4vw,34px);align-items:stretch;padding-block:clamp(22px,3vw,46px)}.portal-copy{background:var(--blue);color:#fff9ec;border:3px solid var(--ink);box-shadow:8px 8px 0 var(--gold);padding:clamp(24px,4vw,58px);display:flex;flex-direction:column;justify-content:center;min-width:0}.portal-copy .eyebrow{color:var(--gold);margin-bottom:18px}.portal h1{font-size:clamp(38px,4.7vw,70px);line-height:1.04;margin:0 0 22px}.portal-intro{font-size:clamp(18px,2vw,24px);line-height:1.42;margin:0 0 22px}.portal-author{font-size:15px;color:#d8e3e4;margin:0 0 26px}.portal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:15px}.portal-enter{display:inline-flex;align-items:center;justify-content:center;padding:13px 25px;background:var(--gold);border:3px solid var(--ink);box-shadow:4px 4px 0 #0d1e27;color:var(--ink);font:clamp(20px,2vw,27px) Russo;text-decoration:none;min-height:62px}.portal-enter:hover{background:#ffe09b}.portal-return{font-weight:700;color:#fff9ec;text-underline-offset:4px}.portal-figure{margin:0;border:3px solid var(--ink);box-shadow:8px 8px 0 var(--red);background:var(--sheet);display:flex;flex-direction:column;min-width:0}.portal-figure picture{flex:1;display:block;min-height:0}.portal-figure img{height:100%;width:100%;object-fit:cover;object-position:center}.portal-figure figcaption{padding:12px 17px;font-size:14px;border-top:2px solid var(--ink)}#welcome,#cover,#ecosystem,#finale{scroll-margin-top:68px}@media(max-width:780px){.portal{grid-template-columns:1fr;min-height:0}.portal-copy{min-height:460px}.portal-figure picture{height:430px}.portal-figure img{object-position:center 54%}}@media(max-width:650px){.portal{padding-block:16px 38px;gap:14px}.portal-copy{min-height:0;padding:24px;box-shadow:5px 5px 0 var(--gold)}.portal h1{font-size:clamp(33px,9vw,48px)}.portal-intro{font-size:17px}.portal-author{margin-bottom:18px}.portal-actions{gap:10px}.portal-enter{min-height:54px;font-size:20px;padding:9px 16px}.portal-return{font-size:14px}.portal-figure{box-shadow:5px 5px 0 var(--red)}.portal-figure picture{height:320px}.portal-figure figcaption{font-size:13px}}
.portal-image-link{display:block;flex:1;min-height:0;overflow:hidden}.portal-image-link:hover img{filter:brightness(1.08)}.portal-image-link:focus-visible{outline:4px solid var(--red);outline-offset:-4px}@media(max-width:780px){.portal-image-link{height:430px;flex:none}}@media(max-width:650px){.portal-image-link{height:320px}}
.portal-copy{padding:clamp(20px,3vw,40px)}.portal-copy .eyebrow{margin-bottom:12px}.portal h1{font-size:clamp(36px,4vw,58px)}.portal-intro{font-size:clamp(17px,1.7vw,21px);line-height:1.35}.portal-author{margin-bottom:14px}@media(max-width:650px){.portal-copy{padding:24px}.portal h1{font-size:clamp(33px,9vw,48px)}.portal-intro{font-size:17px}}

.ecosystem{background:#efe2c9;padding:clamp(58px,8vw,110px) 0;color:var(--ink)}.ecosystem h2{max-width:900px;font:clamp(32px,4.6vw,62px)/1.08 Russo,sans-serif;margin:10px 0 22px}.ecosystem-lead{max-width:870px;font-size:clamp(17px,2vw,22px);line-height:1.5}.ecosystem-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:34px 0}.ecosystem-card{background:var(--sheet);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--red);padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;min-width:0}.ecosystem-card span{font:14px Russo;color:var(--red)}.ecosystem-card h3{font:clamp(20px,2.3vw,30px)/1.15 Russo,sans-serif;margin:16px 0}.ecosystem-card p{margin:0 0 20px}.ecosystem-card a{margin-top:auto;font-weight:700}.ecosystem-close{font-size:clamp(18px,2.2vw,25px);max-width:850px;font-weight:700}.telegram-cta{display:inline-block;margin:8px 0 14px 18px;color:var(--gold);font-weight:700}.telegram-cta:focus-visible{outline:3px solid #fff}@media(max-width:700px){.ecosystem-grid{grid-template-columns:1fr}.telegram-cta{display:block;margin:5px 0 20px}.ecosystem-card{box-shadow:4px 4px 0 var(--red)}}

.language-switcher{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;padding:8px;background:#fff9ec;color:var(--ink)}
#cover,#contents,#bio,.entry,.final{scroll-margin-top:90px}
html:lang(zh-CN) body,html:lang(zh-CN) h1,html:lang(zh-CN) h2,html:lang(zh-CN) h3{font-family:system-ui,"Microsoft YaHei",sans-serif;letter-spacing:normal;text-transform:none;line-break:strict}
@media(max-width:650px){.top-inner{flex-wrap:wrap;gap:8px;padding-block:8px}.top nav{flex-wrap:wrap;width:100%;gap:6px}.top nav a{white-space:normal;max-width:100%}#cover,#contents,#bio,.entry,.final{scroll-margin-top:150px}}

/* Preserve the complete accepted illustration: the old fixed-height cover box
   cropped the sides of the 16:9 art on phones. Let the image own its height. */
.portal-image-link{flex:none;height:auto;overflow:visible;aspect-ratio:16/9}
.portal-figure img{display:block;width:100%;height:auto;object-fit:contain;object-position:center}
.portal h1,.ecosystem-card h3{max-width:100%;overflow-wrap:normal}
.portal-figure,.hero-figure,.photo,.paper,.hero-copy,.bio-grid>*,.entry-body>*{min-width:0}
@media(max-width:780px){
 .portal-image-link,.portal-figure picture{height:auto;aspect-ratio:16/9}
 .portal-figure img,.hero-figure img,.photo img{width:100%;height:auto;max-height:none;object-fit:contain}
 .hero-figure{align-self:start}
}
@media(max-width:650px){
 .portal h1{font-size:clamp(28px,8vw,42px)}
 .portal-copy{padding:20px}
 .portal-actions>a,.journal-shortcuts a,.imagine-actions a{max-width:100%;overflow-wrap:normal;min-height:44px}
 .top nav a{min-height:44px;display:inline-flex;align-items:center}
}
@media(max-width:780px) and (max-height:520px){
 .top{position:relative}
 #welcome,#cover,#contents,#bio,.entry,.final,#ecosystem{scroll-margin-top:16px}
}
/* Bounded public reading pass: retain the journal's paper, ink and artwork. */
main :is(h1,h2,h3,p,li),.portal-actions a,.journal-shortcuts a,.imagine-actions a{word-break:normal;overflow-wrap:normal;hyphens:none}
.portal-figure img,.hero-figure img,.photo img{height:auto;max-height:none;object-fit:contain}
.fant-atlas-footer{background:#172b38;color:#edbb53;padding:24px max(22px,calc((100vw - 1360px)/2));}
.atlas-final{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;width:100%;min-height:48px;padding:16px 20px;background:#edbb53;color:#172b38;border:2px solid #edbb53;text-decoration:none;box-sizing:border-box;word-break:normal;overflow-wrap:normal;hyphens:none;font-size:16px;line-height:1.5}
.atlas-final :is(strong,span){color:inherit;font-weight:700}
.atlas-final:focus-visible{outline:3px solid #98b9ff;outline-offset:5px}
footer .atlas-final{flex-basis:100%;margin-top:20px}
@media(max-width:780px){
 .entry{padding:44px 0}
 .entry-body,.bio-grid,.ecosystem-grid,.hero-grid{grid-template-columns:minmax(0,1fr)}
 .entry :is(p,li),.bio p,.ecosystem-card p{font-size:18px;line-height:1.6}
 .entry :is(h2,h3){font-size:clamp(25px,6.8vw,34px);line-height:1.2;letter-spacing:normal}
 .entry-head{gap:16px;flex-wrap:wrap}
 .paper,.caseboard,.ecosystem-card{min-width:0;max-width:100%;box-sizing:border-box}
 .paper{padding:20px}
 .paper :is(h2,h3){font-size:25px;line-height:1.25}
 .case-steps div{min-height:0}
 .case-steps span{font-size:16px;line-height:1.5}
 .chapter-map a,.portal-actions>a,.journal-shortcuts a,.imagine-actions a{min-height:48px;white-space:normal;overflow-wrap:normal;word-break:normal;line-height:1.5}
 .portal h1{font-size:clamp(28px,8vw,42px);line-height:1.12}
 .portal-intro,.hero-deck,.final>div>p{font-size:18px;line-height:1.6}
 .atlas-final{font-size:16px;padding:14px 16px}
}
@media(prefers-reduced-motion:reduce){.atlas-final{transition:none}}
/* The music block's gold text must not override its gold action buttons. */
.final .music .imagine-actions a,.final .music .imagine-actions a:visited{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.final .music .imagine-actions a:hover,.final .music .imagine-actions a:focus-visible{background:#ffe09b;color:var(--ink);border-color:#ffe09b}
.final .music .imagine-actions a:focus-visible{outline:3px solid #fff9ec;outline-offset:5px}
.portal-actions .portal-enter:visited,.final .journey-cta:visited{color:var(--ink)}
/* Keep the welcome sentence whole on the narrowest journal reading column. */
@media(max-width:780px){.final h2{font-size:clamp(28px,7.5vw,42px);line-height:1.2;word-break:normal;overflow-wrap:normal;hyphens:none;max-width:100%}}

/* Fit display type to the reading column; never split a word to conceal overflow. */
h1,h2,h3,button,label,summary,.eyebrow,.stamp{word-break:normal;overflow-wrap:normal;hyphens:none}
h1,h2,h3{min-width:0;max-width:100%}
@media(max-width:780px){
 .hero h2{font-size:clamp(30px,8.2vw,56px);line-height:1.16;max-width:100%}
 .hero-copy{padding:clamp(20px,5vw,32px)}
 .bio-head{flex-wrap:wrap;gap:12px}
 .bio-head>h2,.entry-head>div{min-width:0;flex:1 1 220px}
 .ecosystem h2{font-size:clamp(28px,7.5vw,42px);line-height:1.2}
 .top nav a,.journey-cta,.telegram-cta,.portal-actions a,.journal-shortcuts a,.imagine-actions a{min-width:0;max-width:100%;white-space:normal;word-break:normal;overflow-wrap:normal;hyphens:none}
 .stamp{max-width:100%;line-height:1.4}
}
/* The two-column portal still needs room for the unbroken project name. */
@media(min-width:781px) and (max-width:1100px){.portal h1{font-size:clamp(28px,3.5vw,38px);line-height:1.16}}

/* Biographical notes share the journal's paper cards and source captions. */
.people-column{display:grid;gap:24px;min-width:0;align-content:start}
.person-portrait{margin:0 0 20px;border:2px solid var(--line);background:var(--paper)}
.person-portrait img{width:100%;height:auto}
.person-portrait figcaption{padding:10px 12px;border-top:1px solid var(--line);font:14px/1.5 Balsamiq,system-ui,sans-serif;color:var(--quiet)}
.person-art .portrait-frame{position:relative;aspect-ratio:4/3;overflow:hidden}
.person-art .portrait-frame img{position:absolute;bottom:0;left:-50%;width:200%;max-width:none;height:auto}
.friend-mark{display:block;width:120px;max-width:100%;margin:0 0 20px}
.friend-mark img{width:100%;height:auto}
.friends-single{grid-template-columns:minmax(0,1fr);max-width:730px}
.friend-profile h3{font-size:clamp(22px,3vw,30px);line-height:1.25;overflow-wrap:normal;word-break:normal;hyphens:none}
.people-recommendation{margin-top:24px}
@media(max-width:780px){.entry .friend-profile h3{font-size:clamp(22px,6vw,27px)}}
.friends-single .person-portrait{max-width:320px}

.people-column h3 strong,.friend-profile h3 strong{font-weight:inherit}

/* The emotional prologue precedes the journal's biographical chronology. */
.dedication{padding-block:0 58px;scroll-margin-top:150px}
.dedication-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.55fr);gap:clamp(24px,4vw,54px);align-items:center;padding:clamp(20px,4vw,48px)}
.dedication-copy{min-width:0}
.dedication-copy h2{font-size:clamp(30px,4vw,50px);line-height:1.2;margin:0 0 24px}
.dedication-copy h2 strong{font-weight:inherit}
.dedication-copy p:not(.eyebrow){font-size:clamp(18px,1.9vw,24px);line-height:1.6;margin:0 0 20px}
.dedication-card .person-portrait{margin:0;width:100%;max-width:360px;justify-self:center}
@media(max-width:780px){.dedication-card{grid-template-columns:minmax(0,1fr)}.dedication{padding-bottom:44px}.dedication-copy h2{font-size:32px}.dedication-copy p:not(.eyebrow){font-size:18px}}
.chapter-map .dedication-link{grid-column:1/-1;min-height:48px;justify-content:center;background:var(--gold)}

/* Archive photographs stay in the story and retain every edge of their frame. */
.archive-sequence{margin-block:28px 36px;min-width:0;max-width:100%}
.archive-heading{font-size:clamp(22px,2.5vw,30px);line-height:1.25;margin:0 0 16px}
.archive-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:18px;align-items:start;min-width:0}
.archive-grid--single{grid-template-columns:minmax(0,1fr);max-width:560px}
.archive-photo{margin:0;min-width:0;max-width:100%;background:var(--sheet);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--line)}
.archive-photo picture{display:block;min-width:0;max-width:100%}
.archive-photo img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.archive-photo figcaption{padding:12px 14px;border-top:1px solid var(--line);font-size:16px;line-height:1.5;color:var(--quiet);word-break:normal;overflow-wrap:normal;hyphens:none}
.archive-note{font-size:17px;line-height:1.6;max-width:70ch;margin:16px 0 0}
@media(max-width:650px){.archive-grid{grid-template-columns:minmax(0,1fr);gap:18px}.archive-sequence{margin-block:24px 30px}.archive-heading{font-size:24px}}
/* A family recommendation, kept in the normal reading flow. */
.family-channel{scroll-margin-top:110px;display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;margin-top:32px;padding-top:28px;border-top:2px solid var(--ink);min-width:0}
.family-channel-image{margin:0;width:160px;max-width:100%}
.family-channel-image img{display:block;width:100%;height:auto;border:2px solid var(--ink)}
.family-channel-copy{min-width:0}
.family-channel-copy h3{font-size:clamp(24px,3vw,32px);line-height:1.2;margin:8px 0 16px;overflow-wrap:break-word}
.dedication-copy .family-channel-copy p:not(.eyebrow){font-size:18px;line-height:1.6}
.family-channel-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;max-width:100%;padding:14px 18px;background:var(--gold);border:2px solid var(--ink);color:var(--ink);text-decoration:none;font-size:18px;font-weight:700;line-height:1.35}
.family-channel-button svg{flex:0 0 22px}
.family-channel-button:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
@media(max-width:650px){.family-channel{grid-template-columns:minmax(0,1fr);gap:20px}.family-channel-button{display:flex;width:100%}}

/* Editorial motion follows reading milestones without reflowing the text. */
@media(prefers-reduced-motion:no-preference){
 [data-motion="ready"]{opacity:.78;transform:translate3d(0,12px,0)}
 [data-motion="seen"]{animation:fant-journal-arrive .62s cubic-bezier(.2,.72,.2,1) both}
 @keyframes fant-journal-arrive{from{opacity:.78;transform:translate3d(0,12px,0)}to{opacity:1;transform:none}}
 .portal-image-link img{transition:filter .3s ease,transform .7s cubic-bezier(.2,.72,.2,1)}
 @media(hover:hover){.portal-image-link:hover img{transform:scale(1.012)}}
 .portal-actions a,.journal-shortcuts a,.chapter-map a,.ecosystem-card a,.final .journey-cta{transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease}
 .portal-actions a:is(:hover,:focus-visible),.journal-shortcuts a:is(:hover,:focus-visible),.chapter-map a:is(:hover,:focus-visible),.ecosystem-card a:is(:hover,:focus-visible),.final .journey-cta:is(:hover,:focus-visible){transform:translateY(-2px)}
 .ecosystem-card{transition:background-color .25s ease,box-shadow .25s ease}
 .ecosystem-card:hover{background-color:#fff9ec}
}
@media(max-width:780px) and (prefers-reduced-motion:no-preference){
 [data-motion="ready"]{transform:translate3d(0,8px,0)}
 [data-motion="seen"]{animation-duration:.48s}
}
@media(prefers-reduced-motion:reduce){[data-motion]{opacity:1!important;transform:none!important;animation:none!important}}

/* On a phone the invitation opens with the actual world illustration. */
@media(max-width:650px){
 .portal{display:flex;flex-direction:column;gap:14px}
 .portal-figure{order:0}
 .portal-copy{order:1;padding:20px}
 .portal-figure img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
 .portal-figure figcaption{padding:10px 12px;font-size:14px;line-height:1.45}
 .portal h1{font-size:clamp(29px,8vw,38px);line-height:1.08;margin-bottom:14px}
 .portal-intro{font-size:16px;line-height:1.5;margin-bottom:16px}
 .portal-copy .eyebrow{font-size:11px;margin-bottom:12px}
}
/* The desktop illustration keeps its natural card height beside longer copy. */
@media(min-width:781px){.portal{min-height:0;align-items:center}.portal-figure{align-self:center}.portal-figure picture{flex:none}}

/* Optional project tools and complete issues remain inside their own route card. */
.ecosystem-card>a{display:inline-flex;align-items:center;min-height:44px;line-height:1.4}
.ecosystem-card .ecosystem-secondary{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:17px}
.ecosystem-issues{display:grid;gap:4px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.ecosystem-issues a{display:inline-flex;align-items:center;min-height:44px;line-height:1.4;font-size:17px}
.ecosystem-issues a:focus-visible,.ecosystem-secondary:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
