/* Chapters 04–07. Archive photography, native scrolling and tactile samples. */
.chapter-rule { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-top:19px; border-top:1px solid currentColor; font-size:10px; line-height:1.5; letter-spacing:.09em; text-transform:uppercase; }
.chapter-rule > :last-child { opacity:.65; }
.chapter-rule a { min-height:36px; display:inline-flex; align-items:center; gap:26px; }
.chapter-eyebrow { display:block; font-size:10px; line-height:1.6; letter-spacing:.12em; text-transform:uppercase; }
.chapter-link { display:inline-flex; align-items:center; justify-content:space-between; gap:40px; font-size:12px; padding:16px 0; border-bottom:1px solid currentColor; }
.chapter-link > span[aria-hidden] { font-size:22px; transition:transform .3s; }
.chapter-link:hover > span[aria-hidden] { transform:translate(4px,-4px); }
.atelier-chapter { color:#eae9dc; background:#19211d; padding:45px 6vw 0; }
.atelier-chapter .chapter-rule { border-color:#ffffff35; }
.atelier-heading { display:flex; align-items:end; justify-content:space-between; gap:5vw; padding:48px 0 58px; }
.atelier-heading h2 { font:400 clamp(54px,6.9vw,116px)/1.01 var(--body); letter-spacing:-.065em; }
.atelier-heading h2 span { color:#a7ac98; }
.atelier-heading p { color:#b9c1b4; font-size:13px; line-height:1.9; margin:0 0 8px; }
.atelier-journey { margin:0 -6vw; }
.atelier-stage { position:relative; isolation:isolate; background:#18201b; overflow:hidden; }
.atelier-ambience { position:absolute; inset:0; height:100%; width:100%; object-fit:cover; opacity:.18; z-index:-2; }
.atelier-stage::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#17201be8,#17201b10); z-index:-1; pointer-events:none; }
.atelier-scene { display:grid; grid-template-columns:42% 58%; min-height:620px; }
.atelier-scene-copy { position:relative; padding:62px 4vw 58px 6vw; display:flex; flex-direction:column; align-items:start; justify-content:center; }
.atelier-overline { text-transform:uppercase; letter-spacing:.12em; font-size:9px; color:#b3b9a7; }
.atelier-scene-copy h3 { font:400 clamp(49px,5.8vw,96px)/1.04 var(--body); letter-spacing:-.06em; margin:26px 0; }
.atelier-scene-copy p { max-width:278px; color:#c1c7b9; font-size:13px; line-height:1.9; }
.atelier-frame-number { display:block; margin-top:45px; font-size:20px; letter-spacing:-.035em; }
.atelier-frame-number i { font:400 10px var(--body); color:#abb29f; margin-left:10px; }
.atelier-photo { position:relative; height:620px; overflow:hidden; }
.atelier-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 45%; }
#atelier-disegno .atelier-photo img { object-position:50% 32%; }
.atelier-scene-model .atelier-photo img { object-position:56% 45%; }
.atelier-photo::after { content:''; position:absolute; inset:65% 0 0; background:linear-gradient(transparent,#111b18aa); pointer-events:none; }
.atelier-photo figcaption { position:absolute; z-index:1; bottom:24px; left:30px; font-size:9px; letter-spacing:.035em; color:#fffdf2; }
.atelier-story-foot { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:0 6vw; background:#19211d; border-top:1px solid #ffffff25; }
.atelier-tabs { display:flex; flex:1; max-width:810px; }
.atelier-tabs button { flex:1; text-align:left; font-size:12px; color:#a5ad9e; min-height:78px; border-top:2px solid transparent; margin-top:-1px; padding:15px 0; }
.atelier-tabs button[aria-selected=true] { color:#f0ecdd; border-top-color:#c6b48c; }
.atelier-tabs button + button { padding-left:25px; border-left:1px solid #ffffff19; }
.atelier-tabs small { font-size:9px; margin-right:14px; opacity:.55; }
.atelier-scroll-cue { display:none; font-size:9px; color:#b0b7a6; }
.atelier-scroll-cue > span { font-size:23px; margin-left:20px; }
.atelier-journey[data-scroll=true] { height:155svh; }
.atelier-journey[data-scroll=true] .atelier-stage { position:sticky; top:88px; height:calc(100svh - 98px); min-height:640px; max-height:980px; display:flex; flex-direction:column; }
.atelier-journey[data-scroll=true] .atelier-scenes { flex:1; min-height:0; }
.atelier-journey[data-scroll=true] .atelier-scene { height:100%; min-height:0; }
.atelier-journey[data-scroll=true] .atelier-photo { height:100%; min-height:0; }
.atelier-journey[data-scroll=true] .atelier-scroll-cue { display:flex; align-items:center; }
.atelier-closing { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:32px 0 40px; font-size:10px; color:#aeb7a7; }
.atelier-closing a { display:inline-flex; align-items:center; gap:28px; min-height:44px; color:#e8e8db; }
.atelier-closing a span { font-size:22px; }
.artist-chapter { padding:54px 6vw 106px; background:#eeece3; color:#343c31; }
.artist-chapter .chapter-rule { border-color:#bcbfaf; }
.artist-layout { display:grid; grid-template-columns:47% minmax(0,1fr); gap:8vw; align-items:center; margin-top:66px; }
.artist-portrait { position:relative; padding:0 20px 24px 0; }
.artist-portrait::before { content:''; position:absolute; inset:29px 0 0 27px; border:1px solid #b9beab; }
.artist-photo-window { position:relative; aspect-ratio:4/5; overflow:hidden; background:#d1d1c2; }
.artist-photo-window img { width:100%; height:100%; object-fit:cover; object-position:44% 45%; }
.artist-portrait figcaption { position:relative; display:flex; justify-content:space-between; padding:17px 0; font-size:9px; background:#eeece3; }
.artist-portrait figcaption > :last-child { color:#75806a; }
.artist-copy .chapter-eyebrow { color:#76806b; }
.artist-copy h2 { font:400 clamp(60px,6.8vw,108px)/1.01 var(--body); letter-spacing:-.065em; margin:20px 0 24px; }
.artist-copy h2 span { color:#969c7e; }
.artist-copy blockquote { margin:26px 0; font:italic 400 clamp(23px,2.15vw,35px)/1.4 var(--display); letter-spacing:-.025em; color:#737c64; }
.artist-copy > p { max-width:420px; font-size:13px; line-height:1.9; color:#68705f; }
.artist-copy > p + p { margin-top:16px; }
.artist-history { margin:29px 0 9px; border-top:1px solid #bdc0b0; border-bottom:1px solid #bdc0b0; max-width:440px; }
.artist-history summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 0; font-size:11px; }
.artist-history summary::-webkit-details-marker { display:none; }
.artist-history summary:focus-visible { outline:2px solid #8a7855; outline-offset:5px; }
.artist-history summary > span { font-size:24px; font-weight:400; line-height:1; transition:transform .25s; }
.artist-history[open] summary > span { transform:rotate(45deg); }
.artist-history dl { margin:2px 0 22px; }
.artist-history dl > div { display:grid; grid-template-columns:80px minmax(0,1fr); gap:16px; padding:12px 0; }
.artist-history dt { font-size:10px; color:#747b66; padding-top:2px; }
.artist-history dd { margin:0; font-size:11px; line-height:1.8; color:#5c6654; }
.material-chapter { padding:48px 6vw 82px; color:#3b4136; background:#deddd0; overflow:hidden; }
.material-chapter .chapter-rule { border-color:#adb39f; }
.material-layout { display:grid; grid-template-columns:44% minmax(0,1fr); gap:6vw; align-items:center; padding-top:63px; }
.material-copy .chapter-eyebrow { color:#707960; }
.material-copy h2 { font:400 clamp(48px,5vw,88px)/1.07 var(--body); letter-spacing:-.06em; margin:23px 0 26px; }
.material-copy > p { max-width:325px; color:#626c58; font-size:13px; line-height:1.9; }
.finish-tabs { margin:31px 0 13px; max-width:365px; border-top:1px solid #aeb5a0; }
.finish-tab { display:flex; width:100%; align-items:center; gap:16px; text-align:left; border-bottom:1px solid #b7bda9; min-height:66px; padding:10px 0; font-size:12px; }
.finish-tab img { width:36px; height:36px; object-fit:cover; border-radius:50%; border:3px solid transparent; outline:1px solid transparent; }
.finish-tab[aria-selected=true] img { outline-color:#6b765e; border-color:#deddd0; }
.finish-tab[aria-selected=true] { color:#1f2e1d; }
.finish-tab i { margin-left:auto; font-size:19px; font-style:normal; opacity:0; transform:translateX(-7px); transition:opacity .2s,transform .2s; }
.finish-tab[aria-selected=true] i,.finish-tab:hover i { opacity:1; transform:none; }
.material-exhibit { position:relative; padding:30px 0 28px; perspective:1600px; }
.material-exhibit::before { content:''; position:absolute; inset:5% -15% 13%; background:radial-gradient(ellipse at 55% 50%,#f3f0dc 0%,#c7cbb640 55%,transparent 72%); pointer-events:none; }
.material-exhibit-label { display:block; position:relative; text-align:center; text-transform:uppercase; font-size:9px; letter-spacing:.12em; color:#747b68; }
.finish-stage { position:relative; margin:42px auto 0; max-width:460px; }
.finish-card { width:88%; max-width:400px; aspect-ratio:1; margin:auto; position:relative; transform:rotateX(var(--sample-x,5deg)) rotateY(var(--sample-y,-9deg)) rotateZ(-3deg); transform-style:preserve-3d; transition:transform .4s cubic-bezier(.2,.7,.2,1); box-shadow:7px 9px 0 -4px #8c8a73,20px 35px 34px -22px #3b422d77; background:#979778; }
.finish-card img { width:100%; height:100%; object-fit:cover; position:relative; }
.finish-sheen { position:absolute; inset:0; background:linear-gradient(115deg,transparent 18%,#fffce72b 43%,transparent 66%); opacity:.6; pointer-events:none; }
.finish-panel figcaption { margin-top:45px; text-align:center; position:relative; }
.finish-panel figcaption span { display:block; font-size:14px; letter-spacing:-.02em; }
.finish-panel figcaption small { display:block; margin-top:10px; color:#778068; font-size:10px; line-height:1.5; }
.material-note { position:relative; margin:35px auto 0; max-width:280px; text-align:center; font-size:10px; line-height:1.6; color:#758066; }
.project-chapter { position:relative; padding:48px 6vw 42px; background:#203229; color:#e9ebdd; overflow:hidden; }
.project-chapter::before { content:''; position:absolute; width:65vw; height:65vw; min-width:550px; min-height:550px; right:-20vw; bottom:-48vw; border:1px solid #b9c8a51e; border-radius:50%; box-shadow:0 0 0 70px #b9c8a508,0 0 0 140px #b9c8a505; pointer-events:none; }
.project-chapter .chapter-rule { position:relative; border-color:#b4bfaa4d; }
.project-layout { display:grid; grid-template-columns:1.35fr 1fr; gap:9vw; align-items:center; margin:82px 0 85px; position:relative; }
.project-layout .chapter-eyebrow { color:#a7b79e; }
.project-layout h2 { font:400 clamp(56px,6.4vw,112px)/1.06 var(--body); letter-spacing:-.065em; margin-top:23px; }
.project-layout h2 span { color:#b5c2a5; }
.project-invitation > p { font-size:14px; line-height:1.9; color:#c2cabb; max-width:340px; }
.project-choices { border:0; padding:0; margin:30px 0 22px; display:flex; flex-wrap:wrap; gap:8px; }
.project-choices legend { font-size:10px; color:#b9c3af; margin-bottom:14px; padding:0; }
.project-choices label { cursor:pointer; }
.project-choices input { position:absolute; width:1px; height:1px; opacity:0; }
.project-choices label span { display:block; padding:11px 14px; border:1px solid #7a8c7477; font-size:10px; border-radius:24px; line-height:1.5; transition:background .2s,color .2s; }
.project-choices input:checked + span { background:#d3dcc4; color:#26372a; border-color:#d3dcc4; }
.project-choices input:focus-visible + span { outline:2px solid #e6d6ad; outline-offset:4px; }
.project-mail { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:16px 0 20px; border-bottom:1px solid #bcc8ac9c; font-size:clamp(25px,2.4vw,42px); letter-spacing:-.045em; }
.project-mail span { font-size:42px; transition:transform .3s; }
.project-mail:hover span { transform:translate(5px,-5px); }
.project-phone { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:23px 0; font-size:10px; color:#a8b99e; }
.project-phone span { font-size:12px; color:#e1e7d5; }
.project-signoff { display:flex; justify-content:space-between; align-items:end; gap:30px; border-top:1px solid #b4bfaa38; padding-top:31px; position:relative; }
.project-signoff > span:first-child { font-size:22px; letter-spacing:-.035em; line-height:1.35; }
.project-signoff small { font-size:11px; color:#acbda2; letter-spacing:0; }
.project-signoff > span:last-child { font-size:10px; line-height:1.8; color:#9cb190; text-align:right; }
.chapter-footer { display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; padding:28px 6vw; background:#eeece3; color:#65705b; font-size:10px; }
.chapter-footer nav { display:flex; flex-wrap:wrap; gap:24px; }
.chapter-footer .footer-legal { display:block; grid-column:1/-1; padding-top:17px; border-top:1px solid #c5c8b7; font-size:8px; color:#7b826f; }
.chapter-footer > a { min-height:35px; display:flex; align-items:center; }
.loretta-film-page .menu-body > nav > a { font-size:clamp(28px,3vw,46px); padding:14px 0; }
@media(max-width:1100px) {
  .atelier-scene { grid-template-columns:43% 57%; }
  .atelier-scene-copy h3 { font-size:60px; }
  .atelier-scroll-cue { max-width:140px; line-height:1.6; }
  .atelier-tabs small { margin-right:8px; }
  .artist-layout { gap:5vw; }
  .artist-copy h2 { font-size:76px; }
  .material-layout { gap:3vw; grid-template-columns:46% 54%; }
  .project-layout { gap:6vw; }
}
@media(max-width:899px) {
  .atelier-heading { gap:30px; }
  .atelier-heading p { max-width:230px; font-size:12px; }
  .atelier-scene { min-height:0; grid-template-columns:41% 59%; }
  .atelier-photo { height:560px; }
  .atelier-scene-copy { padding:35px 4vw 35px 6vw; }
  .atelier-scene-copy h3 { font-size:48px; }
  .atelier-scene-copy p { font-size:12px; }
  .atelier-frame-number { margin-top:30px; }
  .artist-copy h2 { font-size:66px; }
  .artist-copy blockquote { font-size:25px; }
  .artist-copy > p { font-size:12px; }
  .material-copy h2 { font-size:52px; }
  .project-layout { grid-template-columns:1fr 1fr; gap:5vw; }
  .project-layout h2 { font-size:64px; }
  .chapter-footer { grid-template-columns:1fr; }
}
@media(max-width:760px) {
  .chapter-rule { font-size:8px; padding-top:15px; align-items:start; }
  .chapter-rule > :last-child { text-align:right; max-width:145px; }
  .chapter-rule a { min-height:20px; gap:12px; }
  .chapter-eyebrow { font-size:9px; }
  .atelier-chapter { padding:30px 6vw 0; }
  .atelier-heading { display:block; padding:35px 0 37px; }
  .atelier-heading h2 { font-size:clamp(52px,13.8vw,78px); }
  .atelier-heading p { margin-top:23px; max-width:290px; font-size:12px; }
  .atelier-stage { display:flex; flex-direction:column; }
  .atelier-story-foot { order:-1; }
  .atelier-scene { display:flex; flex-direction:column; }
  .atelier-photo { order:-1; height:108vw; max-height:590px; }
  .atelier-photo img { object-position:50% 40%; }
  .atelier-scene-model .atelier-photo { height:79vw; max-height:420px; }
  .atelier-photo figcaption { left:6vw; bottom:20px; font-size:8px; }
  .atelier-scene-copy { padding:28px 6vw 30px; min-height:232px; }
  .atelier-overline { font-size:8px; }
  .atelier-scene-copy h3 { font-size:46px; margin:16px 0; line-height:1.02; }
  .atelier-scene-copy h3 br { display:none; }
  .atelier-scene-copy p { max-width:280px; line-height:1.8; }
  .atelier-frame-number { position:absolute; top:26px; right:6vw; margin:0; font-size:16px; }
  .atelier-story-foot { padding:0 6vw; }
  .atelier-tabs button { font-size:10px; min-height:64px; white-space:nowrap; }
  .atelier-tabs button + button { padding-left:13px; }
  .atelier-tabs small { font-size:8px; margin-right:7px; }
  .atelier-closing { padding:22px 0 28px; font-size:9px; align-items:start; }
  .atelier-closing > span { max-width:105px; line-height:1.7; padding-top:8px; }
  .atelier-closing a { gap:13px; max-width:172px; line-height:1.6; }
  .artist-chapter { padding:34px 6vw 49px; }
  .artist-layout { display:flex; flex-direction:column; gap:32px; margin-top:33px; }
  .artist-portrait { width:100%; padding:0 15px 12px 0; }
  .artist-portrait::before { inset:22px 0 0 20px; }
  .artist-photo-window { aspect-ratio:1; }
  .artist-photo-window img { object-position:43% 43%; }
  .artist-portrait figcaption { padding:13px 0; font-size:8px; }
  .artist-copy { width:100%; }
  .artist-copy h2 { font-size:clamp(64px,16vw,85px); margin:16px 0 22px; }
  .artist-copy blockquote { margin:22px 0; font-size:25px; }
  .artist-copy > p { font-size:12px; }
  .artist-history { margin-top:25px; }
  .artist-history dl > div { grid-template-columns:68px minmax(0,1fr); gap:12px; }
  .artist-history dt { font-size:9px; }
  .artist-history dd { font-size:10px; }
  .material-chapter { padding:33px 6vw 43px; }
  .material-layout { display:flex; flex-direction:column; align-items:stretch; gap:30px; padding-top:36px; }
  .material-copy h2 { font-size:clamp(45px,12vw,68px); margin:20px 0 22px; }
  .material-copy > p { font-size:12px; }
  .finish-tabs { display:grid; grid-template-columns:1fr 1fr; gap:0 17px; max-width:none; margin-top:27px; }
  .finish-tab { font-size:10px; gap:10px; min-height:64px; }
  .finish-tab img { width:32px; height:32px; }
  .finish-tab i { display:none; }
  .material-copy .chapter-link { font-size:11px; padding-top:15px; }
  .material-exhibit { padding:8px 0 0; }
  .finish-stage { max-width:350px; margin-top:31px; }
  .finish-card { width:82%; }
  .finish-panel figcaption { margin-top:35px; }
  .finish-panel figcaption span { font-size:13px; }
  .material-note { margin-top:23px; font-size:9px; }
  .project-chapter { padding:32px 6vw 29px; }
  .project-layout { display:block; margin:41px 0 43px; }
  .project-layout h2 { font-size:clamp(52px,14.1vw,80px); margin:20px 0 30px; }
  .project-invitation > p { font-size:13px; }
  .project-choices { margin:24px 0 18px; gap:7px; }
  .project-choices label span { font-size:9px; padding:11px 12px; }
  .project-mail { font-size:31px; }
  .project-phone { font-size:9px; }
  .project-phone span { font-size:11px; }
  .project-signoff { padding-top:26px; gap:20px; }
  .project-signoff > span:first-child { font-size:20px; }
  .project-signoff > span:last-child { font-size:8px; }
  .chapter-footer { padding:25px 6vw; gap:12px; font-size:9px; }
  .chapter-footer nav { gap:19px; }
  .chapter-footer .footer-legal { margin-top:7px; font-size:8px; line-height:1.7; }
  .loretta-film-page .menu-body > nav > a { font-size:30px; padding:10px 0; }
}
@media(prefers-reduced-motion:reduce) {
  .atelier-chapter *, .artist-chapter *, .material-chapter *, .project-chapter * { animation:none!important; transition:none!important; }
  .finish-card { transform:none!important; }
  .finish-sheen { display:none; }
}
