@font-face{font-family:Hanken Grotesk;src:url(/fonts/hanken-grotesk-latin-var.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-var.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}:root{--bg:#f2f3f1;--surface:#fff;--ink:#0d1012;--body:#394046;--muted:#596067;--line:#d9dcd8;--field:#737a81;--trace:#0b6b63;--error:#b42318;--on-ink:#f2f3f1;--scene-line:#c3c8c2;--sans:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--gutter:16px;--rail:36px;--trace-x:12px;--content-max:1120px;--prose-max:36rem;--act-pad:clamp(64px, 10vw, 140px);--ease:cubic-bezier(.23, 1, .32, 1);--dur-ui:.16s;--dur-pad:.56s}@media (width>=720px){:root{--gutter:24px}}@media (width>=900px){:root{--rail:72px;--trace-x:24px}}@media (width>=1200px){:root{--gutter:40px}}:root{--frame-w:100vw;--frame-left:0px}@media (width>=900px){:root{--frame-w:min(100vw, 180vh);--frame-left:max(0px, (100vw - 180vh) / 2)}@supports (height:1svh){:root{--frame-w:min(100vw, 180svh);--frame-left:max(0px, (100vw - 180svh) / 2)}}}@media (prefers-color-scheme:dark){:root{--bg:#0b0d0f;--surface:#15181b;--ink:#eef0ee;--body:#b9bfc4;--muted:#8d949a;--line:#23272b;--field:#6b7379;--trace:#3ccfbd;--error:#ff8a7a;--on-ink:#0b0d0f;--scene-line:#343a3f}}html:is(.gl,.gl-pending){--bg:#05070d;--surface:#0a0d16;--ink:#eef1f8;--body:#b3bdd3;--muted:#8c97af;--line:#d6e0ff29;--field:#6f7c99;--trace:#3ccfbd;--on-ink:#070a12}#stage{z-index:0;width:100vw;height:100svh;display:none;position:fixed;inset:0}.stage-probe{visibility:hidden;pointer-events:none;width:0;height:100svh;position:absolute;top:0;left:0}@media (width<=899px){#stage,.stage-probe{height:100lvh}}.stage-scrim{z-index:1;pointer-events:none;display:none;position:fixed;inset:0}html.gl #stage,html.gl .stage-scrim{display:block}html:is(.gl,.gl-pending) .stage-scrim,.hero:after{--sf-w:min(100%, 180vh);--sf-l:max(0px, (100% - 180vh) / 2);background:linear-gradient(90deg, #04060bdb var(--sf-l), #04060bb3 calc(var(--sf-l) + .24 * var(--sf-w)), #04060b52 calc(var(--sf-l) + .44 * var(--sf-w)), #04060b00 calc(var(--sf-l) + .6 * var(--sf-w)))}@media (width<=899px){html:is(.gl,.gl-pending) .stage-scrim{background:linear-gradient(#04060b00 84%,#04060b8c 100%)}}html:is(.gl,.gl-pending) .act__rail,html:is(.gl,.gl-pending) .scene,html:is(.gl,.gl-pending) .contact-rail-line,html:is(.gl,.gl-pending) .elbow,html:is(.gl,.gl-pending) .node{display:none}.hero__bg,.hero:after{transition:visibility 0s linear .3s}html.gl .hero__bg,html.gl .hero:after{visibility:hidden}@keyframes stage-in{0%{opacity:0}}html.gl #stage,html.gl .stage-scrim{animation:.3s both stage-in}html:is(.gl,.gl-pending) #climb .scene,html:is(.gl,.gl-pending) #ai .scene{display:block}html:is(.gl,.gl-pending) #climb .scene svg,html:is(.gl,.gl-pending) #ai .scene svg{display:none}@media (width>=900px){html.gl #climb .scene,html.gl #ai .scene{width:0;height:0;margin:0;position:fixed;inset:auto;overflow:visible}html.gl-pending:not(.gl) #climb .scene,html.gl-pending:not(.gl) #ai .scene{display:none}}html:is(.gl,.gl-pending) .pad.reached{filter:drop-shadow(0 0 6px #3ccfbdd9)}main{z-index:2;position:relative}html:is(.gl,.gl-pending) .act,html:is(.gl,.gl-pending) .act-pin__stage{flex-direction:column;justify-content:center;align-items:flex-start;min-height:100svh;display:flex}html:is(.gl,.gl-pending) .act{max-width:none;padding-left:calc(var(--frame-left) + var(--gutter));margin:0}html:is(.gl,.gl-pending) .act-pin{min-height:100svh}html:is(.gl,.gl-pending) .act-pin__stage{position:static}html:is(.gl,.gl-pending) .act__content,html:is(.gl,.gl-pending) .act__content--wide,html:is(.gl,.gl-pending) .hero__inner>div{width:100%;max-width:540px}html:is(.gl,.gl-pending) .hero__inner{display:block}@media (width<=899px){html:is(.gl,.gl-pending) .act__content,html:is(.gl,.gl-pending) .hero__inner>div,html:is(.gl,.gl-pending) #climb .scene,html:is(.gl,.gl-pending) #ai .scene{position:relative}html:is(.gl,.gl-pending) .act__content:before,html:is(.gl,.gl-pending) .hero__inner>div:before,html:is(.gl,.gl-pending) #climb .scene:before,html:is(.gl,.gl-pending) #ai .scene:before{content:"";inset:-28px max(-20px, calc(-1 * var(--gutter)));z-index:-1;pointer-events:none;background:#04060bb8;border-radius:28px;position:absolute;box-shadow:0 0 48px 36px #04060bb8}html:is(.gl,.gl-pending) .act,html:is(.gl,.gl-pending) .act-pin__stage{justify-content:flex-end;padding-top:45svh;padding-bottom:8svh}}@media (width>=900px){html.gl .gl-label{z-index:3;opacity:0;will-change:transform, opacity;pointer-events:none;position:fixed;top:0;left:0}html.gl .climb-step.gl-label,html.gl .ai-stack__item.gl-label{color:var(--body);background:#04060bf7;border-radius:8px;padding:3px 10px 4px;box-shadow:0 0 0 1px #d6e0ff1a,0 0 16px 6px #04060b8c}html.gl .climb-step.gl-label.lit,html.gl .ai-stack__item.gl-label.lit{color:var(--ink)}html.gl .ai-stack__item.gl-label{white-space:normal;background:#04060bf7;max-width:280px}}*,:before,:after{box-sizing:border-box}html{color-scheme:light dark;background:var(--bg)}body{background:var(--bg);color:var(--body);font-family:var(--sans);letter-spacing:-.005em;font-variant-numeric:tabular-nums;margin:0;font-size:17px;line-height:1.6}@media (width>=900px){body{font-size:18px}}img{max-width:100%;display:block}a{color:inherit}button,input,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}h1,h2,h3,p,ul,li,figure{margin:0;padding:0;list-style:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:-100px;left:var(--gutter);z-index:100;background:var(--ink);color:var(--on-ink);transition:top var(--dur-ui) var(--ease);border-radius:999px;padding:12px 20px;text-decoration:none;position:absolute}.skip-link:focus{top:12px}.site-header{max-width:var(--content-max);padding:20px var(--gutter);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.site-header__name{min-height:44px;font-family:var(--mono);color:var(--ink);align-items:center;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.pill{background:var(--ink);min-height:44px;color:var(--on-ink);cursor:pointer;transition:transform var(--dur-ui) var(--ease), opacity var(--dur-ui) var(--ease);border:none;border-radius:999px;justify-content:center;align-items:center;padding:0 24px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.pill:active{transform:scale(.97)}.pill:disabled{background:var(--muted);color:var(--on-ink);cursor:progress}.act{grid-template-columns:var(--rail) 1fr;max-width:var(--content-max);padding:var(--act-pad) var(--gutter);gap:0;margin:0 auto;display:grid;position:relative}.act__rail{top:0;left:var(--gutter);width:var(--rail);pointer-events:none;position:absolute;bottom:0}.act__content{min-width:0;max-width:var(--prose-max);grid-column:2}.act__content--wide{max-width:none}.act__content--copy{max-width:44rem}.act h2{letter-spacing:-.035em;color:var(--ink);font-size:clamp(34px,3.6vw + 16px,80px);font-weight:600;line-height:1.02}.act__legend{font-family:var(--mono);color:var(--muted);font-size:13px;line-height:1.45}.act__legend--trace{color:var(--trace);position:relative}.act__lead{letter-spacing:-.012em;color:var(--body);font-size:clamp(19px,.6vw + 17px,25px);font-weight:450;line-height:1.4}.act__body{color:var(--body);margin-top:16px}.act__body--small{font-size:15px}.figure{letter-spacing:-.05em;color:var(--ink);font-size:clamp(64px,10vw + 24px,176px);font-weight:600;line-height:.9}.rail{pointer-events:none;flex-direction:column;align-items:flex-start;display:flex;position:absolute;inset:-1px 0}.seg-line{background:var(--trace);width:3px;margin-left:calc(var(--trace-x) - 1.5px);clip-path:inset(0);flex:auto}.seg-shape{width:24px;height:120px;margin-left:calc(var(--trace-x) - 12px);flex:none;overflow:visible}.seg-shape path{fill:none;stroke:var(--trace);stroke-width:3px;stroke-dasharray:1;stroke-dashoffset:0}.start-pad{background:var(--trace);width:18px;height:18px;margin:0 0 6px calc(var(--trace-x) - 9px);border-radius:50%;flex:none}.rail--start{top:calc(var(--act-pad) - 24px)}.node{left:calc(-1 * var(--rail) + var(--trace-x) - 7px);border:2px solid var(--trace);background:var(--trace);z-index:1;border-radius:50%;width:14px;height:14px;position:absolute;top:.6em;transform:translateY(-50%)}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.seg-line{clip-path:inset(0 0 100%);view-timeline:--seg block;view-timeline-inset:0% 45%;animation-name:seg-draw;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--seg;animation-range:entry}.seg-shape path{stroke-dashoffset:1px;view-timeline:--seg block;view-timeline-inset:0% 45%;animation-name:shape-draw;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--seg;animation-range:entry}.node{background:var(--bg);view-timeline:--seg block;view-timeline-inset:0% 45%;animation-name:node-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--seg;animation-range:entry}}}@keyframes seg-draw{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@keyframes shape-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes node-light{0%{fill:var(--bg)}to{fill:var(--trace)}}.hero{grid-template-columns:var(--rail) 1fr;gap:0;display:grid}.hero__content{flex-direction:column;grid-column:2;align-self:start;gap:20px;display:flex}.hero h1{letter-spacing:-.045em;color:var(--ink);max-width:14ch;font-size:clamp(40px,5.2vw + 20px,92px);font-weight:650;line-height:.94}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.hero{view-timeline:--hero-act block}}}.scene{margin:32px 0 0 var(--trace-x);width:calc(100% - var(--trace-x));grid-area:2/1/auto/-1;position:relative}[data-geom]{display:none}[data-geom=narrow]{display:block}@media (width>=900px){[data-geom=narrow]{display:none}[data-geom=wide]{display:block}}svg[data-geom]{width:100%;height:auto;overflow:visible}.scene-path,.scene-arrow,.scene-context,.scene-node,.scene-via,.scene-dot{fill:none}.scene-path,.scene-arrow{stroke:var(--trace);stroke-dasharray:1;stroke-dashoffset:0}.scene-context{stroke:var(--scene-line)}.scene__narrow .scene-path,.scene__narrow .scene-arrow,.scene__wide .scene-path,.scene__wide .scene-arrow,.scene__narrow .scene-context{stroke-width:3px}.scene__wide .scene-context{stroke-width:2px}.scene-node,.scene-via{stroke:var(--trace);stroke-width:3px;fill:var(--bg)}[data-lit=true].scene-node,[data-lit=true].scene-via{fill:var(--trace)}.scene-dot{stroke:var(--field);stroke-width:2px}[data-lit=true].scene-dot{fill:var(--ink);stroke:var(--ink)}.scene-plus{stroke:var(--field);stroke-width:4px;stroke-linecap:square}[data-lit=true] .scene-plus{stroke:var(--ink)}.scene-label{left:var(--lx,0%);top:var(--ly,0%);font-family:var(--sans);color:var(--muted);white-space:nowrap;font-size:clamp(14px,1.3vw,18px);font-weight:600;position:absolute}@media (width<=899px){.scene-label{font-size:16px}}[data-lit=true].scene-label{color:var(--ink)}.scene-label--l{transform:translateY(-50%)}.scene-label--c{transform:translate(-50%,-50%)}.scene-label--r{transform:translate(-100%,-50%)}.scene-label--lb{transform:translateY(-100%)}.scene-label--rb{transform:translate(-100%,-100%)}.scene-label--mono{font-family:var(--mono);font-size:15px;font-weight:400}@media (width<=899px){.scene-label--mono{font-size:13px}}.scene-label--figure{color:var(--ink);letter-spacing:-.05em;font-size:clamp(56px,7vw,112px);font-weight:600;line-height:.9}.act-pin{min-height:150svh}.act-pin__stage{grid-column:1/-1;grid-template-columns:var(--rail) 1fr;align-content:center;align-self:start;min-height:100svh;display:grid;position:sticky;top:0}.act-pin__stage>.act__content--copy{grid-column:2}@media (prefers-reduced-motion:reduce){.act-pin{min-height:0}.act-pin__stage{min-height:0;position:static}}@supports not (animation-timeline:view()){.act-pin{min-height:0}.act-pin__stage{min-height:0;position:static}}@keyframes step-light{0%{color:var(--muted)}to{color:var(--ink)}}@keyframes scene-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes run-draw{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.climb-steps{flex-direction:column;gap:12px;margin-top:24px;display:flex}.climb-step{color:var(--ink);letter-spacing:-.01em;font-size:16px;font-weight:600;line-height:1.2;display:block;position:relative}@media (width>=900px){.climb-steps{pointer-events:none;margin-top:0;position:absolute;inset:0}.climb-step{left:var(--lx,0%);top:var(--ly,0%);max-width:116px;color:var(--muted);font-size:17px;line-height:1.15;position:absolute;transform:translateY(-50%)}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){#climb{view-timeline:--climb block}.climb-step:first-child{animation-name:step-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--climb;animation-range:cover 10% cover 30%}.climb-step:nth-child(2){animation-name:step-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--climb;animation-range:cover 30% cover 50%}.climb-step:nth-child(3){animation-name:step-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--climb;animation-range:cover 50% cover 70%}.climb-step:nth-child(4){animation-name:step-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--climb;animation-range:cover 70% cover 90%}#climb .scene-node{animation-name:node-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--climb}#climb .scene-node:first-of-type{animation-range:cover 10% cover 30%}#climb .scene-node:nth-of-type(2){animation-range:cover 30% cover 50%}#climb .scene-node:nth-of-type(3){animation-range:cover 50% cover 70%}#climb .scene-node:nth-of-type(4){animation-range:cover 70% cover 90%}#climb .scene-path{stroke-dashoffset:1px;animation-name:scene-draw;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--climb;animation-range:cover 10% cover 90%}}}.ai-stack{flex-direction:column;gap:10px;margin-top:20px;display:flex}.ai-stack__item{font-family:var(--sans);letter-spacing:-.01em;color:var(--ink);font-size:16px;font-weight:500;line-height:1.3;display:block;position:relative}@media (width>=900px){.ai-stack{pointer-events:none;margin-top:0;position:absolute;inset:0}.ai-stack__item{left:var(--lx,0%);top:var(--ly,0%);max-width:40%;color:var(--muted);font-size:15px;position:absolute;transform:translateY(-50%)}}.ai-h3{font-family:var(--sans);color:var(--ink);margin-top:24px;font-size:15px;font-weight:500}.ai-stage__name,.ai-stage__what{display:block}.ai-stage__name{font-family:var(--mono);letter-spacing:.02em;text-transform:uppercase;color:var(--trace);font-size:11px;font-weight:500;line-height:1.3}.ai-stage__what{margin-top:2px}#ai.act-pin{min-height:0}#ai .act-pin__stage{min-height:0;position:static}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){#ai.act-pin{view-timeline:--ai-pin block}.ai-stack__item:first-child{animation-name:step-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--ai-pin;animation-range:contain contain 20%}.ai-stack__item:nth-child(2){animation-name:step-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--ai-pin;animation-range:contain 20% contain 40%}.ai-stack__item:nth-child(3){animation-name:step-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--ai-pin;animation-range:contain 40% contain 60%}.ai-stack__item:nth-child(4){animation-name:step-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--ai-pin;animation-range:contain 60% contain 80%}.ai-stack__item:nth-child(5){animation-name:step-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--ai-pin;animation-range:contain 80%}#ai .scene-node{animation-name:node-light;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--ai-pin}#ai .scene-node:first-of-type{animation-range:contain contain 20%}#ai .scene-node:nth-of-type(2){animation-range:contain 20% contain 40%}#ai .scene-node:nth-of-type(3){animation-range:contain 40% contain 60%}#ai .scene-node:nth-of-type(4){animation-range:contain 60% contain 80%}#ai .scene-node:nth-of-type(5){animation-range:contain 80%}#ai .scene-path{stroke-dashoffset:1px;animation-name:scene-draw;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--ai-pin;animation-range:contain}}}@media (width<=899px){html:is(.gl,.gl-pending) .act__legend,html:is(.gl,.gl-pending) .shipped-label{color:var(--body)}}.contact-links{flex-direction:column;margin-top:24px;display:flex}.contact-links a{min-height:44px;color:var(--ink);border-top:1px solid var(--line);align-items:center;text-decoration:none;display:flex}.contact-links a:last-child{border-bottom:1px solid var(--line)}.contact-form{flex-direction:column;gap:20px;max-width:32rem;margin-top:32px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink);font-size:15px;font-weight:500}.field input,.field textarea{background:var(--surface);border:1px solid var(--field);color:var(--ink);border-radius:8px;padding:12px 14px;font-size:16px}.field textarea{resize:vertical}.field__error{color:var(--error);min-height:0;font-size:14px}.form-status{color:var(--muted);font-size:15px}.form-status--error{color:var(--error)}.contact-form[data-sent=true] :is(.field,.turnstile,#contact-submit){display:none}.contact-form[data-sent=true] .form-status{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.form-done{text-align:center;outline:none}.form-done__check{fill:none;width:56px;height:56px;stroke:var(--trace);stroke-linecap:round;stroke-linejoin:round;margin:0 auto;display:block}.form-done__check circle{stroke-width:2.5px}.form-done__check path{stroke-width:3px}.form-done__title{color:var(--ink);margin:16px 0 0;font-size:24px;font-weight:600;line-height:1.2}.form-done__text{color:var(--body);margin:8px 0 0;font-size:16px;line-height:1.5}.form-done__email{color:var(--ink);overflow-wrap:anywhere;font-weight:500}.form-done__more{color:var(--body);margin:12px 0 0;font-size:15px}.form-done__more a{color:var(--ink);text-decoration-color:var(--trace);text-underline-offset:3px}.form-done__again{min-height:44px;color:var(--muted);font:13px var(--mono);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-top:16px;padding:0 8px;text-decoration:underline}.form-done__again:focus-visible,.form-done__more a:focus-visible{outline:2px solid var(--trace);outline-offset:3px}@media (prefers-reduced-motion:no-preference){.form-done{animation:.42s cubic-bezier(.23,1,.32,1) both done-in}.form-done__check circle{stroke-dasharray:151;stroke-dashoffset:151px;animation:.6s cubic-bezier(.65,0,.35,1) forwards done-draw}.form-done__check path{stroke-dasharray:36;stroke-dashoffset:36px;animation:.36s cubic-bezier(.65,0,.35,1) .42s forwards done-draw}}.sent-flash{z-index:1000;background:var(--trace);color:var(--on-ink);text-align:center;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:fixed;inset:0}.sent-flash__plane{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:72px;height:72px}.sent-flash__word{letter-spacing:-.03em;margin:8px 0 0;font-size:56px;font-weight:650;line-height:1}.sent-flash__thanks{margin:0;font-size:19px;font-weight:500}@keyframes done-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes done-draw{to{stroke-dashoffset:0}}#contact .act__content{position:relative}.contact-rail-line{left:calc(-1 * var(--rail) + var(--trace-x) - 1.5px);top:calc(-1 * var(--act-pad) - 1px);background:var(--trace);clip-path:inset(0);pointer-events:none;width:3px;position:absolute;bottom:22px}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.contact-rail-line{clip-path:inset(0 0 100%);view-timeline:--seg block;view-timeline-inset:0% 45%;animation-name:seg-draw;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--seg;animation-range:entry}}}.form-row{align-items:center;gap:16px;display:flex;position:relative}.elbow{left:calc(-1 * var(--rail) + var(--trace-x));width:calc(var(--rail) - var(--trace-x));background:var(--trace);clip-path:inset(0);height:3px;position:absolute;top:50%;transform:translateY(-50%)}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.form-row{view-timeline:--form-row block}.elbow{clip-path:inset(0 100% 0 0);animation-name:run-draw;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--form-row;animation-range:entry entry 60%}}}.pad{border:2px solid var(--trace);background:var(--bg);width:18px;height:18px;transition:background var(--dur-pad) var(--ease);border-radius:50%;flex-shrink:0;position:relative}[data-sent=true] .pad{background:var(--trace)}.site-footer{max-width:var(--content-max);padding:40px var(--gutter) 64px;margin:0 auto}.site-footer p{font-family:var(--mono);color:var(--muted);font-size:13px}.site-footer__es{margin-top:6px}.site-footer__es a{min-height:44px;color:var(--muted);text-underline-offset:3px;align-items:center;display:inline-flex}.act.hero{padding-top:clamp(32px,5vw,72px)}@media (width<=899px){.site-header .pill{display:none}.climb-steps,.ai-stack{padding-left:calc(var(--rail) - var(--trace-x))}}.hero,.site-header{--bg:#05070d;--surface:#0a0d16;--ink:#eef1f8;--body:#b3bdd3;--muted:#8c97af;--line:#d6e0ff29;--field:#6f7c99;--trace:#3ccfbd;--on-ink:#070a12}.site-header{z-index:3;max-width:none;padding-left:calc(var(--frame-left) + var(--gutter));padding-right:calc(var(--frame-left) + var(--gutter));position:absolute;top:0;left:0;right:0}.act.hero{isolation:isolate;max-width:none;min-height:100svh;padding-top:96px;padding-bottom:8svh;padding-left:calc(var(--frame-left) + var(--gutter));background:var(--bg);flex-direction:column;justify-content:center;align-items:flex-start;margin:0;display:flex;overflow:hidden}.hero__inner>div{max-width:540px}html.gl .act.hero{background:0 0}.hero__bg,.hero__bg img{z-index:-2;width:100%;height:100%;position:absolute;inset:0}.hero__bg img{object-fit:cover;object-position:62% 50%}@media (width>=900px) and (aspect-ratio>=181/100){.hero__bg{left:var(--frame-left);width:var(--frame-w);right:auto;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 6% 94%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 6% 94%,#0000 100%)}}.hero:after{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0}@media (width<=899px){.act.hero{justify-content:flex-end;padding-top:45svh}html:is(.gl,.gl-pending) .act.hero{overflow:visible}.hero__bg img{object-position:50% 0}.hero:after{background:linear-gradient(#04060b00 84%,#04060b8c 100%)}.hero__inner>div{position:relative}.hero__inner>div:before{content:"";inset:-28px max(-20px, calc(-1 * var(--gutter)));z-index:-1;pointer-events:none;background:#04060bb8;border-radius:28px;position:absolute;box-shadow:0 0 48px 36px #04060bb8}}.shipped-list{flex-direction:column;margin-top:24px;display:flex}.shipped-item{border-top:1px solid var(--line);position:relative}.shipped-item:last-child{border-bottom:1px solid var(--line)}.shipped-item .node{top:26px}.shipped-link{min-height:44px;color:var(--ink);transition:color var(--dur-ui) var(--ease);grid-template-columns:1fr auto;gap:2px 16px;padding:12px 0;text-decoration:none;display:grid}.shipped-name{font-size:17px;font-weight:600}.shipped-label{font-family:var(--mono);color:var(--muted);white-space:nowrap;grid-area:1/2;align-self:center;font-size:12px}.shipped-line{color:var(--body);grid-column:1/-1;font-size:15px;line-height:1.45}.shipped-link:hover .shipped-name,.shipped-link:focus-visible .shipped-name{color:var(--trace)}.shipped-link:focus-visible{outline:2px solid var(--trace);outline-offset:2px}.play-feature{border-top:1px solid var(--line);margin-top:28px;padding:22px 0 26px}.play-feature__name{letter-spacing:-.03em;color:var(--ink);font-size:clamp(26px,1.6vw + 16px,40px);font-weight:650;line-height:1.05}.play-feature .act__body:first-of-type{margin-top:10px}.play-pipe{counter-reset:play-step;margin:22px 0 0;padding:0;list-style:none}.play-step{counter-increment:play-step;padding-left:34px;position:relative}.play-step:before{content:"";background:var(--trace);transform-origin:top;width:2px;position:absolute;top:0;bottom:0;left:7px}.play-step:first-child:before{top:22px}.play-step:last-child:before{bottom:calc(100% - 22px)}.play-step summary{cursor:pointer;min-height:44px;color:var(--ink);border-bottom:1px solid var(--line);grid-template-columns:auto auto 1fr auto;align-items:baseline;column-gap:12px;padding:11px 0;list-style:none;display:grid;position:relative}.play-step summary::-webkit-details-marker{display:none}.play-step summary:before{content:counter(play-step, decimal-leading-zero);font-family:var(--mono);color:var(--trace);font-size:12px}.play-step summary:after{content:"+";font-family:var(--mono);color:var(--trace);font-size:16px;line-height:1}.play-step details[open] summary:after{content:"−"}.play-step summary:focus-visible{outline:2px solid var(--trace);outline-offset:2px}.play-step details:before{content:"";border:2px solid var(--trace);background:var(--trace);box-sizing:border-box;z-index:1;border-radius:50%;width:12px;height:12px;position:absolute;top:16px;left:2px}.play-step:last-child details:before{box-shadow:0 0 0 4px color-mix(in srgb, var(--trace) 22%, transparent)}.play-step__name{font-size:16px;font-weight:600}.play-step__who{text-align:right;color:var(--body);justify-self:end;font-size:14px}.play-step summary:hover .play-step__name{color:var(--trace)}.play-step details p{color:var(--body);margin:0;padding:10px 0 0;font-size:14.5px;line-height:1.5}.play-step__control:before{content:"Control";font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-size:11px;display:block}.play-step details[open] .play-step__control{border-bottom:1px solid var(--line);padding-bottom:14px}.play-feature__links{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.play-feature .pill--quiet{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);background:0 0}.play-feature .pill:focus-visible{outline:2px solid var(--trace);outline-offset:2px}.play-step[data-step-active] .play-step__name{color:var(--trace)}.play-step[data-step-active] summary{border-bottom-color:color-mix(in srgb, var(--trace) 60%, var(--line))}.play-step[data-step-active] summary:before{font-weight:700}@media (prefers-reduced-motion:no-preference){.play-step__name,.play-step summary{transition:color .25s,border-color .25s}}@media (width<=899px){html:is(.gl,.gl-pending) #play .act__content:before{display:none}html:is(.gl,.gl-pending) #play h2,html:is(.gl,.gl-pending) #play .act__body,html:is(.gl,.gl-pending) #play .play-feature__name,html:is(.gl,.gl-pending) #play .play-step{background:#04060be6;box-shadow:0 0 16px 10px #04060be6}html.gl #play [data-step-past],html.gl #shipped [data-step-past]{opacity:0;pointer-events:none;transition:opacity .3s}html.gl #play .play-feature{transition:border-top-color .3s}html.gl #play .play-feature:has(>.play-feature__name[data-step-past]){border-top-color:#0000}}html:is(.gl,.gl-pending) .play-step{padding-left:0}html:is(.gl,.gl-pending) .play-step:before,html:is(.gl,.gl-pending) .play-step details:before{display:none}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.play-step{view-timeline:--play-step block;view-timeline-inset:0% 45%}.play-step:before{animation-name:play-joint;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--play-step;animation-range:entry}.play-step details:before{animation-name:play-node;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--play-step;animation-range:entry entry 40%}}}@keyframes play-joint{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes play-node{0%{background:var(--bg)}to{background:var(--trace)}}.site-header__nav{align-items:center;gap:20px;display:flex}.site-header__cv{min-height:44px;font-family:var(--mono);color:var(--ink);text-underline-offset:4px;text-decoration:underline;text-decoration-color:var(--muted);align-items:center;font-size:13px;display:inline-flex}@media (width<=899px){.site-header__cv{display:none}}.contact-links__row{justify-content:space-between;gap:16px}.contact-links__meta{font-family:var(--mono);color:var(--body);font-size:13px}.field--trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.turnstile:empty{display:none}.hero__today{font-size:clamp(14px,.3vw + 13px,16px);line-height:1.55}.play-intro{margin-top:16px}.experiment-3d{align-items:center;gap:20px;margin:28px 0 12px;display:grid}.experiment-3d__label{letter-spacing:-.025em;color:var(--ink);font-size:clamp(22px,1vw + 14px,30px);font-weight:600;line-height:1.12}.experiment-3d__line{margin-top:10px}@media (width>=900px){.experiment-3d{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px}}#climb .act-pin__stage{min-height:0;position:static}.climb-figures{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:28px 0 4px;padding:0;list-style:none;display:grid}.climb-figure{flex-direction:column;gap:6px;min-width:0;display:flex}.climb-figure__value{letter-spacing:-.04em;color:var(--ink);font-size:clamp(26px,3.2vw + 12px,44px);font-weight:600;line-height:1}.climb-figure__label{overflow-wrap:anywhere;font-size:12px;line-height:1.3}@media (width>=900px){.climb-figure__label{font-size:13px}}.climb-liaison{margin-top:22px}.shipped-more{margin-top:12px}html:is(.gl,.gl-pending) .shipped-item:not([data-active]):not(:hover):not(:focus-within) .shipped-line{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html.gl .shipped-item .shipped-line{transition:opacity .25s}.experiment-3d__piece{min-width:0}@media (width>=900px){html:is(.gl,.gl-pending) .experiment-3d{grid-template-columns:minmax(0,1fr)}html:is(.gl,.gl-pending) .experiment-3d__piece{z-index:3;left:calc(var(--frame-left,0px) + .69 * min(100vw, 180vh));width:min(340px,24vw);opacity:var(--ship-vis,0);pointer-events:var(--ship-pe,none);position:fixed;top:50%;transform:translate(-50%,-50%)}}.flow-label{z-index:3;opacity:0;pointer-events:none;white-space:nowrap;color:var(--ink);letter-spacing:-.01em;will-change:transform, opacity;background:#04060be0;border-radius:8px;padding:3px 10px 4px;font-size:15px;font-weight:600;line-height:1.2;position:fixed;top:0;left:0;box-shadow:0 0 0 1px #d6e0ff1a,0 0 16px 6px #04060b8c}@media (width<=899px){.flow-label{z-index:1;padding:2px 8px 3px;font-size:13px}}html:not(.gl) .flow-label{display:none}html:is(.gl,.gl-pending) .msc__prompt{background:#04060bdb;border-radius:8px;padding:6px 10px;box-shadow:0 0 14px 6px #04060bb3}html:is(.gl,.gl-pending) .msc__prompt-text{color:var(--ink)}.m-stage,.m-progress{display:none}.m-carousel,.m-runway,.m-sticky{display:contents}.m-live{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=899px){html:is(.gl,.gl-pending) :is(#ai,#play,#shipped,#climb){min-height:0;padding-top:var(--act-pad);padding-bottom:var(--act-pad);justify-content:flex-start;display:block}html:is(.gl,.gl-pending) :is(#ai,#climb) .act-pin__stage{justify-content:flex-start;min-height:0;padding:0;display:block}html:is(.gl,.gl-pending) :is(#ai,#play,#shipped,#climb) :is(.act__content,.scene):before{display:none}html:is(.gl,.gl-pending) #play :is(h2,.act__body,.play-feature__name,.play-step){box-shadow:none;background:0 0}html:is(.gl,.gl-pending) :is(#play,#shipped) [data-step-past]{opacity:1;pointer-events:auto}html:is(.gl,.gl-pending) .flow-label{display:none}html:is(.gl,.gl-pending) .m-stage{width:auto;max-width:none;margin:8px calc(-1 * var(--gutter)) 24px;height:clamp(220px,42svh,360px);display:block}html:is(.gl,.gl-pending) .m-runway{height:calc(100svh + (var(--n) - 1) * 55svh);display:block;position:relative}html:is(.gl,.gl-pending) .m-sticky{flex-direction:column;height:100svh;display:flex;position:sticky;top:0}html:is(.gl,.gl-pending) .m-sticky>.m-stage{flex:1 1 0;height:auto;min-height:160px;max-height:360px;margin-bottom:14px}html:is(.gl,.gl-pending) .m-snap{pointer-events:none;scroll-snap-align:start;scroll-snap-stop:always;width:1px;height:1px;position:absolute;left:0}html:is(.gl,.gl-pending){scroll-snap-type:y proximity}html:is(.gl,.gl-pending) .m-carousel{flex:none;display:block;position:relative}html:is(.gl,.gl-pending) [data-m-carousel]{touch-action:pan-y pinch-zoom;width:auto;max-width:none;padding:0 var(--gutter) 4px;margin:0 calc(-1 * var(--gutter));scrollbar-width:none;flex-direction:row;gap:12px;display:flex;overflow:clip}html:is(.gl,.gl-pending) [data-m-carousel]::-webkit-scrollbar{display:none}html:is(.gl,.gl-pending) [data-m-carousel]:focus-visible{outline:2px solid var(--trace);outline-offset:-2px}html:is(.gl,.gl-pending) [data-m-carousel]>li{scroll-snap-align:none;min-width:0;transform:translate3d(var(--m-x,0px), 0, 0);background:var(--surface);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:18px;flex-direction:column;flex:0 0 calc(100% - 40px);gap:10px;padding:20px;transition:transform .45s cubic-bezier(.23,1,.32,1);display:flex}html:is(.gl,.gl-pending) #play [data-m-carousel]>li{background:var(--surface)}html:is(.gl,.gl-pending) [data-m-carousel]>li[data-m-active]{border-color:#3ccfbd8c}html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step details{flex:1;min-width:0}html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step summary{cursor:default;border:0;flex-direction:column;align-items:flex-start;gap:10px;min-height:0;padding:0;display:flex}html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step summary:before{font-size:13px}html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step summary:after{display:none}html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step__name,html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step summary:hover .play-step__name,html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step[data-step-active] .play-step__name{color:var(--ink);font-size:24px;font-weight:500;line-height:1.15}html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step__who{text-align:left;color:var(--trace);border:1px solid #3ccfbd73;border-radius:999px;justify-self:start;padding:5px 10px;font-size:13px;font-weight:600;line-height:1.2}html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step details p{margin:10px 0 0;padding:0}html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step__delivers{color:var(--body);font-size:16px;line-height:1.5}html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step details[open] .play-step__control,html:is(.gl,.gl-pending) [data-m-carousel=play] .play-step__control{color:var(--muted);border-bottom:0;border-left:2px solid #3ccfbd59;padding:0 0 0 12px;font-size:14px;line-height:1.5}html:is(.gl,.gl-pending) [data-m-carousel=shipped] .shipped-item{position:relative}html:is(.gl,.gl-pending) [data-m-carousel=shipped] .shipped-link{flex-direction:column;flex:1;gap:10px;min-width:0;min-height:168px;padding:0;display:flex}html:is(.gl,.gl-pending) [data-m-carousel=shipped] .shipped-link:after{content:"";border-radius:18px;position:absolute;inset:0}html:is(.gl,.gl-pending) [data-m-carousel=shipped] .shipped-link:focus-visible{outline:none}html:is(.gl,.gl-pending) [data-m-carousel=shipped] .shipped-link:focus-visible:after{outline:2px solid var(--trace);outline-offset:2px}html:is(.gl,.gl-pending) [data-m-carousel=shipped] .shipped-name{color:var(--ink);font-size:22px;font-weight:500;line-height:1.2}html:is(.gl,.gl-pending) [data-m-carousel=shipped] .shipped-line{color:var(--body);font-size:16px;line-height:1.5}html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel]>li{gap:8px;padding:16px}html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel=play] .play-step summary{gap:8px}html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel=play] .play-step details p{margin-top:8px}html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel=play] .play-step__name,html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel=play] .play-step summary:hover .play-step__name,html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel=play] .play-step[data-step-active] .play-step__name{font-size:22px}html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel=play] .play-step__who{padding:4px 9px;font-size:12px}html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel=play] .play-step__delivers{font-size:15px;line-height:1.45}html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel=play] .play-step details[open] .play-step__control,html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel=play] .play-step__control{font-size:13px;line-height:1.45}html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel=shipped] .shipped-name{font-size:20px}html:is(.gl,.gl-pending) [data-m-fit] [data-m-carousel=shipped] .shipped-line{font-size:15px;line-height:1.45}html:is(.gl,.gl-pending) [data-m-fit="2"] [data-m-carousel]>li{padding:14px}html:is(.gl,.gl-pending) [data-m-fit="2"] [data-m-carousel=play] .play-step__name,html:is(.gl,.gl-pending) [data-m-fit="2"] [data-m-carousel=play] .play-step summary:hover .play-step__name,html:is(.gl,.gl-pending) [data-m-fit="2"] [data-m-carousel=play] .play-step[data-step-active] .play-step__name{font-size:20px}html:is(.gl,.gl-pending) [data-m-fit="2"] [data-m-carousel=play] .play-step__delivers{font-size:14px;line-height:1.4}html:is(.gl,.gl-pending) [data-m-fit="2"] [data-m-carousel=play] .play-step details[open] .play-step__control,html:is(.gl,.gl-pending) [data-m-fit="2"] [data-m-carousel=play] .play-step__control{font-size:12px;line-height:1.4}html:is(.gl,.gl-pending) [data-m-fit="2"] [data-m-carousel=shipped] .shipped-line{font-size:14px;line-height:1.4}html:is(.gl,.gl-pending) [data-m-carousel=shipped] .shipped-item:not([data-active]):not(:hover):not(:focus-within) .shipped-line{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;position:static;overflow:visible}html:is(.gl,.gl-pending) [data-m-carousel=shipped] .shipped-label{color:var(--muted);white-space:normal;margin-top:auto;font-size:12px}html:is(.gl,.gl-pending) [data-m-carousel=shipped] .shipped-label:after{content:"↗";content:"↗" / "";color:var(--trace);margin-left:6px}html:is(.gl,.gl-pending) .m-progress{align-items:center;gap:12px;margin:0 0 14px;display:flex}html:is(.gl,.gl-pending) .m-progress__count{font-family:var(--mono);color:var(--body);white-space:pre;font-size:13px}html:is(.gl,.gl-pending) .m-progress__cur{color:var(--trace)}html:is(.gl,.gl-pending) .m-progress__track{background:var(--line);border-radius:1px;flex:1;height:2px;overflow:hidden}html:is(.gl,.gl-pending) .m-progress__fill{background:var(--trace);height:100%;transition:width .3s cubic-bezier(.23,1,.32,1);display:block}html:is(.gl,.gl-pending) .m-progress__btn{border:1px solid var(--line);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}html:is(.gl,.gl-pending) .m-progress__btn:disabled{opacity:.35;cursor:default}html:is(.gl,.gl-pending) .m-progress__btn:focus-visible{outline:2px solid var(--trace);outline-offset:2px}}@media (width<=899px) and (prefers-reduced-motion:reduce){html:is(.gl,.gl-pending) [data-m-carousel]>li{transition:none}}@media (width<=899px){html:is(.gl,.gl-pending) #play .play-feature__links{justify-content:center;margin:40px 0 8px}html:is(.gl,.gl-pending) #play .play-feature__play{gap:10px;min-width:min(100%,280px);min-height:56px;padding:0 32px;font-size:17px;font-weight:600;box-shadow:0 0 0 1px #3ccfbd99,0 12px 40px -10px #3ccfbd8c}html:is(.gl,.gl-pending) #play .play-feature__play:after{content:"↗";content:"↗" / "";font-size:18px;line-height:1}html:is(.gl,.gl-pending) #climb{padding-bottom:32px}html:is(.gl,.gl-pending) #contact{justify-content:flex-start;min-height:0;padding-top:max(96px,18svh);padding-bottom:24px}html:is(.gl,.gl-pending) #contact .form-row{justify-content:center}html:is(.gl,.gl-pending) .site-footer{padding:24px var(--gutter) 32px}html:is(.gl,.gl-pending) #climb .scene{width:0;height:0;min-height:0;margin:0;position:fixed;inset:auto;overflow:visible}html:is(.gl,.gl-pending) #climb .climb-steps{gap:0;margin:0;padding:0}html:is(.gl,.gl-pending) #climb .climb-step{z-index:1;opacity:0;pointer-events:none;will-change:transform, opacity;color:#b3bdd3;white-space:normal;background:#04060beb;border-radius:8px;width:112px;padding:3px 8px 4px;font-size:12px;font-weight:600;line-height:1.25;animation:none;position:fixed;top:0;left:0;box-shadow:0 0 0 1px #d6e0ff1a}html:is(.gl,.gl-pending) #climb .climb-step.lit{color:#eef1f8}html:is(.gl,.gl-pending) .site-footer{z-index:2;position:relative}}
