/* Life: chronological photo essay, using the portfolio's existing type and palette. */
.life-page .life-intro{padding-bottom:46px}
.life-intro h1{max-width:1050px;font-size:clamp(56px,7.8vw,112px);letter-spacing:-.055em;line-height:1.04}
.life-intro h1 em{font-style:normal;color:var(--blue)}
.life-opening{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(28px,5vw,80px);margin-top:35px;max-width:1150px}
.life-opening p{font-size:16px;line-height:1.85;margin:0}
.life-opening .lead{font-size:clamp(19px,2vw,25px);line-height:1.6;color:var(--text)}
.life-chapters{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:36px;padding-top:22px;border-top:1px solid var(--line)}
.life-chapters a{font-size:12px;color:var(--muted);padding:10px 0;min-height:44px}
.life-chapters a:hover{color:var(--blue)}
.life-page .life-chapter{padding-top:64px;padding-bottom:64px}
.life-chapter h2{font-size:clamp(35px,4.3vw,62px);line-height:1.09;letter-spacing:-.045em;margin-bottom:26px}
.life-copy>p:not(.section-label){font-size:16px;line-height:1.85;max-width:660px;margin:0 0 20px}
.life-copy strong{color:#e6eaf1;font-weight:600}
.life-copy .text-link{display:table;margin-top:22px;font-size:13px}
.life-early,.life-dj{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(32px,5vw,80px);align-items:center}
.life-collage .photo-button{display:block;width:100%;min-width:0;padding:0;border:0;border-radius:3px;background:transparent;overflow:hidden;box-shadow:0 16px 44px #0003}
.life-collage .photo-button img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;transform:none!important}
.life-collage .photo-button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.life-fpv-collage{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:start;padding:12px 5px 20px}
.life-fpv-collage .life-futaba{grid-column:1/3;width:73%;transform:rotate(-2deg)}
.life-fpv-collage .life-early-build{grid-column:1/3;width:77%;justify-self:end;margin-top:-35px;transform:rotate(2deg);border:7px solid var(--bg)}
.life-section-heading{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(32px,5vw,80px);align-items:end;margin-bottom:35px}
.life-service{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.life-service-lead{display:grid;grid-template-columns:1.65fr 1fr;gap:22px;align-items:center}
.life-service-lead>.photo-button:last-child{width:90%;justify-self:end;transform:rotate(1.5deg)}
.life-service-mosaic{display:grid;grid-template-columns:1fr 1.18fr 1fr;gap:20px;margin-top:28px;align-items:start}
.life-photo-column{display:grid;gap:20px;min-width:0}
.life-photo-column:nth-child(2){padding-top:45px}
.life-photo-column:nth-child(3){padding-top:18px}
.life-dj-collage{display:grid;gap:20px;grid-template-columns:1fr 1fr;align-items:center}
.life-dj-collage>.photo-button:first-child{transform:rotate(-2deg)}
.life-dj-collage>.photo-button:last-child{grid-column:1/3;width:84%;justify-self:end;margin-top:-25px;transform:rotate(1.5deg);border:6px solid var(--bg)}
.life-next{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,7vw,110px);border-top:1px solid var(--line)}
.life-next article{scroll-margin-top:110px}
.life-page .life-signoff{display:flex;align-items:center;gap:28px;padding-top:10px;padding-bottom:65px}
.life-signoff img{width:112px;height:auto}
.life-signoff p{font-size:15px;margin:0}
.life-signoff p>span{display:block;font-size:12px;color:var(--muted);margin-top:5px}
.life-signoff>a{margin-left:auto}
@media(max-width:1000px){.life-early,.life-dj{grid-template-columns:1fr 1fr;gap:30px}.life-section-heading{gap:30px}.life-copy>p:not(.section-label){font-size:15px}.life-service-mosaic{gap:14px}.life-photo-column{gap:14px}}
@media(max-width:760px){
 .life-page .life-intro{padding-bottom:24px}.life-intro h1{font-size:clamp(44px,10vw,72px)}
 .life-opening,.life-early,.life-dj,.life-section-heading,.life-next{grid-template-columns:1fr;gap:26px}
 .life-opening{margin-top:25px}.life-opening p{font-size:15px}.life-opening .lead{font-size:20px}
 .life-chapters{gap:0 22px;margin-top:25px}.life-chapters a{font-size:12px}
 .life-page .life-chapter{padding-top:40px;padding-bottom:42px}.life-chapter h2{font-size:39px}
 .life-copy>p:not(.section-label){font-size:15px;line-height:1.8}
 .life-fpv-collage{max-width:560px;width:100%;margin:auto}.life-fpv-collage .life-early-build{margin-top:-20px}
 .life-service-lead{grid-template-columns:1fr 1fr;gap:14px;align-items:start}
 .life-service-lead>.photo-button:last-child{width:100%;margin-top:32px;transform:none}
 .life-service-mosaic{grid-template-columns:1fr;gap:18px;margin-top:20px}
 .life-photo-column{grid-template-columns:1fr 1fr;gap:14px;align-items:start}
 .life-photo-column:nth-child(2),.life-photo-column:nth-child(3){padding-top:0}
 .life-photo-column:nth-child(2)>.photo-button:first-child{grid-row:span 2}
 .life-photo-column:nth-child(3)>.photo-button:last-child{margin-top:30px}
 .life-dj-collage{max-width:540px;width:100%;margin:auto}.life-dj-collage>.photo-button:first-child{grid-column:1/3;width:65%}
 .life-next{gap:42px}.life-page .life-signoff{flex-wrap:wrap;padding-bottom:45px}.life-signoff>a{margin-left:0}
}

.service-story-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,5vw,70px);align-items:center}
.service-story-layout .life-section-heading{display:block;margin:0}
.service-slideshow{min-width:0}
.service-slides{height:clamp(330px,44vw,640px);background:#0a0d13;border-radius:5px;overflow:hidden}
.service-slides .service-slide{width:100%;height:100%;padding:0;border:0;background:transparent;display:block}
.service-slides .service-slide[hidden]{display:none}
.service-slides .service-slide img{display:block;width:100%;height:100%;object-fit:contain;aspect-ratio:auto;transform:none!important}
.slideshow-controls{display:flex;gap:12px;align-items:center;margin-top:15px}
.slideshow-controls button{border:1px solid var(--line);background:var(--surface);color:var(--text);min-height:44px;border-radius:3px;padding:10px 15px;font:inherit;font-size:12px}
.slideshow-count{font-size:12px;color:var(--muted);min-width:40px;text-align:center}
.slideshow-controls .slideshow-toggle{margin-left:auto}
@media(max-width:900px){.service-story-layout{grid-template-columns:1fr}.service-slides{height:clamp(330px,80vw,620px)}}

.life-page .life-next-single{display:block}
.life-next-single .life-copy{max-width:800px}
