/* Journey motion adapted from the supplied genient-journey.html. */
html:has(#journey.genient-journey) {
  scroll-behavior: auto;
}

#journey {
  --j-header: 100px;
  --gutter: clamp(20px, 5vw, 80px);
  position: relative;
  overflow: visible;
  padding-block: var(--section);
  background: var(--ground);
  color: var(--ink);
}
#journey > .wrap {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: var(--gutter);
}
#journey h2, #journey h3 {
  font-family: var(--display) !important;
  font-weight: 600;
}
#journey .head-row { margin-bottom: 48px; }
#journey .journey-body.hz { height: calc(100svh - var(--j-header)); }
#journey .legend{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:14px;color:var(--body)}
#journey .legend span{display:inline-flex;align-items:center;gap:8px}
#journey .dot{width:10px;height:10px;border-radius:999px !important;display:inline-block}
#journey .timeline{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--ink) !important}
#journey .year{display:grid;grid-template-columns:2fr 10fr;gap:24px;padding-block:28px;border-top:1px solid var(--line) !important}
#journey .year:first-child{border-top-color:var(--ink) !important}
#journey .year-label{font-family:var(--display);font-size:clamp(32px,3.2vw,44px);font-weight:600;letter-spacing:-0.03em;color:var(--muted);line-height:1.1}
#journey .year.current .year-label{color:var(--accent)}
#journey.journey-motion .journey-body .year.current:not(.active) .year-label{color:var(--muted)}
#journey .events{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 32px}
#journey .event{display:flex;flex-direction:column;gap:8px;border-top:3px solid var(--ink) !important;padding-top:14px}
#journey .event.wide{grid-column:span 2}
#journey .event.partner{border-top-color:var(--ch-blue) !important}
#journey .event.delivery{border-top-color:var(--ch-green) !important}
#journey .event h3{font-size:20px;line-height:1.3}
#journey .event p{font-size:15px;line-height:1.55;color:var(--body)}
#journey .event .tag{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
#journey .journey-body{position:relative;display:grid;grid-template-columns:3fr 9fr;gap:24px 56px;align-items:start}
#journey .j-bg{position:sticky;top:18vh;height:0;grid-column:1 / -1;grid-row:1;z-index:0;pointer-events:none}
#journey .j-bg-year{position:absolute;right:-2vw;top:0;font-family:var(--display);font-weight:600;font-size:clamp(160px,24vw,360px);line-height:.8;letter-spacing:-0.06em;color:var(--ink);opacity:.045;white-space:nowrap}
#journey .j-rail{grid-column:1;grid-row:1;position:sticky;top:calc(var(--j-header) + 40px);z-index:3;display:flex;flex-direction:column;gap:10px;padding-top:28px}
#journey .j-label{font-size:13px;font-weight:600;color:var(--body);text-transform:uppercase;letter-spacing:.08em}
#journey .j-year{font-family:var(--display);font-weight:600;font-size:clamp(56px,6vw,88px);line-height:1;letter-spacing:-0.04em;color:var(--accent);overflow:hidden;height:1em}
#journey .j-year span{display:block}
#journey .j-year span.roll{animation:genient-journey-yr-roll .55s cubic-bezier(.2,.7,.2,1)}
@keyframes genient-journey-yr-roll{from{transform:translateY(60%);opacity:0}to{transform:none;opacity:1}}
#journey .j-track{height:4px;border-radius:999px !important;background:var(--line);overflow:hidden;margin-top:6px}
#journey .j-fill{display:block;height:100%;width:0;background:var(--accent);transition:width .6s ease}
#journey .j-ends{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;color:var(--muted)}
#journey .j-plabel{margin-top:22px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
#journey .j-count{font-family:var(--display);font-size:22px;color:var(--ink);letter-spacing:-0.02em}
#journey .j-of{font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:none;letter-spacing:0}
#journey .j-chips{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
#journey .chip{font-size:13px;font-weight:500;padding:6px 11px;border-radius:999px !important;background:var(--paper);border:1px solid var(--line) !important;color:var(--ink);display:inline-flex;align-items:center;gap:6px}
#journey .chip::before{content:"";width:7px;height:7px;border-radius:999px !important;background:var(--ch-blue)}
#journey .chip.eng::before{background:var(--muted)}
#journey .chip.lab::before{background:var(--ch-green)}
#journey .journey-body .timeline{grid-column:2;grid-row:1;position:relative;z-index:1}
#journey .journey-body .events{grid-template-columns:repeat(2,minmax(0,1fr))}
#journey .journey-body .year{grid-template-columns:120px 1fr}
#journey .timeline::before{content:"";position:absolute;left:-28px;top:0;bottom:0;width:2px;background:var(--line)}
#journey .timeline::after{content:"";position:absolute;left:-28px;top:0;width:2px;height:calc(var(--p,1) * 100%);background:var(--accent);transition:height .4s linear}
#journey.journey-motion .journey-body .year{opacity:.18;transition:opacity .9s ease}
#journey.journey-motion .journey-body .year.in{opacity:1}
#journey.journey-motion .journey-body .event{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
#journey.journey-motion .journey-body .year.in .event{opacity:1;transform:none}
#journey.journey-motion .journey-body .year.in .event:nth-child(2){transition-delay:.15s}
#journey.journey-motion .journey-body .year.in .event:nth-child(3){transition-delay:.3s}
#journey.journey-motion .journey-body .year.in .event:nth-child(4){transition-delay:.45s}
#journey.journey-motion .journey-body .year.in .event:nth-child(5){transition-delay:.6s}
#journey.journey-motion .journey-body .year-label{transition:color .6s ease}
#journey.journey-motion .journey-body .year.active .year-label{color:var(--accent)}
#journey.journey-motion .chip{opacity:0;transform:scale(.85) translateY(6px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);max-width:0;padding-inline:0;border-width:0 !important;margin-right:-8px;overflow:hidden;white-space:nowrap}
#journey.journey-motion .chip.on{opacity:1;transform:none;max-width:240px;padding-inline:11px;border-width:1px !important;margin-right:0}
#journey.journey-motion .chip.new{box-shadow:0 0 0 3px rgba(47,91,234,.18)}
#journey .journey-body.hz{display:flex;flex-direction:column;height:calc(100vh - var(--j-header));overflow:hidden;gap:0;padding-top:12px}
#journey .journey-body.hz .j-rail{position:relative;top:auto;width:100%;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:32px;row-gap:6px;padding:0 0 18px;border-bottom:1px solid var(--line) !important;flex:0 0 auto}
#journey .journey-body.hz .j-rail .j-label:first-child{display:none}
#journey .journey-body.hz .j-year{grid-column:1;grid-row:1 / span 3;align-self:center;font-size:clamp(52px,5.4vw,80px)}
#journey .journey-body.hz .j-track{grid-column:2;grid-row:1;align-self:end;margin:0}
#journey .journey-body.hz .j-ends{grid-column:2;grid-row:2}
#journey .journey-body.hz .j-plabel{display:none}
#journey .journey-body.hz .j-chips{grid-column:2;grid-row:3;margin:4px 0 0}
#journey .journey-body.hz .j-chips::before{content:"Partners alongside us";font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--body);align-self:center;margin-right:6px}
#journey .journey-body.hz .j-bg{position:absolute;inset:auto 0 6% auto;height:auto;top:auto;z-index:0}
#journey .journey-body.hz .j-bg-year{position:static;display:block;font-size:clamp(200px,30vw,440px);opacity:.05}
#journey .journey-body.hz .timeline{display:flex;flex-direction:row;align-items:stretch;width:max-content;flex:1 1 auto;min-height:0;border-bottom:0 !important;padding:0 40px 0 4px;margin:0;will-change:transform}
#journey .journey-body.hz .timeline::before{left:0;right:0;top:34px;bottom:auto;width:auto;height:2px}
#journey .journey-body.hz .timeline::after{left:0;top:34px;height:2px;width:calc(var(--p,0) * 100%);transition:none}
#journey .journey-body.hz .year{flex:0 0 auto;display:grid;grid-template-columns:max-content 1fr;grid-template-rows:auto 1fr;align-content:start;column-gap:20px;row-gap:22px;border-top:0 !important;border-left:1px solid var(--line) !important;padding:62px 56px 0 40px;opacity:1}
#journey .journey-body.hz .year:first-child{border-left:0 !important;padding-left:8px}
#journey .journey-body.hz .year::before{left:-9px;top:26px}
#journey .journey-body.hz .year:first-child::before{left:0}
#journey .journey-body.hz .year>.year-label{grid-column:1;grid-row:1;align-self:center;font-size:clamp(40px,4vw,60px)}
#journey .journey-body.hz .year>.yr-ill{grid-column:2;grid-row:1;width:116px;max-width:none;align-self:center;justify-self:start}
#journey .journey-body.hz .year>.events{grid-column:1 / -1;grid-row:2;grid-template-columns:repeat(var(--c,1),minmax(0,260px));gap:22px 28px;align-content:start}
#journey .journey-body.hz .event.wide{grid-column:auto}
#journey .journey-body.hz .event{opacity:1;transform:none;transition:none}
#journey .journey-body.hz .yr-ill{opacity:1;transform:none;transition:none}
#journey .journey-body.hz .event p{font-size:14px}
#journey .journey-body.hz .event h3{font-size:18px}
@media (max-height:760px){
#journey .journey-body.hz .j-chips{display:none}
#journey .journey-body.hz .year{padding-top:52px}
}
#journey .journey-body .year-label-wrap{display:flex;flex-direction:column;gap:14px}
#journey .yr-ill{width:100%;max-width:150px;height:auto;margin-top:14px;overflow:visible}
#journey .journey-body .year{grid-template-columns:150px 1fr;align-items:start}
#journey .journey-body .year>.year-label{grid-column:1}
#journey .journey-body .year>.yr-ill{grid-column:1;grid-row:2;margin-top:0;align-self:start}
#journey .journey-body .year{grid-template-rows:auto 1fr}
#journey .journey-body .year>.events{grid-column:2;grid-row:1 / span 2}
#journey .year{position:relative}
#journey .journey-body .year::before{content:"";position:absolute;left:-35px;top:42px;width:16px;height:16px;border-radius:999px !important;background:var(--ground);border:3px solid var(--line) !important;z-index:2;transition:border-color .5s,background .5s,transform .5s}
#journey .journey-body .year.active::before{border-color:var(--accent) !important;background:var(--accent);transform:scale(1.15);box-shadow:0 0 0 6px rgba(217,86,26,.15)}
#journey .journey-body .year.in::before{border-color:var(--accent) !important}
#journey .event{transition:transform .25s ease,box-shadow .25s ease}
#journey .yr-ill .rung{stroke-dasharray:1 0}
@keyframes genient-journey-ill-spin{to{transform:rotate(360deg)}}
@keyframes genient-journey-ill-float{50%{transform:translateY(-4px)}}
@keyframes genient-journey-ill-pulse{50%{transform:scale(1.12)}}
@keyframes genient-journey-ill-ping{0%{transform:scale(1);opacity:1}70%{transform:scale(2.6);opacity:0}100%{opacity:0}}
@keyframes genient-journey-ill-blink{50%{opacity:0}}
@keyframes genient-journey-ill-scan{0%{transform:translateX(0)}100%{transform:translateX(102px)}}
@keyframes genient-journey-ill-flow{from{stroke-dashoffset:1}to{stroke-dashoffset:-1}}
@keyframes genient-journey-ill-ecg{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes genient-journey-ill-bubble{0%{transform:translateY(0);opacity:0}30%{opacity:1}100%{transform:translateY(-34px);opacity:0}}
@keyframes genient-journey-ill-rung{0%,100%{opacity:.35}50%{opacity:1}}
#journey .yr-ill .spin,#journey .yr-ill .spin-rev,#journey .yr-ill .spin-slow,#journey .yr-ill .pulse,#journey .yr-ill .ping,#journey .yr-ill .float{transform-box:view-box}
#journey .year.in .yr-ill .spin{animation:genient-journey-ill-spin 9s linear infinite}
#journey .year.in .yr-ill .spin-rev{animation:genient-journey-ill-spin 6.5s linear infinite reverse}
#journey .year.in .yr-ill .spin-slow{animation:genient-journey-ill-spin 18s linear infinite}
#journey .year.in .yr-ill .float{animation:genient-journey-ill-float 3.2s ease-in-out infinite}
#journey .year.in .yr-ill .pulse{animation:genient-journey-ill-pulse 1.8s ease-in-out infinite}
#journey .year.in .yr-ill .ping{animation:genient-journey-ill-ping 2.2s ease-out infinite}
#journey .year.in .yr-ill .caret{animation:genient-journey-ill-blink 1s steps(1) infinite}
#journey .year.in .yr-ill .scanbar{animation:genient-journey-ill-scan 3s ease-in-out infinite alternate}
#journey .year.in .yr-ill .arcflow{stroke-dasharray:.35 .65;animation:genient-journey-ill-flow 2.6s linear infinite}
#journey .year.in .yr-ill .arcflow.d2{animation-delay:-1.3s}
#journey .year.in .yr-ill .ecg{stroke-dasharray:1;animation:genient-journey-ill-ecg 2.4s linear infinite}
#journey .year.in .yr-ill .bubble{animation:genient-journey-ill-bubble 2.6s ease-in infinite}
#journey .year.in .yr-ill .bubble.d2{animation-delay:1.1s}
#journey .year.in .yr-ill .rung{animation:genient-journey-ill-rung 2.4s ease-in-out infinite;animation-delay:calc(var(--i) * 60ms)}
#journey.journey-motion .yr-ill .dr{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s cubic-bezier(.4,.1,.2,1) .2s}
#journey.journey-motion .year.in .yr-ill .dr{stroke-dashoffset:0}
#journey.journey-motion .yr-ill .fillup{transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);transition:transform 1.2s ease 1s}
#journey.journey-motion .year.in .yr-ill .fillup{transform:none}
#journey.journey-motion .yr-ill{opacity:0;transform:translateY(12px) scale(.96);transition:opacity .8s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
#journey.journey-motion .year.in .yr-ill{opacity:1;transform:none}
@media (hover:hover){
#journey .journey-body .event:hover{transform:translateY(-3px)}
}
@media (prefers-reduced-motion:reduce){
#journey .yr-ill *{animation:none !important}
}
@media (max-width:1100px){
#journey .journey-body{grid-template-columns:1fr;gap:0}
#journey .j-bg{top:30vh}
#journey .j-rail{grid-column:1;grid-row:1;top:var(--j-header);flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:10px var(--gutter);margin:0 calc(-1 * var(--gutter)) 8px;background:rgba(242,245,246,.97);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line) !important}
#journey .j-rail .j-label:first-child,#journey .j-ends,#journey .j-chips{display:none}
#journey .j-year{font-size:36px}
#journey .j-track{flex:1 1 120px;margin:0}
#journey .j-plabel{margin:0;font-size:12px}
#journey .j-count{font-size:18px}
#journey .journey-body .timeline{grid-column:1;grid-row:2;margin-left:20px}
#journey .timeline::before,#journey .timeline::after{left:-20px}
}
@media (max-width:640px){
#journey .head-row{margin-bottom:32px}
#journey .year{grid-template-columns:1fr;gap:16px;padding-block:24px}
#journey .journey-body .year{grid-template-columns:auto 1fr;column-gap:16px;align-items:center}
#journey .journey-body .year>.yr-ill{grid-column:2;grid-row:1;max-width:96px;justify-self:end}
#journey .journey-body .year>.events{grid-column:1 / -1;grid-row:2}
#journey .journey-body .year::before{left:-27px;top:38px;width:14px;height:14px}
#journey .journey-body .events,#journey .events{grid-template-columns:1fr;gap:22px}
#journey .event.wide{grid-column:auto}
#journey .event h3{font-size:18px}
}
@media (prefers-reduced-motion:reduce){
#journey *{transition:none !important}
}
#journey .journey-body.hz {
  height: calc(100vh - var(--j-header));
  height: calc(100svh - var(--j-header));
}
#journey .journey-body:not(.hz) .year { opacity: 1; }
#journey .j-rail { background: var(--ground); }
#journey .journey-body.hz .j-rail { margin: 0; padding-inline: 0; }
#journey .journey-body.hz .timeline { margin-left: 0; }
#journey .chip.new { animation: genient-journey-chip .6s cubic-bezier(.2,.7,.2,1); }
@keyframes genient-journey-chip { from { transform: translateY(-8px) scale(.8); } to { transform: none; } }
@media (max-width: 767px), (prefers-reduced-motion: reduce) {
  #journey .journey-body { grid-template-columns: 1fr; gap: 0; }
  #journey .journey-body .timeline { grid-column: 1; grid-row: 2; margin-left: 20px; }
  #journey .journey-body .year { grid-template-columns: auto 1fr; column-gap: 16px; }
  #journey .journey-body .year > .yr-ill { grid-column: 2; grid-row: 1; max-width: 96px; justify-self: end; }
  #journey .journey-body .year > .events { grid-column: 1 / -1; grid-row: 2; }
  #journey .journey-body .events { grid-template-columns: 1fr; }
}
