html,body{height:auto;min-height:100%;overflow:visible;background:var(--vi-site-background)}html{overflow-x:clip;overflow-y:auto;scrollbar-width:none}html::-webkit-scrollbar{display:none}body{font-family:var(--vi-font-ui)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:1px solid currentColor;outline-offset:7px}.journey-skip{position:fixed;z-index:30;left:24px;top:16px;padding:12px;background:var(--vi-surface);color:var(--vi-site-background);transform:translateY(-200%)}.journey-skip:focus{transform:none}#journey{--zoom-travel:1.4;--fields-scroll:.7;height:calc(100vh * (1 + var(--zoom-travel) + var(--fields-scroll)));height:calc(100dvh * (1 + var(--zoom-travel) + var(--fields-scroll)))}.journey-viewport{position:sticky;top:0;height:100vh;height:100dvh;overflow:clip}/* The Work frame stays full-screen; its scroll span gives the rise 30vh and the completed-text hold 30vh. */
.journey-track{position:relative;width:100%;height:100%;background:var(--vi-surface);isolation:isolate}
.journey-track>.homepage,.journey-track>.fields{position:absolute;inset:0;width:100%;height:100%}
.journey-track>.homepage{z-index:2}
.home-zoom-frame{position:absolute;inset:0;z-index:3;width:100%;height:100%;opacity:0;pointer-events:none}
#journey .fields.has-field-motion .field-line-inner{transform:translate3d(0,calc((1 - var(--line-progress,1))*115%),0);transition:none}
.journey-track>.fields{z-index:1;--fields-entry:0;--fields-offset:22px}
.journey-track>.fields>.fields-header{opacity:var(--fields-entry);transform:translate3d(0,var(--fields-offset),0)}
.journey-track>.fields>.field-grid{opacity:1;transform:none}
.journey-track>.fields .field-cover,.journey-track>.fields .field-title{opacity:var(--fields-entry);transform:translate3d(0,var(--fields-offset),0);transition:opacity 600ms ease-out,transform 600ms ease-out}
.journey-track .homepage>.languages,.journey-track .homepage>.enter-fields{opacity:var(--home-chrome-opacity,1)}
html[data-entry="fields"] .journey-track>.fields{--fields-entry:1;--fields-offset:0px}
.homepage h1{white-space:nowrap}.enter-fields{position:absolute;z-index:4;left:5%;bottom:5.5%;display:grid;grid-template-columns:auto 58px;column-gap:28px;row-gap:8px;font-size:10px;letter-spacing:.14em;color:var(--vi-inverse-secondary)}.enter-fields>span:nth-child(2){grid-column:1;font-size:11px;letter-spacing:.08em;color:var(--vi-inverse-muted)}.long-arrow{grid-column:2;grid-row:1/3;position:relative;align-self:center;width:56px;height:1px;background:var(--vi-inverse-secondary);transition:transform .3s}.long-arrow:after{content:'';position:absolute;right:0;top:-3px;width:7px;height:7px;border-right:1px solid var(--vi-inverse-secondary);border-top:1px solid var(--vi-inverse-secondary);transform:rotate(45deg)}.enter-fields:hover .long-arrow{transform:translateX(8px)}.home-page-number{position:absolute;right:5%;bottom:5.5%;color:var(--vi-inverse-muted);font-size:10px;letter-spacing:.12em}
.enter-fields{left:auto;right:5%;bottom:5.5%;display:block;transition:color .18s ease}.enter-fields:hover{color:var(--vi-surface)}
@media(max-width:760px){.enter-fields{left:auto;right:7%;bottom:7%}}
@media(prefers-reduced-motion:reduce){.journey-track>.homepage{will-change:auto}.journey-track>.fields>.fields-header,.journey-track>.fields>.field-grid{transform:none}*{transition:none!important}}

/* Deep links and returns show the completed prompt from their first paint. */
html[data-entry="fields"] .fields-prompt-char{transform:translate3d(0,0,0)!important;transition:none!important}
.fields.is-restoring .fields-prompt-char{transition:none!important}
/* Restore one completed frame, including titles and any departing hover.
   Normal 600ms scroll reveals and hover motion resume after restoration. */
.fields.is-restoring *{transition:none!important}
