:root{--page-bg: #ffffff;--surface: #ffffff;--surface-muted: rgba(0, 0, 0, .02);--ink: #0a0a0a;--text-muted: rgba(0, 0, 0, .62);--text-soft: rgba(0, 0, 0, .45);--line: rgba(0, 0, 0, .12);--line-strong: rgba(0, 0, 0, .18);--wash: rgba(0, 0, 0, .05);--wash-strong: rgba(0, 0, 0, .07);--success: #0f766e;--success-soft: rgba(15, 118, 110, .1);--danger: #b42318;--danger-soft: rgba(180, 35, 24, .1);--shadow: 0 40px 80px rgba(0, 0, 0, .08);--shadow-ring: 0 0 0 1px rgba(0, 0, 0, .06);--container: 1200px;color-scheme:light;font-family:var(--font-geist),"Inter",ui-sans-serif,system-ui,sans-serif}:root{--resize-dur: .3s;--resize-ease: cubic-bezier(.22, 1, .36, 1);--digit-dur: .5s;--digit-distance: 8px;--digit-stagger: 70ms;--digit-blur: 2px;--digit-ease: cubic-bezier(.34, 1.45, .64, 1);--digit-dir-x: 0;--digit-dir-y: 1;--badge-slide-dur: .26s;--badge-pop-dur: .5s;--badge-pop-close-dur: .18s;--badge-fade-dur: .4s;--badge-fade-close-dur: .18s;--badge-blur: 2px;--badge-offset-x: -8.2px;--badge-offset-y: 12.4px;--badge-slide-ease: cubic-bezier(.22, 1, .36, 1);--badge-pop-ease: cubic-bezier(.34, 1.36, .64, 1);--badge-close-ease: cubic-bezier(.4, 0, .2, 1);--text-swap-dur: .15s;--text-swap-translate-y: 4px;--text-swap-blur: 2px;--text-swap-ease: ease-in-out;--dropdown-open-dur: .25s;--dropdown-close-dur: .15s;--dropdown-pre-scale: .97;--dropdown-closing-scale: .99;--dropdown-ease: cubic-bezier(.22, 1, .36, 1);--modal-open-dur: .25s;--modal-close-dur: .15s;--modal-scale: .96;--modal-scale-close: .96;--modal-ease: cubic-bezier(.22, 1, .36, 1);--panel-open-dur: .4s;--panel-close-dur: .35s;--panel-translate-y: 100px;--panel-blur: 2px;--panel-ease: cubic-bezier(.22, 1, .36, 1);--page-slide-dur: .2s;--page-fade-dur: .2s;--page-slide-distance: 8px;--page-blur: 3px;--page-stagger: 0ms;--page-exit-enabled: 1;--page-slide-ease: cubic-bezier(.22, 1, .36, 1);--page-fade-ease: cubic-bezier(.22, 1, .36, 1);--icon-swap-dur: .2s;--icon-swap-blur: 2px;--icon-swap-start-scale: .25;--icon-swap-ease: ease-in-out;--check-opacity-dur: .55s;--check-rotate-dur: .55s;--check-rotate-from: 80deg;--check-bob-dur: .45s;--check-y-amount: 40px;--check-blur-dur: .5s;--check-blur-from: 10px;--check-path-dur: .55s;--check-path-delay: 80ms;--check-ease-out: cubic-bezier(.22, 1, .36, 1);--check-ease-opacity: cubic-bezier(.22, 1, .36, 1);--check-ease-rotate: cubic-bezier(.22, 1, .36, 1);--check-ease-bob: cubic-bezier(.34, 1.35, .64, 1);--check-ease-path: cubic-bezier(.22, 1, .36, 1);--avatar-lift: -4px;--avatar-dur: .32s;--avatar-scale: 1.05;--avatar-falloff: .45;--avatar-ease-in: cubic-bezier(.22, 1, .36, 1);--avatar-ease-out: cubic-bezier(.34, 3.85, .64, 1);--shake-distance: 6px;--shake-overshoot: 4px;--shake-dur-a: 80ms;--shake-dur-b: 60ms;--shake-ease: cubic-bezier(.22, 1, .36, 1);--revert-hold: 3s;--revert-dur: .28s}:root{--duration-exit: .15s;--duration-enter: .21s;--duration-move: .4s}@view-transition{navigation:auto}@keyframes fade{0%{filter:blur(3px);opacity:0}to{filter:blur(0);opacity:1}}@keyframes slide{0%{translate:var(--slide-offset)}to{translate:0}}@keyframes slide-y{0%{transform:translateY(var(--slide-y-offset, 10px))}to{transform:translateY(0)}}::view-transition-old(.fade-out){animation:var(--duration-exit) ease-in fade reverse}::view-transition-new(.fade-in){animation:var(--duration-enter) ease-out var(--duration-exit) both fade}::view-transition-old(.slide-down){animation:var(--duration-exit) ease-out both fade reverse,var(--duration-exit) ease-out both slide-y reverse}::view-transition-new(.slide-up){animation:var(--duration-enter) ease-in var(--duration-exit) both fade,var(--duration-move) ease-in both slide-y}::view-transition-new(.slide-from-right){--slide-offset: 60px;animation:var(--duration-enter) ease-out var(--duration-exit) both fade,var(--duration-move) ease-in-out both slide}::view-transition-old(.slide-to-left){--slide-offset: -60px;animation:var(--duration-exit) ease-in both fade reverse,var(--duration-move) ease-in-out both slide reverse}::view-transition-new(.slide-from-left){--slide-offset: -60px;animation:var(--duration-enter) ease-out var(--duration-exit) both fade,var(--duration-move) ease-in-out both slide}::view-transition-old(.slide-to-right){--slide-offset: 60px;animation:var(--duration-exit) ease-in both fade reverse,var(--duration-move) ease-in-out both slide reverse}::view-transition-old(.nav-forward){--slide-offset: -60px;animation:var(--duration-exit) ease-in both fade reverse,var(--duration-move) ease-in-out both slide reverse}::view-transition-new(.nav-forward){--slide-offset: 60px;animation:var(--duration-enter) ease-out var(--duration-exit) both fade,var(--duration-move) ease-in-out both slide}::view-transition-old(.nav-back){--slide-offset: 60px;animation:var(--duration-exit) ease-in both fade reverse,var(--duration-move) ease-in-out both slide reverse}::view-transition-new(.nav-back){--slide-offset: -60px;animation:var(--duration-enter) ease-out var(--duration-exit) both fade,var(--duration-move) ease-in-out both slide}::view-transition-group(.morph){animation-duration:var(--duration-move)}::view-transition-image-pair(.morph){animation-name:via-blur}@keyframes via-blur{30%{filter:blur(3px)}}::view-transition-group(.text-morph){animation-duration:var(--duration-move)}::view-transition-old(.text-morph){display:none}::view-transition-new(.text-morph){animation:none;object-fit:none;object-position:left top}::view-transition-old(.scale-out){animation:var(--duration-exit) ease-in scale-down}::view-transition-new(.scale-in){animation:var(--duration-enter) ease-out var(--duration-exit) both scale-up}@keyframes scale-down{0%{transform:scale(1);opacity:1}to{transform:scale(.85);opacity:0}}@keyframes scale-up{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}::view-transition-group(persistent-nav){animation:none;z-index:100}::view-transition-old(persistent-nav){display:none}::view-transition-new(persistent-nav){animation:none}@media(prefers-reduced-motion:reduce){::view-transition-old(*),::view-transition-new(*),::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}}*{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;min-width:320px;background:var(--page-bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}pre,code{font-family:SFMono-Regular,ui-monospace,Cascadia Code,Source Code Pro,Menlo,Consolas,monospace}#root,.page-shell{min-height:100vh}.page-shell{padding:18px clamp(24px,4vw,48px) 40px}.site-header,.site-footer{width:min(100%,var(--container));margin:0 auto}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 0 18px;background:#ffffffeb;backdrop-filter:blur(14px)}.brand-mark{display:inline-flex;align-items:center;gap:12px;font-size:20px;font-weight:600;letter-spacing:0;line-height:1}.brand-mark-icon{width:30px;height:30px;border-radius:8px;object-fit:cover;flex:none}.site-nav,.header-actions,.footer-links{display:flex;align-items:center;gap:12px}.site-nav a,.header-actions a:not(.button),.footer-links a{color:var(--text-soft);font-size:14px;line-height:20px}.site-nav a{display:inline-flex;align-items:center;min-height:36px;padding:0 10px;border-radius:8px;transition:background .16s ease,box-shadow .16s ease,color .16s ease}.site-nav a:hover,.header-actions a:not(.button):hover,.footer-links a:hover{color:var(--ink)}.site-nav a:hover{background:var(--surface-muted)}.site-nav a[aria-current=page]{background:var(--wash);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink)}.site-nav a[aria-current=page]:hover{background:var(--wash-strong)}.header-github-link{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:transparent;color:var(--ink);transition:opacity .16s ease,transform .16s ease}.header-github-link:hover{opacity:.92;transform:translateY(-1px)}.header-github-link-icon{width:22px;height:22px}.eyebrow{margin:0;color:var(--text-soft);font-size:11px;font-weight:500;line-height:16px;letter-spacing:.02em;text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:500;line-height:19px;transition:opacity .16s ease,transform .16s ease,box-shadow .16s ease}.button-primary{background:var(--ink);color:var(--surface);box-shadow:0 10px 20px #0000001a}.button-secondary{border:1px solid var(--line);background:var(--surface);color:var(--text-soft);box-shadow:var(--shadow-ring)}.button:hover{opacity:.92;transform:translateY(-1px)}.marketing-form-feedback{margin:0;color:var(--text-soft);font-size:13px;line-height:1.6}.marketing-form-feedback-error{color:#b42318}.marketing-form-feedback-success{color:#0f766e}.contact-modal-input,.contact-modal-textarea{width:100%;border:1px solid rgba(15,23,42,.18);background:#fff;color:var(--ink);outline:none}.contact-modal-input:focus,.contact-modal-textarea:focus{border-color:#2563eb73;box-shadow:0 0 0 4px #2563eb1f}.contact-link-button{padding:0;border:0;background:transparent;color:var(--text-soft);font-size:14px;line-height:20px;cursor:pointer}.contact-link-button:hover{color:var(--ink)}.contact-link-button-loading{cursor:progress}.contact-modal-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px;background:#0a0a0a47;opacity:0;pointer-events:none;backdrop-filter:blur(0);transition:opacity var(--modal-open-dur) var(--modal-ease),backdrop-filter var(--modal-open-dur) var(--modal-ease)}.contact-modal-backdrop.is-open{opacity:1;pointer-events:auto;backdrop-filter:blur(12px)}.contact-modal-backdrop.is-closing{opacity:0;pointer-events:none;backdrop-filter:blur(0);transition:opacity var(--modal-close-dur) var(--modal-ease),backdrop-filter var(--modal-close-dur) var(--modal-ease)}.t-modal{transform-origin:center;transform:scale(var(--modal-scale));opacity:0;pointer-events:none;transition:transform var(--modal-open-dur) var(--modal-ease),opacity var(--modal-open-dur) var(--modal-ease);will-change:transform,opacity}.t-modal.is-open{transform:scale(1);opacity:1;pointer-events:auto}.t-modal.is-closing{transform:scale(var(--modal-scale-close));opacity:0;pointer-events:none;transition:transform var(--modal-close-dur) var(--modal-ease),opacity var(--modal-close-dur) var(--modal-ease)}@media(prefers-reduced-motion:reduce){.t-modal{transition:none!important}}.t-input{transition:border-color .15s ease-out;will-change:transform}.t-input.is-error{transition:border-color var(--revert-dur, .28s) ease-out}.t-error-msg{opacity:0;visibility:hidden;transition:opacity var(--revert-dur, .28s) ease-out,visibility 0s linear var(--revert-dur, .28s)}.t-input-wrap.is-error .t-error-msg{opacity:1;visibility:visible;transition:opacity var(--revert-dur, .28s) ease-out,visibility 0s linear 0s}.t-input.is-shaking{animation:t-input-shake calc(var(--shake-dur-a) * 2 + var(--shake-dur-b) * 2) linear}@keyframes t-input-shake{0%{transform:translate(0);animation-timing-function:var(--shake-ease)}28.57%{transform:translate(var(--shake-distance));animation-timing-function:var(--shake-ease)}57.14%{transform:translate(calc(var(--shake-distance) * -1));animation-timing-function:var(--shake-ease)}78.57%{transform:translate(var(--shake-overshoot));animation-timing-function:var(--shake-ease)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.t-input{animation:none!important;transform:none!important}}.contact-modal{position:relative;width:min(100%,640px);padding:32px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#00000004,#0000000a),var(--surface);box-shadow:var(--shadow),var(--shadow-ring)}.contact-modal-header{max-width:480px}.contact-modal h2{margin:0;color:var(--ink);font-size:clamp(2rem,4vw,3rem);font-weight:600;letter-spacing:0;line-height:1.02}.contact-modal-copy{margin:18px 0 0;color:var(--text-muted);font-size:16px;line-height:1.65}.contact-modal-form{display:grid;gap:18px;margin-top:28px}.contact-modal-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.contact-modal-field{display:grid;gap:8px}.contact-modal-label{color:var(--ink);font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.contact-modal-input,.contact-modal-textarea{min-height:48px;padding:0 14px;border-radius:12px;box-shadow:inset 0 1px #ffffff4d;color:var(--ink);font-size:15px;line-height:1.5}.contact-modal-textarea{min-height:152px;padding-top:14px;padding-bottom:14px;resize:vertical}.contact-modal-input.t-input.is-error,.contact-modal-textarea.t-input.is-error{border-color:#b4231885;box-shadow:0 0 0 4px #b423181a,inset 0 1px #ffffff4d}.contact-modal-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:6px}.contact-modal-note{margin:0;color:var(--text-soft);font-size:13px;line-height:1.6}.contact-modal-actions .marketing-form-feedback-error{grid-column:1 / -1}.contact-modal-submit{min-width:152px;min-height:44px;border-radius:10px}.contact-modal-close{position:absolute;top:16px;right:16px;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:#00000005;color:var(--text-soft);font-size:22px;line-height:1;cursor:pointer;transition:color .16s ease,background-color .16s ease,border-color .16s ease}.contact-modal-close:hover{color:var(--ink);border-color:var(--line-strong);background:#0000000d}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:72px;padding-top:24px;border-top:1px solid var(--line)}.site-footer p{margin:0;color:var(--text-soft);font-size:14px;line-height:20px}@media(max-width:1100px){.page-shell{padding-inline:32px}}@media(max-width:860px){.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:12px;padding-top:12px;padding-bottom:14px}.brand-mark{grid-column:1;grid-row:1;gap:10px;font-size:20px}.brand-mark-icon{width:32px;height:32px;border-radius:8px}.page-shell{padding-inline:24px}.site-footer{flex-direction:column;align-items:flex-start}.site-nav{grid-column:1 / -1;grid-row:2;flex-wrap:wrap;gap:16px}.header-actions{grid-column:2;grid-row:1;justify-self:end}.contact-modal{padding:28px 22px 24px}}@media(max-width:640px){.page-shell{padding:14px 16px 28px}.site-header{row-gap:10px;padding-bottom:16px}.contact-modal-field-grid,.contact-modal-actions{grid-template-columns:1fr}.contact-modal-submit{width:100%}}@media(min-width:1440px){.page-shell{padding-inline:64px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.contact-modal-backdrop{transition:none}}
