/* The only owner of the intro and role transitions. */
html.intro-pending{background:#f8f7f4;overflow:hidden;overscroll-behavior:none}
html.intro-pending body{visibility:hidden;overflow:hidden}
html.intro-pending body.intro-playing{visibility:visible}
body.intro-playing .masthead{background:transparent}
/* Paint the dark page before the white curtain starts revealing the headline. */
body.intro-playing.intro-panel-out{background:var(--site-background,#050506)}
#intro-overlay{position:fixed;inset:0;z-index:150;display:grid;place-items:center;pointer-events:none;background:#f8f7f4;transform:translateY(0)}
#intro-overlay[hidden]{display:none!important}
.loader-name{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.18em;visibility:hidden;pointer-events:none;font:500 var(--surhay-name-size)/1.12 var(--landing-font),Arial,Helvetica,sans-serif;letter-spacing:-.045em;text-align:center;white-space:nowrap;transform:scale(1);transform-origin:center}
.landing .landing-center{z-index:1}
body.intro-playing .loader-name{visibility:visible;color:#171717}
.name-line{display:flex;align-items:baseline;overflow:hidden;padding:.12em .08em;margin:-.12em -.08em;white-space:nowrap;line-height:1.12}
.loader-initial,.loader-letter,.loader-stop{display:inline-block}
.loader-tail{display:block;flex:0 0 auto;width:0;overflow:hidden}
/* The measured tail includes ink room for tightly tracked end letters such as Y. */
.loader-tail-content{display:inline-flex;width:max-content;padding-inline-end:.08em;white-space:nowrap;line-height:inherit}
.loader-progress{position:absolute;left:50%;bottom:clamp(40px,8svh,88px);transform:translateX(-50%);visibility:hidden;opacity:0;font:500 clamp(24px,5.5vw,80px)/1 var(--landing-font),Arial,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.045em;color:#171717;text-align:center;min-width:4ch}
body.intro-playing .loader-initial,body.intro-playing .loader-letter,body.intro-playing .loader-stop{transform:translateY(125%)}
body.intro-playing .loader-stop{opacity:0}
body.intro-initials-in .loader-initial{animation:loader-letter-in 620ms cubic-bezier(.16,1,.3,1) both;animation-delay:var(--initial-delay)}
body.intro-initials-in .loader-stop{opacity:1;animation:loader-letter-in 620ms cubic-bezier(.16,1,.3,1) 140ms both}
body.intro-initials-in .loader-progress{visibility:visible;opacity:1}
body.intro-name-expand .loader-tail{animation:loader-tail-expand 720ms cubic-bezier(.7,0,.25,1) both}
body.intro-name-expand .loader-letter{animation:loader-letter-in 680ms cubic-bezier(.16,1,.3,1) both;animation-delay:var(--letter-delay)}
body.intro-name-emphasis .loader-name{animation:loader-name-emphasis 440ms cubic-bezier(.7,0,.25,1) both}
body.intro-name-emphasis .loader-stop{animation:loader-letter-out 220ms cubic-bezier(.7,0,.84,0) both}
body.intro-name-out .loader-initial,body.intro-name-out .loader-letter{animation:loader-letter-out 360ms cubic-bezier(.7,0,.84,0) both;animation-delay:calc(var(--letter-delay,0ms)*.35)}
body.intro-name-out .loader-progress{animation:loader-progress-out 300ms ease both}
body.intro-panel-out #intro-overlay{animation:loader-panel-out 1050ms cubic-bezier(.76,0,.24,1) both}
@keyframes loader-tail-expand{from{width:0}to{width:var(--tail-width)}}
@keyframes loader-name-emphasis{from{transform:scale(1)}to{transform:scale(1.4)}}
@keyframes loader-panel-out{from{transform:translateY(0)}to{transform:translateY(-100%)}}
@keyframes loader-letter-in{from{transform:translateY(125%)}to{transform:translateY(0)}}
@keyframes loader-letter-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-125%)}}
@keyframes loader-progress-out{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,-50%)}}
.hero-role{grid-area:headline;display:flex;flex-direction:column;align-items:center;font:500 var(--hero-type-size)/var(--hero-line-height,.9) var(--landing-font),Arial,Helvetica,sans-serif;letter-spacing:-.035em;gap:0}
.title-line{display:block;overflow:hidden;padding:.12em .1em;margin:-.12em -.1em;white-space:nowrap}
.title-line>span{display:block}
.title-letter{display:inline-block}
.blurb-line{display:block;overflow:hidden}
.blurb-line-inner{display:block}
html.intro-pending .hero-role{visibility:hidden}
html.intro-pending body.intro-title-in .hero-role{visibility:visible}
body.intro-playing .title-letter,body.intro-playing .blurb-line-inner{transform:translateY(125%)}
body.intro-title-in .title-letter{animation:vertical-roll-in 680ms cubic-bezier(.16,1,.3,1) both;animation-delay:var(--title-delay)}
body.intro-blurb-in .blurb-line-inner{animation:vertical-roll-in 600ms cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--line-index,0)*55ms)}
@keyframes vertical-roll-in{from{transform:translateY(125%)}to{transform:translateY(0)}}
@keyframes ui-roll-down{from{transform:translateY(-125%)}to{transform:translateY(0)}}
/* Explicit visibility gates keep all chrome hidden through name and title stages. */
html.intro-pending .masthead{visibility:hidden}
html.intro-pending body.intro-header-in .masthead{visibility:visible}
html.intro-pending #landing #landing-scroll-cue{visibility:hidden;opacity:0}
html.intro-pending .masthead .local-time,html.intro-pending .masthead .header-links,html.intro-pending #landing .intro-meta,html.intro-pending #landing .landing-blurb,html.intro-pending #landing .landing-location,html.intro-pending #landing .role-labels-roll,html.intro-pending #landing #portal-invite{visibility:hidden;opacity:0}
html.intro-pending .masthead .ui-roll-inner,html.intro-pending #landing .intro-meta .ui-roll-inner{transform:translateY(-125%)}
html.intro-pending #landing .landing-footer .ui-roll-inner,html.intro-pending #landing #portal-invite{transform:translateY(125%)}
html.intro-pending body.intro-status-in #landing .intro-meta,html.intro-pending body.intro-header-in .masthead .local-time,html.intro-pending body.intro-header-in .masthead .header-links,html.intro-pending body.intro-blurb-in #landing .landing-blurb,html.intro-pending body.intro-footer-in #landing .landing-location,html.intro-pending body.intro-footer-in #landing .role-labels-roll,html.intro-pending body.intro-portal-in #landing #portal-invite{visibility:visible;opacity:1}
body.intro-header-in .masthead .ui-roll-inner,body.intro-status-in #landing .intro-meta .ui-roll-inner{animation:ui-roll-down 760ms cubic-bezier(.16,1,.3,1) both}
body.intro-header-in .masthead .header-links .ui-roll-inner{animation-delay:100ms}
body.intro-status-in #landing .intro-meta .ui-roll-inner{animation-delay:150ms}
body.intro-footer-in #landing .landing-footer .ui-roll-inner{animation:vertical-roll-in 760ms cubic-bezier(.16,1,.3,1) both}
body.intro-footer-in #landing .role-labels-roll .ui-roll-inner{animation-delay:120ms}
body.intro-portal-in #landing #portal-invite{animation:vertical-roll-in 550ms cubic-bezier(.16,1,.3,1) both}
html.intro-pending #particle-field,html.intro-pending .ambient-field{visibility:hidden;opacity:0;transition:opacity 900ms ease}
html.intro-pending body.intro-sky-in #particle-field{visibility:visible;opacity:.94}
html.intro-pending body.intro-sky-in .ambient-field{visibility:visible;opacity:1}
body.motion-paused .loader-initial,body.motion-paused .loader-letter,body.motion-paused .loader-stop,body.motion-paused .loader-tail,body.motion-paused .loader-name,body.motion-paused .loader-progress,body.motion-paused .title-letter,body.motion-paused .blurb-line-inner,body.motion-paused .ui-roll-inner,body.motion-paused #portal-invite,body.motion-paused #intro-overlay{animation-play-state:paused!important}
#rotating-role-a,#rotating-role-b{display:inline-block;white-space:nowrap;vertical-align:baseline;opacity:1;transform:translateY(0);transition:opacity 200ms ease,transform 240ms cubic-bezier(.22,.61,.36,1);will-change:opacity,transform}
#rotating-role-a.ui-role-out,#rotating-role-b.ui-role-out{opacity:0;transform:translateY(-7px)}
#rotating-role-a.ui-role-prepare,#rotating-role-b.ui-role-prepare{opacity:0;transform:translateY(7px);transition:none}
@media(prefers-reduced-motion:reduce){#intro-overlay,.loader-initial,.loader-letter,.loader-stop,.loader-tail,.loader-name,.loader-progress,.title-letter,.blurb-line-inner,.ui-roll-inner,#portal-invite,#rotating-role-a,#rotating-role-b{animation:none!important;transition:none!important}#rotating-role-a,#rotating-role-b{will-change:auto}}
