
.portfolio-page.project-reading .portfolio-main .reading-feedback .research-scope{padding-top:20px;border-top:1px solid rgba(41,48,55,.14)}
.portfolio-page.project-reading .portfolio-main .reading-feedback .research-scope strong{display:block;margin-bottom:6px;color:var(--ink);font-weight:500}
.portfolio-page.project-reading .portfolio-main .reading-feedback .research-observation>.eyebrow{margin-bottom:8px}
.portfolio-page.project-reading .portfolio-main .reading-feedback .research-observation>p:last-child{margin-bottom:0}
.portfolio-page.project-reading .portfolio-main .reading-future-copy{max-width:68ch}
.portfolio-page.project-reading .portfolio-main .reading-proposed-uses{display:grid;gap:18px;list-style:none;margin:24px 0;padding:0}
.portfolio-page.project-reading .portfolio-main .reading-proposed-uses li{display:grid;grid-template-columns:135px minmax(0,1fr);gap:18px;margin:0;padding:0}
.portfolio-page.project-reading .portfolio-main .reading-proposed-uses strong{font-weight:500}
.portfolio-page.project-reading .portfolio-main .reading-proposed-uses p{margin:0;color:var(--muted)}
.portfolio-page.project-reading .portfolio-main .reading-future .research-scope{margin:24px 0 0;padding-top:20px;border-top:1px solid var(--line)}
.portfolio-page.project-reading .portfolio-main .reading-rule-notes{margin-top:24px}
.portfolio-page .portfolio-main .reading-specimen{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}

/* Prompt, evidence, and lesson are separate layers of the same argument. */
.portfolio-page .portfolio-main .lecture-persona>.editorial-section-body{padding:0;background:transparent;border-radius:0}
.portfolio-page .portfolio-main .lecture-persona-intro{max-width:64ch;margin-bottom:24px}
.portfolio-page .portfolio-main .lecture-persona-intro blockquote{max-width:44ch;font-size:clamp(21px,2vw,26px);line-height:1.45}
.portfolio-page .portfolio-main .lecture-assumptions{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px 40px;margin:0}
.portfolio-page.project-lecture .portfolio-main .lecture-generated>p:last-child{margin-bottom:0}
.portfolio-page.project-lecture .portfolio-main .lecture-persona-scope{grid-column:1/-1;margin:0;padding-top:20px;border-top:1px solid rgba(41,48,55,.14);max-width:84ch}
.portfolio-page .portfolio-main .lecture-annotation-layer{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px 40px;margin-top:36px;align-items:start}
.portfolio-page.project-lecture .portfolio-main .annotation-intro{font-weight:500;margin:0}
.portfolio-page.project-lecture .portfolio-main .annotation-intro>span{font-weight:400}
.portfolio-page.project-lecture .portfolio-main .assumption-notes details+details{border-top:1px solid var(--line)}
.portfolio-page.project-lecture .portfolio-main .assumption-notes summary{min-height:68px}
.portfolio-page.project-lecture .portfolio-main .assumption-notes details>div{max-width:66ch}

/* One process surface replaces three separate cards. */
.portfolio-page .portfolio-main .lecture-sprint{padding:var(--portfolio-panel-pad);gap:40px}
.portfolio-page .portfolio-main .lecture-sprint>li{padding:0;background:transparent;border-radius:0}
.portfolio-page .portfolio-main .lecture-sprint>li:not(:last-child)::after{right:-20px;top:42px;color:var(--ink)}
.portfolio-page .portfolio-main .lecture-practice>.editorial-section-body{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center}
.portfolio-page.project-lecture .portfolio-main .lecture-practice-story{max-width:50ch}
.portfolio-page.project-lecture .portfolio-main .lecture-practice-story .research-scope{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.portfolio-page.project-lecture .portfolio-main .lecture-framework{padding-top:12px}
.portfolio-page.project-lecture .portfolio-main .lecture-framework>details+details{margin-top:8px}


@media(max-width:760px){
 .portfolio-page .portfolio-main :is(.reading-specimen,.lecture-assumptions,.lecture-annotation-layer,.lecture-practice>.editorial-section-body){grid-template-columns:minmax(0,1fr)}
 .portfolio-page.project-reading .portfolio-main .reading-proposed-uses li{grid-template-columns:minmax(0,1fr);gap:4px}
 .portfolio-page .portfolio-main .lecture-sprint{gap:32px}
 .portfolio-page .portfolio-main .lecture-sprint>li:not(:last-child)::after{top:auto;bottom:-16px;left:50%;right:auto;transform:translate(-50%,50%)}
 .portfolio-page.project-lecture .portfolio-main .lecture-generated{padding-top:20px;border-top:1px solid rgba(41,48,55,.14)}
 .portfolio-page.project-lecture .portfolio-main .lecture-persona-scope{grid-column:1}
 .portfolio-page .portfolio-main .lecture-annotation-layer{gap:12px}
 .portfolio-page .portfolio-main .lecture-persona-intro blockquote{font-size:22px}
}



/* R17: each comparison has a clear reading surface; supporting records stay optional. */
.portfolio-page:is(.project-industry,.project-terakoya) .systems-fold > summary{font-size:16px;min-height:56px}
.portfolio-page:is(.project-industry,.project-terakoya) :is(.systems-note){font-size:15px;line-height:1.6}
.portfolio-page:is(.project-industry,.project-terakoya) .systems-fold-body > p{max-width:68ch;margin:0 0 20px}
.portfolio-page:is(.project-industry,.project-terakoya) .reference-note{padding:16px 20px;background:var(--portfolio-panel);border-radius:8px;max-width:none}
.portfolio-page:is(.project-industry,.project-terakoya) .section-takeaway{font-size:19px;line-height:1.5;font-weight:450;max-width:55ch;margin:0 0 16px}

/* Industry: source boards -> shared comparison -> usable handover. */
.portfolio-page.project-industry .industry-field-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--portfolio-gap);align-items:start;max-width:none}
.portfolio-page.project-industry .industry-field-copy > p{margin:0;max-width:58ch}
.portfolio-page.project-industry .industry-workshop-gallery{gap:var(--portfolio-gap);margin-top:28px}
.portfolio-page.project-industry .industry-workshop-gallery img{height:clamp(164px,16vw,238px);aspect-ratio:auto;object-fit:contain}
.portfolio-page.project-industry .industry-workshop-gallery figcaption{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;margin-top:14px}
.portfolio-page.project-industry .artifact-step{font-size:15px;line-height:1.7;color:var(--blue);font-variant-numeric:tabular-nums}
.portfolio-page.project-industry .industry-workshop-gallery figcaption h3{font-size:17px;line-height:1.4;margin:0 0 6px}
.portfolio-page.project-industry .industry-workshop-gallery figcaption p{font-size:15px;line-height:1.6;margin:0;color:var(--muted)}
.portfolio-page.project-industry .industry-framework-intro{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px var(--portfolio-gap);align-items:start}
.portfolio-page.project-industry .industry-framework-reading > p:last-child{margin:0;max-width:55ch}
.portfolio-page.project-industry .industry-output-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0;padding:0}
.portfolio-page.project-industry .industry-output-counts > div{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.portfolio-page.project-industry .industry-output-counts dt{font-size:15px;line-height:1.5;max-width:19ch;color:var(--muted)}
.portfolio-page.project-industry .industry-output-counts dd{order:-1;font:400 30px/1.1 var(--title-font,var(--font));margin:0;color:var(--ink);font-variant-numeric:tabular-nums}
.portfolio-page.project-industry .industry-structure-note{grid-column:1/-1;max-width:none;margin:0}
.portfolio-page.project-industry .industry-map-label,.portfolio-page.project-industry .industry-lens-map .systems-note{font-size:15px}
.portfolio-page.project-industry .industry-lens-map button{font-size:15px;min-height:56px;background:#fff}
.portfolio-page.project-industry .industry-lens-map button strong{font-size:15px}
.portfolio-page.project-industry .industry-lens-map button[aria-pressed=true]{background:#fff;border-color:var(--pink);color:var(--ink)}
.portfolio-page.project-industry .industry-classification{background:#fff;align-items:stretch;gap:28px}
.portfolio-page.project-industry .industry-classification > section{display:grid;grid-template-rows:auto auto 1fr;align-content:start;gap:0}
.portfolio-page.project-industry .industry-classification header{min-height:102px}
.portfolio-page.project-industry .industry-classification h3{font-size:20px;line-height:1.3;margin-bottom:8px}
.portfolio-page.project-industry .industry-lens-code,.portfolio-page.project-industry .industry-classification header p{font-size:15px}
.portfolio-page.project-industry .industry-lens-code{margin-bottom:8px}
.portfolio-page.project-industry .industry-lens-intro{font-size:16px;line-height:1.6;margin:0;min-height:78px;max-width:38ch}
.portfolio-page.project-industry .industry-lens-body{margin-top:20px}
.portfolio-page.project-industry .industry-classification li{grid-template-columns:40px minmax(0,1fr);gap:12px;font-size:16px;line-height:1.6;padding:8px 0}
.portfolio-page.project-industry .industry-classification li > span{font-size:15px;line-height:1.8}
.portfolio-page.project-industry .industry-capital-note{font-size:15px;line-height:1.6;margin-top:20px}
.portfolio-page.project-industry .industry-explorer.is-ready:not([data-active-lens=all]) .industry-classification header{min-height:0}
.portfolio-page.project-industry .industry-explorer.is-ready:not([data-active-lens=all]) .industry-lens-intro{min-height:0;margin-top:14px}
.portfolio-page.project-industry .industry-priorities{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.portfolio-page.project-industry .industry-priorities li{margin:0;padding:10px 14px;border-radius:6px;background:#eef4fb;font-size:16px;line-height:1.5}
.portfolio-page.project-industry .industry-deliverables-heading{align-items:flex-start}
.portfolio-page.project-industry .industry-deliverables-heading .systems-note{max-width:44ch}
.portfolio-page.project-industry .industry-solution-gallery figcaption{font-size:15px;line-height:1.6}
.portfolio-page.project-industry .industry-process li > span{font-size:15px}
.portfolio-page.project-industry .industry-process p{font-size:16px}

/* Neo-Terakoya: concerns, an environment, possible activities, and open questions. */
.portfolio-page.project-terakoya .terakoya-basis-copy > p{max-width:63ch}
.portfolio-page.project-terakoya .terakoya-starting-concerns{margin-top:24px}
.portfolio-page.project-terakoya .terakoya-starting-concerns h3{font-size:16px;margin-bottom:12px}
.portfolio-page.project-terakoya .terakoya-starting-concerns ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.portfolio-page.project-terakoya .terakoya-starting-concerns li{margin:0;padding:8px 12px;border-radius:6px;background:var(--portfolio-panel);font-size:15px;line-height:1.5;color:var(--ink)}
.portfolio-page.project-terakoya .terakoya-layer-instrument{padding:var(--portfolio-panel-pad);background:#fff;border-radius:8px;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px var(--portfolio-gap)}
.portfolio-page.project-terakoya .terakoya-layer-figure figcaption{font-size:15px;line-height:1.6;max-width:37ch}
.portfolio-page.project-terakoya .terakoya-layer-preview.layer-selection-announcement{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.portfolio-page.project-terakoya .terakoya-layers{gap:6px}
.portfolio-page.project-terakoya .terakoya-layers li{grid-template-columns:138px minmax(0,1fr);gap:14px;padding:10px 12px;align-items:start}
.portfolio-page.project-terakoya .terakoya-layers li.is-selected{background:#eef4fb}
.portfolio-page.project-terakoya .terakoya-layers button{font-size:16px;min-height:44px}
.portfolio-page.project-terakoya .terakoya-layers button span{font-size:15px}
.portfolio-page.project-terakoya .terakoya-layers p,.portfolio-page.project-terakoya .is-ready .terakoya-layers p{display:block;font-size:16px;line-height:1.6;padding-top:8px}
.portfolio-page.project-terakoya .terakoya-layer-hint{font-size:15px;line-height:1.6;margin:0}
.portfolio-page.project-terakoya .terakoya-sharing{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:18px;align-items:center;padding:var(--portfolio-panel-pad)}
.portfolio-page.project-terakoya .terakoya-sharing h3{font-size:19px;line-height:1.4;margin:0 0 12px}
.portfolio-page.project-terakoya .terakoya-sharing p{margin:0}
.portfolio-page.project-terakoya .terakoya-sharing .sharing-label{font-size:15px;line-height:1.5;color:var(--muted);margin-bottom:14px}
.portfolio-page.project-terakoya .sharing-link{font-size:24px;text-align:center;color:var(--ink)}
.portfolio-page.project-terakoya .terakoya-hypothesis{font-size:19px;line-height:1.5;max-width:55ch;margin:24px 0 0}
.portfolio-page.project-terakoya .terakoya-test-questions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--portfolio-gap);margin:24px 0 0;padding:0}
.portfolio-page.project-terakoya .terakoya-test-questions dt{font-size:17px;line-height:1.4;font-weight:450;margin:0 0 10px}
.portfolio-page.project-terakoya .terakoya-test-questions dd{font-size:16px;line-height:1.6;margin:0;color:var(--muted)}
.portfolio-page.project-terakoya .terakoya-pilot li > span{font-size:15px}
.portfolio-page.project-terakoya .terakoya-pilot p{font-size:16px}


/* Shared rows align all three lenses to their actual content, without staggered cards. */
@supports(grid-template-rows:subgrid){
 @media(min-width:801px){
  .portfolio-page.project-industry .industry-classification{grid-template-rows:auto auto auto;row-gap:16px}
  .portfolio-page.project-industry .industry-classification > section{grid-row:span 3;grid-template-rows:subgrid;row-gap:16px}
  .portfolio-page.project-industry .industry-classification header,.portfolio-page.project-industry .industry-lens-intro{min-height:0}
  .portfolio-page.project-industry .industry-lens-body{margin-top:0}
 }
}

@media(max-width:1100px){
 .portfolio-page.project-industry .industry-classification{gap:22px}
 .portfolio-page.project-terakoya .terakoya-layer-instrument{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
 .portfolio-page.project-terakoya .terakoya-layers li{grid-template-columns:126px minmax(0,1fr);gap:12px;padding:8px}
}
@media(max-width:800px){
 .portfolio-page.project-industry .industry-classification{grid-template-columns:minmax(0,1fr);gap:28px}
 .portfolio-page.project-industry .industry-classification > section{display:block}
 .portfolio-page.project-industry .industry-classification > section+section{padding-top:28px;border-top:1px solid var(--line)}
 .portfolio-page.project-industry .industry-classification header{min-height:0}
 .portfolio-page.project-industry .industry-lens-intro{min-height:0;margin-top:16px;max-width:60ch}
 .portfolio-page.project-industry .industry-classification ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
 .portfolio-page.project-industry .industry-workshop-gallery img{height:200px}
 .portfolio-page.project-terakoya .terakoya-layer-instrument{grid-template-columns:minmax(0,1fr)}
 .portfolio-page.project-terakoya .terakoya-layer-diagram{max-height:260px}
 .portfolio-page.project-terakoya .terakoya-layers li{grid-template-columns:146px minmax(0,1fr)}
 .portfolio-page.project-terakoya .terakoya-test-questions{grid-template-columns:minmax(0,1fr);gap:20px}
 .portfolio-page.project-terakoya .terakoya-test-questions > div{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:16px}
 .portfolio-page.project-terakoya .terakoya-test-questions dt{margin:0}
}
@media(max-width:600px){
 .portfolio-page.project-industry .industry-field-copy,.portfolio-page.project-industry .industry-framework-intro{grid-template-columns:minmax(0,1fr);gap:18px}
 .portfolio-page.project-industry .industry-output-counts{gap:20px;padding:8px 0}
 .portfolio-page.project-industry .industry-workshop-gallery{grid-template-columns:minmax(0,1fr);gap:28px}
 .portfolio-page.project-industry .industry-workshop-gallery img{height:auto;max-height:240px}
 .portfolio-page.project-industry .industry-classification ul{grid-template-columns:minmax(0,1fr)}
 .portfolio-page.project-industry .industry-lens-map button{font-size:15px;line-height:1.5}
 .portfolio-page.project-industry .industry-deliverables-heading{display:block}
 .portfolio-page.project-industry .industry-deliverables-heading .systems-note{max-width:none;margin-top:8px}
 .portfolio-page.project-terakoya .terakoya-layer-diagram{max-height:210px}
 .portfolio-page.project-terakoya [data-layer-sheet] text{font-size:28px}
 .portfolio-page.project-terakoya .terakoya-layers li{grid-template-columns:minmax(0,1fr);gap:0;padding:8px 10px}
 .portfolio-page.project-terakoya .terakoya-layers p,.portfolio-page.project-terakoya .is-ready .terakoya-layers p{padding-top:0;padding-left:26px}
 .portfolio-page.project-terakoya .terakoya-sharing{grid-template-columns:minmax(0,1fr);gap:16px}
 .portfolio-page.project-terakoya .sharing-link{transform:rotate(90deg);justify-self:start}
 .portfolio-page.project-terakoya .terakoya-test-questions > div{grid-template-columns:minmax(0,1fr);gap:8px}
}


/* Personal recollections, interpreted practice, and a path into future work.
   These components sit below the shared opening and do not set page dimensions. */
.portfolio-page.project-fragments .fragment-exploration{align-items:stretch}
.portfolio-page.project-fragments .fragment-exploration>section{padding:var(--portfolio-panel-pad);border-radius:10px;background:var(--portfolio-panel)}
.portfolio-page.project-fragments .fragment-memory-heading{margin:0}
.portfolio-page.project-fragments .fragment-memory-body{margin-top:20px;max-width:56ch}
.portfolio-page.project-fragments .fragment-memory-body>p:first-child{font-size:16px;line-height:1.7}
.portfolio-page.project-fragments .fragment-doubling{padding:0;margin:22px 0 0;background:transparent}
.portfolio-page.project-fragments .doubling-equation{font-size:26px}
.portfolio-page.project-fragments .doubling-trace{font-size:15px;min-height:42px}
.portfolio-page.project-fragments .fragment-doubling .text-link{font-size:15px}
.portfolio-page.project-fragments .fragment-senses{gap:14px 24px;margin:22px 0}
.portfolio-page.project-fragments .fragment-senses li{font-size:16px}
.portfolio-page.project-fragments .fragment-senses small{font-size:15px}
.portfolio-page.project-fragments :is(.fragment-marginalia){font-size:15px;line-height:1.6}
.portfolio-page.project-fragments .fragment-pullquote{font-size:24px;line-height:1.25;margin:0 0 14px}
.portfolio-page.project-fragments .fragment-drawing-memory{max-width:46ch}
.portfolio-page.project-fragments .fragment-system-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:var(--portfolio-gap)}
.portfolio-page.project-fragments .fragment-system-body>p{margin:0;max-width:46ch}
.portfolio-page.project-fragments .fragment-relations-map{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:32px;font-size:16px;line-height:1.4}
.portfolio-page.project-fragments .fragment-condition{position:relative}
.portfolio-page.project-fragments .fragment-condition::after{content:"";position:absolute;right:-14px;top:50%;width:14px;height:1px;background:var(--ink)}
.portfolio-page.project-fragments .fragment-relations-map ul{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin:0;padding:0;list-style:none}
.portfolio-page.project-fragments .fragment-relations-map ul::before{content:"";position:absolute;top:27px;bottom:27px;left:-18px;border-left:1px solid var(--ink)}
.portfolio-page.project-fragments .fragment-relations-map li{position:relative;display:flex;align-items:center;min-height:54px;margin:0;padding:0;font-size:16px;line-height:1.4}
.portfolio-page.project-fragments .fragment-relations-map li::before{content:"";position:absolute;top:50%;left:-18px;width:18px;height:1px;background:var(--ink)}
.portfolio-page.project-fragments .poetic-related{font-size:15px;margin-top:18px}
.portfolio-page.project-fragments .poetic-related span{font-size:16px}

/* Meet the brush experience first; its learning interpretation follows. */
.portfolio-page.project-calligraphy .ink-reflection-field{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;max-width:none}
.portfolio-page.project-calligraphy .ink-reflection-field>:is(.ink-experience-lead,.practice-statement){grid-column:4/-1;margin:0}
.portfolio-page.project-calligraphy .ink-experience-lead{font-size:18px;line-height:1.6;max-width:52ch}
.portfolio-page.project-calligraphy .practice-statement{font-size:16px;line-height:2;text-align:left}
.portfolio-page.project-calligraphy .ink-japanese-note{display:contents;margin:0;padding:0;background:transparent}
.portfolio-page.project-calligraphy .ink-japanese-note>.eyebrow{grid-column:1/span 3;font-size:15px}
.portfolio-page.project-calligraphy .ink-japanese-note>.editorial-copy{grid-column:4/-1;max-width:35em;font-size:16px;line-height:1.85}
.portfolio-page.project-calligraphy .ink-reflection-body>.editorial-copy{max-width:60ch}
.portfolio-page.project-calligraphy .ink-reflection .roman-ruby rt{font-size:15px;line-height:1.1}
.portfolio-page.project-calligraphy .ink-reflection-lede{font-size:20px;line-height:1.55;margin:0 0 14px}
.portfolio-page.project-calligraphy .ink-learning{margin:24px 0 0}
.portfolio-page.project-calligraphy .portfolio-main .ink-learning-heading{font-size:18px;font-weight:450;line-height:1.4;margin:0 0 24px}
.portfolio-page.project-calligraphy .ink-learning-terms{gap:24px}
.portfolio-page.project-calligraphy .portfolio-main .ink-learning-terms h3{font-size:17px;line-height:1.35}
.portfolio-page.project-calligraphy .ink-learning-terms p{font-size:15px;line-height:1.6}

/* Four clear entrances into the work, followed by one continuous time path. */
.portfolio-page.project-about .about-practice{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--portfolio-gap);margin:var(--portfolio-section-gap) 0 0;padding:0}
.portfolio-page.project-about .about-practice>.eyebrow{grid-column:1/span 3;font-size:15px;margin:0}
.portfolio-page.project-about .about-practice>div{grid-column:4/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.portfolio-page.project-about .about-practice a{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;min-height:64px;padding:0;font-size:16px;line-height:1.5}
.portfolio-page.project-about .about-practice-name{display:flex;align-items:baseline;gap:12px;font-size:17px;color:var(--blue)}
.portfolio-page.project-about .about-practice-note{font-size:15px;line-height:1.5;color:var(--muted)}
.portfolio-page.project-about .about-context-lead{font-size:20px;line-height:1.55;max-width:42ch;color:var(--ink);margin-bottom:24px}
.portfolio-page.project-about .about-thread-history{display:grid;grid-template-columns:minmax(0,1fr);gap:0;max-width:72ch}
.portfolio-page.project-about .about-thread-history>li{display:grid;grid-template-columns:136px minmax(0,1fr);gap:24px;min-width:0;margin:0;padding:24px 24px 24px 34px;position:relative}
.portfolio-page.project-about .about-thread-history>li::before{left:10px;top:32px;width:7px;height:7px;z-index:1}
.portfolio-page.project-about .about-thread-history>li:not(:last-child)::after{display:block;left:13px;top:45px;bottom:-20px;width:0;height:auto;border-left:1px solid var(--line);background:transparent}
.portfolio-page.project-about .about-thread-history>.about-thread-present::after,.portfolio-page.project-about .about-thread-history>.about-thread-future::after{border-left-style:dashed}
.portfolio-page.project-about .about-thread-history>.about-thread-future{background:#eef4fb}
.portfolio-page.project-about .about-thread-future.is-first{border-radius:10px 10px 0 0}
.portfolio-page.project-about .about-thread-future.is-last{border-radius:0 0 10px 10px}
.portfolio-page.project-about .about-thread-history .about-thread-date{margin:0;min-height:0;font-size:16px;line-height:1.5;color:var(--ink)}
.portfolio-page.project-about .about-thread-date span{font-size:15px;color:var(--muted)}
.portfolio-page.project-about .about-thread-future .about-thread-date span{color:var(--blue)}
.portfolio-page.project-about .portfolio-main .about-thread-history h3{font-size:18px;line-height:1.35;margin:0 0 8px}
.portfolio-page.project-about .about-thread-history>li>div>p{font-size:16px;line-height:1.65;color:var(--ink);max-width:48ch}
.portfolio-page.project-about .about-thread-link{font-size:15px;line-height:1.5;min-height:44px}

@media(max-width:1100px){
 .portfolio-page.project-fragments :is(.fragment-system-body){grid-template-columns:minmax(0,1fr)}
 .portfolio-page.project-fragments .fragment-drawing-memory,.portfolio-page.project-fragments .fragment-system-body>p{max-width:56ch}
 .portfolio-page.project-calligraphy .ink-learning-terms{grid-template-columns:minmax(0,1fr);gap:20px}
}
@media(max-width:900px){
 .portfolio-page.project-calligraphy .ink-reflection-field{grid-template-columns:minmax(0,1fr);gap:20px}
 .portfolio-page.project-calligraphy .ink-reflection-field>:is(.ink-experience-lead,.practice-statement),.portfolio-page.project-calligraphy .ink-japanese-note>:is(.eyebrow,.editorial-copy){grid-column:1}
 .portfolio-page.project-calligraphy .practice-statement>span{white-space:normal;text-wrap:pretty}
 .portfolio-page.project-calligraphy .practice-phrase{display:inline-block;white-space:nowrap}
}
@media(max-width:760px){
 .portfolio-page.project-fragments .fragment-exploration{gap:18px}
 .portfolio-page.project-calligraphy .ink-experience-lead{font-size:18px}
 .portfolio-page.project-about .about-practice{grid-template-columns:minmax(0,1fr);gap:18px}
 .portfolio-page.project-about .about-practice>.eyebrow,.portfolio-page.project-about .about-practice>div{grid-column:1}
}
@media(max-width:600px){
 .portfolio-page.project-about .about-practice>div{grid-template-columns:minmax(0,1fr);gap:18px}
 .portfolio-page.project-about .about-thread-history>li{grid-template-columns:minmax(0,1fr);gap:10px;padding:20px 18px 20px 32px}
 .portfolio-page.project-about .about-thread-history>li::before{top:28px}
 .portfolio-page.project-about .about-thread-history>li:not(:last-child)::after{top:41px;bottom:-17px}
 .portfolio-page.project-about .about-thread-history .about-thread-date{font-size:15px;line-height:1.5}
 .portfolio-page.project-about .about-thread-date br{display:none}
 .portfolio-page.project-about .about-thread-date span{margin-left:8px}
 .portfolio-page.project-about .about-thread-history h3{max-width:none}
}
@media print{
 .portfolio-page.project-about .about-thread-history>li{break-inside:avoid}
 .portfolio-page.project-about .about-thread-history>.about-thread-future{background:transparent}
}


/* R17: a clear first view, then a readable sequence of evidence and explanation. */
body.reader-page{--portfolio-gap:28px;--portfolio-panel-pad:28px;--portfolio-section-gap:clamp(52px,6vw,88px);--reading-blue:#edf3fb;--portfolio-panel:#f3f4f5;--card-radius:8px;font-size:16px}
.reader-page .site-header{margin:0 auto;position:relative}
.reader-page .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:64px;padding:9px 0;gap:12px;border-bottom:1px solid var(--line)}
.reader-page .identity{grid-column:1;grid-row:1;font-size:25px;min-height:44px}
.reader-page .utility-nav{grid-column:2;grid-row:1;gap:22px;font-size:15px}
.reader-page .utility-nav>a,.reader-page .works-menu>summary{min-height:44px}
.reader-page .portfolio-main{font:400 16px/1.7 var(--font)}
.reader-page.portfolio-page .portfolio-main p:not(.contact-section *),
.reader-page.portfolio-page .portfolio-main li:not(.contact-section *),
.reader-page.portfolio-page .portfolio-main dd:not(.contact-section *){font-size:16px;line-height:1.7}
.reader-page .portfolio-main p{max-width:68ch}
.reader-page .portfolio-main h2{font:450 clamp(25px,2.2vw,31px)/1.22 var(--font);letter-spacing:-.02em;max-width:30ch;margin-bottom:18px}
.reader-page .portfolio-main h3{font-size:19px;line-height:1.35;font-weight:500}
.reader-page.portfolio-page .portfolio-main p.eyebrow,
.reader-page .portfolio-main :is(figcaption,.figure-caption,dt,small),
.reader-page .portfolio-main .editorial-meta :is(dt,dd),
.reader-page.portfolio-page .portfolio-main :is(p.research-limit,p.systems-note,p.fragment-marginalia,p.ink-poem-source){font-size:15px;line-height:1.6}
.reader-page.portfolio-page .portfolio-main p.eyebrow{color:var(--blue);letter-spacing:.035em;margin-bottom:12px}
.reader-page .portfolio-main figcaption{max-width:68ch;margin-top:10px}
.reader-page .portfolio-main :is(.text-link,.systems-entry-link,.research-entry-links a,.about-thread-link,.poetic-related,.poetic-related span,.about-practice a){font-size:15px;line-height:1.5;min-height:44px}
.reader-page .portfolio-main :is(.editorial-panel,.reading-feedback,.lecture-case-list article,.specimen-paper){border-radius:8px;box-shadow:none}
.reader-page .portfolio-main .panel-blue{background:var(--reading-blue)}
.reader-page .editorial-section{margin-top:var(--portfolio-section-gap);gap:28px}
.reader-page .editorial-section-heading>.eyebrow{margin-bottom:12px}
.reader-page .editorial-section-heading>p:not(.eyebrow){font-size:16px;color:var(--muted);max-width:46ch}
.reader-page .editorial-section.is-wide .editorial-section-heading{max-width:76ch}
.reader-page .chapter-tint{padding:clamp(24px,3vw,40px);background:var(--reading-blue);border-radius:8px}
.reader-page .chapter-tint .editorial-panel,.reader-page .chapter-tint .industry-classification{background:transparent;padding:0;border-radius:0}
.reader-page .editorial-section-body>p{max-width:64ch}
.reader-page .editorial-section-body>p+p{margin-top:16px}
.reader-page .editorial-section-body>figure+*,.reader-page .editorial-section-body>div+figure{margin-top:24px}
.reader-page .portfolio-main .research-scope{font-size:15px;line-height:1.6;color:var(--muted)}
.reader-page .portfolio-main .research-scope strong{font-size:16px;color:var(--ink)}
.reader-page .portfolio-main .reading-feedback .research-observation>p:last-child{font-size:20px;line-height:1.45;max-width:40ch}
.reader-page .portfolio-main .lecture-persona-intro blockquote{font-size:24px;line-height:1.45}
.reader-page .portfolio-main .editorial-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;font-size:15px;margin:0}
.reader-page .portfolio-main .editorial-meta>div{display:block}
.reader-page .portfolio-main .editorial-meta dt{margin-bottom:9px}
.reader-page .portfolio-main .editorial-meta dd{font-size:15px;line-height:1.55}
/* Readable small information, without enlarging the main narrative to match it. */
.reader-page .portfolio-main :is(.industry-lens-code,.industry-map-label,.industry-classification header p,.industry-classification li>span,.industry-lens-map button,.industry-lens-map button strong,.industry-capital-note,.terakoya-network-shared>span,.terakoya-network-place h3,.terakoya-network-place p,.terakoya-network-shared p,.terakoya-layers button span,.terakoya-layer-preview,.terakoya-layer-preview h3,.terakoya-layer-preview>[data-layer-preview-number],.terakoya-layer-hint,.reading-direction>h3 :is(span,small),.reading-directions-head,.specimen-controls,.specimen-controls p,.booklet-opening-hint,.sprint-number,.framework-summary-note,.framework-return,.lecture-framework li>span,.annotation-intro>span,.assumption-notes summary>span:first-child,.ink-gallery-tools>p,.ink-gallery-heading p,.ink-view-controls button,.ink-learning-terms p,.ink-learning-terms h3,.about-thread-date,.about-current){font-size:15px;line-height:1.55}
.reader-page .portfolio-main .industry-classification li{grid-template-columns:42px minmax(0,1fr)}
.reader-page .portfolio-main :is(.reading-direction>h3,.terakoya-layers button,.lecture-framework h3){font-size:16px;line-height:1.5}
.reader-page .portfolio-main .terakoya-layer-diagram text{font-size:24px}
.reader-page .portfolio-main .terakoya-layer-preview :is(p,.terakoya-layer-reading-note){font-size:15px}
.reader-page .portfolio-main .terakoya-network{height:clamp(330px,44vw,460px)}
.reader-page .portfolio-main .reading-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 28px}
.reader-page .portfolio-main .reading-rule-grid article>p{max-width:46ch}
.reader-page .portfolio-main .reading-rule-grid img{max-height:260px}
.reader-page .portfolio-main .lecture-framework ol{grid-template-columns:repeat(3,minmax(0,1fr))}
.reader-page .portfolio-main .specimen-line{gap:12px}
.reader-page .portfolio-main .specimen-reference{font-size:15px}
.reader-page .portfolio-main .ink-learning-terms p{font-size:16px}
.reader-page .portfolio-main .ink-personal-label{font-size:15px;line-height:1.5;color:var(--muted)}
.reader-page .portfolio-main .practice-statement{font-size:17px;line-height:2;container-type:normal}
.reader-page .portfolio-main .practice-statement>span{font-size:inherit;line-height:inherit}.reader-page .site-footer{font-size:15px;line-height:1.55}
.reader-page .portfolio-main .contact-invitation{font-size:16px;line-height:1.6}
.reader-page .portfolio-main .contact-to,.reader-page .portfolio-main .contact-copy,.reader-page .portfolio-main .contact-privacy,.reader-page .portfolio-main .contact-again{font-size:15px;line-height:1.5}
.reader-page .portfolio-main .contact-recipient{font-size:18px;line-height:1.5}
.reader-page .portfolio-main .contact-plot-label{font-size:15px}
.reader-page .portfolio-main .contact-form-status{font-size:15px;line-height:1.6}
.reader-page .portfolio-main .contact-address .contact-direct a{font-size:15px;min-height:44px}
.reader-page .portfolio-main .contact-body{padding:28px;border-radius:8px}
.reader-page .portfolio-main .contact-field label{font-size:15px}

/* One viewport is an invitation, not an entire case study. Full context follows. */
.reader-page .reader-cover{height:var(--cover-height,var(--reading-viewport-height));min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:16px;padding:24px 0 16px;margin:0;background:#fff}
.reader-page .cover-main{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);min-height:0;align-items:stretch}
.reader-page .cover-copy{min-width:0;align-self:center}
.reader-page .portfolio-main .reader-cover h1{font:400 clamp(32px,3vw,42px)/1.12 var(--title-font);letter-spacing:-.025em;max-width:19ch;margin:0 0 18px;text-wrap:balance;overflow-wrap:normal;word-break:normal}
.reader-page.portfolio-page .portfolio-main .cover-copy .cover-eyebrow{font-size:15px;line-height:1.5;color:var(--blue);margin:0 0 14px;max-width:none;letter-spacing:.025em}
.reader-page.portfolio-page .portfolio-main .cover-copy .cover-deck{font-size:18px;line-height:1.55;color:var(--ink);margin:0;max-width:none;text-wrap:pretty}
.reader-page .cover-media{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px;min-width:0;min-height:0;width:100%;height:100%;margin:0;background:transparent;align-self:stretch}
.reader-page .cover-visual{min-width:0;min-height:0;height:100%;display:flex;align-items:center;justify-content:center;position:relative}
.reader-page .cover-media .image-button{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;background:transparent;border-radius:0}
.reader-page .cover-media .image-button img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.reader-page .cover-media .image-button::after{opacity:1}
.reader-page .cover-media>figcaption{font-size:15px;line-height:1.5;max-width:none;margin:0;color:var(--muted)}
.reader-page .cover-image-first .cover-copy{grid-column:2;grid-row:1}
.reader-page .cover-image-first .cover-media{grid-column:1;grid-row:1}
.reader-page .cover-next{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:48px;padding-top:8px;border-top:1px solid var(--line)}
.reader-page .cover-next>a{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:var(--blue);font-size:15px;line-height:1.4;text-decoration:none}
.reader-page .cover-next>a .cover-down{display:grid;place-items:center;width:34px;height:34px;background:var(--blue);color:#fff;border-radius:50%}
.reader-page .cover-next>a:hover .cover-down{background:#1638ba}
.reader-page .cover-next>span{font-size:15px;color:var(--muted);line-height:1.5}
.reader-page .project-overview{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);padding:32px 0 0;margin:0 0 var(--portfolio-section-gap)}
.reader-page .overview-story{min-width:0;max-width:58ch}
.reader-page .overview-story h2{font-size:24px;max-width:28ch}
.reader-page .overview-story p{font-size:16px;line-height:1.7}
.reader-page .overview-facts{padding:28px;background:var(--portfolio-panel);border-radius:8px;align-self:start}
.reader-page .project-overview+.editorial-section{margin-top:0}
.reader-page .chapter-menu{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:0}
.reader-page .chapter-menu a{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:9px 15px;border:1px solid var(--line);border-radius:6px;color:var(--blue);font-size:15px;line-height:1.5}
.reader-page .chapter-menu a:hover{background:var(--reading-blue);border-color:var(--blue)}
.reader-page .chapter-menu a>span:first-child{color:var(--muted);font-variant-numeric:tabular-nums}
.reader-page .reader-cover[data-cover-fit=natural]{height:auto;min-height:var(--cover-height,var(--reading-viewport-height))}
.reader-page .reader-cover[data-cover-fit=natural] .cover-visual{height:clamp(170px,42svh,460px)}

/* Calligraphy opens as a complete small spread; the inspectable gallery follows. */
.reader-page .cover-gallery .cover-main{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:20px}
.reader-page .cover-gallery .cover-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 40px;align-self:start;align-items:end}
.reader-page .cover-gallery .cover-eyebrow{grid-column:1;grid-row:1}
.reader-page .portfolio-main .cover-gallery h1{grid-column:1;grid-row:2;margin:0}
.reader-page .cover-gallery .cover-deck{grid-column:2;grid-row:1/3;justify-self:start;align-self:end}
.reader-page .cover-sheet-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;width:100%;height:100%;min-height:0}
.reader-page .cover-sheet-row>.image-button{min-width:0}
.reader-page .cover-sheet-row>.image-button::after{content:attr(data-sheet);right:4px;bottom:4px;width:28px;height:28px;font:400 15px/1 var(--font);color:var(--blue);opacity:1}
.reader-page .full-ink-gallery{margin-top:0;padding:32px 0 0}
.reader-page .full-ink-gallery .ink-sheets{margin-top:0}
.reader-page .full-ink-gallery .ink-sheet img{height:clamp(240px,36vw,420px);max-height:none;object-fit:contain}
.reader-page .full-ink-gallery[data-ink-view=close] .ink-sheet img{height:clamp(340px,65svh,700px)}
.reader-page .ink-context{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;margin:32px 0 52px;padding:28px;background:var(--portfolio-panel);border-radius:8px}
.reader-page .ink-context .ink-poem-jp{font-size:21px}
.reader-page .ink-context .ink-poem-en{font-size:17px}
.reader-page .ink-context .ink-context-note{font-size:16px;max-width:50ch}

/* A schematic, never a claim about the number or location of future hubs. */
.reader-page .cover-network{position:relative;width:100%;height:100%;min-height:0}
.reader-page .cover-network svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--ink);stroke-width:1.5;overflow:visible}
.reader-page .cover-network .network-context{stroke:var(--guide);stroke-width:.8;stroke-dasharray:3 6}
.reader-page .cover-network-center{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);padding:12px 16px;border-radius:8px;background:var(--reading-blue);color:var(--ink);font-size:16px;line-height:1.5;white-space:nowrap}
.reader-page .cover-network-node{position:absolute;width:18px;height:18px;transform:translate(-50%,-50%);border:1.5px solid var(--ink);border-radius:50%;background:#fff}
.reader-page .cover-network-node>span{position:absolute;left:27px;top:50%;transform:translateY(-50%);font-size:15px;line-height:1.5;white-space:nowrap;color:var(--muted)}
.reader-page .cover-network-node:nth-of-type(2){left:17%;top:24%}
.reader-page .cover-network-node:nth-of-type(3){left:83%;top:24%}
.reader-page .cover-network-node:nth-of-type(3)>span{left:auto;right:27px}
.reader-page .cover-network-node:nth-of-type(4){left:50%;top:82%}

@media(max-width:1000px){
 .reader-page .cover-main{gap:28px}
 .reader-page .portfolio-main .reader-cover h1{font-size:32px}
 .reader-page .portfolio-main .cover-copy .cover-deck{font-size:17px}
 .reader-page .project-overview{grid-template-columns:1fr 1fr;gap:28px}
}
@media(max-width:760px){
 body.reader-page{--portfolio-gap:20px;--portfolio-panel-pad:22px;--portfolio-section-gap:52px}
 .reader-page .identity{font-size:24px}
 .reader-page .utility-nav{gap:18px}
 .reader-page .portfolio-main h2{font-size:25px;line-height:1.24}
 .reader-page .portfolio-main h3{font-size:18px}
 .reader-page .reader-cover{gap:12px;padding:16px 0 12px}
 .reader-page .cover-main{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:16px}
 .reader-page .cover-copy,.reader-page .cover-image-first .cover-copy{grid-column:1;grid-row:1;align-self:start}
 .reader-page .cover-media,.reader-page .cover-image-first .cover-media{grid-column:1;grid-row:2}
 .reader-page .portfolio-main .reader-cover h1{font-size:clamp(28px,6vw,34px);max-width:none;margin-bottom:10px}
 .reader-page.portfolio-page .portfolio-main .cover-copy .cover-eyebrow{font-size:15px;line-height:1.5;margin-bottom:8px}
 .reader-page.portfolio-page .portfolio-main .cover-copy .cover-deck{font-size:16px;line-height:1.45;max-width:none}
 .reader-page .cover-media{gap:7px}
 .reader-page .cover-next{padding-top:6px;min-height:44px}
 .reader-page .cover-next>span{display:none}
 .reader-page .cover-next>a{font-size:15px}
 .reader-page .project-overview{grid-template-columns:minmax(0,1fr);gap:24px;padding-top:28px;margin-bottom:48px}
 .reader-page .overview-facts{padding:22px}
 .reader-page .portfolio-main .editorial-meta{grid-template-columns:1fr 1fr;gap:18px}
 .reader-page .chapter-menu{gap:8px}
 .reader-page .chapter-menu a{padding:8px 12px}
 .reader-page .editorial-section{gap:22px}
 .reader-page .chapter-tint{padding:24px 20px}
 .reader-page .portfolio-main .lecture-framework ol{grid-template-columns:1fr}
 .reader-page .portfolio-main .reading-rule-grid{gap:28px 20px}
 .reader-page .portfolio-main .contact-body{padding:22px}
 .reader-page .portfolio-main .practice-statement{font-size:16px}
 .reader-page .cover-gallery .cover-main{gap:16px}
 .reader-page .cover-gallery .cover-copy{display:block}
 .reader-page .portfolio-main .cover-gallery h1{margin-bottom:10px}
 .reader-page .cover-sheet-row{gap:8px}
 .reader-page .cover-sheet-row>.image-button::after{width:24px;height:24px;right:0;bottom:0}
 .reader-page .full-ink-gallery .ink-sheets{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}
 .reader-page .full-ink-gallery .ink-sheet img{height:clamp(160px,44vw,300px)}
 .reader-page .full-ink-gallery[data-ink-view=close] .ink-sheets{grid-template-columns:minmax(0,1fr)}
 .reader-page .full-ink-gallery[data-ink-view=close] .ink-sheet img{height:auto;max-height:680px}
 .reader-page .full-ink-gallery figcaption span:last-child{display:none}
 .reader-page .ink-context{grid-template-columns:1fr;padding:22px;gap:24px;margin:28px 0 48px}
 .reader-page .cover-network-center{font-size:15px;padding:9px 12px}
 .reader-page .cover-network-node{width:16px;height:16px}
}
@media(max-width:420px){
 .reader-page .portfolio-main .editorial-meta{grid-template-columns:1fr;gap:16px}
 .reader-page .portfolio-main .reading-rule-grid{grid-template-columns:1fr}
}
@media(max-width:760px) and (max-height:560px){
 .reader-page .reader-cover{padding-top:12px;padding-bottom:8px;gap:8px}
 .reader-page .cover-main,.reader-page .cover-gallery .cover-main{gap:10px}
 .reader-page .cover-media{gap:4px}
}
@media(min-width:600px) and (max-height:560px){
 .reader-page .header-inner{min-height:56px;padding:5px 0}
 .reader-page .reader-cover{height:var(--cover-height,var(--reading-viewport-height));padding:12px 0 8px;gap:8px}
 .reader-page .cover-main,.reader-page .cover-gallery .cover-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:24px}
 .reader-page .cover-copy,.reader-page .cover-gallery .cover-copy{display:block;grid-column:1;grid-row:1;align-self:center}
 .reader-page .cover-media{grid-column:2;grid-row:1}
 .reader-page .cover-image-first .cover-copy{grid-column:1;grid-row:1}
 .reader-page .cover-image-first .cover-media{grid-column:2;grid-row:1}
 .reader-page .portfolio-main .reader-cover h1{font-size:28px;margin-bottom:10px}
 .reader-page.portfolio-page .portfolio-main .cover-copy .cover-eyebrow{margin-bottom:8px}
 .reader-page.portfolio-page .portfolio-main .cover-copy .cover-deck{font-size:16px;line-height:1.45}
 .reader-page .cover-next>span{display:none}
 .reader-page .cover-sheet-row{gap:6px}
}
@media(prefers-reduced-motion:reduce){.reader-page{scroll-behavior:auto}}
@media print{
 .reader-page .reader-cover{height:auto;min-height:0}
 .reader-page .cover-next,.reader-page .chapter-menu{display:none}
 .reader-page .cover-visual{height:80mm}
 .reader-page .chapter-tint,.reader-page .panel-blue{background:transparent}
}

/* Context is available on demand without breaking the main reading sequence. */
.reader-page .overview-more{margin-top:16px}
.reader-page .overview-more>summary{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:44px;list-style:none;cursor:pointer;color:var(--blue);font-size:15px;line-height:1.5}
.reader-page .overview-more>summary::-webkit-details-marker{display:none}
.reader-page .overview-more>summary::after{content:'+';font-size:20px;line-height:1}
.reader-page .overview-more[open]>summary::after{content:'−';color:var(--pink)}
.reader-page .overview-more>.editorial-meta{padding-top:16px}
/* The hierarchy stays explicit above the common paragraph and caption floor. */
.reader-page.portfolio-page .portfolio-main p.section-takeaway,
.reader-page.portfolio-page .portfolio-main p.terakoya-hypothesis,
.reader-page.portfolio-page .portfolio-main p.about-context-lead,
.reader-page.portfolio-page .portfolio-main p.ink-experience-lead{font-size:19px;line-height:1.5;font-weight:450;max-width:52ch}
.reader-page.portfolio-page .portfolio-main p.ink-reflection-lede{font-size:20px;line-height:1.5;max-width:46ch}
.reader-page.portfolio-page .portfolio-main p.fragment-pullquote{font-size:24px;line-height:1.25}
.reader-page.portfolio-page .portfolio-main p.doubling-equation{font-size:26px;line-height:1.3}
.reader-page.portfolio-page .portfolio-main p.doubling-trace{font-size:15px;line-height:1.5}
.reader-page.portfolio-page .portfolio-main p.ink-poem-jp{font-size:21px;line-height:1.65}
.reader-page.portfolio-page .portfolio-main p.ink-poem-en{font-size:17px;line-height:1.6}
.reader-page.portfolio-page .portfolio-main p.practice-statement{font-size:17px;line-height:2}
.reader-page.portfolio-page .portfolio-main .industry-output-counts dd{font-size:30px;line-height:1.1}
.reader-page.portfolio-page .portfolio-main .reading-study-facts dd{font-size:20px;line-height:1.35}
.reader-page.portfolio-page .portfolio-main .reading-rule-notes>summary>span{font-size:15px;line-height:1.5}
.reader-page.portfolio-page .portfolio-main :is(.reading-rule-notes,.lecture-framework details)>summary{font-size:16px;line-height:1.5;min-height:44px}
.reader-page .portfolio-main .contact-submit{font-size:15px}
.reader-page .image-dialog [data-viewer-position],.reader-page .image-dialog .viewer-bar .button,.reader-page .image-dialog .viewer-caption{font-size:15px;line-height:1.5}
@media(max-width:1000px){.reader-page .portfolio-main .terakoya-layer-diagram text{font-size:32px}}
@media(max-width:760px){.reader-page.portfolio-page .portfolio-main p.practice-statement{font-size:16px}}
@media(max-width:1000px){.reader-page .portfolio-main .reading-specimen{grid-template-columns:minmax(0,1fr)}}

@media(min-width:761px) and (min-height:561px){.reader-page .cover-image-first .cover-main{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}

@media(max-width:420px){.reader-page .portfolio-main .terakoya-network{height:auto}}


/* A short invitation uses its existing column; long prose keeps its measure. */
.reader-page .editorial-section-heading>p.contact-invitation{max-width:none}
