/* V21 / À hauteur de matière. Two different documents inhabit the same light;
   their relationship changes scale while the account remains in ordinary flow. */
.material-encounter.project-study {
  --material-progress: 0;
  --material-stage-height: 78cqw;
  --material-ink: var(--place-ink, #274337);
  --material-rule: var(--place-line, #94ab8e6b);
  padding-top: 68px;
  padding-bottom: clamp(75px, 7vw, 120px);
  overflow: visible;
}
.material-encounter .material-heading { display: grid; grid-template-columns: minmax(110px,.48fr) minmax(0,1.65fr) minmax(135px,.56fr); gap: 3.5vw; align-items: start; border-top: 1px solid var(--material-rule); padding-top: 28px; margin-bottom: 35px; }
.material-encounter .material-kicker { font-size: 11px; line-height: 1.8; color: var(--material-ink); }
.material-encounter .material-kicker > span { display: block; margin-top: 3px; opacity: .68; }
.material-encounter .material-heading h2 { font: 400 clamp(47px,5.1vw,82px)/.97 var(--serif); letter-spacing: -.03em; max-width: 790px; color: var(--material-ink); }
.material-encounter .material-lead { font-size: 13px; line-height: 1.75; max-width: 510px; margin-top: 20px; color: var(--material-ink); }
.material-encounter .material-gesture { font: 400 clamp(24px,2.7vw,39px)/1.08 var(--serif); opacity: .46; padding-top: 7px; }
.material-encounter .material-workbench { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(260px,.85fr); gap: clamp(30px,4.7vw,80px); align-items: start; }
.material-encounter .material-station { min-width: 0; container-type: inline-size; }
.material-encounter .material-controls { display: flex; gap: 25px; min-height: 48px; margin-bottom: 15px; }
.material-encounter .material-controls > button { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: 13px; line-height: 1.4; padding: 8px 0; border-bottom: 1px solid var(--material-rule); color: var(--material-ink); }
.material-encounter .material-controls > button > span { font: 400 9px/1.4 var(--mono); opacity: .55; }
.material-encounter .material-controls > button[aria-pressed="true"] { border-bottom-color: var(--material-ink); }
.material-encounter .material-controls > button[aria-pressed="true"] > span { opacity: 1; }
.material-encounter .material-controls > button:hover { color: #93563d; }
.material-encounter .material-controls > button:focus-visible, .material-encounter .material-links a:focus-visible { outline: 2px solid var(--material-ink); outline-offset: 6px; }
.material-encounter .material-stage { position: relative; display: grid; grid-template-columns: minmax(0,1.62fr) minmax(0,1fr); gap: 30px; align-items: start; overflow: visible; }
.material-encounter .material-ground { position: absolute; inset: 16% -15px 9%; z-index: 0; pointer-events: none; background: linear-gradient(165deg, #f4f5e980, #d7d9c282 57%, #edece16b); box-shadow: 0 35px 60px -50px #52634a38; }
.material-encounter .material-place, .material-encounter .material-close { position: relative; z-index: 1; margin: 0; min-width: 0; outline: none; }
.material-encounter .material-place:focus-visible, .material-encounter .material-close:focus-visible { outline: 2px solid var(--material-ink); outline-offset: 7px; }
.material-encounter .material-frame { position: relative; width: 100%; overflow: visible; background: var(--place-paper, #eff3e8); box-shadow: 0 23px 32px -21px #4656374f, 0 1px 0 #ffffff8c; }
.material-encounter .material-place-frame { aspect-ratio: var(--material-place-ratio); }
.material-encounter .material-close-frame { aspect-ratio: var(--material-close-ratio); }
.material-encounter .material-frame > img { display: block; width: 100%; height: 100%; object-fit: contain; transform: none; filter: none; }
.material-encounter .material-place figcaption, .material-encounter .material-close figcaption { display: flex; flex-direction: column; gap: 4px; margin-top: 12px; font-size: 10px; line-height: 1.55; color: var(--material-ink); }
.material-encounter .material-place figcaption > span:last-child, .material-encounter .material-close figcaption > span:last-child { font-size: 9px; opacity: .72; }
.material-encounter .material-close { margin-top: 31%; }
.material-encounter .material-anchor { position: absolute; left: var(--material-anchor-x); top: var(--material-anchor-y); width: 5px; height: 5px; margin: -2.5px 0 0 -2.5px; border-radius: 50%; border: 1px solid #fff6dfcf; background: #ad77566b; box-shadow: 0 0 0 4px #f7e7c522; pointer-events: none; opacity: 0; }
.material-encounter .material-thread { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 3; pointer-events: none; overflow: visible; }
.material-encounter .material-thread path { fill: none; stroke: #a575526b; stroke-width: 1; vector-effect: non-scaling-stroke; }
.material-encounter .material-relationship { display: flex; align-items: baseline; gap: 12px; font-size: 11px; line-height: 1.75; color: var(--material-ink); margin-top: 23px; max-width: 600px; }
.material-encounter .material-relationship > span { align-self: center; height: 1px; width: 24px; background: #a575526b; flex-shrink: 0; }
.material-encounter .material-reading { min-width: 0; padding-top: 13px; }
.material-encounter .material-reading-kicker { font-size: 10px; line-height: 1.7; color: var(--material-ink); opacity: .68; }
.material-encounter .material-reading-section { margin-top: 25px; }
.material-encounter .material-reading-section > span { font-size: 10px; line-height: 1.5; color: #a16b4b; }
.material-encounter .material-reading-section h3 { font: 400 clamp(29px,2.8vw,43px)/1.04 var(--serif); letter-spacing: -.015em; margin-top: 10px; max-width: 420px; color: var(--material-ink); }
.material-encounter .material-reading-section p { font-size: 13px; line-height: 1.85; margin-top: 14px; color: var(--material-ink); max-width: 470px; }
.material-encounter .material-palette { margin-top: 26px; padding-top: 16px; border-top: 1px solid var(--material-rule); }
.material-encounter .material-palette > span { font-size: 9px; line-height: 1.6; opacity: .65; }
.material-encounter .material-palette p { font-size: 11px; line-height: 1.8; margin-top: 7px; color: var(--material-ink); }
.material-encounter .material-links { display: flex; flex-direction: column; align-items: start; gap: 0; margin-top: 17px; }
.material-encounter .material-links a { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 44px; padding: 8px 0; font-size: 12px; line-height: 1.4; color: var(--material-ink); border-bottom: 1px solid var(--material-rule); }
.material-encounter .material-links i { font-size: 21px; font-style: normal; }
.material-encounter .material-links a:hover { color: #93563d; }
/* Each static composition already has a direction and includes both images. */
.material-encounter[data-material-form="1"] { --material-stage-height: 90cqw; }
.material-encounter[data-material-form="1"] .material-workbench { grid-template-columns: minmax(260px,.85fr) minmax(0,1.65fr); }
.material-encounter[data-material-form="1"] .material-station { grid-column: 2; grid-row: 1; }
.material-encounter[data-material-form="1"] .material-reading { grid-column: 1; grid-row: 1; }
.material-encounter[data-material-form="1"] .material-stage { grid-template-columns: minmax(0,.76fr) minmax(0,1.24fr); gap: 32px; }
.material-encounter[data-material-form="1"] .material-close { margin-top: 28%; }
.material-encounter[data-material-form="1"] .material-ground { inset: 5% 18% 2% 8%; background: linear-gradient(100deg, #e3e7df1a, #bccdc47a 68%, #f0f4e86b); }
.material-encounter[data-material-form="2"] { --material-stage-height: 66cqw; }
.material-encounter[data-material-form="2"] .material-workbench { display: block; }
.material-encounter[data-material-form="2"] .material-reading { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); column-gap: 36px; padding-top: 30px; }
.material-encounter[data-material-form="2"] .material-reading-kicker { grid-column: 1 / -1; }
.material-encounter[data-material-form="2"] .material-reading-section:nth-of-type(1) { grid-column: 1 / 6; }
.material-encounter[data-material-form="2"] .material-reading-section:nth-of-type(2) { grid-column: 7 / 12; }
.material-encounter[data-material-form="2"] .material-palette { grid-column: 1 / 6; }
.material-encounter[data-material-form="2"] .material-links { grid-column: 7 / -1; flex-direction: row; flex-wrap: wrap; align-items: start; gap: 12px 30px; padding-top: 12px; }
.material-encounter[data-material-form="2"] .material-stage { grid-template-columns: minmax(0,1.75fr) minmax(0,1fr); gap: 24px; }
.material-encounter[data-material-form="2"] .material-close { margin-top: 62%; }
.material-encounter[data-material-form="2"] .material-ground { inset: 23% -20px 8% 12%; background: linear-gradient(150deg, #c6d5c662, #afc5b67a 51%, #e6ede27a); }
/* The controller grants this mode only when a full, measured scene fits. */
.material-encounter[data-material-motion="true"] .material-stage { display: block; height: var(--material-stage-height); }
.material-encounter[data-material-motion="true"] .material-place, .material-encounter[data-material-motion="true"] .material-close { position: absolute; margin: 0; transition: none; }
.material-encounter[data-material-motion="true"] .material-place { left: 0; top: calc((.10 + var(--material-progress) * .52) * 100%); width: calc((.68 - var(--material-progress) * .35) * 100%); }
.material-encounter[data-material-motion="true"] .material-close { right: 0; top: calc((.54 - var(--material-progress) * .50) * 100%); width: calc((.29 + var(--material-progress) * .35) * 100%); max-width: calc(var(--material-stage-height) * (.35 + var(--material-progress) * .41) * var(--material-close-aspect)); z-index: 2; }
.material-encounter[data-material-motion="true"] .material-anchor { opacity: calc(.28 + var(--material-progress) * .54); }
.material-encounter[data-material-motion="true"][data-material-form="1"] .material-place { width: calc((.43 - var(--material-progress) * .16) * 100%); top: calc(var(--material-progress) * 46%); }
.material-encounter[data-material-motion="true"][data-material-form="1"] .material-close { width: calc((.48 + var(--material-progress) * .17) * 100%); top: calc((.33 - var(--material-progress) * .29) * 100%); max-width: calc(var(--material-stage-height) * (.49 + var(--material-progress) * .27) * var(--material-close-aspect)); }
.material-encounter[data-material-motion="true"][data-material-form="2"] .material-place { width: calc((.79 - var(--material-progress) * .48) * 100%); top: calc(var(--material-progress) * 51%); }
.material-encounter[data-material-motion="true"][data-material-form="2"] .material-close { right: 4%; width: calc((.26 + var(--material-progress) * .35) * 100%); top: calc((.58 - var(--material-progress) * .57) * 100%); max-width: calc(var(--material-stage-height) * (.35 + var(--material-progress) * .41) * var(--material-close-aspect)); }
@media (min-width: 781px) and (max-width: 1100px) {
  .material-encounter .material-heading { grid-template-columns: 130px minmax(0,1fr); gap: 30px; }
  .material-encounter .material-gesture { display: none; }
  .material-encounter .material-heading h2 { font-size: 61px; }
  .material-encounter .material-workbench { grid-template-columns: minmax(0,1.25fr) minmax(260px,.85fr); gap: 30px; }
  .material-encounter .material-reading-section h3 { font-size: 32px; }
  .material-encounter .material-reading-section p { font-size: 12px; line-height: 1.8; }
  .material-encounter .material-stage { column-gap: 20px; }
  .material-encounter .material-reading-section { margin-top: 21px; }
}
@media (max-width: 780px) {
  .material-encounter.project-study { padding-top: 50px; padding-bottom: 65px; }
  .material-encounter .material-heading { display: block; padding-top: 23px; margin-bottom: 29px; }
  .material-encounter .material-kicker > span { display: inline; margin-left: 12px; }
  .material-encounter .material-heading h2 { font-size: clamp(44px,9.9vw,68px); line-height: .99; margin-top: 20px; }
  .material-encounter .material-lead { font-size: 12px; line-height: 1.75; margin-top: 15px; }
  .material-encounter .material-gesture { display: none; }
  .material-encounter .material-workbench { display: block; }
  .material-encounter .material-controls { margin-bottom: 16px; gap: 28px; }
  .material-encounter .material-controls > button { font-size: 12px; }
  .material-encounter .material-stage,
  .material-encounter[data-material-form="1"] .material-stage,
  .material-encounter[data-material-form="2"] .material-stage { grid-template-columns: repeat(12, minmax(0,1fr)); gap: 24px 0; }
  .material-encounter .material-place { grid-column: 1 / span 9; grid-row: 1; }
  .material-encounter .material-close { grid-column: 2 / span 11; grid-row: 2; margin-top: 0; }
  .material-encounter .material-place figcaption, .material-encounter .material-close figcaption { font-size: 10px; line-height: 1.55; margin-top: 10px; }
  .material-encounter .material-place figcaption > span:last-child, .material-encounter .material-close figcaption > span:last-child { font-size: 10px; line-height: 1.65; opacity: .76; }
  .material-encounter[data-material-form="1"] .material-place { grid-column: 1 / span 7; }
  .material-encounter[data-material-form="1"] .material-close { grid-column: 3 / span 10; margin-top: 0; }
  .material-encounter[data-material-form="2"] .material-place { grid-column: 1 / span 12; }
  .material-encounter[data-material-form="2"] .material-close { grid-column: 2 / span 11; margin-top: 0; }
  .material-encounter[data-material-form="2"] .material-ground { right: -12px; }
  .material-encounter .material-relationship { font-size: 10px; margin-top: 22px; gap: 11px; }
  .material-encounter .material-reading { padding-top: 31px; }
  .material-encounter[data-material-form="2"] .material-reading { display: block; padding-top: 31px; }
  .material-encounter .material-reading-kicker { font-size: 10px; }
  .material-encounter .material-reading-section { margin-top: 24px; }
  .material-encounter .material-reading-section h3 { font-size: clamp(31px,7.8vw,44px); max-width: 420px; }
  .material-encounter .material-reading-section p { font-size: 13px; line-height: 1.85; max-width: 560px; }
  .material-encounter .material-palette { margin-top: 25px; }
  .material-encounter .material-links { margin-top: 18px; flex-direction: row; flex-wrap: wrap; gap: 8px 23px; }
  .material-encounter .material-links a { gap: 15px; font-size: 11px; }
  .material-encounter[data-material-form="2"] .material-links { padding-top: 0; gap: 8px 23px; }
}
@media (max-width: 360px) {
  .material-encounter .material-heading h2 { font-size: 43px; }
  .material-encounter .material-kicker > span { display: block; margin-left: 0; }
  .material-encounter .material-stage, .material-encounter[data-material-form="1"] .material-stage { row-gap: 22px; }
  .material-encounter .material-close figcaption { font-size: 10px; }
  .material-encounter .material-close figcaption > span:last-child { font-size: 10px; }
  .material-encounter .material-links { gap: 5px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .material-encounter *, .material-encounter *::before, .material-encounter *::after { animation: none !important; transition: none !important; }
}
