/* Authored v77 cinema and character cascade. Original values and breakpoint order. */

/* home-base */
.steps{ position: relative; display: grid; gap: 28px; counter-reset: step; }
.step{ position: relative; display: grid; align-content: start; gap: 8px; padding-top: 26px; }
.step::before{ content: ""; position: absolute; left: 0; top: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--c-faint); box-shadow: 0 0 0 4px var(--c-bg); z-index: 1; transition: background-color 400ms ease; }
.steps.is-drawn .step::before{ background: var(--c-accent); }
.step__name{ display: flex; align-items: baseline; gap: 12px; font-size: 1.35rem; letter-spacing: -0.03em; font-weight: 540; font-variation-settings: "wdth" 94; }
.step__name .serif-num{ font-size: 0.85rem; color: var(--c-faint); }
.step__line{ color: var(--c-soft); font-size: 1rem; max-width: 28ch; }
.steps__line{ position: absolute; left: 4px; top: 4px; bottom: 0; width: 1px; background: var(--c-line); overflow: hidden; }
.steps__line i{ position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: var(--c-accent); transform: scaleY(0); transform-origin: top; transition: transform 1400ms var(--ease-io); }
.steps.is-drawn .steps__line i{ transform: scaleY(1); }
@media (min-width: 900px){.steps{ grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: var(--sp-6); }
.steps__line{ left: 4px; right: 4px; top: 4px; bottom: auto; width: auto; height: 1px; }
.steps__line i{ transform: scaleX(0); transform-origin: left; }
.steps.is-drawn .steps__line i{ transform: scaleX(1); }
.steps.is-drawn .step:nth-child(2)::before{ transition-delay: 280ms; }
.steps.is-drawn .step:nth-child(3)::before{ transition-delay: 560ms; }
.steps.is-drawn .step:nth-child(4)::before{ transition-delay: 840ms; }
.steps.is-drawn .step:nth-child(5)::before{ transition-delay: 1120ms; }}
@media (min-width: 640px) and (max-width: 899px){.steps{ grid-template-columns: 1fr 1fr; column-gap: var(--sp-7); }
.steps__line{ display: none; }}
@media (max-width: 899px){.step{ padding-left: 28px; }}
.steps__list{ display: contents; }


/* editorial-type */
.step__name{ font-family: var(--serif); font-weight: 500; font-variation-settings: 'opsz' 48; font-size: clamp(1.5rem,2.3vw,2.2rem); letter-spacing: -.025em; line-height: 1.15; flex-wrap: wrap; }
.step__name .serif-num{ font-family: var(--sans); font-size: .75rem; letter-spacing: .12em; }
.step__line{ line-height: 1.55; }
/* hero-reference */


/* refinement */
.step__name{
 font-family:var(--display); font-variation-settings:normal; font-weight:700; letter-spacing:-.055em; line-height:.97;
}

/* motion */

.jude-character{ position:relative; aspect-ratio:1; isolation:isolate; }
.jude-character canvas{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.jude-character__hello,.jude-character__question{ position:absolute; z-index:2; pointer-events:none; opacity:0; transition:opacity 240ms ease,transform 400ms ease; }
.jude-character__hello{ left:8%; top:17%; border-radius:9px 9px 0 9px; padding:6px 10px; background:#e1ff59; color:#17200d; font:700 12px var(--sans); transform:translateY(4px); }
.jude-character[data-state="greeting"] .jude-character__hello{ opacity:1; transform:none; }
.jude-character__question{ left:9%; top:24%; font:500 32px var(--display); color:#ebe6d7; transform:translateY(5px) rotate(-12deg); }
.jude-character[data-state="thinking"] .jude-character__question{ opacity:1; transform:translateY(0) rotate(-6deg); }
.jude-character--mini{ width:118px; height:118px; flex:none; margin-bottom:-13px; margin-left:-23px; }
.jude-character--mini .jude-character__hello{ left:72%; top:17%; }
.jude-character--mini .jude-character__question{ font-size:19px; left:8%; }

@media(prefers-reduced-motion:reduce){.jude-character__hello,.jude-character__question{ transition:none; }}
/* scenes */
.process-space{ background:#080a0b; padding:0; position:relative; }
.process-space__stage{ position:relative; overflow:clip; isolation:isolate; }
.process-space__stars{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:-2; }
.process-space:not(.is-space) .process-space__stars{ max-height:130svh; mask-image:linear-gradient(#000 72%,transparent); }
.process-space__stage{ background:radial-gradient(ellipse at 75% 35%,#25302755,transparent 65%); }
.process-space__skip{ position:absolute; right:var(--gutter); bottom:26px; z-index:4; background:#0a0e12b3; color:#dce5d2; border:1px solid #d2e2b933; border-radius:40px; min-height:44px; padding:10px 18px; font:500 12px/1.3 var(--sans); cursor:pointer; }
.process-space__skip span{ margin-left:18px; color:var(--c-accent); }
.process-space__skip[hidden]{ display:none; }
.process-space__skip:focus-visible{ outline:2px solid var(--c-accent); outline-offset:5px; }
.is-space .process-space__head,.is-space .steps,.is-space .process-space__route,.is-space .process-space__footer{ transition:opacity 650ms cubic-bezier(.2,.8,.2,1),translate 850ms cubic-bezier(.2,.8,.2,1); }
.is-space.is-entering .process-space__head,.is-space.is-entering .steps,.is-space.is-entering .process-space__route,.is-space.is-entering .process-space__footer{ opacity:0; translate:0 20px; transition:none; pointer-events:none; }
.is-space:not(.is-entering) .steps{ transition-delay:100ms; }
.is-space:not(.is-entering) .process-space__route{ transition-delay:180ms; }
.is-space:not(.is-entering) .process-space__footer{ transition-delay:240ms; }
.process-space__layout{ position:relative; padding-block:84px 38px; }
.process-space__head{ max-width:500px; margin-bottom:40px; }
.process-space__head .h2{ font-size:clamp(34px,4.4vw,64px); line-height:1.08; }
.process-space__astronaut{ position:relative; width:210px; margin:-20px 0 12px auto; }
.jude-character--astronaut{ width:100%; }
.jude-character--astronaut .jude-character__hello{ left:4%; top:27%; transform:rotate(-8deg); }
.process-space .steps{ display:block; }
.process-space .steps__list{ display:grid; grid-template-columns:1fr; gap:38px; }
.process-space .step{ padding:0; gap:12px; }
.process-space .step::before{ display:none; }
.step__coordinates{ display:flex; align-items:center; gap:18px; font:500 11px/1.4 var(--sans); letter-spacing:.14em; color:#b0bc9e; }
.step__coordinates i{ width:40px; height:1px; background:#dfff4866; }
.process-space .step__name{ display:block; margin:0; font:650 clamp(44px,7.8vw,118px)/1.04 var(--display); letter-spacing:-.055em; color:#edf0e6; padding:0 .06em .08em 0; }
.process-space .step__line{ font-size:clamp(15px,1.35vw,18px); line-height:1.7; max-width:36ch; color:#b5bcac; }
.process-space__route{ display:none; }
.process-space__footer{ display:flex; justify-content:space-between; align-items:center; gap:18px; margin-top:38px; padding-top:18px; border-top:1px solid #b8ca9329; }
.process-space__hint{ font-size:11px; letter-spacing:.08em; color:#9ca68e; }
.process-space__footer .link{ font-size:13px; }
.process-space:not(.is-space) .process-space__hint{ visibility:hidden; }
.process-space__gate{ display:none; position:absolute; inset:0; z-index:2; pointer-events:none; transform-origin:50% 49%; }
.process-gate{ display:block; width:100%; height:100%; overflow:visible; }
.process-gate__layer{ position:absolute; inset:0; }
.process-gate__lock{ transform-origin:center; }
.is-entering .process-space__gate,.is-entering .process-gate__door,.is-entering .process-gate__lock{ will-change:transform,opacity; }
.js .process-space:not([data-scene="settled"]) .process-space__gate{ display:block; }
.js .process-space:not([data-scene="settled"]) .process-space__layout{ opacity:0; visibility:hidden; pointer-events:none; transition:none!important; }
.js .process-space[data-scene="armed"] .process-space__stage{ min-height:100svh; height:100svh; background:#070d0a; }
.js .process-space[data-scene="armed"] .process-space__stars{ visibility:hidden; }
.process-space.is-entering,.process-requested .process-space{ z-index:140; }
.process-space.is-entering .process-space__stage,.process-requested .process-space[data-scene="armed"] .process-space__stage{ position:fixed; inset:0; width:100%; height:100svh; min-height:0; z-index:140; background:#050908; }
.process-space.is-entering .process-space__stars{ height:100%; max-height:none; mask-image:none; }
.process-space__skip{ padding:0; width:44px; height:44px; min-height:44px; background:#0a0e125c; opacity:.5; }
.process-space__skip:hover,.process-space__skip:focus-visible{ opacity:1; }
.process-space__skip svg{ width:18px; height:18px; margin:auto; fill:none; stroke:currentColor; stroke-width:1.4; }
.process-space[data-scene="settled"] .process-space__layout{ animation:processArrival 700ms cubic-bezier(.2,.8,.2,1) both; }
@keyframes processArrival{ from { opacity:0; translate:0 12px; } to { opacity:1; translate:0 0; } }
@media(min-width:900px){.process-space.is-space{ height:380svh; }
.js .process-space[data-scene="armed"]{ height:380svh; }
.is-space .process-space__stage{ position:sticky; top:0; height:100svh; }
.is-space .process-space__layout{ height:100%; padding-block:calc(var(--nav-h) + 36px) 26px; }
.is-space .process-space__head{ max-width:560px; margin:0; }
.is-space .process-space__head .h2{ font-size:clamp(30px,3.4vw,49px); max-width:16ch; }
.is-space .steps{ position:absolute; inset:38% 0 155px; perspective:1000px; perspective-origin:32% 50%; }
.is-space .steps__list{ display:block; position:relative; height:100%; transform-style:preserve-3d; }
.is-space .step{ position:absolute; left:0; top:50%; width:58%; transform-origin:28% 50%; will-change:transform,opacity; backface-visibility:hidden; }
.is-space .step__line{ transition:opacity 160ms ease; }
.is-space .step:not(.is-current) .step__line{ opacity:0; }
.is-space .process-space__astronaut{ position:absolute; top:23%; right:-1%; width:clamp(270px,30vw,430px); margin:0; will-change:transform,opacity; }
.is-space .process-space__route{ display:grid; position:absolute; left:0; right:0; bottom:96px; grid-template-columns:repeat(5,1fr); border-bottom:1px solid #b8ca9333; }
.process-space__route a{ padding:16px 12px 18px 0; display:flex; gap:12px; align-items:baseline; font-size:13px; color:#98a68a; border-bottom:2px solid transparent; min-height:48px; }
.process-space__route a span{ font-size:10px; }
.process-space__route a[aria-current="step"]{ color:#e4ff7a; border-color:#dfff48; }
.process-space__route a:hover{ color:#f0f4e9; }
.is-space .process-space__footer{ position:absolute; left:0; right:0; bottom:26px; width:100%; border:0; margin:0; padding:0; }}
@media(min-width:600px) and (max-width:899px){.process-space .steps__list{ grid-template-columns:1fr 1fr; gap:50px 35px; }
.process-space__astronaut{ width:240px; }}
@media(max-width:599px){.process-space__layout{ padding-top:72px; }
.process-space__head{ max-width:75%; margin-bottom:0; }
.process-space__astronaut{ width:185px; margin-top:0; margin-right:-20px; margin-bottom:-14px; }
.process-space .steps__list{ gap:42px; }
.process-space .step{ padding-bottom:26px; border-bottom:1px solid #a6bc801c; }
.process-space .step__name{ font-size:54px; }
.process-space__stars{ height:100svh; max-height:1170px; mask-image:linear-gradient(#000 72%,transparent); }}
@media(prefers-reduced-motion:reduce){.process-space .step,.process-space__astronaut{ transform:none!important; opacity:1!important; will-change:auto!important; }
.process-space__head,.process-space .steps,.process-space__route,.process-space__footer{ transition:none!important; translate:none!important; }
.process-space__gate{ display:none!important; }
.js .process-space .process-space__layout{ opacity:1!important; visibility:visible!important; animation:none!important; }
.js .process-space[data-scene="armed"]{ height:auto; }
.js .process-space[data-scene="armed"] .process-space__stage{ height:auto; min-height:0; }}
/* mobile */
@media (max-width:899px){.jude-character--mini{ width:102px; height:102px; }
.process-space{ padding:0; }
.process-space.is-entering .process-space__stage,.process-requested .process-space[data-scene="armed"] .process-space__stage{ height:100dvh; min-height:0; }
.process-space.is-space .process-space__stars{ height:100%; max-height:none; mask-image:none; }
.is-space .process-space__layout{ width:calc(100% - var(--gutter)*2); height:100%; padding:calc(var(--nav-h) + 22px) 0 max(20px,env(safe-area-inset-bottom)); }
.is-space .process-space__head{ max-width:62%; margin:0; }
.is-space .process-space__head .eyebrow{ margin-bottom:12px; }
.is-space .process-space__head .h2{ font-size:28px; max-width:16ch; line-height:1.06; }
.is-space .process-space__head .h2 .em{ display:block; }
.is-space .process-space__astronaut{ position:absolute; top:24%; right:-6%; width:clamp(155px,49vw,240px); margin:0; will-change:transform,opacity; }
.is-space .steps{ position:absolute; inset:48% 0 158px; perspective:700px; perspective-origin:40% 50%; }
.is-space .steps__list{ position:relative; display:block; height:100%; transform-style:preserve-3d; }
.is-space .step{ position:absolute; left:0; top:50%; width:100%; padding:0; border:0; transform-origin:25% 50%; will-change:transform,opacity; backface-visibility:hidden; gap:8px; }
.is-space .step__name{ font-size:clamp(46px,14vw,65px); line-height:1.04; padding-bottom:6px; }
.is-space .step__line{ font-size:14px; line-height:1.65; max-width:31ch; }
.is-space .step:not(.is-current) .step__line{ opacity:0; }
.step__coordinates{ font-size:9px; gap:12px; }
.is-space .process-space__route{ display:grid; position:absolute; left:0; right:0; bottom:max(88px,calc(env(safe-area-inset-bottom) + 72px)); grid-template-columns:repeat(5,1fr); border-bottom:1px solid #b8ca9333; }
.process-space__route a{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:52px; font-size:10px; line-height:1.2; color:#b0bc9e; border-bottom:2px solid transparent; }
.process-space__route a span{ font-size:9px; opacity:.7; }
.process-space__route a[aria-current="step"]{ color:#e4ff7a; border-bottom-color:#dfff48; }
.is-space .process-space__footer{ position:absolute; left:0; right:0; bottom:max(22px,env(safe-area-inset-bottom)); margin:0; padding:0; border:0; }
.process-space__hint{ font-size:9px; letter-spacing:0; }
.process-space__footer .link{ font-size:11px; }
.process-space__skip{ bottom:max(22px,env(safe-area-inset-bottom)); right:var(--gutter); }}
@media (max-width:359px){.process-space__route a{ font-size:9px; }}
@media (min-width:600px) and (max-width:899px){.is-space .steps{ inset:44% 0 150px; }}
@media (max-width:899px) and (max-height:620px){.is-space .process-space__head .h2{ font-size:23px; }
.is-space .process-space__layout{ padding-top:calc(var(--nav-h) + 12px); }
.is-space .process-space__astronaut{ top:22%; right:-3%; width:130px; }
.is-space .steps{ inset:45% 0 122px; }
.is-space .step__name{ font-size:43px; }
.is-space .step__line{ font-size:12px; }
.is-space .process-space__route{ bottom:66px; }
.is-space .process-space__footer{ bottom:14px; }}
@media (max-width:899px) and (prefers-reduced-motion:reduce){.process-space,.js .process-space[data-scene="armed"]{ height:auto; }
.process-space__layout{ padding-block:56px 32px; }
.process-space__head{ max-width:100%; }
.process-space__astronaut{ width:150px; margin:0 0 10px auto; }
.process-space .steps__list{ gap:24px; }
.process-space .step{ padding-bottom:20px; }
.process-space .step__name{ font-size:36px; }
.process-space .step__line{ font-size:14px; }}
/* parity */
.js .process-space.is-space{ padding:0; }
.js .process-space.is-space .process-space__stage{
 position:sticky; top:0; width:100%; height:100dvh; min-height:0;
 background:#050908; overflow:clip; isolation:isolate;
}
.js .process-space.is-space .process-space__stars{ height:100%; max-height:none; mask-image:none; visibility:visible; }
.js .process-space.is-space .process-space__layout{ height:100%; }
.js .process-space.is-space .process-space__gate{ display:block; }
.js .process-space.is-space .steps{ perspective:1000px; }
.js .process-space.is-space .step{ border:0; padding-bottom:0; }
.js .process-space.is-space[data-scene="entering"] .process-space__layout{ visibility:hidden; opacity:0; }
.js .process-space.is-space[data-scene="settled"] .process-space__layout{ visibility:visible; opacity:1; }
.process-space[data-scene="entering"] .process-space__gate,.process-space[data-scene="entering"] .process-gate__door,.process-space[data-scene="entering"] .process-gate__lock{ will-change:transform,opacity; }
@media(max-width:899px){.js .process-space.is-space .steps{ perspective-origin:32% 50%; }
.js .process-space.is-space .step{ transform-origin:28% 50%; }
.js .process-space.is-space .step__name{ font-size:clamp(42px,11vw,82px); }}
@media(min-width:900px) and (max-height:719px){.is-space .process-space__head .h2{ font-size:30px; }
.is-space .process-space__head .eyebrow{ margin-bottom:12px; }
.is-space .steps{ inset:36% 0 132px; }
.is-space .process-space__route{ bottom:70px; }
.is-space .process-space__footer{ bottom:16px; }
.is-space .process-space__astronaut{ top:20%; width:27vw; }
.is-space .step__name{ font-size:70px; }}
@media(min-width:600px) and (max-width:899px){.is-space .process-space__head .h2{ font-size:clamp(32px,4.6vw,42px); }
.is-space .process-space__astronaut{ width:32vw; right:1%; }
.is-space .step__line{ font-size:17px; }}
/* structure */
.process-dialog{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#050908;color:var(--c-text);overflow:hidden}
.process-dialog::backdrop{background:#050908}
.process-dialog .process-space,.process-dialog .process-space__stage{height:100dvh!important;min-height:0!important;position:relative!important;top:0}
.process-dialog__close{position:absolute;right:max(18px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));z-index:200;border:1px solid #d9e9b844;color:#d7e2cb;background:#090d0bc9;border-radius:30px;padding:12px 20px;font:500 12px var(--sans);cursor:pointer}
.process-dialog:not([open]){display:none}
@media(prefers-reduced-motion:reduce){.process-dialog{overflow:auto}
.process-dialog__close{position:fixed}
.process-dialog .process-space,.process-dialog .process-space__stage{height:auto!important;min-height:100dvh!important}
.process-dialog .process-space__gate,.process-dialog .process-space__stars{display:none!important}
.process-dialog .process-space__layout{opacity:1!important;visibility:visible!important}
.process-dialog .process-space__layout{padding-top:80px}}