/* A vertical editorial sequence: every quote lives in the normal page flow. */
.testimonials{position:relative;background:var(--paper);color:var(--wine)}
.voices-intro{position:relative}
.voices-stage{position:relative;isolation:isolate;min-height:85svh;background:var(--paper);overflow:hidden;display:flex;align-items:center;justify-content:center;padding:15svh 7vw 10svh}
.voices-stage:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 15% 15%,#fff7,transparent 65%);pointer-events:none}
.voices-stage .film-grain{position:absolute;inset:0;width:100%;height:100%;opacity:.065;mix-blend-mode:multiply;pointer-events:none;z-index:4}
.voices-quotation{position:absolute;left:1%;top:4%;font:400 100svh/1 var(--serif);color:#501b2d0c;pointer-events:none}
.voices-title{position:relative;z-index:2;width:100%;margin:0;text-align:center;font:500 clamp(42px,7.4vw,130px)/1.04 var(--sans);letter-spacing:-.065em}
.voices-title span,.voices-title em{display:block}
.voices-title em{font:italic 400 1.65em/.98 var(--serif);letter-spacing:-.065em}
.voices-stories{position:relative;z-index:2;background:var(--paper);overflow:hidden;padding:0 0 6svh}
.voice{position:relative;margin:0;padding:10svh 8vw;min-height:65svh;display:flex;align-items:center;isolation:isolate}
.voice-composition{position:relative;z-index:1;width:100%;max-width:1100px;transform-origin:50% 70%}
.voice blockquote{margin:0;font:400 clamp(38px,4.65vw,82px)/1.08 var(--serif);letter-spacing:-.035em;text-wrap:pretty}
.voice blockquote em{font-style:italic;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.1em;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent)}
.voice figcaption{margin-top:35px;font:500 clamp(12px,1vw,16px)/1.5 var(--sans);letter-spacing:.025em}
.voice figcaption a{text-decoration:none;display:inline-block;padding:5px 0;transition:opacity .2s}
.voice figcaption a:hover{opacity:.65}
.voice:before{content:'“';position:absolute;z-index:0;font:400 36vw/.85 var(--serif);color:currentColor;opacity:.055;pointer-events:none;left:3%;top:7%}
.voice-lead{padding-top:3svh;min-height:60svh}
.voice-lead .voice-composition{width:76%}
.voice-jim{padding-top:6svh;padding-bottom:12svh;justify-content:flex-end}
.voice-jim .voice-composition{width:62%}
.voice-jim:before{left:auto;right:2%;top:10%}
.voice-jim blockquote{font-size:clamp(34px,3.9vw,68px)}
.voice-henry{min-height:65svh;padding:7svh 11vw 15svh}
.voice-henry .voice-composition{width:85%;max-width:1400px}
.voice-henry blockquote{font-family:var(--sans);font-size:clamp(40px,5.6vw,98px);font-weight:500;letter-spacing:-.06em}
.voice-henry blockquote em{font-family:var(--serif);font-size:1.15em;letter-spacing:-.045em}
.voice-ryan{min-height:90svh;padding:16svh 10vw;background:var(--wine);color:var(--paper);text-align:center;justify-content:center}
.voice-ryan:before{opacity:.07;left:0;top:3%;font-size:65vw}
.voice-ryan .voice-composition{max-width:1450px}
.voice-ryan blockquote{font-size:clamp(48px,6.8vw,118px);line-height:1.04}
.voice-ryan blockquote em{text-decoration:none}
.voice-andy{min-height:78svh;padding:17svh 9vw 9svh;justify-content:flex-end}
.voice-andy .voice-composition{width:68%}
.voice-andy:before{left:auto;right:7%;top:12%}
.voice-steven{min-height:70svh;padding:8svh 13vw 15svh;justify-content:center;text-align:center}
.voice-steven .voice-composition{max-width:1250px}
.voice-steven blockquote{font-size:clamp(44px,5.8vw,100px)}
.scroll-motion .testimonials{margin-top:calc(-1 * var(--scene-cover));z-index:7;background:transparent;scroll-margin-top:calc(var(--scene-cover) * -.95 - 80px)}
.scroll-motion .voices-intro{height:calc(var(--scene-cover) * 1.95);pointer-events:none}
.scroll-motion .voices-stage{position:sticky;top:0;height:var(--scene-cover);min-height:0;padding-bottom:calc(10svh + var(--scene-cover) - var(--scene-content));clip-path:inset(50% 0);pointer-events:auto}
.scroll-motion .voice-composition{will-change:transform,opacity}
.scroll-motion .voices-stage:after{content:'';position:absolute;inset:var(--gate-inset,50%) 0;box-shadow:inset 0 1px #501b2d88,inset 0 -1px #501b2d88;opacity:var(--gate-edge,0);pointer-events:none;z-index:5}
.scroll-motion .work.work-in-flow.voices-exit{position:fixed;z-index:6;pointer-events:none!important}
@media(max-width:700px){
 .voices-stage{padding:14svh 7vw 10svh;min-height:65svh}
 .voices-title{font-size:clamp(38px,8.9vw,62px);line-height:1.06}
 .voices-title span{max-width:9em;margin:auto}
 .voices-title em{font-size:1.58em;margin-top:.12em}
 .voice{min-height:0;padding:9svh 8vw}
 .voice-composition,.voice-lead .voice-composition,.voice-jim .voice-composition,.voice-henry .voice-composition,.voice-andy .voice-composition{width:100%}
 .voice blockquote{font-size:clamp(34px,8.7vw,56px);line-height:1.12}
 .voice-jim{padding-left:17vw;padding-top:7svh}
 .voice-jim blockquote{font-size:clamp(30px,7.8vw,49px)}
 .voice-henry{padding:8svh 12vw 12svh 8vw}
 .voice-henry blockquote{font-size:clamp(37px,9.3vw,60px)}
 .voice-ryan{padding:13svh 8vw;min-height:73svh}
 .voice-ryan blockquote{font-size:clamp(43px,11.2vw,72px)}
 .voice-andy{padding:13svh 8vw 8svh 15vw}
 .voice-steven{padding:9svh 8vw 13svh}
 .voice-steven blockquote{font-size:clamp(39px,10vw,64px)}
 .voice figcaption{margin-top:25px;font-size:12px}
 .voice:before{font-size:80vw;top:5%;left:0}
 .voice-ryan:before{font-size:140vw}
 .voices-quotation{font-size:90svh;left:-18%;top:14%}
}
@media(prefers-reduced-motion:reduce){.voice-composition{transform:none!important;opacity:1!important}.voices-stage .film-grain{display:none}}
