:root{--max:1320px}.wide{max-width:var(--wide);margin:auto;padding:0 44px}h1,h2,h3,p{margin:0}h1{font-weight:200;letter-spacing:-.045em;line-height:.98}h2{font-weight:300;letter-spacing:-.035em;line-height:1.05}p{line-height:1.72;color:#525b66}.section{padding:120px 0}.section.sm{padding:86px 0}.center{text-align:center}.center .lead{max-width:780px;margin:26px auto 0;font-size:18px;line-height:1.75}.display{font-size:clamp(38px,5vw,70px);max-width:18ch}.split{display:grid;grid-template-columns:1fr 1fr;gap:82px;align-items:center}.media img{width:100%;height:100%;object-fit:cover}
/* nothing should ever show through behind a photo */
.development .media,.manufacturing-photo{background:none}.rule{border-top:1px solid var(--line)}.dark{background:var(--deep);color:#fff}.dark p{color:rgba(255,255,255,.66)}.dark .ey{color:rgba(255,255,255,.5)}.cards{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.card{padding:34px 32px 38px;border-right:1px solid var(--line)}.card:last-child{border-right:0}.card .n{font-size:12px;color:#969da6;margin-bottom:28px}.card h3{font-size:19px;font-weight:500;letter-spacing:-.015em;margin-bottom:13px}.card p{font-size:14px;line-height:1.65}.dark .cards{border-color:rgba(255,255,255,.13)}.dark .card{border-color:rgba(255,255,255,.13)}.dark .card p{color:rgba(255,255,255,.62)}.quote{font-size:clamp(30px,4.8vw,64px);font-weight:200;letter-spacing:-.04em;line-height:1.1}.tagrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.tag{border:1px solid var(--line);border-radius:999px;padding:9px 13px;font-size:11px;color:#68717b}.dark .tag{border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.6)}
@media(max-width:900px){.wrap,.wide{padding-left:22px;padding-right:22px}.split{grid-template-columns:1fr;gap:42px}.cards{grid-template-columns:1fr 1fr}.card:nth-child(2){border-right:0}.card:nth-child(-n+2){border-bottom:1px solid var(--line)}.dark .card:nth-child(-n+2){border-color:rgba(255,255,255,.13)}.section{padding:86px 0}}
@media(max-width:560px){.cards{grid-template-columns:1fr}.card{border-right:0!important;border-bottom:1px solid var(--line)}.dark .card{border-color:rgba(255,255,255,.13)}.card:last-child{border-bottom:0}}

.controlsec{padding:130px 0}h1,h2,h3{text-wrap:balance}figure{margin:0}button{font:inherit}a:focus-visible,button:focus-visible,video:focus-visible{outline:2px solid var(--blue);outline-offset:6px}
.skip{position:fixed;top:-80px;left:20px;background:#fff;padding:12px;z-index:50}.skip:focus{top:12px}
.page-intro{padding:140px 22px 76px;text-align:center}.page-intro h1{font-size:clamp(38px,4.2vw,46px);line-height:1.09;max-width:850px;margin:22px auto 0;font-weight:400}.page-intro p{max-width:660px;font-size:16px;margin:26px auto 0;line-height:1.6;color:var(--ink);font-weight:400}
.film{width:84%;max-width:1512px;margin:0 auto}.film-frame{position:relative;aspect-ratio:2.35;background:#e9edef;overflow:hidden}.film figcaption{font-size:11px;color:var(--muted);letter-spacing:.04em;margin-top:15px}
.statement{padding:170px 0 165px}.statement h2{font-weight:450;font-size:clamp(28px,3.4vw,48px);line-height:1.16;letter-spacing:-.015em;max-width:24ch;margin:0 auto;text-align:center;color:var(--ink)}.development{padding:0 0 145px}.development-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:9%;align-items:center}.development .media{aspect-ratio:1.06;position:relative}.development .media img{position:absolute;inset:0;object-fit:cover;object-position:center 60%;transform:scale(1.16)}.development h2{font-size:clamp(32px,3.1vw,45px);margin-top:20px;max-width:16ch}.development p{max-width:45ch}
.manufacturing{padding:0 0 134px}.manufacturing-photo{aspect-ratio:2.05;position:relative;overflow:hidden;background:none}.manufacturing-photo img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 59%;transform:scale(1.12)}.manufacturing-copy{margin-top:36px;max-width:600px}.manufacturing h2{font-size:30px;margin-top:15px}
.details{padding:112px 0 76px;background:#f7f8f9}.details h2{font-size:clamp(36px,4.2vw,58px);max-width:23ch;margin-top:20px}.editorial-columns{display:grid;grid-template-columns:repeat(3,1fr);margin-top:66px}.editorial-columns article{padding:0 38px;border-left:1px solid #dce0e4}.editorial-columns article:first-child{padding-left:0;border:0}.editorial-columns article:last-child{padding-right:0}.editorial-columns h3{font-weight:400;font-size:23px;line-height:1.28;letter-spacing:-.025em;margin:24px 0 18px;max-width:20ch}.editorial-columns p{font-size:14px}
.intelligence{padding:40px 0 108px}.intelligence-intro{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;padding-bottom:74px}.intelligence h2{font-size:clamp(38px,4.4vw,60px);margin-top:22px;max-width:16ch}.intelligence-intro p{font-size:16px;margin-bottom:22px;font-weight:350}.intelligence-intro .last{color:#fff;font-weight:400;margin-bottom:0}.technical-module{display:grid;grid-template-columns:60px .9fr 1.1fr;gap:34px;padding:39px 0 43px;border-top:1px solid #36393b;align-items:start}.module-index{font-size:11px;color:#969b9f;letter-spacing:.1em;padding-top:6px}.technical-module h3{font-size:27px;font-weight:300;line-height:1.2;letter-spacing:-.02em;max-width:22ch}.technical-module .feature{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#a397e7;margin-top:18px;line-height:1.7}.technical-module p{font-size:15px;margin-bottom:13px;line-height:1.4}.technical-module p:last-child{margin:0}.technical-module .problem{color:#e0e2e4;font-size:16px;line-height:1.4;font-weight:350}.platform-note{font-size:12px!important;color:#989da1!important;max-width:750px;padding-top:22px;border-top:1px solid #36393b}
.controlsec .ey{margin-bottom:20px}
@media(min-width:1600px){.development-grid{gap:110px}}
@media(max-width:1000px){.development-grid{gap:50px}.intelligence-intro{gap:46px}.technical-module{grid-template-columns:35px .9fr 1.1fr;gap:24px}.editorial-columns article{padding:0 24px}}
@media(max-width:900px){.page-intro{padding:118px 22px 58px}.film{width:calc(100% - 44px)}.statement{padding:100px 0}.development{padding-bottom:100px}.development-grid,.intelligence-intro{grid-template-columns:1fr}.development-grid{gap:40px}.development .media{aspect-ratio:1.3}.development p{max-width:65ch}.development h2{max-width:23ch}.manufacturing{padding-bottom:90px}.manufacturing-photo{aspect-ratio:1.7}.details{padding:85px 0 56px}.editorial-columns{margin-top:46px}.editorial-columns h3{font-size:20px}.intelligence{padding:40px 0 90px}.intelligence-intro{gap:32px;padding-bottom:52px}.intelligence h2{max-width:22ch}.technical-module{grid-template-columns:34px 1fr;gap:18px}.module-copy{grid-column:2}.technical-module h3{max-width:30ch}.controlsec{padding:90px 0}}
@media(max-width:600px){.page-intro h1{font-size:36px;max-width:20ch}.page-intro p{font-size:14px}.film-frame{aspect-ratio:1.55}.film figcaption{font-size:10px;line-height:1.6}.statement{padding:86px 0}.statement h2{font-size:28px;max-width:22ch}.development-grid{gap:34px}.development .media{aspect-ratio:1.05}.development{padding-bottom:82px}.development h2{font-size:34px}.manufacturing-photo{aspect-ratio:1.35}.manufacturing-copy{margin-top:28px}.manufacturing h2{font-size:27px}.details h2{font-size:36px}.editorial-columns{grid-template-columns:1fr;gap:30px}.editorial-columns article,.editorial-columns article:first-child{border:0;border-top:1px solid #dce0e4;padding:30px 0 0}.editorial-columns h3{font-size:24px;max-width:24ch;margin:17px 0 15px}.intelligence h2{font-size:40px}.intelligence-intro p{font-size:15px}.technical-module{padding:32px 0;grid-template-columns:24px 1fr;gap:14px}.technical-module h3{font-size:25px}.technical-module .feature{font-size:9px}}
@media(prefers-reduced-motion:reduce){}


/* the shared sheet colours h1-h4 with --ink; these grounds are dark */
.dark :is(h1,h2,h3,h4),.intelligence :is(h1,h2,h3,h4),.endtech :is(h1,h2,h3,h4){color:inherit}

/* the production film fills the frame the still used to */
.film-vid{display:block;width:100%;height:100%;object-fit:cover;border:0}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.film-vid{display:none}}

/* light-topped page: the header is solid from the start. Same pair
   products-v4 uses; not in yphos.css yet, so scoped here */
.hdr.always-solid{--fg:#111;--fg-dim:#111;border-bottom-color:var(--line)}
.hdr.always-solid::before{opacity:1}
.hdr.always-solid .brand .logo-light{display:none}
.hdr.always-solid .brand .logo-dark{display:block}
.hdr.always-solid .hdr-in{height:62px}

/* full-bleed band carrying the page from the light sections into the dark one */
.ledband{margin:0;background:var(--deep)}
.ledband img{width:100%;height:auto;display:block}
/* a plain fade over a second -- no rise, so the band does not shift the
   section boundary as it settles. .ledband .reveal outweighs .reveal. */
.ledband .reveal{transform:none;transition:opacity 1s var(--ease)}
/* phone and tablet: the natural band is too short, so it crops to 60vh */
@media(max-width:1024px){.ledband img{min-height:60vh;object-fit:cover}}

/* Control & integration, on the same pattern as "Built under our own
   standards": a wide photo, the copy beneath it, then the ladder. */
.control-photo{aspect-ratio:2.05;position:relative;overflow:hidden;background:none}
.control-photo img{position:absolute;width:100%;height:100%;object-fit:cover}
.control-copy{margin-top:36px;max-width:600px}
.controlsec h2{font-size:30px;margin-top:15px}

/* the five-column ladder, as model-07 sets it */
.lad{display:grid;grid-template-columns:repeat(5,1fr);margin-top:56px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.lrow{position:relative;padding:28px 30px 44px;border-left:1px solid var(--line)}
.lrow:first-child{border-left:0;padding-left:0}
.lrow .idx{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.lrow h4{margin-top:26px;font-size:18px;font-weight:500;letter-spacing:0;color:var(--ink)}
.lrow p{margin-top:14px;font-size:14px;color:var(--ink-2);line-height:1.36em}
@media(max-width:1000px){
  .lad{grid-template-columns:1fr 1fr}
  .lrow{padding:28px 20px 32px}
  .lrow:nth-child(odd){border-left:0;padding-left:0}
  .lrow:nth-child(n+3){border-top:1px solid var(--line)}}
@media(max-width:900px){
  .control-photo{aspect-ratio:1.7}
  .control-copy{margin-top:28px}
  .controlsec h2{font-size:27px}}
@media(max-width:600px){
  .control-photo{aspect-ratio:1.35}
  .lad{grid-template-columns:1fr;margin-top:40px}
  .lrow,.lrow:first-child{padding:28px 0 30px;border-left:0}
  .lrow:nth-child(n+2){border-top:1px solid var(--line)}}

/* opening film: a left-to-right curtain on the frame, the picture fading up
   and settling out of a slight scale behind it */
.film-frame{clip-path:inset(0 100% 0 0);animation:curtain 1.5s var(--ease) .78s forwards}
@keyframes curtain{to{clip-path:inset(0 0 0 0)}}
.film-vid{opacity:0;transform:scale(1.06);will-change:opacity,transform;
  animation:filmin 2.1s var(--ease) .84s forwards}
@keyframes filmin{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  .film-frame{clip-path:none;animation:none}
  .film-vid{opacity:1;transform:none;animation:none}}

/* above-fold entrance: one slow staggered sequence on load, the film last */
.page-intro>*{opacity:0;transform:translateY(22px);
  animation:introUp 1.15s var(--ease) forwards}
.page-intro .ey{animation-delay:.18s}
.page-intro h1 {animation-delay:.34s}
.page-intro p  {animation-delay:.54s}
@keyframes introUp{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  .page-intro>*{opacity:1;transform:none;animation:none}}

/* accessories: copy left, photo right. The photo stays first in the DOM so the
   mobile stack reads photo-then-copy; the columns swap with order on desktop. */
.instsec{padding:0 0 134px}
.instgrid{display:grid;gap:34px}
.inst-photo{position:relative;overflow:hidden;background:none;aspect-ratio:1.5}
.inst-photo img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 54%}
.instsec h2{font-size:clamp(32px,3.1vw,45px);margin-top:20px;max-width:18ch}
.instsec p{max-width:52ch}
@media(min-width:901px){
  .instgrid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
    gap:clamp(44px,5vw,86px);align-items:center}
  .instgrid .inst-photo{order:2;aspect-ratio:1.25}
  .instgrid .inst-copy{order:1}}
@media(max-width:900px){.instsec{padding-bottom:90px}.instsec h2{max-width:23ch}}
@media(max-width:600px){.instsec h2{font-size:34px}}
@media(max-width:600px){.inst-photo{aspect-ratio:1.35}}

/* section descriptions -- one setting for all four */
.development p,
.manufacturing p,
.controlsec .control-copy p,
.instsec .inst-copy p{font-size:16px;margin-top:18px;color:var(--ink);
  line-height:1.6;font-weight:350}
