@font-face{font-family:"Instrument Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-400-normal.DnYpCC2O.woff2) format("woff2"),url(/_astro/instrument-serif-latin-400-normal.BVbkICAY.woff) format("woff");unicode-range: U+0020-007E, U+00A9, U+00B1, U+00B7, U+00C0, U+00D7, U+2013-2014, U+201C-201D, U+2026, U+203A, U+20B9, U+2192-2193, U+2212, U+25CF, U+2713, U+2715;}@font-face{font-family:"Instrument Serif";font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-400-italic.DKMiL14s.woff2) format("woff2"),url(/_astro/instrument-serif-latin-400-italic.u__WvvIK.woff) format("woff");unicode-range: U+0020-007E, U+00A9, U+00B1, U+00B7, U+00C0, U+00D7, U+2013-2014, U+201C-201D, U+2026, U+203A, U+20B9, U+2192-2193, U+2212, U+25CF, U+2713, U+2715;}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff) format("woff");unicode-range: U+0020-007E, U+00A9, U+00B1, U+00B7, U+00C0, U+00D7, U+2013-2014, U+201C-201D, U+2026, U+203A, U+20B9, U+2192-2193, U+2212, U+25CF, U+2713, U+2715;}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-latin-600-normal.C8RAYTDA.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-600-normal.BfsvjouI.woff) format("woff");unicode-range: U+0020-007E, U+00A9, U+00B1, U+00B7, U+00C0, U+00D7, U+2013-2014, U+201C-201D, U+2026, U+203A, U+20B9, U+2192-2193, U+2212, U+25CF, U+2713, U+2715;}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/jetbrains-mono-latin-700-normal.BYuf6tUa.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-700-normal.D3wTyLJW.woff) format("woff");unicode-range: U+0020-007E, U+00A9, U+00B1, U+00B7, U+00C0, U+00D7, U+2013-2014, U+201C-201D, U+2026, U+203A, U+20B9, U+2192-2193, U+2212, U+25CF, U+2713, U+2715;}:root{--bg: #F7F5F0;--bg-card: #FFFFFF;--bg-soft: #EFEBE2;--ink: #0E1116;--ink-2: #2A2F3A;--muted: #6B6F78;--line: #E2DDD2;--line-2: #D4CFC2;--accent: #2E5BFF;--accent-ink: #1A3FCC;--accent-soft: #E5EBFF;--green: #1F7A4D;--green-soft: #DDF1E6;--red: #C8473A;--red-soft: #FBE5E2;--amber: #D89826;--amber-soft: #FDF1DA;--font-serif: "Instrument Serif", "Times New Roman", Georgia, serif;--font-sans: "Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: 1rem;--text-lg: 1.0625rem;--text-xl: 1.1875rem;--text-2xl: 1.375rem;--text-3xl: 1.75rem;--text-4xl: 2.25rem;--text-display: clamp(2.5rem, 5vw, 4rem);--text-hero: clamp(3.5rem, 8vw, 7rem);--leading-tight: 1.05;--leading-snug: 1.3;--leading-normal: 1.55;--leading-relaxed: 1.65;--tracking-tightest: -.03em;--tracking-tighter: -.02em;--tracking-tight: -.01em;--tracking-normal: 0;--tracking-wide: .08em;--tracking-wider: .12em;--tracking-widest: .14em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-14: 56px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--space-28: 112px;--space-32: 128px;--bp-sm: 40rem;--bp-md: 48rem;--bp-lg: 61.3125rem;--section-y: clamp(3.25rem, 8vw + 2rem, 6rem);--section-y-tight: clamp(2.5rem, 5vw + 1.5rem, 4rem);--section-y-loose: clamp(4rem, 10vw + 2rem, 7.5rem);--page-max: 1280px;--page-narrow: 920px;--page-content: 720px;--page-pad: 32px;--page-pad-mobile: 20px;--page-pad-fluid: clamp(16px, 4vw + 8px, 32px);--radius-sm: 4px;--radius: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 14px;--radius-2xl: 16px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(14, 17, 22, .04);--shadow-sm: 0 2px 8px rgba(14, 17, 22, .05);--shadow: 0 4px 16px rgba(14, 17, 22, .06);--shadow-md: 0 8px 24px rgba(14, 17, 22, .07);--shadow-lg: 0 12px 32px rgba(14, 17, 22, .08);--shadow-xl: 0 24px 64px rgba(14, 17, 22, .1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--z-base: 0;--z-raised: 10;--z-sticky: 100;--z-overlay: 500;--z-modal: 1000;--z-toast: 2000}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth;overflow-x:clip}body{padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern","liga","calt"}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tighter)}p{line-height:var(--leading-normal);text-wrap:pretty}p+p{margin-top:1em}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}img,svg,video{display:block;max-width:100%;height:auto}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none;touch-action:manipulation}input,textarea{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-md);padding:12px 14px;font-size:var(--text-base);transition:border-color var(--duration-base) var(--ease-out)}input:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}::selection{background:var(--accent);color:#fff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.serif{font-family:var(--font-serif);font-weight:400;letter-spacing:var(--tracking-tight)}.serif em{font-style:italic;color:var(--muted);font-weight:400}.mono{font-family:var(--font-mono);font-feature-settings:"liga" 0}.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--muted);display:inline-flex;align-items:center;gap:var(--space-2)}.eyebrow:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent)}.page{max-width:var(--page-max);margin:0 auto;padding-inline:var(--page-pad-fluid);padding-block:0}.page--narrow{max-width:var(--page-narrow)}.page--content{max-width:var(--page-content)}.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 0 18px;gap:12px 16px;flex-wrap:wrap}.nav-logo{display:flex;align-items:center;gap:10px;flex:0 0 auto;order:1;font-weight:600;font-size:16px;letter-spacing:-.01em}.nav-logo-mark{width:28px;height:28px;border-radius:8px;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;font-size:13px}.nav-links{order:3;flex:1 0 100%;display:flex;gap:8px 12px;font-size:14px;color:var(--ink-2);align-items:center;flex-wrap:wrap;justify-content:flex-end;row-gap:6px}.nav.page .nav-links a{display:inline-flex;align-items:center;padding:8px 10px;margin:0 -2px;border-radius:var(--radius-sm);transition:color .18s ease,background-color .18s ease}.nav.page .nav-links a[aria-current=page]{color:var(--accent);font-weight:600;background:var(--accent-soft)}@media(hover:hover){.nav.page .nav-links a:hover{color:var(--accent-ink);background:var(--accent-soft)}.nav.page .nav-links a[aria-current=page]:hover{color:var(--accent)}}.nav.page.nav--dark .nav-links{color:#ffffffb8}.nav.page.nav--dark .nav-links a{color:inherit}.nav.page.nav--dark .nav-links a[aria-current=page]{color:#fff;filter:none;background:#ffffff24;box-shadow:inset 0 1px #ffffff1f,0 0 0 1px #ffffff1a}@media(hover:hover){.nav.page.nav--dark .nav-links a:hover{color:#fff;filter:none;background:#ffffff1a}.nav.page.nav--dark .nav-links a[aria-current=page]:hover{background:#ffffff2e}}.nav:not(.page) .nav-links a{padding:8px 0;transition:color .15s ease}@media(hover:hover){.nav:not(.page) .nav-links a:hover{color:var(--accent)}}.nav:not(.page).nav--dark .nav-links a:hover{color:#fff}.nav-cta{order:2;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;flex:1 1 auto;min-width:0}@media(min-width:861px){.nav{flex-wrap:nowrap;padding:22px 0;gap:24px}.nav-links{order:2;flex:1 1 auto;gap:14px;justify-content:flex-end;flex-wrap:wrap;width:auto}.nav-cta{order:3;flex:0 0 auto;gap:10px}}.section{padding:var(--section-y) 0;border-top:1px solid var(--line)}.section--tight{padding:var(--section-y-tight) 0}.section--loose{padding:var(--section-y-loose) 0}.section--dark{background:var(--ink);color:#fff}.section-title{font-family:var(--font-serif);font-size:var(--text-display);line-height:var(--leading-tight);letter-spacing:var(--tracking-tighter)}.section-lede{color:var(--muted);font-size:var(--text-lg);max-width:560px;margin-top:var(--space-4);line-height:var(--leading-normal)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:max(11px,.625em) clamp(14px,3vw,18px);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:500;letter-spacing:-.005em;border:1px solid transparent;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);font-family:inherit;white-space:nowrap;touch-action:manipulation}@media(max-width:24rem){.btn{white-space:normal;text-align:center}}.btn-primary{background:var(--ink);color:var(--bg)}.btn-primary:hover{background:var(--accent)}.btn-secondary{background:transparent;color:var(--ink);border-color:var(--line-2)}.btn-secondary:hover{border-color:var(--ink)}.btn-ghost{background:transparent;color:var(--ink-2)}.btn-ghost:hover{color:var(--accent)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-ink)}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-xl);padding:clamp(18px,4vw,28px)}.card--soft{background:var(--bg-soft);border-color:var(--line-2)}.card--dark{background:var(--ink);color:#fff;border-color:#ffffff14}.tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--text-xs);padding:4px 10px;border-radius:var(--radius-pill);background:var(--bg-soft);color:var(--ink-2);border:1px solid var(--line)}.tag--accent{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}.tag--green{background:var(--green-soft);color:var(--green);border-color:transparent}.tag--red{background:var(--red-soft);color:var(--red);border-color:transparent}.dotgrid{background-image:radial-gradient(circle,var(--line-2) 1px,transparent 1px);background-size:22px 22px}.crosshair{position:relative}.crosshair:before,.crosshair:after{content:"";position:absolute;width:14px;height:14px;border-color:var(--line-2);border-style:solid;border-width:0}.crosshair:before{top:-1px;left:-1px;border-top-width:1px;border-left-width:1px}.crosshair:after{bottom:-1px;right:-1px;border-bottom-width:1px;border-right-width:1px}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}.animate-fade-up{animation:fade-up var(--duration-slower) var(--ease-out) both}.animate-fade-in{animation:fade-in var(--duration-slower) var(--ease-out) both}@keyframes spin-home{to{transform:rotate(360deg)}}.hero.crosshair{padding-top:clamp(1.75rem,6vw,5rem)!important;padding-bottom:clamp(3rem,12vw,6rem)!important}.process-connector{display:none}.hero>.page{grid-template-columns:1fr!important;gap:clamp(24px,6vw,40px)!important}#migration .page>div:first-child{grid-template-columns:1fr!important;gap:clamp(28px,6vw,40px)!important}#services .page>div:first-child,#services .page>div:last-child{grid-template-columns:1fr!important}#stack .page>div:nth-child(2){grid-template-columns:1fr!important}#pricing .page>div:last-child{grid-template-columns:1fr!important}#process .page>div:last-child{grid-template-columns:1fr!important}#facelift .page>div:first-of-type{grid-template-columns:1fr!important}#facelift .page [style*="repeat(3, 1fr)"]{grid-template-columns:1fr!important}#facelift .facelift-compare{grid-template-columns:1fr!important;gap:32px!important}#facelift .facelift-compare-arrow{flex-direction:row!important;padding-top:0!important;justify-content:center!important}#facelift .page [style*="1fr 1.4fr"]{grid-template-columns:1fr!important}footer .page>div:first-child{grid-template-columns:1fr!important}#work .card{grid-template-columns:1fr!important}.migration-steps{grid-template-columns:repeat(2,minmax(0,1fr))!important}@media(min-width:40rem){#stack .page>div:nth-child(2){grid-template-columns:repeat(2,minmax(0,1fr))!important}footer .page>div:first-child{grid-template-columns:repeat(2,minmax(0,1fr))!important}#process .page>div:last-child{grid-template-columns:repeat(2,minmax(0,1fr))!important}#pricing .page>div:last-child{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(min-width:61.3125rem){.hero>.page{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)!important;gap:80px!important}#migration .page>div:first-child{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:80px!important}#services .page>div:first-child{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)!important}#services .page>div:last-child{grid-template-columns:repeat(3,minmax(0,1fr))!important}#stack .page>div:nth-child(2){grid-template-columns:repeat(4,minmax(0,1fr))!important}#pricing .page>div:last-child{grid-template-columns:repeat(3,minmax(0,1fr))!important}#process .page>div:last-child{grid-template-columns:repeat(4,minmax(0,1fr))!important}.process-connector{display:block}#facelift .page>div:first-of-type{grid-template-columns:1.2fr 1fr!important}#facelift .page [style*="repeat(3, 1fr)"]{grid-template-columns:repeat(3,minmax(0,1fr))!important}#facelift .facelift-compare{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;gap:24px!important}#facelift .facelift-compare-arrow{flex-direction:column!important;padding-top:80px!important;justify-content:flex-start!important}#facelift .page [style*="1fr 1.4fr"]{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)!important}footer .page>div:first-child{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr))!important}#work .card{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)!important}.migration-steps{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
