/* The final two chapters share one visual rhythm: signal, information, person. */
.ect{padding:0;background:#202719;position:relative;isolation:isolate}
.motion .ect{clip-path:none}
.ect-stage{position:relative;min-height:850px;height:100svh;max-height:1100px;padding:48px 6vw;overflow:hidden;isolation:isolate;background:#202719}
.ect-sculpture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;z-index:-2}
.ect-stage:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#182011c9,transparent 80%),linear-gradient(0deg,#202719,transparent 55%);z-index:-1}
.ect-top{position:relative;z-index:2}.ect-top>span{font-size:9px}
.ect .ect-title{margin:110px 0 80px;display:block;position:relative}
.ect .ect-title h2{font-size:clamp(40px,5vw,80px);line-height:.95;letter-spacing:-.055em}
.ect .ect-title h2 b{display:block;font-size:clamp(180px,27vw,420px);line-height:.85;letter-spacing:-.08em;color:var(--lime);margin-top:22px}
.ect .ect-arrow{position:absolute;right:0;bottom:10%;font-size:10vw;color:var(--lime)}
.ect-stage-note{position:absolute;bottom:45px;left:6vw;right:6vw;display:flex;justify-content:space-between;align-items:end;font-size:10px;line-height:1.6;letter-spacing:.025em}
.ect-stage-note a{display:flex;align-items:center;gap:30px;min-height:44px}.ect-stage-note a>span{font-size:30px}
.ect .ect-body{position:relative;padding:110px 6vw 130px;gap:12%;margin:0;background:#202719;scroll-margin-top:100px}
.ect-intro>p{font-size:clamp(28px,3.3vw,49px);line-height:1.14}.ect-intro>span{max-width:420px}
.ect .questions{align-self:center}.ect details{border-color:#ced5bc45}.ect summary{padding:27px 0}.ect summary:hover{color:var(--lime)}
.contact{padding:55px 6vw 65px;background:var(--lime);min-height:900px}
.motion .contact{background:var(--lime)}.motion .contact:before{clip-path:none}
.contact-stage{position:relative;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;min-height:580px;margin:25px 0 35px;isolation:isolate}
.contact .contact-stage h2{font-size:clamp(52px,7.5vw,120px);line-height:.93;letter-spacing:-.065em;margin:0;z-index:2}
.contact-portrait{position:relative;margin:0;height:560px;align-self:end;z-index:1}
.contact-portrait img{width:100%;height:100%;object-fit:contain;object-position:bottom;filter:grayscale(1);mask-image:linear-gradient(#000 88%,transparent)}
.contact-portrait figcaption{position:absolute;bottom:15px;left:0;font-size:8px;line-height:1.7;letter-spacing:.04em}
.contact-orbit{position:absolute;right:-2%;top:0;font-size:390px;line-height:1;color:var(--lime);z-index:0;pointer-events:none}
.contact .contact-bottom{display:grid;grid-template-columns:1fr 1.7fr;gap:8%;align-items:center;border-top:1px solid #292d2150;padding-top:32px}
.contact .contact-button{background:var(--ink);color:var(--paper);padding:25px 30px;margin:0;display:flex;justify-content:space-between;border:0;min-height:110px}
.contact .contact-button>span{font-size:clamp(16px,1.8vw,27px);font-weight:700}.contact .contact-button small{font-size:9px;letter-spacing:.04em;margin-top:10px;color:#cad1b9}.contact .contact-button b{font-size:50px;color:var(--lime)}
.contact .contact-button:hover{background:#3a4430;gap:0}.contact .contact-button:focus-visible{outline:3px solid var(--ink);outline-offset:6px}
.motion .ect-sculpture{transform:translateY(calc((var(--scene-travel,.5) - .35)*-110px)) scale(1.16)}
.motion .ect .ect-title h2 b{transform:translateX(calc((var(--scene-travel,.5) - .3)*150px))}
.motion .contact{clip-path:polygon(0 calc((1 - var(--scene-enter,1))*85px),100% 0,100% 100%,0 100%)}
.motion .contact-portrait{translate:0 calc((1 - var(--scene-enter,1))*65px)}
.motion .contact-orbit{transform:translateY(calc((var(--scene-travel,.5) - .5)*-90px)) rotate(calc((1 - var(--scene-enter,1))*-18deg))}
@media(max-width:900px){.contact-stage{min-height:480px}.contact-portrait{height:460px}.contact-orbit{font-size:290px}.contact .contact-bottom{gap:30px;grid-template-columns:1fr 1.8fr}}
@media(max-width:600px){
 .ect-stage{height:90svh;min-height:660px;padding:35px 22px}.ect-top>span{display:none}.ect .ect-title{margin:120px 0 90px}.ect .ect-title h2{font-size:42px}.ect .ect-title h2 b{font-size:53vw;margin-top:28px}.ect .ect-arrow{font-size:18vw;right:0;bottom:4px}.ect-sculpture{object-position:60% center}.ect-stage-note{left:22px;right:22px;bottom:30px;font-size:7px}.ect-stage-note a{gap:14px}.ect-stage-note a>span{font-size:23px}
 .ect .ect-body{padding:65px 22px 80px;gap:40px;scroll-margin-top:80px}.ect-intro>p{font-size:31px}.ect summary{padding:24px 0}
 .contact{padding:40px 22px 40px;min-height:0}.contact-stage{display:flex;flex-direction:column;align-items:stretch;margin:35px 0 20px;min-height:0}.contact .contact-stage h2{font-size:13vw;line-height:1;position:relative}.contact-portrait{width:82%;height:350px;margin:-15px -5px 0 auto;align-self:auto}.contact-portrait figcaption{left:-40px;bottom:20px;font-size:6px}.contact-orbit{font-size:230px;right:-8px;top:160px}
 .contact .contact-bottom{display:block;padding-top:25px}.contact .contact-bottom>p{font-size:12px;margin-bottom:24px}.contact .contact-button{padding:22px 18px;min-height:100px;gap:10px}.contact .contact-button>span{font-size:15px}.contact .contact-button b{font-size:36px}.contact .contact-button small{font-size:8px}
 .motion .ect-sculpture{transform:translateY(calc((var(--scene-travel,.5) - .35)*-40px)) scale(1.1)}.motion .ect .ect-title h2 b{transform:translateX(calc((var(--scene-travel,.5) - .3)*40px))}.motion .contact-portrait{translate:0 calc((1 - var(--scene-enter,1))*25px)}.motion .contact{clip-path:polygon(0 calc((1 - var(--scene-enter,1))*32px),100% 0,100% 100%,0 100%)}
}
@media(prefers-reduced-motion:reduce){.ect-sculpture,.ect .ect-title h2 b,.contact-orbit{transform:none!important}.contact-portrait{translate:none!important}.contact{clip-path:none!important}}
/* The educational panel rises over the visual opener as the visitor continues. */
.ect{overflow:clip}.motion .ect-stage{position:sticky;top:88px}.ect .ect-body{z-index:2;border-top:1px solid #a1b18035}
@media(max-width:600px){.motion .ect-stage{top:72px}}
@media(prefers-reduced-motion:reduce){.ect-stage{position:relative!important;top:auto!important}}

/* Final rhythm audit: fit the opening below the fixed header and keep the
   transition cut on the same dark ground as the educational panel. */
main{background:#202719}
.ect-stage{height:calc(100svh - 88px);min-height:680px}
.motion .ect-stage{top:min(88px,calc(100svh - 680px))}
.ect .ect-title{margin-top:80px;margin-bottom:55px}
.ect-stage-note{bottom:32px}
.ect .ect-body{scroll-margin-top:15px}
@media(max-width:600px){
 .ect-stage{height:calc(100svh - 72px);min-height:610px}
 .motion .ect-stage{top:min(72px,calc(100svh - 610px))}
 .ect .ect-title{margin-top:90px;margin-bottom:65px}
 .ect .ect-body{scroll-margin-top:12px}
 .contact-portrait figcaption{font-size:8px;line-height:1.6;left:-25px;bottom:12px;max-width:170px}
}
@media(max-height:780px) and (min-width:601px){
 .ect .ect-title{margin-top:55px;margin-bottom:35px}
 .ect .ect-title h2{font-size:4vw}
 .ect .ect-title h2 b{font-size:min(23vw,300px)}
}
@media(max-width:600px){
 .ect .ect-title h2 b{font-size:46vw;white-space:nowrap}
 .motion .ect .ect-title h2 b{transform:translateX(calc((var(--scene-travel,.5) - .3)*18px))}
 .ect .ect-arrow{right:3px;bottom:-48px;font-size:15vw}
}
.contact-portrait figcaption{background:var(--lime);padding:8px 10px;bottom:0;left:0;max-width:220px;z-index:2}
@media(max-width:600px){.contact-portrait figcaption{left:-25px;max-width:190px}}
