:root{color-scheme:light;--paper:#f7f7f2;--ink:#20211f;--muted:#595d56;--line:#dadcd6;--accent:#555f49;--white:#fff;--font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:7rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:1.125rem;line-height:1.8;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;text-underline-offset:.35em}a:hover{text-decoration:underline}button,summary,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button,summary{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:1px}::selection{background:#dce2d2}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-weight:500}h2{font-size:clamp(1.9rem,3.05vw,2.75rem);line-height:1.5;letter-spacing:-.055em}h3{font-size:1.35rem;line-height:1.6}p+p{margin-top:1.15em}img{display:block;width:100%;height:auto}a,button,summary{touch-action:manipulation}.wrap{width:min(100% - 10vw,1280px);margin-inline:auto}.section{padding-block:7.5rem}.eyebrow{font-size:.875rem;line-height:1.6;letter-spacing:.1em;display:flex;align-items:center;gap:1.7rem;color:var(--muted);margin-bottom:2.6rem;flex-wrap:wrap}.eyebrow>span:not(.material-label):not(.status-label){font-size:.8rem;letter-spacing:.13em}.split{display:grid;grid-template-columns:1fr 1.05fr;gap:6.5rem}.prose{max-width:37rem}.prose>p{line-height:1.85}.english-title{font-size:.9375rem;margin-top:.55rem;color:var(--muted);letter-spacing:.04em}.skip-link{position:fixed;left:1rem;top:1rem;background:var(--ink);color:white;padding:.5rem 1rem;z-index:100;transform:translateY(-200%)}.skip-link:focus{transform:none}.site-header{background:rgba(247,247,242,.97);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}.header-inner{display:flex;justify-content:space-between;align-items:center;min-height:6rem;gap:1rem}.brand{display:flex;align-items:center;gap:.9rem;line-height:1.35}.brand:hover{text-decoration:none}.brand strong{font-size:1.18rem;font-weight:600;letter-spacing:.14em}.brand small{display:block;font-size:.625rem;letter-spacing:.12em;margin-top:.35rem}.brand-mark{width:2rem;height:2.4rem;position:relative}.brand-mark i{position:absolute;border:1px solid var(--accent);width:.65rem;height:.65rem;border-radius:50%}.brand-mark i:nth-child(1){top:0;left:.67rem}.brand-mark i:nth-child(2){bottom:.2rem;left:0}.brand-mark i:nth-child(3){bottom:.2rem;right:0}.desktop-nav{display:flex;gap:2.6rem;font-size:.9375rem}.desktop-nav a{padding:.65rem .15rem}.desktop-nav a:last-child{margin-left:.7rem}.mobile-menu{display:none}.hero{position:relative;min-height:min(850px,calc(100svh - 6rem));padding-top:5.25rem;padding-bottom:2rem;display:grid;grid-template-columns:1.8fr 1fr;column-gap:1rem;align-items:center}.hero .eyebrow{margin-bottom:2rem}.hero h1{font-size:clamp(3.3rem,5.9vw,5.3rem);line-height:1.3;letter-spacing:-.065em;font-weight:500}.period,.closing-line>span{color:var(--accent)}.hero-definition{margin-top:2rem;font-size:1.25rem;line-height:1.85}.hero-description{max-width:34rem;margin-top:1rem;color:var(--muted);font-size:1.0625rem}.text-link{display:inline-flex;gap:2.6rem;align-items:center;border-bottom:1px solid var(--ink);font-size:1rem;margin-top:2rem;padding:.45rem 0}.text-link:hover{text-decoration:none;color:var(--accent)}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;margin-top:4.5rem;padding-top:1.4rem;border-top:1px solid var(--line);font-size:.875rem;color:var(--muted);letter-spacing:.03em}.memory-notes{position:relative;height:30rem;color:var(--muted);align-self:center;animation:appear 1.6s ease-out both}.note{position:absolute;font-size:.9375rem;display:flex;align-items:center;gap:.8rem;white-space:nowrap}.note i{width:.45rem;height:.45rem;border:1px solid #757e69;border-radius:50%;box-shadow:0 0 0 .5rem rgba(85,95,73,.045)}.note-person{left:9%;top:10%}.note-light{right:4%;top:25%}.note-room{left:27%;top:43%;font-size:1.125rem;color:var(--ink)}.note-room i{background:var(--accent)}.note-leaving{left:3%;top:66%}.note-time{right:0;top:78%}.notes-foot{font-size:.875rem;position:absolute;bottom:0;right:0;letter-spacing:.04em}.about{border-bottom:1px solid var(--line)}.memory-section{padding-bottom:5.5rem}.section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;margin-bottom:3rem}.section-intro>p{font-size:1.0625rem;color:var(--muted);padding-right:6%}.case-layout{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(0,1fr);gap:2.5rem;align-items:center}.case-image{background:var(--white)}figcaption{font-size:.875rem;color:var(--muted);line-height:1.65;display:flex;justify-content:space-between;gap:.7rem 1.5rem;align-items:center;flex-wrap:wrap;margin-top:.9rem}.case-image figcaption{padding:.25rem 1rem 1rem;margin-top:.6rem}.material-label{font-size:.875rem;letter-spacing:0;display:inline-flex;align-items:center;gap:.5rem;white-space:normal}.material-label:before{content:"";display:block;flex:none;width:.4rem;height:.4rem;background:currentColor}.synthetic{color:#4d6149}.synthetic:before{background:transparent;border:1px solid currentColor;width:.45rem;height:.45rem;transform:rotate(45deg)}.real{color:#454c45}.concept:before{background:none;border:1px dashed currentColor;width:.5rem;height:.5rem;border-radius:50%}.index-small{font-size:.875rem;color:var(--muted);letter-spacing:.12em}.case-note h3{font-size:1.45rem;margin:1.2rem 0}.case-note>p{font-size:1rem;color:var(--muted)}.placeholder{border-top:1px dashed #a6aaa1;margin-top:2rem;padding-top:1.25rem;color:var(--muted);font-size:.875rem}.placeholder>span{display:block;font-size:.875rem;margin-bottom:.65rem}.placeholder p{font-size:.875rem;line-height:1.8}.synthetic-section{padding-top:5.5rem}.lead-heading{font-size:1.6rem;margin-bottom:1.5rem;line-height:1.7;letter-spacing:-.025em}.two-judgments{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2.75rem 0 2rem}.two-judgments>div{border-top:1px solid var(--line);padding-top:1.5rem}.two-judgments h4{font-size:2.9rem;line-height:1.2;display:flex;align-items:center;gap:1rem}.two-judgments h4>span{font-size:.875rem;color:var(--muted)}.two-judgments p{font-size:1rem;margin-top:1.2rem}.boundary{border-top:1px solid var(--line);margin-top:4.5rem;padding-top:2rem;font-size:clamp(1.3rem,2.2vw,1.75rem);text-align:center;letter-spacing:.03em}.mobile-break{display:none}.practice-section{background:#eeefe9}.practice-section h2{margin-bottom:3rem}.practice-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);column-gap:5rem;align-items:start}.interview-image{grid-column:1;grid-row:1}.practice-method{grid-column:2;grid-row:1/span 3}.practice-intro{margin-bottom:2rem}.steps{padding:0;margin:0;list-style:none}.steps li{display:grid;grid-template-columns:2rem 1fr;gap:.9rem;padding:1.1rem 0;border-top:1px solid #d0d4c9}.steps li>span{font-size:.875rem;color:var(--muted);padding-top:.25rem}.steps h3{font-size:1.15rem}.steps p{font-size:1rem;line-height:1.8;color:var(--muted);margin-top:.4rem}.co-creation-image{grid-column:1;grid-row:2;margin-top:4rem;width:86%;justify-self:end}.practice-source{grid-column:1;grid-row:3;font-size:.875rem;color:var(--muted);margin-top:1.5rem;text-align:right}.connections{padding-block:6rem}.connection-copy{max-width:49rem;margin-inline:auto}.connection-copy h2{font-size:clamp(1.85rem,2.65vw,2.4rem);margin-bottom:1.7rem}.connection-copy>p{max-width:40rem}.question{font-size:1.35rem;color:var(--accent);margin-top:1.6rem}.research-section{background:#edf0ed}.status-label{font-size:.875rem;color:var(--accent);border:1px solid #9da797;padding:.15rem .6rem;letter-spacing:.06em}.skeleton{margin-top:3.75rem;border-top:1px solid #aeb8ab;border-bottom:1px solid #aeb8ab;padding:1.5rem 0 1.75rem}.skeleton>figcaption{justify-content:flex-start;margin:0 0 2rem;gap:1.1rem}.relation-map{display:grid;grid-template-columns:1fr 1fr;column-gap:4.5rem}.map-layer h3{font-size:1.0625rem}.map-layer>span{font-size:.875rem;color:var(--muted)}.map-layer{padding-bottom:1rem;border-bottom:1px solid #c4cdc1}.second-layer{grid-row:1;grid-column:2}.relations{list-style:none;padding:0;margin:0}.material-relations{grid-column:1}.feeling-relations{grid-column:2}.relations li{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:.6rem;align-items:center;margin-top:1.4rem;font-size:.875rem}.node{text-align:center;border:1px solid #9ea895;background:#f7f8f4;padding:.7rem .3rem;line-height:1.6;min-height:3rem;display:flex;align-items:center;justify-content:center}.node.uncertain{border-style:dashed}.relation{text-align:center;font-size:.875rem;color:#515c4e;position:relative;line-height:1.6;padding-bottom:.6rem}.relation:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:#798672}.map-notes{display:grid;grid-template-columns:1fr 1fr;gap:4.5rem;margin-top:2.5rem;font-size:.875rem;color:var(--muted)}.map-notes p+p{margin:0}.research-boundary{text-align:center;font-size:1.75rem;margin-top:3.5rem;letter-spacing:.04em}.closing-line{font-size:clamp(3rem,5.8vw,5.2rem);line-height:1.45;letter-spacing:-.06em;margin-top:6rem;padding-left:12%}.people-section{border-top:1px solid var(--line);padding-block:5rem}.people-section h2,.contact-section h2{font-size:clamp(1.6rem,2.6vw,2.1rem)}.team-placeholder{margin-top:1.5rem}.contact-section{padding-top:5rem;background:#e9ece3}.email-link{display:inline-flex;align-items:center;flex-wrap:wrap;gap:1rem;font-size:clamp(1.1rem,2.5vw,1.9rem);line-height:1.7;border-bottom:1px solid #7e8975;margin-top:1.8rem;overflow-wrap:anywhere}.copy-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;min-height:3.5rem;font-size:.875rem}.copy-email{color:var(--muted);padding:.5rem 0;background:none;border:0;text-decoration:underline;text-underline-offset:.3rem;min-height:44px;font-size:.875rem}.footer-bottom{display:flex;justify-content:space-between;gap:2rem;padding:2rem 0;border-top:1px solid #c4cbbb;margin-top:4rem;font-size:.875rem}.footer-brand{font-size:1rem;display:flex;align-items:center;gap:1rem}.footer-brand span{font-size:.7rem;letter-spacing:.06em}.footer-bottom>div{display:flex;gap:2rem}.footer-bottom a{padding-block:.4rem} [hidden]{display:none!important}@keyframes appear{from{opacity:0}to{opacity:1}}
@media(min-width:1600px){.hero{min-height:800px}}
@media(max-width:1100px){.split{gap:3rem}.hero{grid-template-columns:1.75fr 1fr}.memory-notes{height:27rem}.hero h1{font-size:4.2rem}.case-layout{gap:2rem}.practice-grid{column-gap:3rem}.relation-map,.map-notes{column-gap:2rem}.section-intro>p{padding-right:0}.relations li{grid-template-columns:1fr 1.1fr 1fr}}
@media(max-width:767px){html{scroll-padding-top:6rem}.wrap{width:calc(100% - 2.75rem)}.header-inner{min-height:5rem}.brand strong{font-size:1rem}.brand small{font-size:.58rem}.brand-mark{width:1.6rem;height:2rem}.brand-mark i:nth-child(1){left:.5rem}.desktop-nav{display:none}.mobile-menu{display:block;font-size:.9375rem}.mobile-menu summary{list-style:none;padding:.5rem 0 .5rem 1rem;min-height:44px}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary>span{margin-left:.6rem}.mobile-menu[open] summary>span{display:inline-block;transform:rotate(45deg)}.mobile-menu nav{position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:1rem 1.375rem;box-shadow:0 12px 18px #20211f09}.mobile-menu nav a{display:block;padding:.65rem .25rem;border-top:1px solid var(--line)}.mobile-menu nav a:first-child{border-top:0}.hero{display:block;min-height:0;padding-top:3.7rem;padding-bottom:1.5rem}.hero .eyebrow{margin-bottom:2.1rem;gap:1rem}.hero h1{font-size:clamp(2.125rem,9.5vw,2.75rem);line-height:1.4;letter-spacing:-.06em}.hero-definition{font-size:1.125rem;margin-top:1.75rem}.hero-description{font-size:1.0625rem;margin-top:1rem}.desktop-break{display:none}.text-link{margin-top:1.5rem}.memory-notes{height:10rem;margin-top:2.5rem;max-width:32rem;margin-inline:auto}.note{font-size:.875rem;gap:.6rem}.note-person{top:4%;left:9%}.note-light{top:14%;right:4%}.note-room{font-size:.9375rem;top:51%;left:36%}.note-leaving{top:83%;left:0}.note-time{top:87%;right:1%}.notes-foot{display:none}.hero-bottom{font-size:.875rem;margin-top:2.5rem;padding-top:1.25rem}.hero-bottom>span:last-child{display:none}.section{padding-block:4.5rem}.eyebrow{font-size:.875rem;margin-bottom:1.75rem;gap:1rem}.eyebrow>span:not(.material-label):not(.status-label){font-size:.75rem}.split{grid-template-columns:1fr;gap:1.75rem}h2{font-size:1.875rem;line-height:1.55;letter-spacing:-.04em}body{font-size:1.0625rem}.section-intro{display:block;margin-bottom:2rem}.section-intro>p{font-size:1.0625rem;margin-top:1.5rem}.case-layout{grid-template-columns:1fr;gap:2rem}.case-image figcaption{padding:.4rem .7rem .85rem}.case-note h3{margin:.65rem 0 .85rem}.case-note>p{font-size:1.0625rem}.placeholder{margin-top:1.5rem}.lead-heading{font-size:1.35rem;margin-bottom:1rem}.two-judgments{margin-top:2rem;grid-template-columns:1fr;gap:1.5rem}.two-judgments h4{font-size:2.5rem}.two-judgments p{font-size:1.0625rem;margin-top:.75rem}.boundary{margin-top:2.5rem;padding-top:1.5rem;font-size:1.25rem;line-height:1.9}.mobile-break{display:initial}.practice-section h2{margin-bottom:2rem}.practice-grid{display:flex;flex-direction:column;gap:2.5rem}.practice-method{order:2}.interview-image{order:1}.co-creation-image{order:3;width:100%;margin:0}.practice-source{order:4;margin:-1rem 0 0;text-align:left}.practice-intro{margin-bottom:1.5rem}.steps li{padding:1.1rem 0}.steps p{font-size:1.0625rem}.connections{padding-block:4rem}.connection-copy h2{font-size:1.75rem}.question{font-size:1.2rem}.skeleton{margin-top:2.5rem}.skeleton>figcaption{align-items:flex-start;flex-direction:column;gap:.5rem}.relation-map{display:flex;flex-direction:column}.map-layer{order:1}.material-relations{order:2}.second-layer{order:3;margin-top:2rem}.feeling-relations{order:4}.relations li{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr);gap:.5rem}.map-notes{grid-template-columns:1fr;gap:1rem;margin-top:2rem}.research-boundary{font-size:1.4rem;line-height:1.85;margin-top:2.5rem}.closing-line{font-size:2.65rem;margin-top:3.5rem;padding:0}.people-section{padding-block:3.5rem}.contact-section{padding-top:3.5rem}.email-link{font-size:1.4rem;gap:.6rem;word-break:break-word}.footer-bottom{margin-top:2.5rem;flex-direction:column;gap:1.25rem;padding-block:1.5rem}.footer-brand{flex-wrap:wrap}.footer-bottom>div{justify-content:space-between}.footer-brand span{font-size:.75rem}}
@media(max-width:359px){.wrap{width:calc(100% - 2.5rem)}.hero h1{font-size:2.125rem}.hero .eyebrow>span{display:none}.eyebrow{gap:.75rem}.brand{gap:.5rem}.brand small{font-size:.55rem}.relations li{gap:.3rem}.node{padding:.6rem .2rem}.email-link{font-size:1.15rem}.closing-line{font-size:2.2rem}}
/* Responsive refinement: let content shrink and wrap, never conceal overflow. */
body{font-size:1.1875rem}
main :where(section,div,figure,aside,ol,ul,li,p,h1,h2,h3,h4,span){min-width:0}
main :where(p,h1,h2,h3,h4,figcaption,a,span){overflow-wrap:anywhere}
img{max-width:100%}
.split{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,5rem)}
.hero{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr)}
.hero-description,.section-intro>p,.case-note>p,.two-judgments p,.steps p{font-size:1.125rem}
figcaption,.material-label,.placeholder,.placeholder>span,.placeholder p,.practice-source,.map-notes,.relation{font-size:1rem}
.about h2{font-size:clamp(2.35rem,3.8vw,3.4rem);font-weight:550;line-height:1.45}
.two-judgments{grid-template-columns:repeat(2,minmax(0,1fr))}
.two-judgments h4{flex-wrap:wrap}
.section-intro>*{min-width:0}
.section-intro>p{max-width:32rem}

/* Practice: the method receives the wider column; photographs stay secondary. */
.practice-grid{
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  column-gap:clamp(2rem,4.5vw,4rem);
}
.practice-method{width:100%;max-width:38rem;justify-self:end}
.steps li{grid-template-columns:2rem minmax(0,1fr)}
.steps h3{font-size:1.25rem}
.interview-image{width:100%;max-width:28rem}
.co-creation-image{width:88%;max-width:24rem;justify-self:start;margin-top:2.75rem}
.practice-source{max-width:28rem;text-align:left}
.practice-grid figcaption{align-items:flex-start;gap:.4rem 1rem}

/* Skeleton: words and connections, without filled node cards. */
.relation-map{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(2rem,4vw,4rem)}
.map-layer{border:0;padding-bottom:.5rem}
.map-layer h3{font-size:1rem;color:var(--muted);font-weight:400}
.map-layer>span{font-size:.9375rem}
.relations li{grid-template-columns:minmax(0,1fr) minmax(0,1.7fr) minmax(0,1fr);gap:.65rem;margin-top:1.75rem}
.node{border:0;background:none;padding:.35rem 0;min-height:0;font-size:1.125rem;line-height:1.7}
.node.uncertain{border:0;text-decoration:underline dotted;text-underline-offset:.45rem;text-decoration-color:#798672}
.relation{line-height:1.75;padding-bottom:.55rem}
.relation:after{background:#798672}
.relation:before{content:"";position:absolute;right:0;bottom:-2px;width:5px;height:5px;border-top:1px solid #798672;border-right:1px solid #798672;transform:rotate(45deg)}
.relations li:has(.uncertain) .relation:after{background:none;border-bottom:1px dashed #798672}
.map-notes{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,4vw,4rem)}
.research-section .status-label{border:0;padding:0;letter-spacing:.04em}

@media(max-width:1180px){
  .practice-grid{display:flex;flex-direction:column;gap:2.5rem;max-width:46rem;margin-inline:auto}
  .interview-image{order:1;width:72%;max-width:29rem}
  .practice-method{order:2;max-width:none}
  .co-creation-image{order:3;width:64%;max-width:26rem;margin:0}
  .practice-source{order:4;margin:-1rem 0 0;max-width:36rem}
  .relation-map{display:flex;flex-direction:column;max-width:46rem;margin-inline:auto}
  .map-layer{order:1}
  .material-relations{order:2}
  .second-layer{order:3;margin-top:2.5rem}
  .feeling-relations{order:4}
  .map-notes{grid-template-columns:1fr;gap:1rem;max-width:46rem;margin-inline:auto}
}
@media(min-width:768px) and (max-width:1100px){
  .hero h1{font-size:clamp(3rem,5.8vw,4rem)}
  .case-layout{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}
  .two-judgments{grid-template-columns:1fr;gap:1.5rem}
}
@media(max-width:900px){
  .split{grid-template-columns:minmax(0,1fr);gap:2rem}
  .split>.prose{max-width:42rem}
  .case-layout{grid-template-columns:minmax(0,1fr)}
  .case-note{max-width:38rem}
  .section-intro{display:block}
  .section-intro>p{margin-top:1.5rem}
}
@media(max-width:767px){
  body{font-size:1.125rem}
  .about h2{font-size:clamp(2rem,7.8vw,2.4rem);line-height:1.5}
  .split{gap:1.75rem}
  .two-judgments{grid-template-columns:1fr}
  .practice-grid{gap:2.25rem}
  .interview-image,.co-creation-image{width:100%;max-width:27rem}
  figcaption,.material-label,.placeholder,.placeholder>span,.placeholder p,.practice-source,.map-notes{font-size:.9375rem}
  .relations li{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);gap:.5rem}
  .node{font-size:1.0625rem;padding:.35rem 0}
  .relation{font-size:.9375rem}
}
/* Experience connections: an open diagram, with an equivalent narrow-screen reading. */
.experience-diagram{margin-block:1rem 2rem}
.experience-overview{display:block;width:100%;height:auto;overflow:visible}
.experience-lines{stroke:#798672;stroke-width:1.2}
.experience-lines .tentative{stroke-dasharray:4 5}
.experience-node{fill:var(--ink);text-anchor:middle;font:22px var(--font)}
.experience-node circle{fill:var(--accent)}
.experience-anchor{font-size:28px}
.experience-origin{font-size:30px;font-weight:500}
.experience-node .experience-category{font-size:17px;font-weight:400;fill:var(--muted)}
.experience-edge-labels{fill:var(--muted);font:17px var(--font);text-anchor:middle;paint-order:stroke;stroke:#edf0ed;stroke-width:8px;stroke-linejoin:round}
.experience-missing{font-size:18px;fill:var(--muted)}
.experience-missing circle{fill:none;stroke:#798672;stroke-width:1.2}
.experience-reading{display:none}
.experience-key{display:flex;flex-wrap:wrap;gap:1rem 3rem;font-size:.9375rem;color:var(--muted)}
.experience-key p+p{margin-top:0}
.experience-key span{margin-left:.75rem}
.skeleton .map-notes{margin-top:1.25rem}
.people-list{list-style:none;margin:2.25rem 0 0;padding:0}
.people-list li{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:1.25rem;border-top:1px solid var(--line);padding:1.5rem 0}
.people-list li+li{margin-top:1.5rem;padding-top:2rem}
.people-list h3{font-size:1.3rem;line-height:1.75}
.people-list p{font-size:1.125rem;line-height:1.8}
.person-role{display:block;color:var(--muted);font-size:1rem;margin-bottom:.4rem}
@media(max-width:1100px){
  .experience-overview{display:none}
  .experience-reading{display:flex;flex-wrap:wrap;gap:3rem 4rem;margin-block:3rem}
  .experience-thread{flex:1 1 19rem;min-width:0}
  .experience-thread h4{font-size:1.5rem;line-height:1.7;font-weight:400}
  .experience-thread:first-child h4{font-size:1.6rem;font-weight:500}
  .experience-thread small{display:inline-block;margin-left:.75rem;font-size:.9375rem;color:var(--muted)}
  .experience-thread ul{list-style:none;margin:1.25rem 0 0 .25rem;padding:0 0 0 1.5rem;border-left:1px solid #798672}
  .experience-thread li{position:relative;margin-top:1.5rem;line-height:1.8}
  .experience-thread li:before{content:"";position:absolute;width:1rem;left:-1.5rem;top:.85rem;border-top:1px solid #798672}
  .experience-thread strong{font-size:1.125rem;font-weight:400}
  .experience-thread li>span{display:block;font-size:1rem;color:var(--muted)}
  .experience-unknown{font-size:.9375rem;color:var(--muted);margin-top:.5rem;border-left:1px dashed #798672;padding-left:.75rem}
  .experience-key{gap:.5rem 2rem}
}
@media(max-width:767px){
  .experience-reading{gap:2.5rem;margin-block:2rem}
  .experience-key span{display:block;margin-left:0}
  .people-list li{grid-template-columns:4rem minmax(0,1fr);gap:1rem}
}
/* Scene 03–04: supplied case materials within the existing editorial system. */
#memory .case-image figcaption{align-items:flex-start;flex-direction:column;gap:.35rem}
#memory .participant-quote,#synthetic-memory .participant-quote{margin:1.75rem 0 0;font-size:1.3rem;line-height:1.85;font-weight:400}
#memory .participant-quote{font-weight:500}
#synthetic-memory .case-sequence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3.5rem 3rem;margin-block:3.5rem}
#synthetic-memory .sequence-photograph img{width:auto;height:22rem;max-width:100%;object-fit:contain;object-position:left bottom}
#synthetic-memory .case-sequence figcaption{display:block;margin-top:1.25rem;max-width:34rem}
#synthetic-memory .case-sequence h3{margin-block:.6rem .4rem;color:var(--ink);font-size:1.25rem}
#synthetic-memory .case-sequence figcaption p{line-height:1.8}
#synthetic-memory .sequence-reflection{margin-left:auto}
#synthetic-memory .case-privacy{font-size:1rem;color:var(--muted);margin-top:2rem}
@media(max-width:900px){
  #synthetic-memory .sequence-reflection{margin-left:0;max-width:42rem}
}
@media(max-width:767px){
  #synthetic-memory .case-sequence{grid-template-columns:minmax(0,1fr);gap:2.75rem;margin-block:2.5rem}
  #synthetic-memory .sequence-photograph img{width:100%;max-width:20rem;height:auto}
  #memory .participant-quote,#synthetic-memory .participant-quote{font-size:1.2rem}
  #synthetic-memory .case-privacy{font-size:.9375rem}
}
/* Scene 05: space, conversation, collaboration, method, public viewing. */
#practice .practice-opening h2{margin-bottom:0}
#practice .practice-space-image{width:100%;max-width:none;margin-top:3rem;margin-inline:auto}
#practice .practice-space-image figcaption{align-items:baseline}
#practice .practice-space-image h3,#practice .practice-public-viewing h3{font-size:1.25rem;color:var(--ink)}
#practice .practice-process-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,5vw,5rem);margin-top:4rem}
#practice .practice-process-photos>figure{grid-area:auto;order:0;margin:0;width:100%;max-width:none;justify-self:start}
#practice .practice-process-photos figcaption{align-items:flex-start;gap:.4rem 1rem}
#practice .practice-method{max-width:none;margin:4rem 0 0}
#practice .practice-closing{margin-top:2rem}
#practice .practice-public-viewing{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,5rem);align-items:center;margin-top:4rem}
#practice .practice-public-viewing img{max-width:32.5rem}
#practice .practice-public-viewing figcaption{display:block;margin:0;max-width:37rem}
#practice .practice-public-viewing figcaption p{font-size:1.125rem;line-height:1.8;margin-top:1rem}
#practice .practice-public-viewing .material-label{margin-top:1.25rem}
@media(min-width:768px){
  #practice .steps li>div{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:baseline}
  #practice .steps p{margin-top:0;max-width:46rem}
}
@media(max-width:900px){
  #practice .practice-method{margin-left:0}
  #practice .practice-public-viewing{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:767px){
  #practice .practice-space-image{margin-top:2rem}
  #practice .practice-process-photos{grid-template-columns:minmax(0,1fr);gap:2.5rem;margin-top:2.75rem}
  #practice .practice-method,#practice .practice-public-viewing{margin-top:2.75rem}
}
/* Writing case: supplied synthetic memory and explicitly contextual references. */
#scene07{max-width:70rem}
#scene07 picture{display:block}
#scene07 .writing-hero{margin-top:3rem}
#scene07 figcaption{display:block;margin-top:1rem}
#scene07 figcaption p{margin-top:.65rem;line-height:1.8}
#scene07 .writing-hero figcaption p{max-width:48rem}
#scene07 .writing-process,#scene07 .writing-references{margin-top:4rem}
#scene07 .writing-group-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:.75rem 1.5rem;margin-bottom:1.5rem}
#scene07 .writing-process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
#scene07 .writing-process-grid h4{font-size:1.125rem;color:var(--ink);line-height:1.7}
#scene07 .writing-reference-intro{max-width:42rem;margin-top:1rem}
#scene07 .writing-reference-note{max-width:42rem;font-size:.875rem;color:var(--muted)}
#scene07 .writing-transition{margin-top:4rem}
#scene07 .writing-reference-grid{max-width:54rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;margin-top:2rem}
#scene07 .writing-reference-grid figure{max-width:26rem}
@media(max-width:767px){
  #scene07 .writing-hero{margin-top:2rem}
  #scene07 .writing-transition{margin-top:2.75rem}
  #scene07 .writing-process,#scene07 .writing-references{margin-top:2.75rem}
  #scene07 .writing-process-grid,#scene07 .writing-reference-grid{grid-template-columns:minmax(0,1fr);gap:2.5rem}
}
/* Participant 7: one memory anchor, distinct relationships, no categorical UI. */
#research .p7-skeleton{margin-top:3.75rem}
#research .p7-skeleton>figcaption{margin:0 0 1.5rem}
#research .p7-desktop{display:block;width:100%;height:auto}
#research .p7-node{fill:var(--ink);text-anchor:middle;font:22px var(--font)}
#research .p7-node circle{fill:var(--accent)}
#research .p7-anchor{font-size:30px;font-weight:500}
#research .p7-world{font-size:25px}
#research .p7-place{fill:var(--muted);color:var(--muted)}
#research .p7-place circle{fill:none;stroke:#798672;stroke-width:1}
#research .p7-state{font-size:17px;fill:var(--muted)}
#research .p7-direct{stroke:#798672;stroke-width:1.2;stroke-opacity:.95}
#research .p7-interpretation{stroke:#798672;stroke-width:.85;stroke-opacity:.5}
#research .p7-reconnection{stroke:#798672;stroke-width:1;stroke-opacity:.7;stroke-dasharray:1 5;stroke-linecap:round}
#research .p7-edge-labels{fill:var(--muted);font:17px var(--font);text-anchor:middle;paint-order:stroke;stroke:#edf0ed;stroke-width:7px;stroke-linejoin:round}
#research .p7-legend{display:flex;flex-wrap:wrap;gap:.75rem 2rem;font-size:.875rem;color:var(--muted);margin-top:1.5rem}
#research .p7-legend>span{display:inline-flex;align-items:center;gap:.75rem}
#research .p7-legend i{display:inline-block;width:2.5rem;border-top:1.2px solid #798672}
#research .p7-legend .p7-legend-interpretation{border-top-width:1px;opacity:.5}
#research .p7-legend .p7-legend-reconnection{border-top:1px dotted #798672;opacity:.7}
#research .p7-context{margin-top:3rem;max-width:42rem}
#research .p7-closing{margin:4rem auto 0;text-align:center;font-size:1.125rem;line-height:1.9}
#research .p7-mobile{display:none}
#research .p7-reveal.is-revealing .p7-stage{animation-name:p7-emerge;animation-duration:1.1s;animation-timing-function:ease-out;animation-fill-mode:both}
#research .p7-stage[data-step="2"]{animation-delay:.12s}
#research .p7-stage[data-step="3"]{animation-delay:.32s}
#research .p7-stage[data-step="4"]{animation-delay:.52s}
#research .p7-stage[data-step="5"]{animation-delay:.72s}
#research .p7-stage[data-step="6"]{animation-delay:.92s}
@keyframes p7-emerge{from{opacity:.28}to{opacity:1}}
@media(max-width:1100px){
  #research .p7-desktop{display:none}
  #research .p7-mobile{display:block;max-width:42rem;margin:2.5rem auto}
  #research .p7-mobile h4{font-size:1.3rem;line-height:1.8;font-weight:400}
  #research .p7-mobile .p7-mobile-anchor{font-size:1.6rem;font-weight:500}
  #research .p7-mobile h4:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);vertical-align:middle;margin-right:.75rem}
  #research .p7-mobile .p7-mobile-anchor:before{width:7px;height:7px}
  #research .p7-branches{list-style:none;border-left:1.2px solid #798672;margin:1.25rem 0 0 .2rem;padding:0 0 0 1.5rem}
  #research .p7-branches li{position:relative;margin-top:1.5rem;line-height:1.8}
  #research .p7-branches li:before{content:"";position:absolute;width:1rem;left:-1.5rem;top:.85rem;border-top:1.2px solid #798672}
  #research .p7-branches strong{font-size:1.125rem;font-weight:400}
  #research .p7-branches li>span,#research .p7-branches small{display:block;font-size:.9375rem;color:var(--muted)}
  #research .p7-mobile-details{margin-top:1rem}
  #research .p7-mobile-interpretation{border-left:1px solid #79867280;padding-left:1.5rem;margin:2.75rem 0 0 .2rem}
  #research .p7-relation-copy{font-size:.9375rem;color:var(--muted);margin-bottom:.65rem}
  #research .p7-convergence{margin-top:2rem}
  #research .p7-contributors{font-size:.9375rem;color:var(--muted);line-height:1.9}
  #research .p7-convergence svg{display:block;width:100%;height:3.5rem;margin-top:.5rem}
  #research .p7-convergence h4{text-align:center}
  #research .p7-mobile-contrast{margin:3rem 0 0 1.7rem}
  #research .p7-mobile-return{border-left:1px dotted #798672;padding-left:1.5rem;margin:3rem 0 0 .2rem}
}
@media(max-width:767px){
  #research .p7-skeleton{margin-top:2.5rem}
  #research .p7-context{margin-top:2rem}
  #research .p7-closing{margin-top:2.75rem}
}
@media print{#research .p7-stage{animation:none!important}}

/* Desktop-only graph refinement; mobile, legend and type rules stay intact. */
@media(min-width:1101px){
  #research .p7-desktop .p7-direct{stroke-width:1.25;stroke-opacity:1}
  #research .p7-desktop .p7-interpretation{stroke-width:.9;stroke-opacity:.4}
  #research .p7-desktop .p7-interpretation path[data-to="world"]{stroke-width:1.05;stroke-opacity:.58}
  #research .p7-desktop .p7-reconnection{stroke-width:1.5;stroke-opacity:.9;stroke-dasharray:.5 5}
  #research .p7-desktop .p7-node text{paint-order:stroke;stroke:#edf0ed;stroke-width:5px;stroke-linejoin:round}
}
/* Scene 08: a temporal trace, with returns kept in the reading order. */
#future .life-transition{margin-top:2.75rem;font-size:.9375rem;color:var(--muted)}
#future .life-transition p{display:flex;gap:1rem}
#future .life-transition span{flex-shrink:0}
#future .life-case{margin-top:6rem}
#future .life-case-intro{max-width:38rem}
#future .life-case-intro .eyebrow{margin-bottom:1.5rem}
#future .life-path{list-style:none;padding:0;margin:4rem 0 0}
#future .life-stage{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));margin:0;padding:0}
#future .life-stop{grid-column:var(--life-column)/-1;position:relative;padding-left:1.25rem;max-width:38rem;min-width:0}
#future .life-stop:before{content:"";position:absolute;left:-2px;top:.8rem;width:4px;height:4px;border-radius:50%;background:var(--muted)}
#future .life-stop h3{font-size:1.1875rem;font-weight:500;margin:0;line-height:1.7}
#future .life-stop p{margin-top:.5rem;line-height:1.85}
#future .life-detail,#future .life-fragments,#future .life-objects{font-size:.9375rem;color:var(--muted)}
#future .life-trace{grid-column:1/-1;display:block;width:100%;height:4rem;margin:1.25rem 0 .75rem;overflow:visible;fill:none;stroke:var(--muted);stroke-opacity:.36;stroke-width:1px}
#future .life-trace path{vector-effect:non-scaling-stroke}
#future .life-trace-narrow{display:none}
#future .life-station .life-trace{height:6.5rem;margin-top:2.5rem}
#future .life-station .life-stop{padding-top:1rem;padding-bottom:2.5rem}
#future .life-station .life-stop:before{top:2rem}
#future .life-station h3{font-size:1.375rem}
#future .life-station blockquote{font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.85;margin:2.25rem 0 0;font-weight:400}
#future .life-return .life-trace{height:6.5rem}
#future .life-return .life-fragments{margin-top:1.25rem}
#future .life-objects{display:flex;align-items:center;gap:1.25rem;margin-top:1.5rem;max-width:31rem}
#future .life-objects p{margin:0;flex-shrink:0}
#future .life-objects:after{content:"";height:1px;flex:1;background:var(--line);min-width:1rem;order:1}
#future .life-objects span{order:2}
#future .life-today .life-trace{height:5rem;margin-top:2rem}
#future .life-today .life-present{font-size:1rem;margin-top:1.5rem;color:var(--muted)}
#future .life-present span{font-size:.875rem}
#future .life-today .life-thought{margin-top:2rem;font-size:1.375rem;line-height:1.85}
#future .life-afterword{margin-top:6rem;max-width:40rem}
#future .life-afterword .life-coda{margin-top:3rem;font-size:1.5rem;line-height:1.8}
#future .life-stage.is-visible .life-stop{animation:life-appear 1.6s ease-out both}
#future .life-stage.is-visible .life-trace path{animation:life-trace 1.8s ease-out both}
#future .life-station.is-visible .life-stop{animation-duration:2.4s}
#future .life-station.is-visible blockquote{animation:life-appear 2.6s ease-out both}
#future .life-house.is-visible .life-objects{animation:life-objects 2s ease-out both}
@keyframes life-appear{from{opacity:.35}to{opacity:1}}
@keyframes life-trace{from{stroke-dasharray:1;stroke-dashoffset:1}to{stroke-dasharray:1;stroke-dashoffset:0}}
@keyframes life-objects{from{opacity:.4;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:900px){
  #future .life-stop{grid-column:2/-1}
  #future .life-return .life-stop,#future .life-house .life-stop{grid-column:1/-1}
  #future .life-trace-wide{display:none}
  #future .life-trace-narrow{display:block}
}
@media(max-width:767px){
  #future .life-case{margin-top:4rem}
  #future .life-path{margin-top:3rem}
  #future .life-transition{margin-top:2rem}
  #future .life-station h3{font-size:1.25rem}
  #future .life-station blockquote{font-size:1.5rem}
  #future .life-objects{gap:.75rem;font-size:.875rem}
  #future .life-afterword{margin-top:4rem}
}
@media print{#future .life-stage{break-inside:avoid}#future .life-stage *{animation:none!important}}
/* Scene 08 participant photographs retain their original material and proportions. */
#future .life-archive{margin:1.5rem 0 0;max-width:100%}
#future .life-archive-wendeng{width:10.5rem}
#future .life-archive-yantai{width:14.875rem}
#future .life-archive-shanghai{width:12.65rem}
#future .life-archive img{display:block;width:100%;height:auto;object-fit:contain;filter:none;border:0;border-radius:0;box-shadow:none}
#future .life-archive figcaption{display:block;margin-top:.7rem;color:var(--muted);font-size:.875rem;line-height:1.75}
#future .life-archive figcaption span{display:block}
#future .life-archive figcaption span+span{margin-top:.2rem}
#future .life-minor-quote{margin:1.25rem 0 0;font-size:1rem;line-height:1.85;font-weight:400;color:var(--muted)}
/* Unnumbered epilogue; the existing eight scenes retain their own styles. */
.future-glimpse{--glimpse-dark:#101214;--glimpse-header:6rem;background:var(--glimpse-dark)}
.glimpse-opening{min-height:90svh;display:flex;align-items:flex-start;padding-top:12svh;padding-bottom:35svh;background:linear-gradient(to bottom,var(--paper) 0%,#e5e6e3 38%,#868a89 65%,var(--glimpse-dark) 100%)}
.glimpse-opening h2{max-width:42rem}
.glimpse-world{position:relative;overflow:clip;color:var(--paper);background:var(--glimpse-dark)}
.glimpse-image{position:sticky;top:var(--glimpse-header);height:calc(100svh - var(--glimpse-header));margin-bottom:calc(-100svh + var(--glimpse-header));overflow:hidden}
.glimpse-image picture,.glimpse-image img{display:block;width:100%;height:100%}
.glimpse-image img{object-fit:cover;object-position:50% 52%;opacity:1}
.glimpse-image:after{content:"";position:absolute;inset:0;background:var(--glimpse-dark);opacity:.78;pointer-events:none}
.glimpse-breath{height:110svh;position:relative;pointer-events:none}
.glimpse-story{position:relative;z-index:1}
.glimpse-passage{min-height:70svh;display:flex;flex-direction:column;justify-content:center;margin-inline:auto;padding-block:5rem;max-width:37rem}
.glimpse-passage p{line-height:1.95}
.glimpse-boundary{font-size:clamp(1.25rem,2vw,1.6rem)}
.glimpse-last{min-height:85svh}
.glimpse-return{position:relative;min-height:56.25svh}
.glimpse-return{background:linear-gradient(to bottom,var(--glimpse-dark) 0%,#555b5b 28%,#dfe2df 65%,var(--paper) 85%)}
.glimpse-point{position:absolute;left:50%;bottom:6svh;width:7.5px;height:7.5px;transform:translateX(-50%);border-radius:50%;background:var(--accent)}
.site-header.glimpse-nav-ready{transition:opacity 1.2s ease-out}
.site-header.glimpse-nav-muted{opacity:0;pointer-events:none}
.site-header.glimpse-nav-muted:focus-within{opacity:1;pointer-events:auto}
.homepage-landing.glimpse-landing-ready .closing-line{transition:opacity 1.4s ease-out}
.homepage-landing.glimpse-landing-waiting .closing-line{opacity:0}
.future-glimpse.is-enhanced .glimpse-image:after{opacity:var(--glimpse-shade,0);transition:opacity 1.6s ease-out}
.future-glimpse.is-enhanced .glimpse-image img{opacity:var(--glimpse-image-opacity,1);transition:opacity 2s ease-out}
.future-glimpse .glimpse-passage.is-revealing p{animation:glimpse-reveal 1.8s ease-out both}
.future-glimpse .glimpse-passage.is-revealing p+p{animation-delay:.25s}
@keyframes glimpse-reveal{from{opacity:.3}to{opacity:1}}
@media(max-width:767px){
  .future-glimpse{--glimpse-header:4.5rem}
  .glimpse-opening{min-height:80svh;padding-top:10svh}
  .glimpse-image img{object-position:49% 50%}
  .glimpse-passage{min-height:65svh;padding-block:4rem}
  .glimpse-last{min-height:80svh}
}
@media(prefers-reduced-motion:reduce){
  .future-glimpse .glimpse-image{position:relative;top:0;margin-bottom:0}
  .future-glimpse .glimpse-image:after{opacity:0}
  .future-glimpse .glimpse-breath{display:none}
  .future-glimpse .glimpse-passage{min-height:0;padding-block:3rem}
}
@media print{
  .homepage-landing.glimpse-landing-waiting .closing-line{opacity:1}
  .glimpse-image{position:relative;top:0;margin:0;height:auto}
  .glimpse-image img{height:auto}
  .glimpse-image:after,.glimpse-breath,.glimpse-return{display:none}
  .glimpse-opening,.glimpse-passage{min-height:0;padding-block:2rem}
  .future-glimpse,.glimpse-world,.glimpse-opening{background:var(--paper);color:var(--ink)}
}
/* Mobile QA: preserve desktop geometry while serving smaller copies of final assets. */
.responsive-photo{display:contents}
@media(max-width:900px){
  #scene07 .writing-process-grid{grid-template-columns:minmax(0,1fr);max-width:34rem;gap:2.5rem}
}
@media(max-width:767px){
  .header-inner{min-height:4.5rem}
  #practice .practice-process-photos>figure{width:88%;justify-self:center}
  #scene07 .writing-reference-grid figure{width:88%;max-width:20rem}
}
/* Phone layout is an independent vertical reading, never a scaled desktop grid. */
@media screen and (max-width:767px){
  .desktop-nav{display:none}
  .mobile-menu{display:block}
  .header-inner{min-height:4.5rem}
  .split,.case-layout,.two-judgments{grid-template-columns:minmax(0,1fr)}
  .split>*{width:100%;max-width:none}
  .hero h1,.closing-line{overflow-wrap:normal;word-break:normal}
  main h2,main h3,main h4{text-wrap:balance;overflow-wrap:normal}
  #synthetic-memory .case-sequence{grid-template-columns:minmax(0,1fr)}
  #practice .practice-process-photos,#practice .practice-public-viewing{grid-template-columns:minmax(0,1fr)}
  #practice .practice-method{width:100%;max-width:none}
  #practice .steps li>div{display:block}
  #practice .steps p{margin-top:.5rem;font-size:1.125rem}
  #scene07 .writing-process-grid,#scene07 .writing-reference-grid{grid-template-columns:minmax(0,1fr)}
  #research .p7-desktop{display:none}
  #research .p7-mobile{display:block;width:100%;max-width:none}
  #research .p7-mobile-details{border:0;margin:0;padding:0}
  #research .p7-mobile-details>li:first-child{margin-left:1.5rem}
  #research .p7-branches li>span,#research .p7-branches small,#research .p7-relation-copy{font-size:1rem}
  #research .p7-mobile-contrast{border-left:1px solid #79867280;padding-left:1.5rem;margin-left:.2rem}
  #research .p7-mobile-return{border-left:1px dotted #798672}
  #future .life-stage{display:block}
  #future .life-stop{margin-left:1.5rem;padding-left:1rem;max-width:none}
  #future .life-return .life-stop{margin-left:.375rem}
  #future .life-trace{width:3rem;height:3rem;margin-block:1.5rem 1rem}
  #future .life-trace-wide{display:none}
  #future .life-trace-narrow{display:block;d:path("M 600 0 L 600 100")}
  #future .life-return .life-trace{height:4.5rem}
  #future .life-return .life-trace-narrow{d:path("M 600 0 C 600 65, 150 35, 150 100")}
  #future .life-return+.life-stage .life-trace-narrow{d:path("M 150 0 C 150 65, 600 35, 600 100")}
  #future .life-station .life-stop{padding-block:1.25rem 3rem}
  #future .life-station blockquote{font-size:1.625rem;line-height:1.8;margin-top:2rem}
  #future .life-archive figcaption{font-size:.9375rem}
  .glimpse-opening{min-height:64svh;padding-bottom:24svh}
  .homepage-landing{min-height:45svh;display:flex;align-items:center;padding-block:4rem 5rem}
  .homepage-landing .closing-line{margin:0}
  .people-list li{display:block}
  .people-list h3{margin-bottom:.65rem}
  .people-list li+li{margin-top:2rem}
  .contact-section .split,.people-section .split{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.site-header,.copy-row,.memory-notes,.skip-link{display:none}.section{padding-block:2rem}.wrap{width:100%}.hero{min-height:0}.hero h1{font-size:3rem}.hero-bottom{margin-top:2rem}.split{gap:2rem}.contact-section{padding-top:2rem}figure,.steps li{break-inside:avoid}a[href^="mailto"]:after{content:""}}

/* Component selection: one life path is rendered at each breakpoint. */
#future .life-path-mobile{display:none}
@media screen and (max-width:767px){
  #future .life-path-desktop{display:none}
  #future .life-path-mobile{display:block}
  #research .p7-desktop{display:none}
  #research .p7-mobile{display:block}
}

.brand-mark>svg{position:absolute;inset:0;display:block;width:100%;height:100%}

/* Keep touch/key scrolling inside an open mobile menu. */
@media(max-width:767px){
  html.mobile-nav-open{overflow:hidden;overscroll-behavior:none;scrollbar-gutter:stable}
  .mobile-menu nav{max-height:calc(100svh - 5rem);overflow-y:auto;overscroll-behavior:contain}
}

/* Hero fragments: two quiet relationships, with room left between them. */
.hero .memory-notes{isolation:isolate}
.hero .note{font-size:.9375rem;line-height:1.8;opacity:.82;--drift-x:1px;--drift-y:-2px;animation:memory-fragment-drift 14s ease-in-out infinite;transition:color 1.2s ease}
.hero .note i{flex:none;box-shadow:none}
.hero .note-person{left:9%;top:14%;animation-duration:13s;animation-delay:-3s}
.hero .note-light{left:68%;right:auto;top:25%;--drift-x:-2px;--drift-y:1px;animation-duration:16s;animation-delay:-8s}
.hero .note-room{left:32%;top:43%;opacity:.96;--drift-x:0px;--drift-y:-1px;animation-duration:15s;animation-delay:-5s}
.hero .note-leaving{left:4%;top:68%;opacity:.7;--drift-x:-1px;--drift-y:2px;animation-duration:12s;animation-delay:-7s}
.hero .note-time{left:66%;right:auto;top:79%;opacity:.7;--drift-x:2px;--drift-y:1px;animation-duration:16s;animation-delay:-11s}
.hero .notes-foot{opacity:.6}
.hero .memory-threads{position:absolute;left:.225rem;top:.84375rem;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:-1;fill:none;stroke:var(--accent)}
.hero .memory-threads path{stroke-width:.7px;vector-effect:non-scaling-stroke;opacity:.13;transition:opacity 1.2s ease}
.hero .memory-threads-mobile{display:none}
@keyframes memory-fragment-drift{0%,100%{transform:translate(0,0)}50%{transform:translate(var(--drift-x),var(--drift-y))}}
@media(hover:hover) and (pointer:fine){
  .hero .note:hover{color:var(--ink)}
  .hero .memory-notes:has(.note-person:hover) .thread-person,.hero .memory-notes:has(.note-light:hover) .thread-light{opacity:.24}
}
@media(max-width:767px){
  .hero .memory-notes{height:14rem;margin-top:3rem}
  .hero .note{font-size:.875rem;--drift-x:0px;--drift-y:-.75px}
  .hero .note-person{left:8%;top:5%}
  .hero .note-light{left:65%;top:25%;--drift-y:.75px}
  .hero .note-room{left:33%;top:47%;--drift-y:-.5px}
  .hero .note-leaving{left:4%;top:72%}
  .hero .note-time{left:65%;top:86%;--drift-y:.75px}
  .hero .memory-threads{top:.7875rem}
  .hero .memory-threads path{opacity:.1}
  .hero .memory-threads-desktop{display:none}
  .hero .memory-threads-mobile{display:inline}
}
@media(prefers-reduced-motion:reduce){.hero .note{animation:none;transform:none}.hero .memory-threads path{transition:none}}

/* Bound desktop epilogue paint to the section; retain approved gradients. */
@media screen and (min-width:768px){
  .future-glimpse{position:relative;isolation:isolate;contain:paint}
  .future-glimpse .glimpse-world{isolation:isolate;contain:paint}
  .future-glimpse .glimpse-image{pointer-events:none}
  .future-glimpse .glimpse-world-inactive{visibility:hidden;pointer-events:none}
}

/* Immersive galaxy surface: local sticky grid layer, no global viewport overlay. */
@media screen{
  .future-glimpse{position:relative;isolation:isolate;contain:paint}
  .future-glimpse .glimpse-world{isolation:isolate;contain:paint}
  .future-glimpse .glimpse-image{pointer-events:none;border:0;border-radius:0;box-shadow:none;background:var(--glimpse-dark)}
  .future-glimpse .glimpse-image picture{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px)}
  .future-glimpse .glimpse-image img{transform:scale(1.025)}
  .future-glimpse .glimpse-image:before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(to bottom,var(--glimpse-dark) 0%,transparent 12%,transparent 88%,var(--glimpse-dark) 100%)}
  .future-glimpse .glimpse-image:after{z-index:1}
  .future-glimpse .glimpse-world-inactive{visibility:hidden;pointer-events:none}
}
@media screen and (prefers-reduced-motion:no-preference){
  .future-glimpse .glimpse-world{display:grid;grid-template-columns:minmax(0,1fr)}
  .future-glimpse .glimpse-image{grid-area:1 / 1;align-self:start;position:sticky;top:0;width:100%;height:100svh;height:100dvh;margin:0;overflow:hidden}
  .future-glimpse .glimpse-breath{grid-area:1 / 1;align-self:start}
  .future-glimpse .glimpse-story{grid-area:1 / 1;align-self:start;margin-top:110svh}
}

/* Small reading/tonal refinement; preserve the immersive composition and timing. */
@media screen{
  .future-glimpse .glimpse-passage p{position:relative;top:-1.5rem;text-shadow:0 1px 10px rgba(0,0,0,.3)}
  .future-glimpse .glimpse-image:after{background:radial-gradient(ellipse at 57% 52%,rgba(16,18,20,.88) 0%,var(--glimpse-dark) 75%)}
}
@media screen and (max-width:767px){
  .future-glimpse .glimpse-passage p{top:-2rem;line-height:2.2;text-wrap:pretty}
  .future-glimpse .glimpse-passage p+p{margin-top:1.5em}
  .future-glimpse .glimpse-lead-phrase{display:block;white-space:nowrap}
}

@media screen and (min-width:768px){
  .future-glimpse .glimpse-passage p{top:-2rem;left:-.75rem;text-shadow:0 2px 12px rgba(0,0,0,.28)}
}

/* Final mobile editorial pass: reading rhythm only; desktop and immersive art stay locked. */
@media screen and (max-width:767px){
  #about.section,#memory.section,#synthetic-memory.section,#practice.section,#connections.section,#scene07.section,#research.section,#future.section{padding-block:5rem}
  :is(#about,#synthetic-memory,#practice,#scene07,#research,#future) .prose>p:not(.eyebrow):not(.boundary):not(.research-boundary){line-height:1.8}
  :is(#about,#synthetic-memory,#practice,#scene07,#research,#future) .prose>p+p:not(.eyebrow):not(.boundary):not(.research-boundary){margin-top:1.35em}
  :is(#about,#memory,#synthetic-memory,#practice,#connections,#scene07,#research,#future) p:not(.eyebrow){text-wrap:pretty}
  :is(#memory,#synthetic-memory,#practice,#scene07) figcaption{font-size:.9375rem;line-height:1.8}
  :is(#synthetic-memory,#practice,#scene07) figure>figcaption{margin-top:1rem}
  :is(#memory,#synthetic-memory,#practice,#scene07) .material-label{font-size:.9375rem;line-height:1.8}
  #scene07 .writing-reference-note{font-size:.9375rem;line-height:1.8}
  #practice .practice-process-photos{gap:2.75rem}
  #practice .steps li{padding-block:1.35rem}
  #practice .steps p{margin-top:.65rem}
  #research .p7-branches li{margin-top:1.75rem}
  #research .p7-legend{font-size:.9375rem;line-height:1.8}
  #future .life-path-mobile .life-stop>p+p:not([class]){margin-top:1em}
  #future .life-path-mobile .life-trace{margin-block:1.75rem 1.25rem}
  #future .life-archive figcaption{font-size:.9375rem;line-height:1.8;margin-top:1rem}
  #future .life-archive figcaption span+span{margin-top:.35rem}
  .homepage-landing{padding-block:5rem 6rem}
}