@font-face{font-family:Switzer;src:url('./assets/fonts/switzer.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:Firs;src:url('./assets/fonts/tt-firs-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Firs;src:url('./assets/fonts/tt-firs-medium.ttf') format('truetype');font-weight:500;font-display:swap}
:root{--blue:#1755e5;--black:#0f0f0f;--line:#ccc;--unit:calc(100vw / 1440);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:56px}body{margin:0;background:white;color:var(--black);font-family:Firs,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0;background:none}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:6px}p,h1,h2,h3{margin:0}h1,h2,h3{font-family:Switzer,Arial,sans-serif;font-weight:400}img{display:block}button:disabled{cursor:default}.skip{position:fixed;left:20px;top:-100px;z-index:100;background:white;color:black;padding:12px}.skip:focus{top:12px}.screen{position:relative;height:max(650px,calc(800 * var(--unit)));overflow:hidden}.dark{background:var(--black);color:white;--line:rgba(255,255,255,.2)}
.site-header{position:fixed;inset:0 0 auto;z-index:30;height:56px;display:grid;grid-template-columns:36.80556% 52.08333% 11.11111%;color:white;transition:background .4s,color .4s;align-items:start}.brand{display:block;margin:20px 0 0 20px;width:calc(420 * var(--unit));height:calc(54 * var(--unit));overflow:visible;transition:width .6s var(--ease),height .6s var(--ease),margin .6s var(--ease)}.brand img{width:420px;height:54px;transform:scale(calc(100vw / 1440px));transform-origin:top left}.site-header nav{display:flex;justify-content:space-between;gap:0;align-items:center;height:56px;font-size:12px}.site-header nav>a,.site-header nav>button{width:16%;text-align:left;white-space:nowrap;padding:0;position:relative}.site-header nav>a:after,.site-header nav>button:after{content:'';position:absolute;left:0;bottom:-9px;width:4px;height:4px;background:currentColor;opacity:0;transform:translateX(-8px);transition:.3s}.site-header nav>a:hover:after,.site-header nav>a.active:after,.site-header nav>button:hover:after{opacity:1;transform:none}.action{display:flex;align-items:center;justify-content:center;background:var(--blue);color:white;min-height:56px;font-size:12px;font-weight:500;padding:16px 22px;transition:background .25s,color .25s}.action:hover{background:#063cbf}.header-action{padding:15px 4px;white-space:nowrap}.site-header.compact .brand{margin-top:19px;width:140px;height:18px}.site-header.compact .brand img{transform:scale(.333333)}.site-header.light{background:rgba(255,255,255,.96);color:#0f0f0f}.site-header.light .brand img{filter:invert(1)}.site-header.on-dark{background:#0f0f0fec}.site-header.on-dark .header-action{background:white;color:black}.menu-toggle{display:none}.mobile-menu{position:fixed;inset:56px 0 0;z-index:29;background:var(--blue);color:white;padding:50px 24px}.mobile-menu:not([hidden]){display:flex;flex-direction:column;gap:30px;font-family:Switzer;font-size:36px}.mobile-menu button{text-align:left;padding:0}.hero-photo,.hero-shade{position:absolute;inset:0;overflow:hidden}.hero-photo img{position:absolute;object-fit:cover}.hero-base{width:69.583%;height:156.625%;left:15.208%;top:-4.75%}.hero-main{width:99.767%;height:156.75%;left:.08%;top:-4.75%}.hero-shade{background:linear-gradient(90deg,#0008,transparent 60%)}.hero-panel{position:absolute;left:50%;top:0;width:38.8889%;height:73.625%;background:#0f0f0f;overflow:hidden}.hero-panel p{position:absolute;left:3.393%;top:19.694%;width:74.107%;font-family:Switzer;font-size:clamp(20px,1.80556vw,34px);line-height:1.25;z-index:2}.hero-panel p span{color:#ffffffa3}.hero-panel>img{position:absolute;left:19.46%;top:31.07%;width:110.357%;height:102.886%;object-fit:cover;mix-blend-mode:lighten}.hero h1{position:absolute;left:20px;top:57.375%;font-size:clamp(42px,3.6111vw,70px);line-height:1.05;letter-spacing:-.025em}.hero-rule{position:absolute;left:0;right:0;top:73.625%;height:1px;background:#ffffff60}.scroll-cue{position:absolute;bottom:24px;left:20px;display:flex;gap:40px;font-size:12px}.scroll-cue span{font-size:18px}.corners{--corner:currentColor;background-image:linear-gradient(var(--corner),var(--corner)),linear-gradient(var(--corner),var(--corner)),linear-gradient(var(--corner),var(--corner)),linear-gradient(var(--corner),var(--corner));background-size:5px 5px;background-position:0 0,100% 0,0 100%,100% 100%;background-repeat:no-repeat}.hero-panel{--corner:white}.hero-panel:after{content:'';position:absolute;inset:19.694% 0 0;pointer-events:none;background-image:linear-gradient(white,white),linear-gradient(white,white),linear-gradient(white,white),linear-gradient(white,white);background-size:5px 5px;background-repeat:no-repeat;background-position:0 0,100% 0,0 100%,100% 100%}.rails{position:absolute;inset:0;pointer-events:none}.rails i{position:absolute;top:0;bottom:0;border-left:1px solid var(--line);left:50%;transition:left 1s var(--ease)}.rails i+i{left:88.8889%}.thesis h2{position:relative;top:13%;left:20px;max-width:calc(980 * var(--unit));font-size:clamp(64px,6.4583vw,130px);line-height:.87;letter-spacing:-.02em;font-weight:500}.thesis h2 span{display:block;color:#b3b3b3;transition:color .5s}.thesis h2 span.lit,.thesis h2 span:first-child{color:black}.thesis-more{position:absolute;left:20px;bottom:40px}.text-link{padding:12px 0;display:flex;align-items:center;gap:64px;font-size:12px}.text-link:hover{color:var(--blue)}.motion-track{position:relative;height:190vh;min-height:1300px}.architecture{position:sticky;top:0;height:100vh;min-height:650px}.architecture-scene{position:absolute;inset:0}.architecture-scene iframe{width:100%;height:100%;border:0;pointer-events:none}.architecture-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0f0f0fbb 0%,transparent 63%);pointer-events:none}.architecture h2{position:absolute;top:57.375%;left:20px;font-size:clamp(42px,3.6111vw,70px);line-height:1.05}.architecture-copy{position:absolute;left:20px;top:76.25%;width:calc(344 * var(--unit));min-width:280px;font-size:15px;line-height:1.13;letter-spacing:.15px}.cross-rail{position:absolute;left:0;right:0;height:1px;background:var(--line)}.top-rail{top:14.25%}.bottom-rail{top:73.75%}.motion-nodes{position:absolute;left:50%;width:38.8889%;top:14.25%;height:59.5%;pointer-events:none}.scene-control{position:absolute;bottom:20px;left:50%;right:11.1111%;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#ffffff90}.scene-control button{padding:0;color:white;font-size:10px}.product-panel{position:absolute;left:11.1111%;right:11.1111%;top:26.25%;height:47.5%;display:grid;grid-template-columns:37.5% 62.5%}.product-copy{position:relative;padding:28px 24px;display:flex;flex-direction:column;align-items:start}.product-copy h2{font-size:42px;font-weight:500;line-height:1.05;margin-bottom:20px}.product-copy p{font-size:15px;line-height:1.13;color:#0008;max-width:332px;letter-spacing:.15px}.product-copy>.action{margin-top:auto;min-width:169px;font-size:13px}.product-image{overflow:hidden;position:relative}.product-image img{width:100%;height:100%;object-fit:cover;transition:opacity .3s,transform .8s var(--ease)}.product-tabs{position:absolute;top:calc(26.25% - 50px);left:11.1111%;display:flex;gap:28px;height:32px;align-items:center;font-size:12px}.product-tabs button{padding:8px 0;color:#888;position:relative}.product-tabs button[aria-selected=true]{color:black}.product-tabs button[aria-selected=true]:before{content:'';position:absolute;width:4px;height:4px;background:var(--blue);left:0;bottom:0}.product-gridline{position:absolute;background:var(--line);pointer-events:none}.vertical-a{left:11.1111%;top:0;bottom:26.25%;width:1px}.vertical-b{left:40.2778%;top:26.25%;bottom:0;width:1px}.vertical-c{left:88.8889%;top:0;bottom:0;width:1px}.horizontal-a{top:26.25%;left:0;right:11.1111%;height:1px}.horizontal-b{top:73.75%;left:0;right:11.1111%;height:1px}.product-pager{position:absolute;top:calc(73.75% + 24px);right:11.1111%;display:flex;gap:22px;align-items:center;font-size:11px}.product-pager button,.vertical-controls button{font-size:20px;min-width:32px;min-height:32px}.process-grid{position:absolute;left:11.1111%;right:11.0417%;top:26.25%;height:47.5%;display:grid;grid-template-columns:31.3113% 37.3773% 31.3113%;border-top:1px solid #ccc;border-bottom:1px solid #ccc}.process-count{display:flex;flex-direction:column;justify-content:space-between;border-left:1px solid #ccc}.process-count>span{font-family:Switzer;font-size:128px;font-weight:300;letter-spacing:-.06em;color:#496aff;align-self:center;margin-top:51px;line-height:1.2}.step-controls{height:31.84%;border-top:1px solid #ccc;display:flex;justify-content:center;align-items:center;gap:0}.step-controls button{padding:0;width:39px;height:36px;display:grid;place-items:center}.step-controls img{width:auto;height:auto;max-width:39px}.step-controls button:hover{background:#eee}.process-animation{position:relative;overflow:hidden;background:#1755e5;--corner:white}.process-animation iframe{height:100%;width:100%;border:0;mix-blend-mode:screen;pointer-events:none}.process-copy{border-right:1px solid #ccc;display:flex;flex-direction:column;justify-content:space-between}.process-copy h2{padding:20px 28px;font-size:28px;line-height:1.1;max-width:330px}.process-copy ul{list-style:none;padding:0;margin:0}.process-copy li{padding:11px 28px;border-top:1px solid #ddd;font-size:15px;line-height:1.15}.process-rails{position:absolute;inset:0 11.1111%;border-left:1px solid #eee;border-right:1px solid #eee}.process-bottom{position:absolute;top:calc(73.75% + 26px);left:11.1111%;right:11.1111%;display:flex;justify-content:space-between;gap:30px}.process-bottom p{font-size:12px;line-height:1.5;max-width:350px;color:#777}.step-dots{display:flex;align-items:start;gap:14px}.step-dots button{width:24px;height:24px;padding:8px;position:relative}.step-dots button:after{content:'';position:absolute;inset:9px;background:#ccc;transition:transform .4s,background .4s}.step-dots button[aria-pressed=true]:after{background:var(--blue);transform:scale(1.5)}.vertical-tabs{position:absolute;top:30.625%;left:20px;right:0;display:flex;gap:50px;overflow:auto;scrollbar-width:none;height:62px;scroll-behavior:smooth}.vertical-tabs button{font-family:Switzer;font-size:42px;line-height:1.05;white-space:nowrap;min-width:calc(350 * var(--unit));text-align:left;color:#666;padding:0;transition:color .5s}.vertical-tabs button[aria-selected=true]{color:white}.vertical-tabs button:hover{color:#bbb}.vertical-tabs:after{content:'';min-width:11.111vw}#vertical-description{position:absolute;left:20px;top:40.375%;width:calc(393 * var(--unit));font-size:15px;line-height:1.13;letter-spacing:.15px}.vertical-image{position:absolute;left:50%;right:11.1111%;top:38.375%;bottom:0;overflow:hidden}.vertical-image img{width:100%;height:100%;object-fit:cover;object-position:center;transition:opacity .3s,transform 1s var(--ease)}.vertical-intro{position:absolute;left:20px;bottom:20px;width:calc(498 * var(--unit));font-family:Switzer;font-size:26px;line-height:1.25}.vertical-intro span{color:#ffffff80}.vertical-controls{position:absolute;left:20px;top:50%;display:flex;gap:20px;align-items:center;font-size:11px}.footer{height:calc(520 * var(--unit));min-height:440px;background:var(--blue);color:white;position:relative;overflow:hidden}.footer:before{content:'';position:absolute;top:0;bottom:0;left:50%;right:11.1111%;border-left:1px solid #ffffff33;border-right:1px solid #ffffff33;pointer-events:none}.footer nav{display:flex;justify-content:space-between;position:absolute;left:23px;top:30px;width:37.5%;font-size:12px;gap:10px}.footer nav button{padding:0;font-size:12px}.footer-copy{position:absolute;left:calc(50% + 32px);top:19px;right:14%}.footer-copy h2{font-size:42px;line-height:1.05;max-width:385px}.footer-copy p{font-size:12px;color:#ffffff99;line-height:1.13;margin-top:20px}.footer-actions{position:absolute;right:0;top:0;width:11.1111%}.footer-actions>.action{background:white;color:#0f0f0f}.footer-actions>.outline{background:transparent;color:white;border:1px solid #4577ea}.footer-logo{position:absolute;left:1.3889%;right:.5556%;bottom:3.87%;height:34.59%;overflow:hidden}.footer-logo img{width:1412px;height:180px;transform-origin:top left;transform:scale(calc((100vw - 28px) / 1412px))}.dialog-top{display:flex;justify-content:space-between;border-bottom:1px solid #ccc;padding:22px 28px;font-size:12px}.dialog-top button{padding:0}dialog{position:fixed;width:min(1040px,calc(100% - 40px));max-height:calc(100dvh - 64px);border:0;padding:0;color:#0f0f0f;background:white}dialog::backdrop{background:#0009;backdrop-filter:blur(8px)}#dialog-body{padding:50px 40px 60px}#dialog-body h2{font-size:clamp(32px,4vw,60px);line-height:1.02;max-width:800px;margin-bottom:30px;letter-spacing:-.03em}#dialog-body>p{max-width:640px;font-size:18px;line-height:1.5;color:#555;margin-bottom:32px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid #ccc;border-left:1px solid #ccc}.detail-grid article{padding:24px;border-right:1px solid #ccc;border-bottom:1px solid #ccc}.detail-grid h3{font-size:28px;margin-bottom:14px}.detail-grid p,.detail-grid li{font-size:14px;line-height:1.5;color:#777}.detail-grid ul{padding-left:18px}.dialog-eyebrow{text-transform:uppercase;font-size:11px!important;letter-spacing:.1em}.dialog-tags{display:flex;gap:8px;flex-wrap:wrap}.dialog-tags span{padding:6px 9px;border:1px solid #ddd;font-size:11px}body.modal-open{overflow:hidden}.switching{opacity:.25!important;transform:translateY(8px)}
@media(min-width:1800px){.product-copy{padding:36px}.product-copy h2{font-size:52px}.product-copy p{font-size:18px}.process-copy h2{font-size:34px}.process-copy li{font-size:18px}.process-count>span{font-size:160px}.vertical-tabs button{font-size:52px}}
@media(max-width:1050px){.site-header{grid-template-columns:28% 56% 16%}.site-header nav{padding-right:10px}.brand{width:28vw}.brand img{transform:scale(.6)}.hero-panel{left:46%;width:43%}.hero-panel p{font-size:23px;width:85%;left:5%}.hero h1{font-size:42px}.thesis h2{font-size:70px;max-width:85%;line-height:.94}.product-panel{left:6%;right:6%;grid-template-columns:40% 60%}.product-tabs{left:6%}.product-copy{padding:24px 18px}.product-copy h2{font-size:34px}.product-copy p{font-size:14px}.product-gridline.vertical-a{left:6%}.product-gridline.vertical-b{left:41.2%}.product-gridline.vertical-c{left:94%}.process-grid{left:6%;right:6%;grid-template-columns:25% 40% 35%}.process-count>span{font-size:96px;margin-top:65px}.process-copy h2{font-size:25px;padding:20px}.process-copy li{font-size:13px;padding:11px 20px}.vertical-intro{font-size:23px;width:42%}.vertical-tabs button{font-size:34px;min-width:32vw}.footer-copy h2{font-size:32px}.footer nav{font-size:11px;flex-wrap:wrap;gap:20px}.footer-actions{width:16%}.footer-copy{left:52%;right:19%}.footer-logo img{transform:scale(calc((100vw - 28px) / 1412px))}}
@media(max-width:700px){:root{--unit:1px}.screen{height:auto;min-height:100svh}.site-header{height:64px;grid-template-columns:1fr auto auto;background:#0f0f0fdd;align-items:center}.brand,.site-header.compact .brand{margin:0 0 0 18px;width:140px;height:18px}.brand img{transform:scale(.333333)}.site-header nav{display:none}.header-action{min-height:64px;padding:18px 14px;font-size:10px}.menu-toggle{display:flex;align-items:center;gap:12px;height:64px;padding:0 18px;font-size:11px}.menu-toggle span{font-size:21px}.mobile-menu{top:64px}.hero{height:100svh;min-height:720px}.hero-main{width:100%;height:100%;object-fit:cover;object-position:35% center;top:0}.hero-base{display:none}.hero-panel{left:42%;width:58%;top:64px;height:48%;min-height:310px}.hero-panel p{font-size:18px;line-height:1.24;top:22px;left:18px;width:calc(100% - 36px)}.hero-panel>img{left:4%;top:38%;width:125%;height:85%}.hero h1{left:18px;top:auto;bottom:17%;font-size:clamp(36px,8vw,52px)}.hero-rule{top:auto;bottom:15%}.scroll-cue{left:18px}.thesis{min-height:700px}.thesis h2{top:125px;left:18px;font-size:clamp(40px,9.5vw,66px);width:calc(100% - 36px);max-width:none;line-height:.99;letter-spacing:-.035em}.thesis h2 span{display:inline}.thesis-more{left:18px;bottom:55px}.rails i{left:42%}.rails i+i{left:90%}.motion-track{height:170svh;min-height:1100px}.architecture{height:100svh;min-height:680px}.architecture h2{font-size:40px;top:auto;bottom:28%;left:18px}.architecture-copy{top:auto;bottom:12%;left:18px;width:75%;font-size:14px;min-width:0}.architecture-scene{inset:64px -28% 23% -28%}.architecture-shade{background:linear-gradient(0deg,#0f0f0f 0%,transparent 70%)}.top-rail{top:21%}.bottom-rail{top:66%}.motion-nodes{left:42%;width:48%;top:21%;height:45%}.scene-control{left:18px;right:18px;bottom:22px}.products{min-height:830px;padding:130px 18px 75px}.product-tabs{left:18px;right:18px;top:96px;gap:22px;font-size:11px}.product-panel{position:relative;inset:auto;height:auto;display:flex;flex-direction:column}.product-copy{min-height:260px;padding:24px 18px;border:1px solid #ccc}.product-copy h2{font-size:36px}.product-copy p{max-width:380px;font-size:14px;margin-bottom:26px}.product-copy>.action{min-height:48px}.product-image{height:260px}.product-gridline{display:none}.product-pager{top:auto;bottom:30px;right:18px}.process{min-height:850px;padding:124px 18px 40px}.process-grid{position:relative;inset:auto;display:grid;grid-template-columns:25% 75%;height:auto}.process-count{height:310px}.process-count>span{font-size:60px;margin-top:75px}.process-animation{height:310px}.process-copy{grid-column:1/-1;border-left:1px solid #ccc;min-height:260px;display:grid;grid-template-columns:1fr 1fr}.process-copy h2{font-size:30px;padding:25px 18px}.process-copy ul{align-self:end;padding-top:14px}.process-copy li{padding:15px 12px}.process-bottom{position:relative;inset:auto;margin-top:25px;gap:20px;flex-direction:column}.process-bottom p{max-width:100%}.process-rails{inset:0 18px}.verticals{min-height:850px;padding-top:130px}.vertical-tabs{top:128px;left:18px;gap:36px;height:55px}.vertical-tabs button{font-size:34px;min-width:auto}#vertical-description{left:18px;right:18px;top:206px;width:auto;font-size:14px;max-width:350px}.vertical-image{left:42%;right:0;top:310px;bottom:130px}.vertical-intro{left:18px;bottom:30px;width:calc(100% - 36px);font-size:22px}.vertical-controls{top:275px;left:18px;font-size:10px}.footer{height:650px;min-height:0}.footer nav{left:18px;right:18px;top:30px;width:auto;font-size:11px;gap:20px;justify-content:start}.footer-copy{left:18px;right:20px;top:120px}.footer-copy h2{font-size:42px;max-width:360px}.footer-copy p{max-width:280px;font-size:13px}.footer-actions{left:18px;right:auto;top:360px;width:auto;display:flex}.footer-actions>.action{min-width:150px}.footer-logo{left:18px;right:18px;bottom:35px;height:calc((100vw - 36px) * .128)}.footer-logo img{transform:scale(calc((100vw - 36px) / 1412px))}.footer:before{left:42%;right:0}.detail-grid{grid-template-columns:1fr}#dialog-body{padding:32px 22px}dialog{width:calc(100% - 24px);max-height:calc(100dvh - 30px)}.dialog-top{padding:20px 22px}}
#step-prev img{transform:rotate(180deg)}
.footer-transition{position:relative;isolation:isolate}
.footer-transition .verticals{position:sticky;top:var(--pin-top,0);z-index:0}
.footer-transition .footer{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* Extend the overlay without shifting its top-aligned content. */
.footer-transition .footer{height:calc(520 * var(--unit) + 80px);min-height:520px}
.footer-transition .footer-logo{height:calc(180 * var(--unit));bottom:20px}
.site-header.footer-entering{opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:700px){.footer-transition .footer{height:730px;min-height:0}.footer-transition .footer-logo{height:calc((100vw - 36px) * .128);bottom:35px}}

/* Section 6: one scroll timeline drives the titles and the image strip. */
.footer-transition{--vertical-travel:400vh}
.vertical-scroll-space{height:var(--vertical-travel);pointer-events:none}
.verticals{--vertical-position:0;--slide-width:38.888889vw;--title-origin:calc(50vw + 20px)}
.vertical-tabs{left:0;right:0;display:block;overflow:hidden;height:62px;scroll-behavior:auto}
.vertical-title-rail{display:flex;width:max-content;gap:0;transform:translate3d(calc(var(--title-origin) - var(--vertical-position)*var(--slide-width)),0,0);will-change:transform}
.vertical-tabs button{flex:0 0 var(--slide-width);width:var(--slide-width);min-width:0;height:62px;color:#ffffff33;font-size:42px}
.vertical-tabs:after{display:none}
.vertical-tabs button[aria-selected=true]{color:#fff}
.vertical-image-rail{display:flex;height:100%;width:100%;transform:translate3d(calc(var(--vertical-position)*-100%),0,0);will-change:transform}
.vertical-slide{position:relative;flex:0 0 100%;height:100%;overflow:hidden}
.vertical-slide img{position:absolute;max-width:none;object-fit:cover;transition:none}
.vertical-image:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(white,white) left top/5px 5px no-repeat,linear-gradient(white,white) right top/5px 5px no-repeat,linear-gradient(white,white) left bottom/5px 5px no-repeat,linear-gradient(white,white) right bottom/5px 5px no-repeat}
.verticals:after{content:'';position:absolute;top:38.375%;height:1px;background:#ffffff4d;left:0;right:0;pointer-events:none}
#vertical-description{font-family:Switzer,Arial,sans-serif;font-size:13px;line-height:1.3;letter-spacing:0;width:229px}
.vertical-intro{font-size:22px}
.vertical-controls button:disabled{opacity:.25}
@media(max-width:700px){.verticals{--slide-width:75vw;--title-origin:18px}.vertical-tabs{left:0;top:128px}.vertical-tabs button{font-size:32px}.verticals:after{top:310px}#vertical-description{width:75%;max-width:350px}.vertical-image{left:18px;right:18px;top:310px;bottom:150px}.vertical-intro{font-size:20px}}

.footer-transition{background:var(--black)}
.vertical-tabs button,.vertical-tabs button[aria-selected=true],.vertical-tabs button:hover{color:transparent;background-image:linear-gradient(to right,#ffffff33 var(--lit-start),#fff var(--lit-start),#fff var(--lit-end),#ffffff33 var(--lit-end));background-clip:text;-webkit-background-clip:text;transition:none}

/* Figma 487:1989 typography and per-image contrast markers. */
#vertical-description{font-size:14px;width:210px;line-height:1.3}
.vertical-intro{font-size:24px;line-height:1.25;bottom:20px}
.vertical-intro .intro-line{display:block;white-space:nowrap;color:white}
.vertical-intro .intro-muted{color:#ffffff80}
.vertical-image:after{display:none}
.vertical-image{background-image:none}
.vertical-markers{position:absolute;inset:0;pointer-events:none;z-index:2}
.vertical-marker{position:absolute;width:5px;height:5px;background:white}
@media(max-width:700px){#vertical-description{width:75%;max-width:350px}.vertical-intro{bottom:30px}}

/* Shared footer boundary keeps button borders on the guide. */
.footer{--footer-action-width:11.111111%}
.footer-actions{width:var(--footer-action-width)}
.footer:before{right:calc(var(--footer-action-width) - 1px)}
@media(min-width:701px) and (max-width:1050px){.footer{--footer-action-width:16%}}
@media(max-width:700px){.footer-actions{left:18px;right:18px;width:auto;display:grid;grid-template-columns:calc(42vw - 18px) 1fr}.footer-actions>.action{min-width:0;padding-left:10px;padding-right:10px}.footer:before{right:0}}
a:not(.brand):not(.footer-logo),button{text-decoration-thickness:1px;text-underline-offset:4px}
@media(hover:hover){
 a:not(.brand):not(.footer-logo):hover,button:not(:disabled):hover{text-decoration-line:underline}
 .site-header nav>a:not(.active):hover:after,.site-header nav>button:hover:after{opacity:0}
 .action:hover{background:var(--blue)}
 .site-header.on-dark .header-action:hover,.footer-actions>.action:hover{background:white}
 .footer-actions>.outline:hover{background:transparent}
 .text-link:hover{color:inherit}
 .step-controls button:hover{background:none}
}

.vertical-marker{background:#fff!important}
#vertical-description{width:calc(50% - 40px);font-size:14px}
#vertical-description>span{display:block;white-space:nowrap}
.vertical-intro{bottom:20px}
.vertical-title-rail{transform:translate3d(calc(var(--title-origin) - var(--title-position,var(--vertical-position))*var(--slide-width)),0,0)}
@media(min-width:701px){.footer-transition .verticals{height:max(650px,100svh)}}
@media(max-width:700px){#vertical-description{width:calc(100% - 36px);font-size:clamp(11px,3.4vw,14px)}.vertical-intro{bottom:20px}}

/* Draw the underline from left to right, within the text width. */
a:hover,button:hover{ text-decoration:none!important }
.hover-label{position:relative;display:inline-block}
.hover-label:after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease)}
@media(hover:hover){a:hover .hover-label:after,button:not(:disabled):hover .hover-label:after{transform:scaleX(1)}}
a:focus-visible .hover-label:after,button:focus-visible .hover-label:after{transform:scaleX(1)}
.vertical-tabs .hover-label:after{background:white}
.vertical-controls button,.vertical-controls button:disabled{opacity:.5;transition:opacity .375s}
.vertical-controls button:not(:disabled):hover,.vertical-controls button:focus-visible{opacity:1}
.vertical-total{opacity:.5}
#vertical-count{opacity:1}

/* WebKit needs the text and its clipped background on the same box. */
.vertical-tabs button{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;text-decoration:none!important}
.vertical-tabs button .hover-label:after{display:none}
#vertical-description{font-size:15px}
.vertical-controls{transform:translateY(-8px)}
@media(max-width:700px){#vertical-description{font-size:clamp(12px,3.65vw,15px)}}

.site-header nav>a:after,.site-header nav>button:after{display:none}
.site-header.on-verticals{background:#0f0f0f}
.site-header.on-verticals:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(255,255,255,.2);pointer-events:none}
@media(max-width:700px){.site-header.on-verticals:before{left:42%}}

.hover-label:after{transition-duration:.42s}
.vertical-slide img{transform-origin:center center;will-change:transform}
.vertical-image{clip-path:inset(0 calc(var(--photo-close,0)*100%) 0 0)}
.verticals .rails i:first-child{left:50%;transition:none}
.verticals .rails i:last-child{left:calc(88.888889% - 38.888889%*var(--photo-close,0));transition:none;z-index:3}
.site-header.on-verticals:before{left:50%}
.footer-copy h2,.footer-copy p{font-family:Switzer,Arial,sans-serif}
.reveal-word{position:relative;display:inline-block;white-space:nowrap}
/* Fly In Left: character stagger, reference timing stretched by 1.5. */
.reveal-char{display:inline-block}
.text-revealing .reveal-char{animation:fly-in-left .375s cubic-bezier(.165,.84,.44,1) both;animation-delay:var(--reveal-delay)}
@keyframes fly-in-left{from{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}
@media(max-width:700px){.verticals .rails i:first-child,.site-header.on-verticals:before{left:42%}.verticals .rails i:last-child{left:calc(100% - 18px - (100% - 36px)*var(--photo-close,0))}}
@media(prefers-reduced-motion:reduce){.text-revealing .reveal-char{animation:none}.text-revealing .reveal-word:after{animation:none;display:none}}

/* Footer geometry from Figma 495:2027 (1440 × 620). */
.footer-transition .footer{height:max(520px,calc(620 * var(--unit)));--footer-guide-y:63.225806%;--footer-action-width:11.111111%}
.footer:before{top:0;bottom:auto;height:var(--footer-guide-y);left:50%;right:calc(var(--footer-action-width) - 1px);border-color:#ffffff33}
.footer:after{content:'';position:absolute;left:0;right:0;top:var(--footer-guide-y);height:1px;background:#ffffff4d;pointer-events:none}
.footer-guides{position:absolute;left:50%;right:var(--footer-action-width);top:0;height:var(--footer-guide-y);pointer-events:none}
.footer-guides i{position:absolute;width:5px;height:5px;background:white;left:0;top:0}
.footer-guides i:nth-child(2){left:auto;right:0}
.footer-guides i:nth-child(3){top:auto;bottom:0}
.footer-guides i:nth-child(4){left:auto;right:0;top:auto;bottom:0}
.footer-transition .footer-logo{left:calc(20 * var(--unit));right:auto;top:calc(var(--footer-guide-y) + 24 * var(--unit));bottom:auto;width:calc(1411.997 * var(--unit));height:calc(179.891 * var(--unit));overflow:visible}
.footer-transition .footer-logo img{width:1412px;height:179.891px;transform:scale(calc(100vw / 1440px));transform-origin:top left}
.footer-copy{left:calc(50% + 32px);right:calc(11.111111% + 24px);top:19px}
.footer-copy h2{font-size:42px;max-width:385px}
.footer nav{width:37.5%;display:grid;grid-template-columns:repeat(4,1fr);gap:0}
@media(min-width:701px) and (max-width:1050px){.footer-copy h2{font-size:32px}.footer-copy{left:calc(50% + 20px);right:calc(11.111111% + 16px)}.footer-actions .action{padding-left:4px;padding-right:4px;font-size:10px}}
@media(max-width:700px){.footer-transition .footer{height:730px;--footer-guide-y:76%}.footer:before{left:42%;right:0}.footer-guides{left:42%;right:0}.footer nav{display:flex;left:18px;right:18px;width:auto;gap:20px}.footer-copy{left:18px;right:20px;top:120px}.footer-copy h2{font-size:42px}.footer-transition .footer-logo{left:18px;right:18px;top:calc(var(--footer-guide-y) + 24px);width:calc(100% - 36px);height:calc((100vw - 36px) * .127402)}.footer-transition .footer-logo img{transform:scale(calc((100vw - 36px) / 1412px))}}

/* Footer navigation: 120 px columns with 20 px gaps, as in Figma. */
@media(min-width:701px){
 .footer nav{left:23px;top:30px;width:540px;grid-template-columns:repeat(4,120px);column-gap:20px;justify-content:start}
 .footer nav>a,.footer nav>button{text-align:left;justify-self:start;padding:0}
}
@media(min-width:701px) and (max-width:1100px){
 .footer nav{width:calc(50% - 46px);grid-template-columns:repeat(4,minmax(0,1fr));column-gap:20px}
}

/* Full-viewport opening sequence. */
.hero.screen{height:100svh;min-height:0}
.hero-header-rule{position:absolute;left:0;right:0;top:56px;height:1px;background:#ffffff60;pointer-events:none}
.hero-loading .hero-panel{clip-path:inset(0 0 100% 0)}
.hero-loading .hero h1,.hero-loading .hero-panel p,.hero-loading .hero-photo,.hero-loading .hero-rule{opacity:0}
.hero-panel p>span:not(.reveal-word){color:#ffffffa3}
.hero-panel p .reveal-word,.hero-panel p .reveal-char{color:inherit}
@media(max-width:700px){.hero-header-rule{top:64px}.hero .hero-rule{top:calc(64px + 48%);bottom:auto}.hero-panel{min-height:0}.hero h1{font-size:clamp(30px,8vw,52px)}}
@media(prefers-reduced-motion:reduce){.hero-loading .hero-panel{clip-path:none}.hero-loading .hero h1,.hero-loading .hero-panel p,.hero-loading .hero-photo,.hero-loading .hero-rule{opacity:1}}

/* The white thesis panel slides over the pinned opening photograph. */
.hero-thesis-transition{position:relative;isolation:isolate}
.hero-thesis-transition .hero{position:sticky;top:0;z-index:0}
.hero-thesis-transition .thesis{position:relative;z-index:1;background:white}
.thesis h2>span{display:block;color:#b3b3b3;transition:color .5s}
.thesis h2>span:first-child,.thesis h2>span.lit{color:#000}
.thesis h2>span .reveal-word{display:inline-block;color:inherit}
.thesis h2>span .reveal-char{display:inline-block;color:inherit}
@media(max-width:700px){.thesis h2>span{display:inline}}

@font-face{font-family:'Inter Display';src:url('./fonts/InterDisplay-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
.process-count>span{font-family:'Inter Display',Arial,sans-serif;font-weight:400}
.step-controls{gap:20px}
.step-controls button{width:32px;height:32px;min-width:32px;min-height:32px;font-size:20px;opacity:.5;transition:opacity .375s}
.step-controls button:hover,.step-controls button:focus-visible{opacity:1;background:transparent}

/* Product sequence: Figma 504:2063 / 504:2105. */
.product-scroll-track{height:470svh;position:relative;background:#fff}
.product-scroll-track .products{position:sticky;top:0;height:100svh;min-height:0;padding:0;overflow:hidden}
.products .product-tabs,.products .product-pager,.products>.product-gridline{display:none}
.products .product-panel{position:absolute;left:11.111111%;right:11.111111%;top:26.25%;height:47.5%;display:grid;grid-template-columns:37.5% 62.5%;will-change:transform}
.products .product-copy{background:#fff;padding:28px 24px;min-height:0}
.products .product-panel:before{content:'';position:absolute;left:-100vw;right:0;top:0;bottom:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;pointer-events:none}
.products .product-copy:before{content:'';position:absolute;left:0;top:-100vh;bottom:0;border-left:1px solid #ccc;pointer-events:none}
.products .product-image{overflow:visible}
.products .product-image:before{content:'';position:absolute;left:0;right:0;top:0;bottom:-100vh;border-left:1px solid #ccc;border-right:1px solid #ccc;pointer-events:none}
.products .product-image img{display:block;width:100%;height:100%;object-fit:cover;transition:none}
.products .product-copy{background-image:linear-gradient(black,black),linear-gradient(black,black),linear-gradient(black,black),linear-gradient(black,black);background-size:5px 5px;background-position:0 0,100% 0,0 100%,100% 100%;background-repeat:no-repeat}
@media(max-width:700px){.products .product-panel{left:18px;right:18px;top:18%;height:68%;grid-template-columns:1fr;grid-template-rows:1fr 1fr}.products .product-copy{padding:18px}.products .product-copy h2{font-size:28px;margin-bottom:12px}.products .product-copy p{font-size:12px;margin-bottom:12px}.products .product-copy>.action{min-height:38px;padding:10px 18px}.products .product-image{height:auto}}
.products .product-image{min-height:0;min-width:0}
.products .product-copy{border-top:1px solid #ccc;border-bottom:1px solid #ccc}

.site-header .header-rule{position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:.25;transform:scaleX(0);transform-origin:left center;transition:transform .42s ease;pointer-events:none}
.site-header.compact .header-rule{transform:scaleX(1)}

.hero-panel{background-image:none}
.hero-panel:after{z-index:4}
.hero-middle-markers{position:absolute;left:0;right:0;top:67.911715%;height:5px;background:linear-gradient(white,white) left top/5px 5px no-repeat,linear-gradient(white,white) right top/5px 5px no-repeat;z-index:4;pointer-events:none}
.hero-panel>iframe{position:absolute;left:0;top:46%;width:100%;height:65%;border:0;pointer-events:none;mix-blend-mode:lighten}
.hero-panel p.text-revealing .reveal-char{animation-duration:.1875s}
@media(max-width:700px){.hero-panel>iframe{top:52%;height:60%}}
/* Keep the fifth screen centered in the viewport, independent of width. */
@media(min-width:701px){
  .process.screen{height:100svh;min-height:0}
  .process .process-grid{top:50%;transform:translateY(-50%)}
}
@media(min-width:701px){#process{scroll-margin-top:-56px}}

/* One gesture advances one product; the animation owns its timing. */
.product-scroll-track{height:100svh}
.products .product-copy,.products .product-copy button{font-family:Switzer,Arial,sans-serif}
.products .product-copy{background-image:none}
.products .product-image:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(black,black) left top/5px 5px no-repeat,linear-gradient(black,black) right top/5px 5px no-repeat,linear-gradient(black,black) left bottom/5px 5px no-repeat,linear-gradient(black,black) right bottom/5px 5px no-repeat;z-index:3}

.products .product-copy p{font-family:Switzer,Arial,sans-serif;font-size:14px;line-height:1.4;letter-spacing:0;max-width:299px}
.products .product-image img{clip-path:inset(0 var(--product-crop,0%) 0 0)}
.products .product-image:after,.products .product-image:before{right:var(--product-crop,0%)}

.products .product-image:after{display:none}
.products .product-image-frame{position:absolute;left:0;right:var(--product-crop,0%);top:0;bottom:0;z-index:5;border:1px solid #888;pointer-events:none}
.product-image-frame i{position:absolute;width:5px;height:5px;background:#000;left:0;top:0}
.product-image-frame i:nth-child(2){left:auto;right:0}
.product-image-frame i:nth-child(3){top:auto;bottom:0}
.product-image-frame i:nth-child(4){left:auto;right:0;top:auto;bottom:0}
.square-cursor{position:fixed;inset:0;z-index:2147483647;pointer-events:none!important;opacity:0;contain:layout style;}
.square-cursor.visible{opacity:1}
.square-cursor i{position:absolute;left:0;top:0;display:block;background:currentColor;border:0;box-shadow:none;pointer-events:none;}
.square-cursor i:last-child:after{content:'';position:absolute;inset:0;background:currentColor;transform:scale(1);transition:transform .18s}
.square-cursor.interactive i:last-child:after{transform:scale(1.3)}
@media(hover:hover) and (pointer:fine){html.square-pointer,html.square-pointer *{cursor:none!important}}
@media(forced-colors:active){.square-cursor{display:none}html.square-pointer,html.square-pointer *{cursor:auto!important}}

.hero-panel>iframe{left:80px}

html{scrollbar-gutter:stable}
html.products-locked{overflow:hidden}
.products .product-copy p{opacity:0;transition:opacity .45s ease}
.products .product-copy p.product-body-visible{opacity:1}
.products .product-copy{border:0}
.products .product-panel:before{border-color:#ccc}
.products .product-copy:before{border-color:#ccc}
.products .product-image-frame{border-color:#ccc}
.products .product-image:before{top:100%;border-color:#ccc}
@media(prefers-reduced-motion:reduce){.products .product-copy p{opacity:1;transition:none}}
.products .product-panel:before{z-index:2}

.hero-panel>iframe{left:120px;top:calc(46% - 20px);transform:scale(1.2);transform-origin:top left}
@media(max-width:700px){.hero-panel>iframe{top:calc(52% - 20px)}}

/* The moving square draws the thesis center guide with the text reveal. */
.thesis .rails i{height:var(--thesis-guide-height,0px);bottom:auto;border-color:#0003;transition:none;visibility:hidden}
.thesis.guides-started .rails i{visibility:visible}
.thesis .rails i:after{content:'';position:absolute;left:-3px;bottom:0;width:5px;height:5px;background:#000}


@media(prefers-reduced-motion:reduce){.thesis .rails i{height:100%;animation:none!important}}

.footer-copy p{font-size:13px}

.thesis .rails i:after{bottom:0;transform:translateY(max(0px,calc(5px - var(--thesis-guide-height,0px))))}

/* Product copy closes against its image boundary before the images move. */
.products .product-copy{clip-path:inset(0 0 0 var(--copy-clip,100%))}
.products .product-copy:before{display:none}
.products .product-panel:after{content:'';position:absolute;left:var(--copy-line,37.5%);top:-100vh;bottom:0;border-left:1px solid #ccc;opacity:var(--copy-line-opacity,0);pointer-events:none}
.products .product-panel:before{right:62.5%}
@media(max-width:700px){.products .product-panel:after{left:var(--copy-clip,100%)}.products .product-panel:before{right:0;bottom:50%}}

/* Three scroll-driven reveals with a half-viewport reading pause each. */
.product-scroll-track{height:520svh}
