html{scroll-behavior:auto}.orb{transition:transform .8s var(--ease)}.orb-surface{transition:transform .75s var(--ease)}.orb-label,.tooltip{transition:opacity .3s}.arrow{transition:transform .5s var(--ease)}a:hover>.arrow{transform:translate(3px,-3px)}.dock{transition:width .65s var(--ease),height .65s var(--ease),border-radius .65s var(--ease)}.dock-panel{animation:panel-arrives .45s var(--ease) both}@keyframes panel-arrives{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes opening-arrives{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.lightbox[open]{animation:panel-arrives .45s var(--ease)}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.orb{transform:none!important}}


.journey-step{opacity:0;translate:0 22px;transition:opacity .9s cubic-bezier(.22,1,.36,1),translate 1.1s cubic-bezier(.22,1,.36,1);transition-delay:var(--step-delay,0ms)}.journey-step.step-entered{opacity:1;translate:0 0}
@media(prefers-reduced-motion:reduce){.journey-step{opacity:1;translate:none;transition:none}}
@media print{.journey-step{opacity:1;translate:none}}

.letter > .journey-step{transition-delay:calc(var(--step-delay,0ms) + 140ms)}

.hero-staged .identity > *{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:var(--hero-delay,0ms)}
.hero-staged .orb-surface{opacity:0;transform:scale(.82) translateY(12px);transition:opacity .9s var(--ease),transform 1.15s var(--ease);transition-delay:var(--hero-delay,0ms)}
.hero-staged .orb-label{visibility:hidden}
.hero-entered .identity > *,.hero-entered .orb-surface{opacity:1;transform:none}.hero-entered .orb-label{visibility:visible}
@media(prefers-reduced-motion:reduce){.hero-staged .identity > *,.hero-staged .orb-surface{opacity:1;transform:none;transition:none}.hero-staged .orb-label{visibility:visible}}

/* Motion is autonomous on touch and pauses when the hero leaves the viewport. */
.hero-active.hero-entered .orb{animation:orb-drift 6.5s ease-in-out infinite;animation-delay:var(--drift-delay,0s);will-change:transform}
.orb-1{--drift-delay:-.4s}.orb-2{--drift-delay:-1.5s}.orb-3{--drift-delay:-2.6s}.orb-4{--drift-delay:-3.7s}.orb-5{--drift-delay:-4.8s}.orb-6{--drift-delay:-5.9s}
@keyframes orb-drift{0%,100%{transform:translate3d(var(--tx,0px),calc(var(--ty,0px) - 5px),0)}50%{transform:translate3d(calc(var(--tx,0px) + 3px),calc(var(--ty,0px) + 5px),0)}}
@media(prefers-reduced-motion:reduce){.hero-active .orb{animation:none!important;will-change:auto}}
