/* Pinned chapters: stacked text without motion, one step at a time with .cine */
.chapters-pin { position: relative; overflow: hidden; padding: clamp(80px, 11vw, 140px) max(clamp(20px, 4vw, 48px), calc((100vw - 1184px) / 2)); }
.chapters-stack { display: grid; gap: 48px; margin-top: 32px; }
.step { display: grid; gap: 12px; }
.step h3 { font: 600 clamp(2rem, 4.6vw, 4rem)/1.08 var(--display); letter-spacing: -.035em; }
.step p { max-width: 36em; margin-top: 16px; font-size: clamp(1.05rem, 1.5vw, 1.3rem); color: #c9d1dd; }
.year { font: 600 clamp(4.5rem, 15vw, 13rem)/1 var(--display) !important; letter-spacing: -.05em; background: linear-gradient(100deg, #ff9a4d, #ff6b2c 45%, #d9360b); -webkit-background-clip: text; background-clip: text; color: transparent !important; margin: 0 !important; }
.chapters-line { display: none; }
.cine .chapters { height: 420vh; }
.cine .chapters-pin { position: sticky; top: 0; height: 100dvh; display: flex; flex-direction: column; justify-content: center; }
.cine .chapters-stack { display: block; position: relative; height: 62vh; margin-top: 24px; }
.cine .step { position: absolute; inset: 0; align-content: center; opacity: 0; will-change: transform, opacity; }
.cine .chapters-line { display: block; position: absolute; left: max(clamp(20px, 4vw, 48px), calc((100vw - 1184px) / 2)); right: max(clamp(20px, 4vw, 48px), calc((100vw - 1184px) / 2)); bottom: 7vh; height: 1px; background: var(--line); }
.cine .chapters-line b { display: block; height: 100%; background: var(--accent); transform: scaleX(0); transform-origin: left; }
.scenario .chapters-pin > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.5); }
.scenario .chapters-pin::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(6 10 18 / .88), rgb(6 10 18 / .2)); }
.scenario .kick, .scenario .chapters-stack, .scenario .chapters-line { z-index: 1; }
.scenario .kick, .scenario .chapters-stack { position: relative; }

/* Principles: real sticky stack, each card slides over the last */
.principles { padding-block: clamp(80px, 10vw, 140px) 40px; }
.cards { margin-top: 44px; }
.card { position: sticky; top: calc(88px + var(--i) * 16px); display: grid; grid-template-columns: 1.1fr 1fr; min-height: 68vh; margin-bottom: 8vh; background: var(--bg-2); border: 1px solid var(--line); overflow: hidden; }
.card img { width: 100%; height: 100%; min-height: 280px; object-fit: cover; filter: brightness(.8); transition: filter .9s var(--ease), transform 1.2s var(--ease); }
.card:hover img { filter: brightness(1); transform: scale(1.04); }
.card > div { padding: clamp(24px, 4vw, 56px); align-self: center; }
.card h3 { font: 600 clamp(1.8rem, 3.2vw, 3rem)/1.1 var(--display); letter-spacing: -.035em; }
.card p { margin-top: 16px; color: var(--muted); max-width: 30em; font-size: 18px; }

/* Industries: asymmetric grid, cells fill on hover */
.industries { padding-block: clamp(70px, 9vw, 120px); }
.industries ul { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; margin-top: 44px; background: var(--line); border: 1px solid var(--line); }
.ind { position: relative; grid-column: span 2; min-height: 240px; padding: 28px; background: var(--bg); display: flex; flex-direction: column; justify-content: flex-end; isolation: isolate; }
.ind:nth-child(-n+2) { grid-column: span 3; }
.ind::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(160deg, rgb(255 107 44 / .32), var(--bg-2) 62%); opacity: 0; transition: opacity .6s var(--ease); }
.ind:hover::before { opacity: 1; }
.ind h3 { font: 600 clamp(1.4rem, 2.2vw, 2rem)/1.15 var(--display); letter-spacing: -.03em; }
.ind p { margin-top: 10px; color: var(--muted); }

@media (max-width: 960px) {
  .card { grid-template-columns: 1fr; min-height: 0; position: static; margin-bottom: 20px; }
  .industries ul { grid-template-columns: 1fr; }
  .ind, .ind:nth-child(-n+2) { grid-column: auto; min-height: 170px; }
}

/* Partner: one large link, the whole band is the target */
.partner { border-top: 1px solid var(--line); }
.partner-link { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: 16px clamp(32px, 6vw, 88px); align-items: center; padding: clamp(48px, 7vw, 92px) max(clamp(20px, 4vw, 48px), calc((100vw - 1184px) / 2)); text-decoration: none; isolation: isolate; }
.partner-link::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--bg-2); transform: scaleX(0); transform-origin: left; transition: transform .7s var(--ease); }
.partner-link:hover::before { transform: scaleX(1); }
.partner-link .kick { grid-column: 1 / -1; }
.partner-link img { width: clamp(170px, 20vw, 260px); height: auto; }
.partner-txt { color: var(--muted); max-width: 34em; }
.partner-go { font-weight: 600; white-space: nowrap; }
.partner-go i { display: inline-block; font-style: normal; color: var(--accent); transition: transform .5s var(--ease); }
.partner-link:hover .partner-go i { transform: translateX(8px); }
@media (max-width: 960px) { .partner-link { grid-template-columns: 1fr; } }
