@font-face{font-family:Unbounded;src:url(/fonts/unbounded-var.woff2)format("woff2-variations");font-weight:200 900;font-style:normal;font-display:swap}@font-face{font-family:Onest;src:url(/fonts/onest-var.woff2)format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-var.woff2)format("woff2-variations");font-weight:100 800;font-style:normal;font-display:swap}:root{--graphite-900:#111015;--graphite-850:#17161c;--ink-900:#16121f;--twilight-800:#221a3d;--twilight-850:#1c1730;--line-700:#26242e;--line-twilight-700:#2a2440;--stroke-600:#3a3450;--lavender-white:#f4f2f8;--gray-400:#a8a4b3;--siren-400:#a47cff;--lavender-300:#b6a6f7;--ice-300:#a6cff7;--orchid-300:#dda6f7;--siren-300:#b593ff;--green-400:#6fcf8e;--font-unbounded:"Unbounded", "Segoe UI", system-ui, sans-serif;--font-onest:"Onest", "Segoe UI", system-ui, sans-serif;--font-jetbrains-mono:"JetBrains Mono", Consolas, "Cascadia Mono", monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-24:96px;--space-32:128px;--radius-sm:4px;--radius-md:8px;--radius-full:999px;--container-max:1200px;--shadow-cta-glow:0 8px 40px 0 #a47cff4d;--shadow-cta-glow-hover:0 8px 48px 0 #a47cff61;--z-grain:3;--surface-default:var(--graphite-900);--surface-raised:var(--graphite-850);--surface-twilight:radial-gradient(110% 90% at 18% -10%, var(--twilight-800) 0%, var(--twilight-850) 38%, var(--graphite-900) 78%);--surface-card:var(--graphite-850);--text-primary:var(--lavender-white);--text-secondary:var(--gray-400);--accent-interactive:var(--siren-400);--accent-interactive-hover:var(--siren-300);--text-on-accent:var(--ink-900);--status-positive:var(--green-400);--glow-landing:var(--lavender-300);--glow-multi:var(--ice-300);--glow-audit:var(--orchid-300);--border-subtle:var(--line-700);--border-twilight:var(--line-twilight-700);--stroke-supergraphic:var(--stroke-600);--focus-ring:var(--siren-400);--font-display:var(--font-unbounded);--font-body:var(--font-onest);--font-mono:var(--font-jetbrains-mono)}.ds-display-xl{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;font-size:clamp(2.4rem,8.5vw,5.5rem);font-weight:650;line-height:.95}.ds-display-lg{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;font-size:clamp(2rem,6vw,3.75rem);font-weight:700;line-height:1}.ds-heading-md{font-family:var(--font-display);font-size:clamp(1.25rem,2.5vw,1.625rem);font-weight:600;line-height:1.2}.ds-body-lg{font-family:var(--font-body);font-size:1.125rem;line-height:1.55}.ds-body{font-family:var(--font-body);font-size:1rem;line-height:1.6}.ds-body-sm{font-family:var(--font-body);font-size:.875rem;line-height:1.5}.ds-mono-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.8125rem;line-height:1.4}.ds-mono-meta{font-family:var(--font-mono);font-size:.75rem;line-height:1.5}*,:before,:after{box-sizing:border-box}*{margin:0}html{background:var(--surface-default);color-scheme:dark;scroll-behavior:smooth}body{background:var(--surface-default);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:1rem;line-height:1.6;position:relative}body:after{content:"";pointer-events:none;opacity:.05;z-index:var(--z-grain);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}img,svg,video{max-width:100%;display:block}h1,h2,h3,h4,p{overflow-wrap:break-word}a{color:var(--accent-interactive);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent-interactive-hover);text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--accent-interactive);color:var(--text-on-accent)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-motion:no-preference){html.js-reveal main>section+section,html.js-reveal footer.footer{opacity:0;transition:opacity .9s,translate 1.1s cubic-bezier(.16,1,.3,1);translate:0 56px}html.js-reveal main>section.is-in,html.js-reveal footer.footer.is-in{opacity:1;translate:0}}.cursor-spot{background:radial-gradient(closest-side, var(--spot-c,var(--twilight-800)), transparent 72%);mix-blend-mode:screen;opacity:0;pointer-events:none;z-index:2;will-change:transform;border-radius:999px;width:400px;height:400px;transition:opacity .4s;position:fixed;top:-200px;left:-200px}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.cursor-spot.is-on{opacity:.3}.cursor-spot.spot-svc.is-on{opacity:.14}.card,.service-detail{--hl:var(--text-secondary);position:relative}.card--full{--hl:var(--accent-interactive)}.card:before,.service-detail:before{content:"";border:1px solid var(--hl);border-radius:var(--radius-md);opacity:0;pointer-events:none;mask-image:radial-gradient(140px circle at var(--mx,50%) var(--my,50%), #000 30%, transparent 100%);-webkit-mask-image:radial-gradient(140px circle at var(--mx,50%) var(--my,50%), #000 30%, transparent 100%);transition:opacity .3s;position:absolute;inset:-1px}.card:hover:before,.service-detail:hover:before{opacity:1}.service-detail:after{content:"";border-radius:var(--radius-md);box-shadow:0 0 72px 4px color-mix(in srgb, var(--glow,var(--glow-landing)) 22%, transparent);opacity:0;pointer-events:none;z-index:-1;transition:opacity .35s;position:absolute;inset:0}.service-detail:hover:after{opacity:1}}.btn[data-astro-cid-ekguhzzh]{font-family:var(--font-body);border-radius:var(--radius-md);font-weight:700;text-decoration:none;transition:background-color .15s,box-shadow .15s,color .15s;display:inline-block}.btn[data-astro-cid-ekguhzzh]:active{translate:0 1px}.btn--md[data-astro-cid-ekguhzzh]{padding:var(--space-3) var(--space-6);font-size:1rem}.btn--lg[data-astro-cid-ekguhzzh]{padding:var(--space-4) var(--space-8);font-size:1.0625rem}.btn--primary[data-astro-cid-ekguhzzh]{background:var(--accent-interactive);color:var(--text-on-accent);box-shadow:var(--shadow-cta-glow)}.btn--primary[data-astro-cid-ekguhzzh]:hover{background:var(--accent-interactive-hover);color:var(--text-on-accent);box-shadow:var(--shadow-cta-glow-hover)}.btn--secondary[data-astro-cid-ekguhzzh]{border:1px solid var(--accent-interactive);color:var(--accent-interactive);background:0 0}.btn--secondary[data-astro-cid-ekguhzzh]:hover{color:var(--accent-interactive-hover);border-color:var(--accent-interactive-hover);background:color-mix(in srgb, var(--accent-interactive) 12%, transparent)}.btn--link[data-astro-cid-ekguhzzh]{color:var(--accent-interactive);text-underline-offset:3px;border-radius:0;padding:0;text-decoration:underline 1px}.btn--link[data-astro-cid-ekguhzzh]:hover{color:var(--accent-interactive-hover);text-decoration-thickness:2px}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.btn--primary[data-astro-cid-ekguhzzh],.btn--secondary[data-astro-cid-ekguhzzh]{position:relative;overflow:hidden}.btn--primary[data-astro-cid-ekguhzzh]:after,.btn--secondary[data-astro-cid-ekguhzzh]:after{content:"";border-radius:inherit;background:radial-gradient(130px circle at var(--bx,50%) var(--by,50%), var(--aura-color), transparent 72%);opacity:0;pointer-events:none;transition:opacity .25s;position:absolute;inset:0}.btn--primary[data-astro-cid-ekguhzzh]:hover:after,.btn--secondary[data-astro-cid-ekguhzzh]:hover:after{opacity:1}.btn--primary[data-astro-cid-ekguhzzh]{--aura-color:color-mix(in srgb, var(--lavender-white) 32%, transparent)}.btn--secondary[data-astro-cid-ekguhzzh]{--aura-color:color-mix(in srgb, var(--accent-interactive) 16%, transparent)}.btn--primary[data-astro-cid-ekguhzzh]:hover{background:var(--accent-interactive)}.btn--secondary[data-astro-cid-ekguhzzh]:hover{background:color-mix(in srgb, var(--accent-interactive) 12%, transparent)}}
