/* partners page */
/* ============ PARTNERS ============ */
.p-hero{position:relative;min-height:88vh;min-height:88svh;display:flex;align-items:flex-end;padding:calc(140px + env(safe-area-inset-top,0px)) 0 90px;overflow:hidden}
#netCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.p-hero .wrap{position:relative;z-index:1;pointer-events:none}
.p-hero a{pointer-events:auto}
.p-hero .kicker{color:var(--muted);margin-bottom:26px;opacity:0;transition:opacity .8s}
.p-hero h1{font-size:clamp(2.6rem,6.4vw,6rem);font-weight:700;letter-spacing:-.045em;line-height:1}
.p-hero h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}
.p-hero h1 .ln span{display:inline-block;transform:translateY(105%);transition:transform 1s var(--ease)}
.p-hero h1 .ln:nth-child(2) span{transition-delay:.1s}
.p-hero-row{display:flex;justify-content:space-between;align-items:end;gap:40px;flex-wrap:wrap;margin-top:36px;opacity:0;transform:translateY(12px);transition:opacity .8s .45s,transform .8s .45s var(--ease)}
.loaded .p-hero .kicker{opacity:1}
.loaded .p-hero h1 .ln span{transform:none}
.loaded .p-hero-row{opacity:1;transform:none}
.p-hero-row .lede{max-width:48ch}
.hint{color:var(--muted);font-size:.85rem;margin-top:14px}

.sec{padding:120px 0}
.sec-top{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:60px}

.logo-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.lg{aspect-ratio:16/9;display:grid;place-items:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.lg::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(238,240,246,.08),transparent 60%);opacity:0;transition:opacity .4s}
.lg:hover::before{opacity:1}
.lg span{font-family:var(--display);font-weight:500;font-size:1.15rem;color:rgba(238,240,246,.4);transition:color .4s,transform .5s var(--ease);position:relative}
.lg:hover span{color:var(--paper);transform:scale(1.06)}
.lg img{max-width:60%;max-height:44%;object-fit:contain;filter:grayscale(1) brightness(1.6);opacity:.6;transition:filter .4s,opacity .4s}
.lg:hover img{filter:none;opacity:1}

.why{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.w{border-radius:22px;padding:30px 26px;background:var(--ink-2);border:1px solid var(--line);position:relative;overflow:hidden;min-height:260px;display:flex;flex-direction:column;justify-content:space-between}
.w::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--c);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.w:hover::after{transform:scaleX(1)}
.w-fig{font-family:var(--display);font-size:2.4rem;letter-spacing:-.04em;font-weight:500}
.w h3{margin:0 0 10px}
.w p{color:var(--muted);font-size:.95rem}

.types{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.type-list{border-top:1px solid var(--line)}
.type{display:grid;grid-template-columns:1fr 1.4fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.type h3{font-size:1.05rem}
.type p{color:var(--muted);font-size:.95rem}

.models{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.m{padding:30px 24px 10px 0}
.m + .m{padding-left:24px;border-left:1px solid var(--line)}
.m strong{display:block;font-family:var(--display);font-weight:500;font-size:1.5rem;letter-spacing:-.03em;margin-bottom:12px}
.m p{color:var(--muted);font-size:.95rem}

@media (max-width:1020px){
  .sec-top,.types{grid-template-columns:1fr;gap:24px}
  .why{grid-template-columns:1fr 1fr}
  .logo-grid{grid-template-columns:repeat(3,1fr)}
  .models{grid-template-columns:1fr 1fr}
  .m:nth-child(3){padding-left:0;border-left:0}
  .m{padding-bottom:30px}
}
@media (max-width:640px){
  .sec{padding:90px 0}
  .why,.models{grid-template-columns:1fr}
  .m,.m + .m{padding:24px 0;border-left:0;border-bottom:1px solid var(--line)}
  .logo-grid{grid-template-columns:repeat(2,1fr)}
  .type{grid-template-columns:1fr;gap:6px}
  .w{min-height:0;gap:30px}
}
