/* Belfurt journey — scoped to #journey so the site header and footer stay untouched */
body.bf7-journey{background:#fff}
body.bf7-journey.jn-playing,
body.bf7-journey.jn-playing html{scroll-behavior:auto}

#journey{
  --jn-ink:#1d1d1f; --jn-ink2:#6e6e73; --jn-ink3:#86868b; --jn-line:#d2d2d7;
  --jn-bg:#fff; --jn-blue:#0071e3; --jn-blue-h:#0077ed;
  --jn-font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --jn-hdr:72px; --jn-sub:52px;
  --jn-chrome:calc(var(--jn-hdr) + var(--jn-sub));
  position:relative;
  font-family:var(--jn-font);
  color:var(--jn-ink);
  background:var(--jn-bg);
  font-feature-settings:"ss01","cv11";
  -webkit-font-smoothing:antialiased;
}
@media (max-width:720px){
  #journey{--jn-hdr:64px; --jn-sub:48px}
}

#journey a{color:inherit;text-decoration:none}
#journey button{font:inherit;border:0;background:none;cursor:pointer;color:inherit}

/* sub nav, sticky under the site header */
#journey .jn-sub{position:sticky;top:var(--jn-hdr);z-index:29;height:var(--jn-sub);background:rgba(255,255,255,.74);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.08)}
#journey .jn-sub-in{max-width:1024px;margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 22px}
#journey .jn-sub-title{font-size:21px;font-weight:600;letter-spacing:.011em;color:var(--jn-ink)}
#journey .jn-sub-r{display:flex;align-items:center;gap:24px}
#journey .jn-sub-link{font-size:12px;color:var(--jn-ink);opacity:.82}

#journey .jn-pill{display:inline-flex;align-items:center;justify-content:center;background:var(--jn-blue);color:#fff;border-radius:980px;font-size:17px;line-height:1.18;font-weight:400;letter-spacing:-.022em;padding:12px 22px;min-width:28px;height:auto;box-shadow:none;gap:0}
#journey .jn-pill:hover{background:var(--jn-blue-h);color:#fff}
#journey .jn-pill-sm{font-size:12px;padding:5px 11px;letter-spacing:-.01em}

/* layout */
#journey .road{position:absolute;left:0;top:0;width:100%;z-index:1;pointer-events:none;overflow:visible}
#journey .hero-in,#journey .copy,#journey .close-in,#journey .marker,#journey .art{position:relative;z-index:2}

/* hero */
#journey .hero{background:var(--jn-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:calc(100svh - var(--jn-chrome));min-height:calc(100vh - var(--jn-chrome));padding:40px 24px 180px;position:relative}
#journey .eyebrow{font-size:28px;line-height:1.14;font-weight:600;letter-spacing:.007em;color:var(--jn-ink);margin-bottom:14px}
#journey .hero h1{font-size:120px;line-height:1.0;font-weight:700;letter-spacing:-.035em;color:transparent;
  background:linear-gradient(180deg,#1d1d1f 0%,#1d1d1f 55%,#5b5b60 100%);-webkit-background-clip:text;background-clip:text;padding-bottom:6px;margin:0}
#journey .hero-sub{font-size:28px;line-height:1.25;font-weight:400;letter-spacing:-.012em;color:var(--jn-ink2);margin-top:28px;max-width:720px}
#journey .seg{display:inline-flex;margin-top:44px;padding:3px;border-radius:980px;background:#ececf0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.03)}
#journey .seg button{font-size:14px;letter-spacing:-.01em;padding:9px 20px;border-radius:980px;color:var(--jn-ink2);transition:all .25s;height:auto}
#journey .seg button.on{background:#fff;color:var(--jn-ink);font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.08),0 3px 10px rgba(0,0,0,.06)}
#journey .cue{position:absolute;left:50%;bottom:64px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--jn-ink3);font-size:12px;letter-spacing:.02em;z-index:2;background:var(--jn-bg);padding:0 10px 8px}

/* steps */
#journey .step{display:flex;align-items:center;position:relative;min-height:calc(100svh - var(--jn-chrome));min-height:calc(100vh - var(--jn-chrome));gap:4%;justify-content:center;background:var(--jn-bg)}
#journey .marker{position:absolute;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;border:1.5px solid transparent;
  background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#0071e3,#7d5cff 55%,#5ac8fa) border-box;
  box-shadow:0 10px 28px -8px rgba(0,113,227,.35),0 2px 6px rgba(0,113,227,.08);display:grid;place-items:center}
#journey .marker svg{width:30px;height:30px;fill:none;stroke:var(--jn-blue);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#journey .marker.now::after{content:"";position:absolute;inset:-12px;border-radius:50%;border:1px solid rgba(0,113,227,.18);box-shadow:0 0 0 10px rgba(0,113,227,.04)}
#journey .side-l .marker{left:7.5%}
#journey .side-r .marker{left:92.5%}
#journey .side-l{flex-direction:row-reverse;padding:0 7% 0 15%}
#journey .side-r{padding:0 15% 0 7%}
#journey .copy{flex:0 0 34%;min-width:0}
#journey .art{position:relative;z-index:2;flex:0 0 44%;margin:0;mix-blend-mode:multiply}
#journey .art img{display:block;width:100%;height:auto;max-width:100%}
#journey .num{display:block;font-size:150px;line-height:.82;font-weight:700;letter-spacing:-.05em;margin:0 0 22px -6px;background:linear-gradient(135deg,#a9cdff 0%,#cfe4ff 55%,#ddd6ff 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
#journey .step h2{font-size:56px;line-height:1.05;font-weight:700;letter-spacing:-.03em;color:var(--jn-ink);margin:0}
#journey .step p{font-size:24px;line-height:1.33;letter-spacing:-.012em;color:var(--jn-ink2);margin-top:22px;max-width:470px;font-weight:400}
#journey .jn-chip{display:inline-flex;align-items:center;gap:8px;margin-top:30px;font-size:14px;letter-spacing:-.01em;color:var(--jn-blue);background:rgba(0,113,227,.07);padding:7px 14px 7px 12px;border-radius:980px;height:auto;box-shadow:none;white-space:nowrap}
#journey .jn-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:rgba(0,113,227,.35)}
#journey .step.complete .jn-chip::before{background:var(--jn-blue)}

/* close */
#journey .close{background:var(--jn-bg);display:flex;align-items:center;justify-content:center;text-align:center;padding:0 24px;position:relative;min-height:calc(100svh - var(--jn-chrome));min-height:calc(100vh - var(--jn-chrome))}
#journey .close-in{max-width:880px;padding-top:120px}
#journey .dest{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 18px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px var(--jn-blue),0 10px 24px -6px rgba(0,0,0,.2)}
#journey .dest i{width:12px;height:12px;border-radius:50%;background:var(--jn-blue);display:block}
#journey .close-eyebrow{font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--jn-ink2);margin-bottom:36px}
#journey .close h2{font-size:80px;line-height:1.05;font-weight:700;letter-spacing:-.035em;color:var(--jn-ink);margin:0}
#journey .ctas{margin-top:48px;display:flex;gap:32px;justify-content:center;align-items:center}
#journey .more{color:var(--jn-blue);font-size:19px;letter-spacing:-.02em}
#journey .more:hover{text-decoration:underline}

/* tablet */
@media (max-width:1068px){
  #journey .hero h1{font-size:88px}
  #journey .step h2{font-size:52px}
  #journey .num{font-size:136px}
  #journey .close h2{font-size:64px}
}
/* phone */
@media (max-width:734px){
  #journey .jn-sub-title{font-size:19px}
  #journey .jn-sub-link{display:none}
  #journey .hero{padding:24px 24px 150px}
  #journey .eyebrow{font-size:21px;margin-bottom:10px}
  #journey .hero h1{font-size:56px;letter-spacing:-.03em;line-height:1.05}
  #journey .hero-sub{font-size:21px;margin-top:20px;max-width:320px}
  #journey .seg{margin-top:36px}
  #journey .seg button{font-size:13px;padding:8px 14px}
  #journey .cue{bottom:40px}
  #journey .marker{width:46px;height:46px;margin:-23px 0 0 -23px}
  #journey .marker svg{width:20px;height:20px;stroke-width:1.7}
  #journey .marker.now::after{inset:-8px;box-shadow:0 0 0 6px rgba(0,113,227,.04)}
  #journey .side-l .marker{left:34px}
  #journey .side-r .marker{left:84px}
  #journey .side-l,#journey .side-r{flex-direction:column;justify-content:center;align-items:stretch;padding:64px 22px 64px 128px;gap:0}
  #journey .copy{flex:none}
  #journey .art{flex:none;width:100%;order:-1;margin:0 0 8px}
  #journey .num{font-size:72px;margin:0 0 14px -3px}
  #journey .step h2{font-size:36px;letter-spacing:-.025em;line-height:1.15}
  #journey .step p{font-size:19px;margin-top:16px}
  #journey .jn-chip{margin-top:22px;font-size:13px}
  #journey .close-in{padding-top:80px}
  #journey .close h2{font-size:44px;line-height:1.12}
  #journey .ctas{flex-direction:column;gap:22px;margin-top:36px}
  #journey .dest{margin-bottom:44px}
}

/* start button */
#journey .start-wrap{margin-top:36px}
#journey .jn-pill-lg{font-size:19px;padding:16px 30px;position:relative;font-weight:500;box-shadow:0 10px 30px -10px rgba(0,113,227,.6)}
#journey .start::before,#journey .start::after{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid rgba(0,113,227,.55);animation:jn-ring 2.4s cubic-bezier(.2,.6,.3,1) infinite;pointer-events:none}
#journey .start::after{animation-delay:1.2s}
@keyframes jn-ring{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.35,1.7);opacity:0}}
body.jn-playing #journey .start::before,
body.jn-playing #journey .start::after{animation:none;opacity:0}

/* locked / reached */
#journey .step .copy,#journey .step .art{transition:filter 1s ease,opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
#journey .step:not(.reached) .copy,#journey .step:not(.reached) .art{filter:blur(14px);opacity:.18;transform:translateY(24px)}
#journey .step:not(.reached) .marker{opacity:.55;filter:grayscale(1)}
#journey .marker{transition:opacity .6s,filter .6s}
#journey .step.reached .marker{opacity:1;filter:none}

/* tick */
#journey .tick{position:absolute;right:-6px;top:-6px;width:28px;height:28px;border-radius:50%;background:#34c759;display:grid;place-items:center;
  box-shadow:0 0 0 3px #fff,0 6px 16px -4px rgba(52,199,89,.55);transform:scale(0);opacity:0}
#journey .tick svg{width:16px!important;height:16px!important;stroke:#fff!important;stroke-width:2.6!important;fill:none}
#journey .step.complete .tick{animation:jn-pop .5s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes jn-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2);opacity:1}100%{transform:scale(1);opacity:1}}
#journey .step.complete .marker{box-shadow:0 10px 28px -8px rgba(52,199,89,.35),0 2px 6px rgba(0,113,227,.08)}

/* object animations */
#journey .art img{transform-origin:50% 60%;will-change:transform}
#journey .step.reached .art{animation:jn-float 6s ease-in-out 1.4s infinite alternate}
@keyframes jn-float{from{translate:0 0}to{translate:0 -10px}}
#journey .step.reached[data-step="1"] .art img{animation:jn-screenOn 1.3s ease-out both}
#journey .step.reached[data-step="2"] .art img{animation:jn-fan 1.2s cubic-bezier(.2,.8,.2,1) both}
#journey .step.reached[data-step="3"] .art img{animation:jn-rise 1.2s cubic-bezier(.2,.8,.2,1) both}
#journey .step.reached[data-step="4"] .art img{animation:jn-tilt 1.3s cubic-bezier(.2,.8,.2,1) both}
#journey .step.reached[data-step="5"] .art img{animation:jn-turn 1.3s cubic-bezier(.3,1.3,.5,1) both;transform-origin:22% 55%}
#journey .step.reached[data-step="6"] .art img{animation:jn-glide 1.6s cubic-bezier(.2,.8,.2,1) both}
#journey .step.reached[data-step="7"] .art img{animation:jn-slide 1.2s cubic-bezier(.2,.8,.2,1) both}
@keyframes jn-screenOn{0%{filter:brightness(.55) saturate(0);transform:scale(.96)}55%{filter:brightness(1.1) saturate(1.2)}100%{filter:none;transform:none}}
@keyframes jn-fan{0%{transform:rotate(-10deg) translateY(30px) scale(.94);opacity:0}100%{transform:none;opacity:1}}
@keyframes jn-rise{0%{transform:translateY(46px) scale(.95);opacity:0}100%{transform:none;opacity:1}}
@keyframes jn-tilt{0%{transform:perspective(900px) rotateY(-38deg) rotateX(8deg);opacity:0}100%{transform:perspective(900px);opacity:1}}
@keyframes jn-turn{0%{transform:rotate(-16deg);opacity:0}60%{transform:rotate(3deg);opacity:1}100%{transform:none}}
@keyframes jn-glide{0%{transform:translate(-180px,70px) rotate(-9deg) scale(.9);opacity:0}100%{transform:none;opacity:1}}
@keyframes jn-slide{0%{transform:translateY(70px);opacity:0}100%{transform:none;opacity:1}}
body.jn-arrived #journey .close .jn-pill{animation:jn-cta 1.8s ease-in-out infinite}
@keyframes jn-cta{0%,100%{box-shadow:0 0 0 0 rgba(0,113,227,.35)}50%{box-shadow:0 0 0 12px rgba(0,113,227,0)}}

@media (max-width:734px){
  #journey .jn-pill-lg{font-size:17px;padding:14px 26px}
  #journey .tick{width:20px;height:20px;right:-6px;top:-6px;box-shadow:0 0 0 2px #fff}
  #journey .tick svg{width:12px!important;height:12px!important}
}
@media (prefers-reduced-motion:reduce){
  #journey *,#journey *::before,#journey *::after{animation:none!important;transition:none!important}
  #journey .step.complete .tick{transform:none;opacity:1}
}

/* clear the fixed site header: body padding so the sticky subnav sits just under it */
body.bf7-journey{padding-top:72px}
@media (max-width:720px){
  body.bf7-journey{padding-top:64px}
}
