/* Identical square portraits with individually calibrated, non-destructive crops. */
.team-section{--portrait-size:min(240px,21.5vw)}
.team-section .portrait-row{--portrait-height:var(--portrait-size);--expanded-height:390px}
.team-section .portrait-frame{display:block;position:relative;width:100%;aspect-ratio:1;overflow:hidden;background:var(--portrait-matte,#596169);isolation:isolate;opacity:0;transition:opacity 1s;mask-image:linear-gradient(to bottom,#000 76%,transparent 100%)}
.team-section .portrait-window .portrait-frame{width:var(--portrait-size);max-width:100%;height:auto;margin-inline:auto;transition:width .7s cubic-bezier(.22,1,.36,1),opacity 1s}
.team-section .is-lit .portrait-frame{opacity:1}
.team-section .portrait-window::after,.team-section .mobile-portrait::after{content:none}
.team-section .portrait-frame::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#03070c88,transparent 9%,transparent 91%,#03070c88),linear-gradient(0deg,#03070c 0%,#03070c99 10%,transparent 28%)}
.team-section .portrait-frame .portrait-image{position:absolute;width:var(--crop-width);height:var(--crop-height);max-width:none;left:var(--crop-left);top:var(--crop-top);object-fit:fill;transform:none;mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent),linear-gradient(to bottom,transparent,#000 4%,#000 86%,transparent);mask-composite:intersect}
.team-section .portrait-row.is-open .portrait-window .portrait-frame{width:var(--expanded-height)}
@media(max-width:1100px){.team-section{--portrait-size:min(200px,21.5vw)}.team-section .portrait-row{--expanded-height:370px}}
@media(min-width:1700px){.team-section{--portrait-size:265px}.team-section .portrait-row{--expanded-height:420px}}
@media(max-width:700px){
 .team-section .mobile-portrait{height:auto;aspect-ratio:1}
 .team-section .mobile-profile,.team-section .team-group-advisors .mobile-profile{grid-template-columns:112px minmax(0,1fr)}
}
@media(max-width:420px){.team-section .mobile-profile,.team-section .team-group-advisors .mobile-profile{grid-template-columns:90px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.team-section .portrait-frame,.team-section .portrait-window .portrait-frame{transition:none;opacity:1}}

/* Compact contact close. Every selector is scoped to this section. */
.contact-section .contact-intro{padding-top:34px}
.contact-section .contact-intro>.eyebrow{margin:0 0 25px;font-size:12px;letter-spacing:.13em}
.contact-section .contact-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(35px,7vw,110px)}
.contact-section .contact-heading{display:block}
.contact-section .contact-heading h2{font-size:clamp(34px,3.8vw,54px);line-height:1.08;letter-spacing:-.055em}
.contact-section .contact-heading>p{font-size:15px;line-height:1.6;max-width:350px;margin:18px 0 0;color:#aab8c6}
.contact-section .contact-details{display:block;margin:0;min-width:0}
.contact-section .contact-label{font-size:13px;line-height:1.5;margin:0 0 14px;color:#8fa4ba}
.contact-section .contact-email{gap:20px;padding:0 0 16px;border-top:0;border-bottom:1px solid #b1cadb40}
.contact-section .contact-email>span:first-child{font-size:clamp(28px,3vw,42px);font-weight:300;letter-spacing:-.045em;line-height:1.15}
.contact-section .contact-email-arrow{width:42px;height:42px;flex:0 0 42px}
.contact-section .contact-email-arrow svg{width:21px;height:21px}
.contact-section .contact-details .contact-guidance{padding:0;margin:15px 0 0;font-size:13px;line-height:1.65;color:#8fa4ba;max-width:350px}
.contact-section .team-footer{margin-top:43px;padding:24px 0 30px;border-top:1px solid #afc7df20;align-items:center;font-size:13px;gap:24px}
.contact-section .team-footer-brand{width:140px;flex:0 0 140px}
.contact-section .team-footer>div{flex-direction:row;gap:26px}
.contact-section .contact-horizon{background:radial-gradient(ellipse at 87% 100%,#326c9c13,transparent 60%)}
.contact-section .contact-horizon span{bottom:-520px;opacity:.6}
@media(max-width:700px){
 .contact-section .contact-intro{padding-top:28px}
 .contact-section .contact-intro>.eyebrow{margin-bottom:20px}
 .contact-section .contact-layout{grid-template-columns:1fr;gap:27px}
 .contact-section .contact-heading h2{font-size:36px;line-height:1.08}
 .contact-section .contact-heading>p{font-size:14px;line-height:1.6;margin-top:14px;max-width:320px}
 .contact-section .contact-label{margin-bottom:12px;font-size:12px}
 .contact-section .contact-email{padding-bottom:14px}
 .contact-section .contact-email>span:first-child{font-size:31px}
 .contact-section .contact-email-arrow{width:38px;height:38px;flex-basis:38px}
 .contact-section .contact-email-arrow svg{width:20px;height:20px}
 .contact-section .contact-details .contact-guidance{margin-top:12px;font-size:12px;max-width:300px}
 .contact-section .team-footer{margin-top:30px;padding:22px 0 28px;align-items:center}
 .contact-section .team-footer-brand{width:120px;flex-basis:120px}
 .contact-section .team-footer>div{gap:18px;font-size:12px}
 .contact-section .team-footer>div a{gap:7px}
}
@media(max-width:420px){
 .contact-section .team-footer{gap:16px}
 .contact-section .team-footer-brand{width:110px;flex-basis:110px}
 .contact-section .team-footer>div{flex-direction:column;align-items:flex-end;gap:10px;font-size:12px}
}

/* Keep the complete crowns and necklines of the refreshed portraits. */
.team-section .portrait-frame-refined .portrait-image{mask-image:none}
.team-section [data-person="andrei-illias"] .portrait-frame-refined{background:linear-gradient(#8a8b8b 0%,#8a8b8b 40%,#37393c 78%,#03070c 100%)}
.team-section [data-person="andrei-illias"] .portrait-frame-refined .portrait-image{mask-image:linear-gradient(90deg,transparent,#000 17%,#000 83%,transparent),linear-gradient(transparent,#000 2%,#000 80%,transparent);mask-composite:intersect}

/* October 29 review: the deck's exact launch photograph and the restored portfolio. */
/* Keep the launch photograph at its original height-based scale. The sampled
   sky tones continue beneath the shared panel fade without a second dark edge. */
.assets-ready .focus-aerospace .focus-image{background-image:url('./assets/focus-spacex-launch.webp')}
.focus-aerospace .focus-image{background-size:cover;background-position:center 22%}
@media(min-width:601px){
 .assets-ready .focus-aerospace .focus-image{background-image:linear-gradient(180deg,#c7cacc 0%,#cbcaca 12.5%,#d2c6bc 27.5%,#c7b6ab 37.5%,#cdb1a2 47.5%,#be9c90 57.5%,#db976b 62.5%,#fda042 67.5%,#f5962f 72.5%,#ea871c 77.5%,#94480c 82.5%,#1e0f11 87.5%,#03050b 92.5%,#020102 100%);background-size:100% 160%;background-position:center 25%}
 .focus-aerospace .focus-image::before{content:'';position:absolute;right:0;top:-15%;height:160%;aspect-ratio:4/5;background-size:cover;background-position:center;mask-image:linear-gradient(90deg,transparent,#000 24%)}
 .assets-ready .focus-aerospace .focus-image::before{background-image:url('./assets/focus-spacex-launch.webp')}
}
@media(min-width:1200px){
 .portfolio-grid[data-company-count="17"]{grid-template-columns:repeat(12,minmax(0,1fr))}
 .portfolio-grid[data-company-count="17"] .portfolio-card{grid-column:span 3}
 .portfolio-grid[data-company-count="17"] .portfolio-card:nth-last-child(-n+9){grid-column:span 4}
}
@media(min-width:901px) and (max-width:1199px){
 .portfolio-grid[data-company-count="17"]{grid-template-columns:repeat(6,minmax(0,1fr))}
 .portfolio-grid[data-company-count="17"] .portfolio-card{grid-column:span 2}
 .portfolio-grid[data-company-count="17"] .portfolio-card:nth-last-child(-n+2){grid-column:span 3}
 .portfolio-grid[data-company-count="17"] .portfolio-card:last-child{display:flex;min-height:250px;align-items:flex-start;gap:0}
 .portfolio-grid[data-company-count="17"] .portfolio-card:last-child .portfolio-logo{margin:3px 0 28px}
 .portfolio-grid[data-company-count="17"] .portfolio-card:last-child .portfolio-summary{margin:auto 0 22px}
 .portfolio-grid[data-company-count="17"] .portfolio-card:last-child .portfolio-meta{align-self:stretch}
}
@media(min-width:601px) and (max-width:900px){.portfolio-grid[data-company-count="17"] .portfolio-card:last-child{grid-column:1/-1}}

/* The complete flight uses 80svh of native scroll, with no gesture lock. */
#journey{height:180svh}
.scene-shell{position:sticky;top:0}
#scene{height:100svh;bottom:auto}
#progress-fill{width:100%;transform:scaleX(0);transform-origin:left center}
.launch-continue{display:flex;align-items:center;justify-content:space-between;gap:28px;position:absolute;left:8.2vw;right:8.2vw;bottom:max(22px,env(safe-area-inset-bottom));z-index:4;min-height:48px;padding:12px 0;border-top:1px solid #bbc7d038;font-size:13px;color:#d2d7dc;letter-spacing:.01em}
.launch-continue svg{width:18px;height:18px;flex:0 0 18px}
.launch-continue:active{color:#fff}
.fallback #journey{height:100svh}
@media(max-width:600px){.launch-continue{left:7vw;right:7vw}}
@media(prefers-reduced-motion:reduce){#journey{height:100svh}}
