/* Perspective study 02 — fixed text metrics, optical objects, gentle spring return. */
html[data-theme=lab] .hero h1.perspective-heading.title-image-ready{font-size:clamp(46px,5.85vw,83px);line-height:1.15;position:relative;isolation:isolate;margin-bottom:28px}
.title-image-ready .title-line{display:block;white-space:nowrap}
.title-letter{position:relative;display:inline-block;cursor:crosshair;vertical-align:baseline}
.title-glyph{display:inline-block;transition:transform 440ms cubic-bezier(.22,1,.36,1),opacity 180ms ease;transform:translateX(var(--nudge,0px));pointer-events:none}
.title-letter.is-active .title-glyph{opacity:0}
.title-space{display:inline-block;width:.24em}
.title-object{position:absolute;left:50%;top:50%;translate:calc(-50% + var(--nudge,0px)) -50%;width:var(--object-width,1em);height:var(--object-height,1.1em);display:flex;align-items:center;justify-content:center;z-index:4;pointer-events:none;transition:translate 440ms cubic-bezier(.22,1,.36,1)}
.title-object img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.title-letter.is-returning .title-glyph{animation:perspective-return 620ms cubic-bezier(.22,1,.36,1) both}
@keyframes perspective-return{0%,18%{opacity:0;scale:.9}72%{opacity:1;scale:1.02}100%{opacity:1;scale:1}}
.title-image-ready:focus-visible{outline:1px dashed var(--accent);outline-offset:14px;border-radius:2px}
.title-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:741px) and (max-width:1000px){html[data-theme=lab] .hero h1.perspective-heading.title-image-ready{font-size:76px}}
@media(max-width:740px){html[data-theme=lab] .hero h1.perspective-heading.title-image-ready{font-size:clamp(41px,10.25vw,74px)}}
@media(max-width:360px){html[data-theme=lab] .hero h1.perspective-heading.title-image-ready{font-size:37px}}
@media(prefers-reduced-motion:reduce){.title-glyph,.title-object{transition:none}.title-letter.is-returning .title-glyph{animation:none}}

/* Stable word hit targets retain natural wrapping and nested emphasis. */
.title-image-ready{position:relative;isolation:isolate}
.title-image-ready .title-word{display:inline-block;white-space:nowrap}
.hero h1.perspective-heading .title-word,.hero h1.perspective-heading .title-letter,.hero h1.perspective-heading .title-glyph{display:inline-block;font-style:inherit}
.content-section .title-image-ready .title-letter,.content-section .title-image-ready .title-glyph{font-style:inherit}
.about-layout > .title-image-ready{align-self:start}
html[data-theme=lab] .content-section .title-image-ready em{font-style:italic}
.hero h1.perspective-heading .title-space{display:inline-block;font-style:normal;width:.24em}
.about .title-image-ready br{display:block}

/* Research title: keep its reading rhythm and decorative direction marker. */
.research-layout > .title-image-ready{align-self:start}
.research .title-image-ready br{display:block}

/* Study 04: separate chapters without turning short sections into empty screens. */
html[data-theme=lab] .content-section{padding-top:clamp(88px,9vw,136px);padding-bottom:clamp(90px,10vw,144px)}
html[data-theme=lab] .content-section .section-heading{margin-bottom:46px}
html[data-theme=lab] .research{padding-bottom:clamp(112px,12vw,172px)}
html[data-theme=lab] .writing{padding-top:clamp(100px,10vw,144px)}
@media(max-width:740px){
 html[data-theme=lab] .content-section{padding-top:72px;padding-bottom:80px}
 html[data-theme=lab] .content-section .section-heading{margin-bottom:32px}
 html[data-theme=lab] .research{padding-bottom:96px}
 html[data-theme=lab] .writing{padding-top:80px}
}
