/* A centered typographic composition, framed around a quiet geometric window. */
.footer-wordmark{font-family:Georgia,'Times New Roman',serif}
.hero--centered{--window-size:clamp(350px,35vw,510px);--window-top:205px;--frame-top:88px;--intro-inset:calc(var(--window-size)*.46);--intro-ease:cubic-bezier(.22,1,.36,1);height:960px;min-height:900px;max-height:none;background:#fbfcff;isolation:isolate}
.hero--centered .hero-frame{position:absolute;inset:88px 0 0;z-index:0;pointer-events:none}
.hero-frame i{position:absolute;background:#dfe5ed}
.hero-frame i:nth-child(1),.hero-frame i:nth-child(2){width:1px;top:0;bottom:0;left:calc(50% - var(--window-size)/2)}
.hero-frame i:nth-child(2){left:calc(50% + var(--window-size)/2)}
.hero-frame i:nth-child(3),.hero-frame i:nth-child(4){height:1px;left:0;right:0;top:calc(var(--window-top) - 88px)}
.hero-frame i:nth-child(4){top:calc(var(--window-top) + var(--window-size) - 88px)}
.hero-window{position:absolute;z-index:0;left:calc(50% - var(--window-size)/2);top:var(--window-top);width:var(--window-size);height:var(--window-size);background:#e3edff;overflow:hidden;transform-origin:center;animation:hero-window-expand 1000ms var(--intro-ease) 50ms both}
.window-shapes{position:absolute;inset:0}
.window-shapes i{display:block;width:100%;height:100%;animation:float 13s ease-in-out infinite}
.window-circle{width:57%;aspect-ratio:1;left:-16%;bottom:-9%}.window-circle i{border-radius:50%;background:#b5d1ff;animation-duration:17s}
.window-block{width:35%;aspect-ratio:1;right:10%;bottom:8%}.window-block i{background:#497bf0;rotate:-16deg;animation-delay:-4s}
.window-pillar{width:13%;height:43%;left:32%;bottom:-20%}.window-pillar i{background:#81aafb;rotate:27deg;animation-delay:-7s}
.window-ring{width:24%;aspect-ratio:1;right:-6%;top:7%}.window-ring i{border:20px solid #c2d9ff;border-radius:50%;animation-duration:15s;animation-delay:-3s}
.hero--centered .hero-content{width:100%;padding:0;position:relative;text-align:center;z-index:2;height:100%}
.hero--centered .hero-content>.eyebrow{position:absolute;top:145px;width:100%;padding:0 20px;margin:0;font-size:12px;letter-spacing:.14em;color:#546378}
.hero--centered h1{position:absolute;top:calc(var(--window-top) + var(--window-size)*.23);left:0;width:100%;padding:0 3%;margin:0;font-family:Georgia,'Times New Roman',serif;font-size:clamp(76px,9.4vw,155px);font-weight:400;letter-spacing:-.065em;line-height:1.16;white-space:nowrap;color:#17202b}
.hero--centered .headline-line{display:inline-block;vertical-align:top;overflow:hidden;padding-bottom:.17em;margin-bottom:-.17em}
.hero--centered .headline-line>span{animation:hero-copy-in 700ms var(--intro-ease) 1050ms both}
.hero--centered .headline-line:nth-child(2)>span{animation-delay:1150ms}
.hero--centered .hero-intro{position:absolute;top:calc(var(--window-top) + var(--window-size) + 35px);width:100%;padding:0 24px}
.hero--centered .hero-description{font-size:17px;line-height:1.7;margin:0 0 23px;color:#526176}
.hero-discover{display:inline-flex;gap:23px;align-items:center;pointer-events:auto;font-size:13px;border-bottom:1px solid #b6c3d4;padding:0 0 9px;transition:color .2s,border-color .2s}
.hero-discover:hover{color:var(--blue);border-color:var(--blue)}.hero-discover span{font-size:18px}
.hero--centered .hero-bottom{height:64px;border-top:0;left:5%;right:5%;font-size:10px;letter-spacing:.11em}
.hero--centered .hero-bottom>span{display:block;font-size:10px;letter-spacing:.11em;color:#728097}
.about-copy{max-width:425px}.about-bottom .about-copy p{max-width:none;margin:0}.about-bottom .about-copy p+p{margin-top:24px}
.motion-paused .hero-window,.motion-paused .window-shapes{animation:none!important;transform:none;opacity:1}
/* The frame edges travel with the expanding window, using transforms only. */
.hero-frame i{animation-duration:1000ms;animation-timing-function:var(--intro-ease);animation-delay:50ms;animation-fill-mode:both}
.hero-frame i:nth-child(1),.hero-frame i:nth-child(2){transform-origin:50% calc(var(--window-top) + var(--window-size)/2 - var(--frame-top))}
.hero-frame i:nth-child(1){animation-name:hero-line-left}
.hero-frame i:nth-child(2){animation-name:hero-line-right}
.hero-frame i:nth-child(3){animation-name:hero-line-top}
.hero-frame i:nth-child(4){animation-name:hero-line-bottom}
.hero--centered .hero-content>.eyebrow{animation:hero-copy-in 600ms var(--intro-ease) 1050ms both}
.hero--centered .hero-intro{animation:none}
.hero--centered .hero-description{animation:hero-copy-in 650ms var(--intro-ease) 1270ms both}
.hero--centered .hero-discover{animation:hero-copy-in 650ms var(--intro-ease) 1370ms both}
.hero--centered .hero-bottom{animation:hero-copy-in 600ms var(--intro-ease) 1400ms both}
.hero-intro-complete .hero-window,.hero-intro-complete .hero-frame i,.hero-intro-complete .hero-content>.eyebrow,.hero-intro-complete .headline-line>span,.hero-intro-complete .hero-description,.hero-intro-complete .hero-discover,.hero-intro-complete .hero-bottom{animation:none;opacity:1;transform:none}
.motion-paused .hero-frame i,.motion-paused .hero-description,.motion-paused .hero-discover,.motion-paused .hero-bottom{animation:none!important;opacity:1;transform:none}
@keyframes hero-window-expand{from{transform:scale(.08);opacity:.25}to{transform:scale(1);opacity:1}}
@keyframes hero-line-left{from{transform:translateX(var(--intro-inset)) scaleY(.08);opacity:.2}to{transform:translateX(0) scaleY(1);opacity:1}}
@keyframes hero-line-right{from{transform:translateX(calc(-1*var(--intro-inset))) scaleY(.08);opacity:.2}to{transform:translateX(0) scaleY(1);opacity:1}}
@keyframes hero-line-top{from{transform:translateY(var(--intro-inset)) scaleX(.08);opacity:.2}to{transform:translateY(0) scaleX(1);opacity:1}}
@keyframes hero-line-bottom{from{transform:translateY(calc(-1*var(--intro-inset))) scaleX(.08);opacity:.2}to{transform:translateY(0) scaleX(1);opacity:1}}
@keyframes hero-copy-in{from{transform:translate3d(0,18px,0);opacity:0}to{transform:translate3d(0,0,0);opacity:1}}
@media(max-width:640px){.hero--centered{--frame-top:76px}}
@media(min-width:1600px){.hero--centered{height:1030px;--window-top:225px}.hero--centered .hero-content>.eyebrow{top:164px}}
@media(max-width:1000px){.hero--centered{--window-size:420px;--window-top:190px;height:900px;min-height:900px}.hero--centered .hero-content>.eyebrow{top:137px;font-size:11px}.hero--centered h1{font-size:9.4vw}.hero--centered .hero-intro{top:650px}}
@media(max-width:640px){.hero--centered{--window-size:min(76vw,350px);--window-top:200px;height:815px;min-height:815px}.hero--centered .hero-frame{top:76px}.hero-frame i:nth-child(3){top:calc(var(--window-top) - 76px)}.hero-frame i:nth-child(4){top:calc(var(--window-top) + var(--window-size) - 76px)}.hero--centered .hero-content>.eyebrow{top:142px;font-size:9px;letter-spacing:.115em}.hero--centered h1{top:calc(var(--window-top) + 20px);padding:0 4%;font-size:clamp(49px,12.5vw,79px);white-space:normal;line-height:1.04;letter-spacing:-.07em}.hero--centered .headline-line{display:block}.hero--centered .headline-line:first-child{font-size:1.18em;margin-bottom:.025em}.hero--centered .hero-intro{top:calc(var(--window-top) + var(--window-size) + 33px);padding:0 22px}.hero--centered .hero-description{font-size:15px;line-height:1.75;max-width:330px;margin:0 auto 23px}.hero-discover{font-size:12px}.hero--centered .hero-bottom{left:7%;right:7%;height:53px;gap:22px}.hero--centered .hero-bottom>span{font-size:8px;letter-spacing:.09em}.hero--centered .hero-bottom>span:last-child{text-align:right}.window-ring i{border-width:12px}.window-block{width:30%;bottom:7%}.window-circle{width:53%}}
@media(prefers-reduced-motion:reduce){.hero-window,.window-shapes{animation:none!important;transform:none;opacity:1}}
