/* Immersive front page. The stage (navy) carries the 3D; .tri-paper follows the site's light/dark theme. */
.tr-immersive{
  --tri-deep:#0F1D2B; --tri-snow:#EAF1F6; --tri-mist:#A9BCCB; --tri-line:rgba(169,188,203,.22);
  --tri-shear:polygon(11% 0,100% 0,89% 100%,0 100%);
  background:var(--tri-deep) radial-gradient(120% 80% at 70% 0%,var(--navy) 0%,var(--tri-deep) 62%) fixed;
  color:var(--tri-snow);overflow-x:hidden;
}
/* Header sits on the stage: navy glass, light logo, regardless of theme. */
.tr-immersive .tr-header{
  --header-bg:rgba(15,29,43,.9); --header-line:rgba(169,188,203,.12);
  --ink:#E7EEF4; --slate:#9DB1C2; --line:#2A4257; --surface:#1B2D3E; --cyan-ink:#2FD3E6;
  color:var(--ink);
}
.tr-immersive .tr-header .tr-logo__img--dark{display:none}
.tr-immersive .tr-header .tr-logo__img--light{display:inline-block}
.tr-immersive .tr-footer{margin-top:0;position:relative;z-index:2}

.tri-stage{position:fixed;inset:0;width:100vw;height:100vh;height:100lvh;z-index:0;display:block;transition:opacity .5s ease}
.tri-main{position:relative;z-index:2}
.tri-main :where(h1,h2,h3){color:inherit}
.tri-topics{position:fixed;inset:0;z-index:1;pointer-events:none}
.tri-topics span{
  position:absolute;left:0;top:0;font:500 .8125rem/1 var(--fbody);letter-spacing:.01em;color:var(--tri-snow);
  padding:6px 16px;border:1px solid rgba(13,194,216,.45);background:rgba(15,29,43,.55);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);clip-path:var(--tri-shear);
  opacity:0;will-change:transform,opacity;white-space:nowrap;
}
.tri-no-webgl .tri-stage,.tri-no-webgl .tri-topics,.tri-no-webgl .tri-ladder__stage{display:none}

/* Buttons: the logo's shear as a physical edge */
.tri-btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 30px;
  font:600 1rem/1 var(--fbody);text-decoration:none;border:0;cursor:pointer;clip-path:var(--tri-shear);
  transition:background-color .2s,color .2s;
}
.tri-btn:hover{text-decoration:none}
.tri-btn--solid{background:var(--cyan);color:var(--tri-deep)}
.tri-btn--solid:hover{background:#3fd4e6;color:var(--tri-deep)}
.tri-btn--line{background:rgba(234,241,246,.08);color:var(--tri-snow);box-shadow:inset 0 0 0 1px rgba(234,241,246,.35)}
.tri-btn--line:hover{background:rgba(234,241,246,.16);color:var(--tri-snow)}
.tri-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 3px var(--tri-snow)}

/* Hero */
.tri-hero{min-height:calc(100vh - 69px);min-height:calc(100svh - 69px);display:flex;align-items:center;padding:56px 0 80px;position:relative}
.tri-hero__copy{display:grid;gap:22px}
.tri-hero__claim{font-weight:800;font-size:clamp(2.75rem,6.2vw,6.25rem);line-height:.93;letter-spacing:-.035em;max-width:9.5ch;margin:0}
.tri-hero__lede{font:600 clamp(1.25rem,1.9vw,1.625rem)/1.3 var(--fdisplay);max-width:26ch;letter-spacing:-.01em;margin:8px 0 0}
.tri-hero__sub{color:var(--tri-mist);max-width:46ch;margin:0}
.tri-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
.tri-no-webgl .tri-hero{background:linear-gradient(90deg,var(--tri-deep) 30%,transparent 75%),var(--tri-poster) right center/cover no-repeat}

/* Understand / Decide / Act: pinned while the 3D transforms */
.tri-sequence{height:340vh;position:relative}
.tri-sequence__sticky{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center}
.tri-sequence__panel{display:grid;gap:28px}
.tri-sequence__title{font:600 clamp(1rem,1.3vw,1.125rem)/1.3 var(--fbody);color:var(--tri-mist);letter-spacing:0;margin:0}
.tri-steps{list-style:none;margin:0;padding:0;display:grid;gap:22px;max-width:30rem}
.tri-step{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:start;opacity:.34;transition:opacity .45s ease}
.tri-step.is-active{opacity:1}
.tri-step__n{
  display:grid;place-items:center;height:56px;font:800 1.75rem/1 var(--fdisplay);color:var(--cyan);
  clip-path:var(--tri-shear);box-shadow:inset 0 0 0 2px rgba(13,194,216,.6);background:rgba(13,194,216,.06);
  transition:background-color .45s,color .45s;
}
.tri-step.is-active .tri-step__n{background:var(--cyan);color:var(--tri-deep)}
.tri-step h3{font-size:clamp(1.75rem,3.2vw,2.75rem);font-weight:800;letter-spacing:-.025em;line-height:1.05;margin:0}
.tri-step p{color:var(--tri-mist);margin:6px 0 0;max-width:42ch}
.tri-progress{height:2px;max-width:30rem;background:var(--tri-line);position:relative;overflow:hidden}
.tri-progress span{position:absolute;inset:0;background:var(--cyan);transform-origin:left;transform:scaleX(0)}

/* Role ladder */
.tri-ladder{padding:18vh 0 10vh;min-height:100vh;position:relative}
/* Keeps the role text legible where the staircase reaches into the left column. */
.tri-ladder::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(15,29,43,.9) 0%,rgba(15,29,43,.75) 32%,rgba(15,29,43,0) 52%)}
.tri-ladder__grid{display:grid;grid-template-columns:minmax(0,26rem) 1fr;grid-template-areas:"intro stage" "roles stage" "panel stage";gap:28px 48px;align-items:start}
.tri-ladder__intro{grid-area:intro;display:grid;gap:12px}
.tri-ladder__intro h2{font-size:clamp(1.75rem,3.1vw,2.625rem);font-weight:800;letter-spacing:-.025em;line-height:1.08;margin:0}
.tri-ladder__intro p{color:var(--tri-mist);margin:0}
.tri-roles{grid-area:roles;display:grid;gap:6px}
.tri-roles button{
  display:flex;align-items:center;gap:14px;width:100%;text-align:left;min-height:48px;padding:6px 14px 6px 6px;
  font:600 1.0625rem/1.2 var(--fbody);color:var(--tri-mist);background:transparent;border:0;border-left:2px solid var(--tri-line);
  cursor:pointer;transition:color .2s,border-color .2s,background-color .2s;
}
.tri-roles button:hover{color:var(--tri-snow);background:rgba(234,241,246,.04)}
.tri-roles button[aria-selected="true"]{color:var(--tri-snow);border-left-color:var(--cyan);background:rgba(13,194,216,.08)}
.tri-roles__n{display:grid;place-items:center;width:38px;height:30px;font:800 1rem/1 var(--fdisplay);clip-path:var(--tri-shear);background:rgba(234,241,246,.08);color:var(--tri-snow)}
.tri-roles button[aria-selected="true"] .tri-roles__n{background:var(--cyan);color:var(--tri-deep)}
.tri-role{grid-area:panel;display:grid;gap:12px;padding-top:6px}
.tri-role__reach{display:flex;align-items:baseline;gap:10px;color:var(--tri-mist);margin:0}
.tri-role__reach strong{font:800 clamp(2.5rem,4.5vw,3.75rem)/1 var(--fdisplay);color:var(--cyan);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.tri-role h3{font-size:1.5rem;font-weight:700;letter-spacing:-.015em;margin:0}
.tri-role dl{margin:0;display:grid;gap:4px}
.tri-role dt{font-size:.875rem;color:var(--tri-mist);margin-top:8px}
.tri-role dd{margin:0}
.tri-role__more{font-weight:600;color:var(--cyan);text-decoration:underline;text-underline-offset:4px;margin-top:6px;justify-self:start}
.tri-ladder__stage{grid-area:stage;align-self:stretch;min-height:60vh;cursor:grab;touch-action:pan-y;position:relative}
.tri-ladder__stage:active{cursor:grabbing}
.tri-ladder__stage span{position:absolute;right:0;bottom:0;font-size:.8125rem;color:var(--tri-mist);opacity:.7}
.tri-ladder__note{font-size:.8125rem;color:var(--tri-mist);margin-top:28px}

/* Paper: resources + latest insights; the canvas fades out above it */
.tri-paper{background:var(--bg);color:var(--ink);padding:clamp(72px,12vh,140px) 0}
.tri-paper :where(h2,h3){color:var(--ink)}
.tri-resources h2,.tri-latest h2{font-size:clamp(2rem,4vw,3.25rem);font-weight:800;letter-spacing:-.03em;line-height:1.02;max-width:16ch;margin:0}
.tri-resources__intro{color:var(--slate);margin:14px 0 0;max-width:44ch}
.tri-formats{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:clamp(20px,3vw,40px);margin-top:clamp(36px,6vh,64px)}
.tri-format{display:grid;grid-template-columns:minmax(120px,42%) 1fr;gap:22px;align-items:center;border-top:1px solid var(--line);padding-top:clamp(20px,3vw,32px)}
.tri-format img{width:100%;aspect-ratio:1;object-fit:cover;clip-path:polygon(8% 0,100% 0,92% 100%,0 100%)}
.tri-format--lead{grid-row:span 2;grid-template-columns:1fr;align-content:start}
.tri-format--lead img{aspect-ratio:4/3;object-position:center 40%;clip-path:polygon(5% 0,100% 0,95% 100%,0 100%)}
.tri-format h3{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin:0}
.tri-format p{color:var(--slate);margin:6px 0 0;max-width:40ch}
.tri-format a{display:inline-block;margin-top:12px;font-weight:600;color:var(--cyan-ink);text-decoration:underline;text-underline-offset:4px}
.tri-latest{margin-top:clamp(72px,12vh,140px)}
.tri-latest .tr-grid{margin-top:clamp(28px,4vh,44px)}
.tri-latest__all{display:inline-block;margin-top:24px;font-weight:600;color:var(--cyan-ink);text-decoration:underline;text-underline-offset:4px}

/* Act + newsletter */
.tri-act{position:relative;min-height:88vh;display:flex;align-items:center;overflow:hidden;background:var(--tri-deep)}
.tri-act__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:left center}
.tri-act::after{content:"";position:absolute;inset:0;background:linear-gradient(270deg,rgba(15,29,43,.96) 34%,rgba(15,29,43,.35) 70%,rgba(15,29,43,.1))}
.tri-act__copy{position:relative;z-index:1;display:grid;justify-items:start;gap:16px;padding-block:80px}
.tri-act .tri-act__copy>*{margin:0 0 0 auto;width:min(30rem,100%)}
.tri-act h2{font-size:clamp(2rem,4vw,3.25rem);font-weight:800;letter-spacing:-.03em;line-height:1.02}
.tri-act p{color:var(--tri-mist)}
.tri-act .tri-act__form{margin-top:10px}

/* Narrow screens: the 3D sits behind a scrim; text keeps its column */
@media (max-width:900px){
  .tri-hero{align-items:flex-end;padding-bottom:56px}
  .tri-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(15,29,43,.94) 45%,rgba(15,29,43,.4) 75%,rgba(15,29,43,0) 95%)}
  .tri-sequence__sticky{align-items:flex-end;padding-bottom:40px}
  .tri-sequence__panel{background:linear-gradient(0deg,rgba(15,29,43,.95) 60%,rgba(15,29,43,0));padding-top:60px}
  .tri-step{grid-template-columns:48px 1fr;gap:14px}
  .tri-step__n{height:42px;font-size:1.25rem}
  .tri-step:not(.is-active) p{display:none}
  .tri-ladder::before{background:none}
  .tri-ladder__grid{grid-template-columns:1fr;grid-template-areas:"intro" "stage" "roles" "panel"}
  .tri-ladder__stage{min-height:46vh}
  .tri-roles{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
  .tri-roles button{border-left:0;border-bottom:2px solid var(--tri-line);padding:6px 12px 6px 6px}
  .tri-roles button[aria-selected="true"]{border-bottom-color:var(--cyan)}
  .tri-formats{grid-template-columns:1fr}
  .tri-format--lead{grid-row:auto}
  .tri-act{align-items:flex-end}
  .tri-act::after{background:linear-gradient(0deg,rgba(15,29,43,.97) 45%,rgba(15,29,43,.3))}
}
