@font-face{font-stretch:62% 125%;font-family:display;src:url(../media/archivo_latin_wdth_wght-s.p.1h4hl0m83hjjz.woff2)format("woff2");font-display:swap;font-weight:100 900;font-style:normal}@font-face{font-family:display Fallback;src:local(Arial);ascent-override:85.41%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:102.8%}.display_843245bb-module__UrHkOa__className{font-family:display,display Fallback}.display_843245bb-module__UrHkOa__variable{--f-display:"display", "display Fallback"}
@font-face{font-family:body;src:url(../media/instrument_sans_latin_wght-s.p.3h2wr6o8p949u.woff2)format("woff2");font-display:swap;font-weight:400 700;font-style:normal}@font-face{font-family:body Fallback;src:local(Arial);ascent-override:93.97%;descent-override:24.22%;line-gap-override:0.0%;size-adjust:103.22%}.body_49b5f391-module__a08M6G__className{font-family:body,body Fallback}.body_49b5f391-module__a08M6G__variable{--f-body:"body", "body Fallback"}
@font-face{font-family:mono;src:url(../media/geist_mono_latin_wght.p.1t7tphccnfzmb.woff2)format("woff2");font-display:swap;font-weight:100 900;font-style:normal}.mono_94851bb3-module__7ND6fG__className{font-family:mono}.mono_94851bb3-module__7ND6fG__variable{--f-mono:"mono"}
.v3-nav{align-items:center}.v3-nav a,.v3-head-cta{white-space:nowrap}.v3-brand,.v3-head-actions{flex:none}@media (min-width:1024px) and (max-width:1199px){.v3 .v3-nav{letter-spacing:.1em;gap:26px}}.v3-svc-btn{all:unset;cursor:pointer;min-height:44px;color:var(--fg-2);align-items:center;gap:8px;transition:color .25s;display:inline-flex;position:relative}.v3-svc-btn:after{content:"";width:6px;height:6px;transition:transform .3s var(--ease-out), margin .3s var(--ease-out);border-bottom:1.4px solid;border-right:1.4px solid;margin-top:-4px;transform:rotate(45deg)}.v3-svc-btn:hover,.v3-svc-btn[aria-expanded=true],.v3-svc-btn[data-current]{color:var(--fg)}.v3-svc-btn[aria-expanded=true]:after{margin-top:3px;transform:rotate(225deg)}.v3-svc-btn:focus-visible{outline:2px solid var(--accent-bright);outline-offset:4px;border-radius:4px}.v3-svc-panel{width:min(1120px, calc(100% - 2 * var(--gutter)));border:1px solid var(--line);font:400 15px/1.4 var(--f-body), system-ui, sans-serif;letter-spacing:normal;text-transform:none;opacity:0;visibility:hidden;transition:opacity .25s, transform .4s var(--ease-out), visibility 0s .4s;background:#04060a;border-top:0;border-radius:0 0 18px 18px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) minmax(0,1fr);gap:40px;margin-inline:auto;padding:32px 36px 34px;display:grid;position:absolute;top:100%;left:0;right:0;transform:translateY(-8px);box-shadow:0 40px 80px -40px #000000e6}.v3-svc-panel[data-open]{opacity:1;visibility:visible;transition:opacity .25s, transform .4s var(--ease-out);transform:none}.v3-svc-col{align-content:start;gap:14px;min-width:0;display:grid}.v3-svc-col ul{border-top:1px solid var(--line);gap:2px;padding-top:8px;display:grid}.v3 .v3-svc-panel a{white-space:normal;min-height:0;color:var(--fg);border-radius:10px;gap:2px;margin:0 -10px;padding:8px 10px;text-decoration:none;transition:background-color .2s;display:grid}.v3 .v3-svc-panel a:after{display:none}.v3 .v3-svc-panel a:hover,.v3 .v3-svc-panel a:focus-visible{background:#2e8dff1a}.v3 .v3-svc-panel a[aria-current=page] .v3-svc-name{color:var(--accent-bright)}.v3-svc-name{font-size:15px;font-weight:500}.v3-svc-line{color:var(--fg-2);font-size:13px}.v3-svc-hub .v3-svc-name{font:300 1.6rem/1 var(--f-display), Arial, sans-serif;letter-spacing:-.03em}.v3-svc-hub .v3-svc-line{margin-top:6px}.v3 .v3-svc-panel .v3-svc-cta{color:#04060a;border-radius:999px;justify-self:start;min-height:44px;margin:4px 0 0;padding:0 20px;display:inline-flex}.v3 .v3-svc-panel .v3-svc-cta:hover{background:#eef2f7}@media (prefers-reduced-motion:reduce){.v3-svc-panel,.v3-svc-panel[data-open]{transition:none;transform:none}}.v3-sheet-grp{border-bottom:1px solid var(--line)}.v3-sheet-grp summary{cursor:pointer;font-family:var(--f-display), Arial, sans-serif;letter-spacing:-.04em;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0 14px;font-size:clamp(2.2rem,1.6rem + 3vw,3rem);font-weight:300;line-height:1;list-style:none;display:flex}.v3-sheet-grp summary::-webkit-details-marker{display:none}.v3-sheet-grp summary:after{content:"+";font:300 1.6rem/1 var(--f-body), sans-serif;color:var(--accent);transition:transform .3s var(--ease-out)}.v3-sheet-grp[open] summary:after{transform:rotate(45deg)}.v3-sheet-grp ul{padding:0 0 14px;display:grid}.v3 .v3-sheet-grp a{font:400 1.05rem/1.3 var(--f-body), system-ui, sans-serif;letter-spacing:normal;color:var(--fg-2);border-bottom:0;padding:11px 0}.v3 .v3-sheet-grp a:after{font-size:1rem}.v3 .v3-sheet-grp a[aria-current=page]{color:var(--accent)}
.ft{background:var(--bg);color:var(--fg);padding:0 var(--gutter) calc(28px + env(safe-area-inset-bottom,0px));position:relative}.ft-wrap{max-width:var(--maxw);margin:0 auto}.ft-cta{margin:0 calc(-1 * var(--gutter));padding:clamp(64px, 8vw, 112px) var(--gutter);background:var(--dark);border-top:1px solid var(--line);border-bottom:1px solid var(--line);isolation:isolate;position:relative;overflow:hidden}.ft-cta:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(50% 90% at 85%,#2e8dff1f,#0000 70%);position:absolute;inset:0}.ft-cta-in{align-items:end;gap:32px;display:grid}.ft-cta-h{font-family:var(--f-display), Arial, sans-serif;letter-spacing:-.045em;text-wrap:balance;max-width:16ch;font-size:clamp(2.2rem,1.1rem + 3.6vw,4.6rem);font-weight:300;line-height:.98}.ft-cta-h .accent{display:block}.ft-cta-act{flex-wrap:wrap;align-items:center;gap:14px 28px;display:flex}.ft-phone{align-content:center;gap:4px;min-height:44px;font-size:17px;font-weight:500;text-decoration:none;display:inline-grid}.ft-phone:hover span:last-child{color:var(--accent-bright)}@media (min-width:900px){.ft-cta-in{grid-template-columns:minmax(0,1fr) auto;gap:48px}}.ft-k{font:500 11.5px/1.3 var(--f-mono), ui-monospace, monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2)}.ft-cols{grid-template-columns:1fr 1fr;gap:44px 24px;padding:clamp(56px,7vw,96px) 0 clamp(48px,6vw,80px);display:grid}.ft-brand{width:fit-content;min-height:44px;font:500 12.5px/1 var(--f-mono), ui-monospace, monospace;letter-spacing:.2em;text-transform:uppercase;grid-column:1/-1;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.ft-brand img{width:20px;height:auto}.ft-col{align-content:start;gap:14px;min-width:0;display:grid}.ft-col ul{gap:2px;display:grid}.ft-col a{min-height:40px;color:var(--fg);overflow-wrap:anywhere;align-items:center;font-size:15.5px;text-decoration:none;transition:color .2s;display:inline-flex}.ft-col a:hover{color:var(--accent-bright)}.ft-area{color:var(--fg-2);max-width:26ch;padding-top:6px;font-size:14.5px;line-height:1.5}.ft-col a{line-height:1.3}@media (min-width:820px){.ft-cols{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1024px){.ft-cols{grid-template-columns:minmax(0,1fr) repeat(4,minmax(0,1fr));column-gap:40px}.ft-brand{grid-column:auto;align-self:start}}.ft-base{border-top:1px solid var(--line);color:var(--fg-2);font:500 11.5px/1.5 var(--f-mono), ui-monospace, monospace;letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;padding-top:20px;display:flex}.ft-base nav{flex-wrap:wrap;gap:4px 22px;display:flex}.ft-base a{min-height:40px;color:inherit;align-items:center;text-decoration:none;display:inline-flex}.ft-base a:hover{color:var(--fg)}@media (max-width:1023px){.ft{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}}.v3:has(.closer3,.hm-closer) .ft-cta{display:none}
.v3{--gutter:clamp(18px, 4vw, 64px);--maxw:1320px;--sec-pad:clamp(88px, 11vw, 168px);--radius:14px;--ease-out:cubic-bezier(.16, 1, .3, 1);--bg:#04060a;--surface:#0b0f16;--surface-2:#111722;--line:#eef2f71f;--line-2:#eef2f742;--fg:#eef2f7;--fg-2:#a3aebc;--accent:#2e8dff;--accent-on:#04060a;--dark:#0b0f16;--dark-2:#111722;--dark-line:#eef2f71f;--on-dark:#eef2f7;--on-dark-2:#a3aebc;--accent-bright:#5aa7ff;--h-weight:300;--h-track:-.045em;font-family:var(--f-body), system-ui, sans-serif;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-size:17px;line-height:1.6}html:has(.v3){background:#04060a}html:has(.v3) body{background:#04060a}.v3 *,.v3 :before,.v3 :after{box-sizing:border-box}.v3 h1,.v3 h2,.v3 h3,.v3 h4,.v3 p,.v3 ol,.v3 ul,.v3 figure,.v3 dl,.v3 dd{margin:0}.v3 ol,.v3 ul{padding:0;list-style:none}:where(.v3) a{color:inherit}.v3 img,.v3 video{max-width:100%}.v3 :focus-visible{outline:2px solid var(--accent-bright);outline-offset:3px;border-radius:4px}.v3 ::selection{color:#fff;background:#2e8dff66}.ui-light{--bg:#eef0f3;--surface:#fff;--surface-2:#f6f7f9;--line:#d5dae0;--line-2:#b9c0c9;--fg:#0f1216;--fg-2:#49515c;--accent:#1764d6;--accent-bright:#1764d6;--accent-on:#fff;color:var(--fg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.eyebrow{font:500 12px/1.3 var(--f-mono), ui-monospace, monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);align-items:center;gap:12px;display:flex}.sec-head.center .eyebrow{justify-content:center}.h-display,.h-section,.h-card{font-family:var(--f-display), Arial, sans-serif;font-weight:var(--h-weight);letter-spacing:var(--h-track);text-wrap:balance}.h-display{font-size:clamp(2.7rem,.9rem + 6.4vw,7.4rem);line-height:.92}.h-section{letter-spacing:-.042em;font-size:clamp(2.5rem,1.1rem + 3.9vw,5.2rem);line-height:.95}.h-card{letter-spacing:-.028em;font-size:clamp(1.4rem,1.15rem + .7vw,1.85rem);font-weight:400;line-height:1.08}.accent{color:var(--accent)}.lead{color:var(--fg-2);max-width:54ch;font-size:clamp(1.04rem,.96rem + .4vw,1.26rem);line-height:1.55}.muted{color:var(--fg-2)}.mono{font-family:var(--f-mono), ui-monospace, monospace;font-variant-numeric:tabular-nums}.link-arrow{min-height:44px;font:500 12px/1 var(--f-mono), ui-monospace, monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--fg);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.link-arrow:after{content:"→";color:var(--accent);font-family:var(--f-body), sans-serif;letter-spacing:0;transition:transform .3s var(--ease-out);font-size:15px}.link-arrow:hover:after{transform:translate(4px)}.sec{padding:var(--sec-pad) var(--gutter);position:relative}.sec-inner{--sec-gap:clamp(44px, 6vw, 88px);max-width:var(--maxw);gap:var(--sec-gap);flex-direction:column;margin:0 auto;display:flex}.sec-head{gap:22px;max-width:900px;display:grid}.sec-head.center{text-align:center;justify-items:center;margin:0 auto}.sec-head .lead{margin-top:4px}.sec-dark,.sec-surface{--bg:var(--dark);--surface:var(--dark-2);--surface-2:#161d2a;background:var(--bg);color:var(--fg);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.sec-dark+.sec-dark,.sec-surface+.sec-surface,.sec-dark+.sec-surface,.sec-surface+.sec-dark{border-top:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,2.6vw,36px)}.btn{height:auto;min-height:50px;font:600 15px/1 var(--f-body), system-ui, sans-serif;white-space:nowrap;cursor:pointer;transition:transform .3s var(--ease-out), background-color .3s, border-color .3s, color .3s;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 24px;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{color:#04060a;background:#eef2f7}.btn-primary:after{content:"→";transition:transform .3s var(--ease-out)}.btn-primary:hover{background:#fff}.btn-primary:hover:after{transform:translate(4px)}.ui-light .btn-primary{color:#fff;background:#0f1216}.btn-ghost{border-color:var(--line-2);color:var(--fg);background:0 0}.btn-ghost:hover{border-color:var(--fg)}.btn-sm{min-height:44px;padding:0 18px;font-size:14px}.cta-row{flex-wrap:wrap;gap:12px;display:flex}.v3-head{z-index:40;padding:calc(12px + env(safe-area-inset-top,0px)) var(--gutter) 12px;color:var(--fg);font:500 12px/1 var(--f-mono), ui-monospace, monospace;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:24px;transition:background-color .35s,border-color .35s;display:flex;position:fixed;inset:0 0 auto}.v3-head[data-solid]{border-bottom-color:var(--line);background:#04060a}.v3-brand{min-height:44px;font:500 12.5px/1 var(--f-mono), ui-monospace, monospace;letter-spacing:.2em;text-transform:uppercase;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.v3-brand img{width:20px;height:auto}.v3-nav{gap:34px;display:none}.v3-nav a{min-height:44px;color:var(--fg-2);align-items:center;text-decoration:none;transition:color .25s;display:inline-flex;position:relative}.v3-nav a:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .35s var(--ease-out);position:absolute;bottom:10px;left:0;right:0;transform:scaleX(0)}.v3-nav a:hover,.v3-nav a[aria-current=page]{color:var(--fg)}.v3-nav a[aria-current=page]:after,.v3-nav a:hover:after{transform:none}.v3-head-actions{align-items:center;gap:10px;display:flex}.v3-head-cta{border:1px solid var(--line-2);border-radius:999px;align-items:center;gap:10px;min-height:44px;padding:0 18px;text-decoration:none;transition:border-color .25s,background-color .25s,color .25s;display:inline-flex}.v3-head-cta:after{content:"→";font-family:var(--f-body), sans-serif;letter-spacing:0;transition:transform .3s var(--ease-out)}.v3-head-cta:hover{color:#04060a;background:#eef2f7;border-color:#eef2f7}.v3-head-cta:hover:after{transform:translate(3px)}.v3-menu-btn{border:1px solid var(--line-2);width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.v3-menu-btn span,.v3-menu-btn span:before,.v3-menu-btn span:after{width:16px;height:1.5px;transition:transform .3s var(--ease-out);background:currentColor;display:block;position:relative}.v3-menu-btn span:before,.v3-menu-btn span:after{content:"";position:absolute;left:0}.v3-menu-btn span:before{top:-5px}.v3-menu-btn span:after{top:5px}.v3-menu-btn[aria-expanded=true] span{background:0 0}.v3-menu-btn[aria-expanded=true] span:before{transform:translateY(5px)rotate(45deg)}.v3-menu-btn[aria-expanded=true] span:after{transform:translateY(-5px)rotate(-45deg)}.v3-sheet{z-index:39;padding:calc(96px + env(safe-area-inset-top,0px)) var(--gutter) calc(32px + env(safe-area-inset-bottom,0px));background:#04060a;flex-direction:column;gap:28px;display:flex;position:fixed;inset:0;overflow-y:auto}.v3-sheet nav{border-top:1px solid var(--line);flex-direction:column;display:flex}.v3-sheet nav a{font-family:var(--f-display), Arial, sans-serif;letter-spacing:-.04em;border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0 14px;font-size:clamp(2.2rem,1.6rem + 3vw,3rem);font-weight:300;line-height:1;text-decoration:none;display:flex}.v3-sheet nav a:after{content:"→";font:400 1.2rem/1 var(--f-body), sans-serif;color:var(--accent)}.v3-sheet nav a[aria-current=page]{color:var(--accent)}.v3-sheet .btn{width:100%}@media (min-width:1024px){.v3-nav{display:flex}.v3-menu-btn,.v3-sheet{display:none}}@media (max-width:400px){.v3-head-cta{gap:8px;padding:0 14px}}@media (max-width:359px){.v3-brand span{display:none}}.v3-bookbar{z-index:30;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);visibility:hidden;transition:transform .4s var(--ease-out), visibility 0s .4s;background:#04060a;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(110%)}.v3-bookbar[data-show]{visibility:visible;transition:transform .4s var(--ease-out);transform:none}.v3-bookbar .btn{flex:1}.v3-bookbar .btn-ghost{flex:none}@media (min-width:1024px){.v3-bookbar{display:none}}.device{--rx:0deg;--ry:0deg;transform:rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;transition:transform .5s var(--ease-out);position:relative}.device-screen{aspect-ratio:16/10;background:#12161d;border:7px solid #12161d;border-bottom-width:9px;border-radius:10px 10px 4px 4px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #eef2f724,0 40px 80px -30px #000000e6,0 0 120px -40px #2e8dff40}.device-screen img,.device-screen video{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.device-base{background:linear-gradient(#59616d,#2a3039 55%,#171b22);border-radius:0 0 12px 12px;height:9px;margin:0 -6%;box-shadow:0 0 0 1px #eef2f71a}.device-phone{aspect-ratio:9/19;background:#12161d;border:4px solid #12161d;border-radius:14px;width:24%;position:absolute;bottom:-6%;right:-4%;overflow:hidden;transform:translateZ(40px);box-shadow:0 0 0 1px #eef2f729,0 24px 40px -14px #000000e6}.device-phone img,.device-phone video{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.work-grid{scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--gutter));padding:8px var(--gutter) 24px;scrollbar-width:none;grid-auto-columns:min(84vw,420px);grid-auto-flow:column;gap:20px;display:grid;overflow-x:auto}.work-grid::-webkit-scrollbar{display:none}@media (min-width:1024px){.work-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;row-gap:56px;margin:0;padding:0;overflow:visible}}.work-card{scroll-snap-align:start;perspective:1100px;flex-direction:column;gap:18px;min-width:0;text-decoration:none;display:flex}.work-meta{gap:6px;display:grid}.work-tags{font:500 11.5px/1.3 var(--f-mono), ui-monospace, monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2)}.work-line{color:var(--fg-2);font-size:15.5px}@media (prefers-reduced-motion:no-preference){html:not([data-motion=static]) .v3 [data-reveal]{opacity:0;transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);transform:translateY(24px)}html:not([data-motion=static]) .v3 [data-reveal][data-in]{opacity:1;transform:none}html:not([data-motion=static]) .v3 [data-reveal] :is(.h-section,.h-display){clip-path:inset(-.3em -.2em 100%);transition:clip-path 1.2s var(--ease-out) 80ms, transform 1.2s var(--ease-out) 80ms;transform:translateY(.4em)}html:not([data-motion=static]) .v3 [data-reveal][data-in] :is(.h-section,.h-display){clip-path:inset(-.3em -.2em);transform:none}}
