@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-latin-400-normal-CQJ26Fy6.woff2)format("woff2"),url(/assets/ubuntu-latin-400-normal-ChuJk2Dr.woff)format("woff")}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ubuntu-latin-500-normal-CnjGCQfM.woff2)format("woff2"),url(/assets/ubuntu-latin-500-normal-BMp9VhBY.woff)format("woff")}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-latin-700-normal-DlYwEzNn.woff2)format("woff2"),url(/assets/ubuntu-latin-700-normal-DAmh8SsM.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff)format("woff")}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}:root{--color-blue:oklch(50.5% .18 253);--color-red:oklch(52% .22 27);--color-dark:oklch(20% .04 258);--color-near-black:var(--color-footer-bg);--text-on-dark-muted:oklch(98% .005 263/.7);--text-on-dark-subtle:oklch(98% .005 263/.6);--text-on-dark-body:oklch(98% .005 263/.8);--text-on-dark-faint:oklch(98% .005 263/.45);--text-on-dark-dim:oklch(98% .005 263/.3);--surface-on-dark:oklch(98% .005 263/.06);--surface-on-dark-strong:oklch(98% .005 263/.08);--surface-on-dark-panel:oklch(98% .005 263/.04);--border-on-dark:oklch(98% .005 263/.12);--border-on-dark-subtle:oklch(98% .005 263/.1);--divider-on-dark:oklch(98% .005 263/.07);--overlay-scrim:oklch(20% .04 258/.6);--overlay-portfolio:oklch(20% .04 258/.92);--glow-blue-soft:oklch(50.5% .18 253/.22);--metric-chip-bg:oklch(50.5% .18 253/.4);--text-on-dark-placeholder:oklch(98% .005 263/.35);--text-on-dark-soft:oklch(98% .005 263/.55);--surface-on-dark-focus:oklch(98% .005 263/.09);--ripple-on-dark:oklch(98% .005 263/.35);--spinner-track:oklch(98% .005 263/.3);--watermark-on-dark:oklch(98% .005 263/.07);--watermark-on-dark-hover:oklch(98% .005 263/.11);--color-text-muted:oklch(70% .04 260);--color-text-on-light:oklch(42% .045 260);--color-label-on-light:oklch(50% .04 260);--color-border-subtle:oklch(92% .01 263);--color-surface:oklch(98% .005 263);--color-surface-light:oklch(96% .035 265);--color-surface-tint:oklch(94% .025 263);--color-success:oklch(68% .15 142);--color-warning:oklch(65% .18 56);--color-info:oklch(72% .18 211);--color-code-string:oklch(78% .12 253);--color-code-key:oklch(82% .14 142);--color-code-result:oklch(88% .12 85);--color-terminal-bg:oklch(18% .04 253);--color-terminal-header:oklch(24% .05 253);--color-blue-tint:oklch(94% .04 265);--color-blue-muted:oklch(82% .06 265);--color-surface-warm:oklch(98% .008 85);--color-surface-warm-muted:oklch(95% .012 85);--color-surface-warm-hover:oklch(99% .006 85);--color-footer-bg:oklch(16.4% .033 260);--border-card:oklch(20% .04 258/.12);--border-card-muted:oklch(20% .04 258/.1);--border-card-soft:oklch(20% .04 258/.08);--border-card-strong:oklch(20% .04 258/.14);--border-brand-subtle:oklch(50.5% .18 253/.25);--border-brand-medium:oklch(50.5% .18 253/.3);--border-brand-strong:oklch(50.5% .18 253/.35);--border-brand-featured:oklch(50.5% .18 253/.45);--border-brand-hover:oklch(50.5% .18 253/.28);--surface-media-dark:oklch(24% .045 258);--surface-modal-strip:oklch(98% .012 265);--surface-blue-tint:oklch(50.5% .18 253/.08);--metric-chip-on-dark-bg:oklch(50.5% .18 253/.22);--metric-chip-on-dark-border:oklch(50.5% .18 253/.4);--metric-chip-signal-bg:oklch(38% .15 253);--metric-chip-signal-border:oklch(44% .16 253);--metric-chip-signal-text:oklch(97% .012 263);--brand-blue:var(--color-blue);--brand-red:var(--color-red);--brand-dark:var(--color-dark);--brand-light:var(--color-surface-light);--brand-gray:var(--color-text-muted);--brand-white:var(--color-surface);--brand-gray-10:oklch(93% .03 240);--brand-blue-10:oklch(50.5% .18 253/.1);--brand-red-10:oklch(52% .22 27/.1);--font-display:"Ubuntu", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body:var(--font-display);--font-mono:"JetBrains Mono", "Ubuntu Mono", ui-monospace, monospace;--text-display:clamp(2.5rem, 6vw, 4rem);--text-headline:clamp(1.875rem, 5vw, 2.75rem);--text-title:clamp(1.0625rem, 1.8vw, 1.25rem);--text-body:1rem;--text-caption:.875rem;--text-label:.6875rem;--leading-tight:1.2;--leading-body:1.6;--leading-prose:1.55;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:4rem;--space-2xl:8rem;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-xl:32px;--shadow-sm:0 2px 8px oklch(20% .04 258/.08);--shadow-md:0 8px 24px oklch(20% .04 258/.12);--shadow-lg:0 20px 60px oklch(20% .04 258/.2);--shadow-inset:inset 0 2px 8px oklch(20% .04 258/.1);--shadow-red:0 8px 24px oklch(52% .22 27/.35);--shadow-red-hover:0 12px 32px oklch(52% .22 27/.45);--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-entrance:cubic-bezier(.25, .46, .45, .94);--duration-quick:.15s;--duration-standard:.28s;--duration-slow:.5s;--transition:var(--duration-standard) var(--ease-entrance);--service-hover:var(--duration-standard) var(--ease-out-quart)}.service-page{background:var(--brand-dark);min-height:100vh}.service-page--hub,.service-page--detail{padding:0}.service-page__container{max-width:1120px;margin:0 auto;padding-inline:clamp(16px,6vw,80px)}.service-page__container--hub{padding-block:clamp(40px,6vw,72px) 80px}.service-cinematic{align-items:flex-end;min-height:clamp(420px,62vh,560px);display:flex;position:relative;overflow:hidden}.service-cinematic--hub{min-height:clamp(380px,52vh,480px)}.service-cinematic__bg{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.service-cinematic__overlay{background:linear-gradient(110deg,oklch(20% .04 258/.88) 0%,oklch(20% .04 258/.72) 48%,oklch(20% .04 258/.55) 100%);position:absolute;inset:0}.service-cinematic__inner{z-index:1;width:100%;padding-top:100px;padding-bottom:clamp(40px,6vw,64px);position:relative}.service-cinematic__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:end;gap:clamp(24px,4vw,40px);display:grid}.service-cinematic__copy{max-width:58ch}.service-cinematic__copy--hub{max-width:62ch}.service-cinematic__kicker{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--brand-blue);margin:0 0 1rem;font-size:.6875rem;font-weight:600}.service-cinematic__title{font-family:var(--font-display);color:var(--brand-white);margin:0 0 1rem;font-size:clamp(2rem,5vw,3.25rem);font-weight:800;line-height:1.1}.service-cinematic__intro{color:var(--text-on-dark-body);margin:0 0 1.75rem;font-size:1.0625rem;line-height:1.7}.service-cinematic__cta{align-items:center;text-decoration:none;display:inline-flex}.service-cinematic__badge{border-radius:var(--radius-lg);width:min(100%,280px);box-shadow:var(--shadow-lg);background:oklch(98% .005 263/.96);border:1px solid oklch(98% .005 263/.2);justify-self:end;padding:20px}.service-cinematic__badge img{-o-object-fit:contain;object-fit:contain;width:100%;height:auto;max-height:180px}.service-band{position:relative}.service-band--light{background:var(--brand-light);padding:clamp(56px,8vw,88px) 0}.service-band--dark{background:var(--brand-dark);padding:clamp(48px,7vw,72px) 0}.service-band--cta{background:var(--brand-red);padding:clamp(56px,8vw,84px) 0;position:relative;overflow:hidden}.service-band--cta:before{content:"";pointer-events:none;background:radial-gradient(90% 120% at 100% 40%,oklch(58% .22 27/.4) 0%,#0000 58%);position:absolute;inset:0}.service-band--cta:after{content:"";pointer-events:none;background:radial-gradient(70% 90% at 0 100%,oklch(20% .04 258/.14) 0%,#0000 55%);position:absolute;inset:0}.breadcrumbs{margin-bottom:clamp(20px,3vw,32px)}.breadcrumbs__list{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:0;font-size:.6875rem;font-weight:600;list-style:none;display:flex}.breadcrumbs__item:not(:last-child):after{content:"/";color:var(--text-on-dark-dim);margin-left:8px}.breadcrumbs__link{color:oklch(78% .08 253);transition:color var(--transition);text-decoration:none}.breadcrumbs__link:hover{color:var(--brand-white)}.breadcrumbs__current{color:var(--text-on-dark-muted)}.service-hub-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;gap:clamp(20px,3vw,32px);display:grid}.service-hub-featured{background:var(--brand-white);border-radius:var(--radius-lg);min-height:100%;color:inherit;box-shadow:var(--shadow-lg);transition:transform var(--service-hover), box-shadow var(--service-hover), border-color var(--service-hover);border:1px solid oklch(20% .04 258/.14);grid-template-columns:minmax(0,1fr);gap:0;text-decoration:none;display:grid;overflow:hidden}.service-hub-featured__media{min-height:200px;position:relative;overflow:hidden}.service-hub-featured__media img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;min-height:200px}.service-hub-featured__body{color:var(--brand-white);background:oklch(20% .04 258);flex-direction:column;justify-content:center;padding:clamp(24px,4vw,32px);display:flex}.service-hub-featured__index{font-family:var(--font-mono);letter-spacing:.08em;color:var(--brand-red);margin-bottom:12px;font-size:.6875rem;font-weight:600}.service-hub-featured__title{font-family:var(--font-display);margin:0 0 12px;font-size:clamp(1.5rem,3vw,2rem);font-weight:800;line-height:1.15}.service-hub-featured__desc{color:var(--text-on-dark-body);margin:0 0 20px;font-size:.9375rem;line-height:1.65}.service-hub-featured__tags{flex-wrap:wrap;gap:8px;margin:0 0 20px;padding:0;list-style:none;display:flex}.service-hub-featured__link{font-family:var(--font-mono);letter-spacing:.04em;color:var(--brand-red);font-size:.75rem;font-weight:600}.service-hub-list{flex-direction:column;gap:12px;display:flex}.service-hub-list__item{background:var(--surface-on-dark-panel);border:1px solid var(--border-on-dark);border-radius:var(--radius-md);color:inherit;transition:background var(--transition), border-color var(--transition), transform var(--service-hover);grid-template-columns:auto 72px 1fr auto;align-items:center;gap:14px;padding:16px 18px;text-decoration:none;display:grid}.service-hub-list__thumb{border-radius:var(--radius-sm);flex-shrink:0;width:72px;height:72px;overflow:hidden}.service-hub-list__thumb img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.service-hub-list__index{font-family:var(--font-mono);letter-spacing:.08em;color:var(--brand-blue);font-size:.6875rem;font-weight:600}.service-hub-list__title{font-family:var(--font-display);color:var(--brand-white);margin:0 0 4px;font-size:1rem;font-weight:700}.service-hub-list__desc{color:var(--text-on-dark-subtle);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.875rem;line-height:1.55;display:-webkit-box;overflow:hidden}.service-hub-list__arrow{color:var(--brand-red);transition:transform var(--transition);font-size:1.125rem}.service-hub-note{color:var(--text-on-dark-faint);margin:clamp(32px,5vw,48px) 0 0;font-size:.875rem}.service-hub-note a{color:var(--brand-blue);text-underline-offset:3px;text-decoration:underline}.service-hub-stack{flex-direction:column;gap:clamp(20px,3vw,32px);display:flex}.service-hub-strip-wrap{width:100%}.service-page--hub .service-hub-strip.service-card--strip{border-radius:var(--radius-lg);background:linear-gradient(128deg, oklch(22% .04 258) 0%, var(--brand-dark) 48%, oklch(17% .033 260) 100%);border:1px solid var(--border-on-dark);width:100%;box-shadow:var(--shadow-lg);color:inherit;transition:transform var(--service-hover), box-shadow var(--service-hover), border-color var(--service-hover);text-decoration:none;position:relative;overflow:hidden}.service-page--hub .service-hub-strip.service-card--strip:before{display:none}.service-page--hub .service-hub-strip .service-card__media{background:var(--brand-dark);justify-content:stretch;align-items:stretch;padding:0;overflow:hidden}.service-page--hub .service-hub-strip .service-card__media img{-o-object-fit:cover;object-fit:cover;width:100%;max-width:none;height:100%;max-height:none}.service-page--hub .service-hub-strip .service-card__body{background:0 0}.service-page--hub .service-hub-strip .service-card__title{color:var(--brand-white)}.service-page--hub .service-hub-strip .service-card__desc{color:var(--text-on-dark-body)}.service-page--hub .service-hub-strip .service-card__index{color:oklch(78% .08 253/.7)}.service-page--hub .service-hub-strip .service-card__tags{border-top-color:var(--border-on-dark)}.service-page--hub .service-hub-strip .tech-tag{color:oklch(82% .08 253);background:oklch(50.5% .18 253/.16);border:1px solid oklch(50.5% .18 253/.32)}.service-page--hub .service-hub-strip .service-card__more{font-family:var(--font-mono);letter-spacing:.04em;color:var(--brand-red);opacity:1;margin-top:12px;font-size:.75rem;font-weight:600;display:inline-block;transform:none}@media (width>=900px){.service-page--hub .service-hub-strip.service-card--strip{flex-direction:row;align-items:stretch}.service-page--hub .service-hub-strip .service-card__media{border-right:1px solid var(--border-on-dark);flex:0 0 min(32%,380px);min-height:0;padding:0}.service-page--hub .service-hub-strip .service-card__media img{-o-object-fit:cover;object-fit:cover;width:100%;max-width:none;height:100%;min-height:100%;max-height:none}.service-page--hub .service-hub-strip .service-card__body{flex-direction:column;justify-content:center;gap:clamp(10px,1.2vh,14px);padding:clamp(16px,2vh,24px) clamp(24px,2.8vw,40px);display:flex}.service-page--hub .service-hub-strip .service-card__content{flex:0 auto;min-width:0;max-width:75ch}.service-page--hub .service-hub-strip .service-card__title{margin-bottom:clamp(6px,.7vh,10px);font-size:clamp(18px,1.55vw,22px)}.service-page--hub .service-hub-strip .service-card__desc{font-size:clamp(13px,1.05vw,15px);line-height:1.58}.service-page--hub .service-hub-strip .service-card__tags{flex-shrink:0;justify-content:flex-start;align-self:flex-start;gap:10px;margin-top:0;padding-top:clamp(10px,1.2vh,14px)}.service-page--hub .service-hub-strip .service-card__index{inset:clamp(12px,1.4vh,16px) clamp(16px,2vw,24px) auto auto}}@media (width<=899px){.service-page--hub .service-hub-strip .service-card__media{border-bottom:1px solid var(--border-on-dark);min-height:180px}.service-page--hub .service-hub-strip .service-card__body{padding:20px 22px 28px}}@media (prefers-reduced-motion:no-preference){.service-page--hub .service-hub-strip.service-card--linked:hover{border-color:oklch(50.5% .18 253/.45);transform:translateY(-2px);box-shadow:0 14px 40px oklch(8% .03 258/.45)}.service-page--hub .service-hub-strip.service-card--linked:hover .service-card__media img{transform:scale(1.05)}}.service-page--hub .service-hub-strip.service-card--linked:focus-visible{outline:2px solid var(--brand-blue);outline-offset:4px}.service-editorial__head{align-items:baseline;gap:clamp(12px,2vw,20px);margin-bottom:clamp(32px,5vw,52px);display:flex}.service-editorial__index{font-family:var(--font-mono);letter-spacing:.08em;color:var(--brand-red);margin:0;font-size:.6875rem;font-weight:600}.service-editorial__title{font-family:var(--font-display);color:var(--brand-dark);margin:0;font-size:clamp(1.5rem,3.2vw,2.125rem);font-weight:700;line-height:1.2}.service-editorial__layers{margin:0;padding:0;list-style:none;position:relative}.service-editorial__layer-item{margin:0 0 clamp(14px,2.5vw,22px);margin-left:calc(var(--chapter-index,0) * clamp(14px, 2.8vw, 32px))}.service-editorial__layer-item:last-child{margin-bottom:0}.service-editorial__layer-item .fade-in{height:100%}.service-editorial__chapter{padding:clamp(22px,3.5vw,34px) clamp(20px,3vw,32px) clamp(22px,3.5vw,34px) clamp(52px,7vw,68px);position:relative}.service-editorial__chapter:before{content:"";border-radius:var(--radius-md);background:oklch(50.5% .18 253 / calc(.028 + var(--chapter-index,0) * .018));border:1px solid oklch(50.5% .18 253 / calc(.1 + var(--chapter-index,0) * .05));z-index:0;position:absolute;inset:0}.service-editorial__layer-item:not(:last-child) .service-editorial__chapter:after{content:"";background:linear-gradient(90deg, var(--brand-red) 0%, oklch(52% .22 27/.15) 72%, transparent 100%);z-index:1;height:2px;position:absolute;bottom:calc(-1*clamp(7px,1.2vw,11px));left:clamp(18px,2.5vw,26px);right:0}.service-editorial__step{font-family:var(--font-mono);letter-spacing:.08em;color:var(--brand-red);z-index:1;font-size:.6875rem;font-weight:600;position:absolute;top:clamp(22px,3.5vw,34px);left:clamp(18px,2.5vw,26px)}.service-editorial__text{z-index:1;color:oklch(28% .04 258);max-width:68ch;margin:0;font-size:1.0625rem;line-height:1.75;position:relative}.service-tech-marquee{--marquee-duration:42s;background:oklch(50.5% .18 253/.04);border-block:1px solid oklch(50.5% .18 253/.14);margin:clamp(28px,4vw,40px) 0 clamp(8px,1.5vw,12px);padding:clamp(14px,2vw,18px) 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,oklch(0% 0 0) 10% 90%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,oklch(0% 0 0) 10% 90%,#0000 100%)}.service-tech-marquee__track{width:max-content;animation:service-tech-marquee-scroll var(--marquee-duration) linear infinite;align-items:center;gap:clamp(28px,4vw,44px);margin:0;padding:0;list-style:none;display:flex}.service-tech-marquee__item{color:oklch(32% .04 258);flex-shrink:0;align-items:center;gap:10px;display:inline-flex}.service-tech-marquee__icon{-o-object-fit:contain;object-fit:contain;flex-shrink:0;width:28px;height:28px}.service-tech-marquee__icon--fa{color:var(--brand-blue);font-size:1.5rem}.service-tech-marquee__label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:.6875rem;font-weight:600}@keyframes service-tech-marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.service-editorial__thread-end{border-top:2px solid oklch(52% .22 27/.55);margin-top:clamp(28px,4.5vw,44px);padding-top:clamp(24px,4vw,36px)}.service-editorial__cap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;display:flex}.service-editorial__cap-list{flex-wrap:wrap;gap:10px 20px;margin:0;padding:0;list-style:none;display:flex}.service-editorial__cap-item{color:oklch(32% .04 258);padding-left:14px;font-size:.9375rem;font-weight:500;line-height:1.45;position:relative}.service-editorial__cap-item:before{content:"";background:var(--brand-red);border-radius:50%;width:6px;height:6px;position:absolute;top:.55em;left:0}.service-editorial__cap-tag{flex-shrink:0}.service-timeline{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.service-timeline__item{background:var(--brand-white);border-radius:var(--radius-md);border:1px solid oklch(20% .04 258/.1);padding:16px}.service-timeline__step{font-family:var(--font-mono);letter-spacing:.08em;color:var(--brand-red);margin-bottom:8px;font-size:.6875rem;font-weight:600;display:block}.service-timeline__label{font-family:var(--font-display);color:var(--brand-dark);margin:0 0 6px;font-size:.9375rem;font-weight:700}.service-timeline__detail{color:var(--brand-gray);margin:0;font-size:.8125rem;line-height:1.55}.service-flow{grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;gap:10px;display:grid}.service-flow__node{background:var(--brand-white);border-radius:var(--radius-md);border:1px solid oklch(20% .04 258/.1);padding:16px}.service-flow__node--accent{background:oklch(50.5% .18 253/.1);border-color:oklch(50.5% .18 253/.28)}.service-flow__label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--brand-blue);margin-bottom:8px;font-size:.6875rem;font-weight:600;display:block}.service-flow__desc{color:oklch(35% .04 258);margin:0;font-size:.8125rem;line-height:1.55}.service-flow__arrow{color:var(--brand-red);align-items:center;padding-top:24px;font-size:1.25rem;display:flex}.service-detail__outcomes-band:before{content:"";background-image:var(--service-hero-texture);opacity:.06;pointer-events:none;background-position:50%;background-size:cover;position:absolute;inset:0}.service-detail__section-title{font-family:var(--font-display);color:var(--brand-white);margin:0 0 1.25rem;font-size:clamp(1.25rem,2.5vw,1.5rem);font-weight:700}.service-band--light .service-detail__section-title{color:var(--brand-dark)}.service-detail__section-title--spaced{margin-top:clamp(32px,4vw,48px)}.service-detail__outcome-grid{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;margin:0;padding:0;list-style:none;display:grid;position:relative}.service-detail__outcome{color:var(--text-on-dark-body);background:var(--surface-on-dark-panel);border:1px solid var(--border-on-dark);border-radius:var(--radius-md);align-items:flex-start;gap:12px;padding:14px 16px;font-size:.9375rem;line-height:1.6;display:flex}.service-detail__outcome-icon{color:var(--brand-red);flex-shrink:0;margin-top:3px}.service-detail__tags{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.service-detail__proof-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;display:grid}.service-proof-card{background:var(--surface-on-dark-panel);border:1px solid var(--border-on-dark);border-radius:var(--radius-lg);color:inherit;transition:border-color var(--transition), transform var(--service-hover);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:0;text-decoration:none;display:grid;overflow:hidden}.service-proof-card__media{background:var(--brand-light);min-height:160px}.service-proof-card__media img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;min-height:160px}.service-proof-card__body{flex-direction:column;justify-content:center;padding:20px;display:flex}.service-proof-card__cat{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--brand-blue);margin-bottom:8px;font-size:.6875rem;font-weight:600}.service-proof-card__title{font-family:var(--font-display);color:var(--brand-white);margin:0 0 8px;font-size:1.125rem;font-weight:700}.service-proof-card__metric{color:var(--text-on-dark-subtle);margin:0 0 12px;font-size:.875rem;line-height:1.55}.service-proof-card__link{font-family:var(--font-mono);color:var(--brand-red);font-size:.75rem;font-weight:600}.service-detail__cta-panel{z-index:1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(24px,4vw,48px);display:grid;position:relative}.service-detail__cta-kicker{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:oklch(98% .005 263/.72);margin:0 0 10px;font-size:.6875rem;font-weight:600}.service-detail__cta-title{font-family:var(--font-display);color:var(--brand-white);max-width:24ch;margin:0 0 12px;font-size:clamp(1.5rem,3.5vw,2.25rem);font-weight:800;line-height:1.15}.service-detail__cta-text{color:oklch(98% .005 263/.88);max-width:48ch;margin:0;font-size:1rem;line-height:1.65}.service-detail__cta-actions{flex-direction:column;align-items:stretch;gap:12px;display:flex}.service-detail__cta-btn{min-height:48px;font-family:var(--font-display);border-radius:var(--radius-md);color:var(--brand-white);white-space:nowrap;background:oklch(98% .005 263/.1);border:2px solid oklch(98% .005 263/.9);justify-content:center;align-items:center;padding:14px 32px;font-size:15px;font-weight:700;text-decoration:none;transition:background .2s,color .2s,transform .25s cubic-bezier(.25,1,.5,1),box-shadow .2s,border-color .2s;display:inline-flex}.service-detail__cta-btn:hover{background:var(--brand-white);color:var(--brand-red);border-color:var(--brand-white);box-shadow:var(--shadow-md);transform:translateY(-2px)}.service-detail__cta-btn:focus-visible{outline:2px solid var(--brand-white);outline-offset:4px}.service-detail__cta-btn--primary{background:var(--brand-white);color:var(--brand-red);border-color:var(--brand-white)}.service-detail__cta-btn--primary:hover{color:var(--brand-dark);background:oklch(96% .015 265);border-color:oklch(96% .015 265)}.service-detail__cta-btn--secondary{color:oklch(98% .005 263/.86);background:0 0;border-color:oklch(98% .005 263/.42)}.service-detail__cta-btn--secondary:hover{color:var(--brand-white);box-shadow:none;background:oklch(98% .005 263/.12);border-color:oklch(98% .005 263/.68)}a.service-card{color:inherit;text-decoration:none}.service-card__more{font-family:var(--font-mono);letter-spacing:.06em;color:var(--brand-blue);opacity:0;transition:opacity var(--service-hover), transform var(--service-hover);margin-top:12px;font-size:.6875rem;font-weight:600;display:inline-block;transform:translateY(4px)}@media (hover:hover){.service-hub-featured:hover{border-color:oklch(50.5% .18 253/.4);transform:translateY(-4px)}.service-hub-list__item:hover{background:var(--surface-on-dark);border-color:var(--border-on-dark-subtle);transform:translate(4px)}.service-hub-list__item:hover .service-hub-list__arrow{transform:translate(4px)}.service-proof-card:hover{border-color:oklch(50.5% .18 253/.4);transform:translateY(-3px)}.service-detail__cta-btn:hover{transform:translateY(-2px)}.services-bento .service-card--linked:hover .service-card__more,.service-page--hub .service-hub-strip.service-card--linked:hover .service-card__more{opacity:1;transform:translateY(0)}}a.service-card:focus-visible,.service-hub-featured:focus-visible,.service-hub-list__item:focus-visible,.service-proof-card:focus-visible,.service-detail__cta-btn:focus-visible{outline:2px solid var(--brand-blue);outline-offset:4px}@media (width<=900px){.service-cinematic__grid,.service-hub-layout,.service-hub-featured,.service-proof-card{grid-template-columns:1fr}.service-cinematic__badge{justify-self:start;width:min(100%,220px)}.service-editorial__layer-item{margin-left:calc(var(--chapter-index,0) * 10px)}.service-editorial__cap{flex-direction:column;align-items:flex-start}.service-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.service-flow{grid-template-columns:1fr}.service-flow__arrow{display:none}.service-hub-list__item{grid-template-columns:auto 64px 1fr auto}.service-hub-list__thumb{width:64px;height:64px}}@media (width<=640px){.service-detail__outcome-grid,.service-timeline,.service-detail__cta-panel{grid-template-columns:1fr}.service-detail__cta-actions{width:100%}.service-detail__cta-btn{white-space:normal;text-align:center;width:100%}}@media (prefers-reduced-motion:reduce){.service-detail__cta-btn{transition:background .15s,color .15s,border-color .15s}.service-detail__cta-btn:hover{transform:none}.service-tech-marquee__track{flex-wrap:wrap;justify-content:center;gap:16px 24px;width:auto;padding:0 clamp(12px,3vw,20px);animation:none}.service-tech-marquee{-webkit-mask-image:none;mask-image:none}}.portfolio-page--hub .portfolio-hub-toolbar{flex-direction:column;gap:clamp(16px,3vw,24px);display:flex}.portfolio-page--hub .portfolio-filter-btn[aria-pressed=false]{color:oklch(88% .02 258);border-color:oklch(70% .03 258/.35)}.portfolio-page--hub .portfolio-empty{color:oklch(88% .02 258);grid-column:1/-1}.portfolio-hub-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(20px,3vw,28px);margin-top:clamp(8px,2vw,16px);scroll-margin-top:100px;display:grid}.portfolio-hub-range{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-on-dark-faint);margin:0;font-size:.75rem;font-weight:600}.portfolio-pagination{border-top:1px solid var(--border-on-dark-subtle);flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(12px,2vw,20px);margin-top:clamp(28px,4vw,40px);padding-top:clamp(20px,3vw,28px);display:flex}.portfolio-pagination__list{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.portfolio-pagination__btn,.portfolio-pagination__page{min-height:44px;font-family:var(--font-display);font-size:14px;font-weight:var(--weight-semibold);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition), border-color var(--transition), color var(--transition);padding:10px 18px}.portfolio-pagination__btn{background:var(--surface-on-dark-panel);border:1px solid var(--border-on-dark);color:var(--text-on-dark-body)}.portfolio-pagination__btn:hover:not(:disabled){border-color:var(--border-brand-medium);color:var(--brand-white)}.portfolio-pagination__btn:disabled{opacity:.4;cursor:not-allowed}.portfolio-pagination__page{border:1px solid var(--border-on-dark-subtle);min-width:44px;color:var(--text-on-dark-muted);background:0 0;padding-inline:14px}.portfolio-pagination__page:hover{border-color:var(--border-brand-medium);color:var(--brand-white)}.portfolio-pagination__page[aria-current=page]{background:var(--brand-blue);border-color:var(--brand-blue);color:var(--brand-white)}.portfolio-pagination__btn:focus-visible,.portfolio-pagination__page:focus-visible{outline:2px solid var(--brand-blue);outline-offset:3px}.portfolio-page--hub .portfolio-grid-card{background:var(--brand-dark);border-color:var(--border-brand-medium);box-shadow:var(--shadow-md);transition:border-color var(--service-hover), box-shadow var(--service-hover), transform var(--service-hover);position:relative}.portfolio-page--hub .portfolio-grid-card:hover{border-color:var(--border-brand-featured);box-shadow:var(--shadow-lg)}.portfolio-page--hub .portfolio-grid-card__media{background:var(--surface-media-dark)}.portfolio-page--hub .portfolio-grid-card__title{color:var(--brand-white)}.portfolio-page--hub .portfolio-grid-card__sub{color:var(--text-on-dark-subtle)}.portfolio-page--hub .portfolio-grid-card__desc{color:var(--text-on-dark-body)}.portfolio-page--hub .portfolio-grid-card .portfolio-metric{margin:var(--space-sm) 0 var(--space-md);background:var(--metric-chip-on-dark-bg);border-color:var(--metric-chip-on-dark-border);color:var(--color-blue-muted);padding:4px 10px;font-size:12px}.portfolio-page--hub .portfolio-grid-card .portfolio-metric svg{color:inherit;opacity:1}.portfolio-page--hub .portfolio-grid-card__link.btn-secondary{color:oklch(82% .08 265);border-color:oklch(50.5% .18 253/.5)}.portfolio-page--hub .portfolio-grid-card__link.btn-secondary:hover{background:var(--brand-blue);border-color:var(--brand-blue);color:var(--brand-white)}.portfolio-page--hub .portfolio-grid-card--linked:hover{border-color:var(--border-brand-featured);box-shadow:var(--shadow-lg)}.portfolio-grid-card--linked{color:inherit;text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s}.portfolio-grid-card--linked:hover{transform:translateY(-2px)}.portfolio-grid-card--linked:focus-visible{outline:2px solid var(--brand-blue);outline-offset:3px}.portfolio-grid-card__case-badge{z-index:1;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:oklch(82% .08 265);border-top:1px solid var(--border-brand-subtle);background:oklch(16.4% .033 260/.94);align-items:center;gap:8px;padding:9px 14px;font-size:.6875rem;font-weight:600;display:flex;position:absolute;bottom:0;left:0;right:0}.portfolio-grid-card__case-badge:before{content:"";background:var(--brand-red);border-radius:50%;flex-shrink:0;width:6px;height:6px}.portfolio-grid-card--linked .portfolio-grid-card__case-badge:after{content:"→";color:var(--brand-red);margin-left:auto;font-size:.875rem;line-height:1}.portfolio-grid-card__actions{flex-wrap:wrap;gap:10px;margin-top:auto;display:flex}.portfolio-detail__external-link{color:var(--brand-white);align-items:center;gap:6px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.portfolio-detail__external-link:hover{text-decoration:underline}.project-tech{border-top:1px solid var(--border-card-soft);margin-top:clamp(40px,6vw,64px);padding-top:clamp(32px,5vw,48px)}.project-tech__head{max-width:62ch;margin-bottom:clamp(24px,4vw,36px)}.project-tech__kicker{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase;color:var(--brand-blue);margin:0 0 10px;font-weight:600}.project-tech__title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--brand-dark);margin:0 0 14px}.project-tech__intro{font-size:var(--text-caption);line-height:var(--leading-prose);color:var(--brand-gray);max-width:65ch;margin:0}.project-tech-marquee{--marquee-duration:56s;background:oklch(50.5% .18 253/.04);border-block:1px solid oklch(50.5% .18 253/.14);margin-top:clamp(8px,2vw,16px);padding:clamp(16px,2.5vw,22px) 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,oklch(0% 0 0) 8% 92%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,oklch(0% 0 0) 8% 92%,#0000 100%)}.project-tech-marquee__track{width:max-content;animation:project-tech-marquee-scroll var(--marquee-duration) linear infinite;align-items:stretch;gap:clamp(16px,2.5vw,24px);margin:0;padding:0 clamp(8px,1.5vw,12px);list-style:none;display:flex}.project-tech-marquee__item{flex-shrink:0}.project-tech-card{border:1px solid var(--border-card-soft);border-radius:var(--radius-md);background:oklch(98% .008 265);grid-template-columns:auto 1fr;align-items:start;gap:14px 16px;width:clamp(260px,28vw,320px);min-height:100%;padding:18px 20px;display:grid}.project-tech-card__icon-wrap{background:var(--brand-white);border:1px solid var(--border-card);border-radius:var(--radius-sm);justify-content:center;align-items:center;width:48px;height:48px;display:flex}.project-tech-card__icon,.tech-stack-icon.project-tech-card__icon{-o-object-fit:contain;object-fit:contain;width:28px;height:28px}.tech-stack-icon--fa.project-tech-card__icon{color:var(--brand-blue);font-size:1.375rem}.tech-stack-icon--fallback{width:28px;height:28px;font-family:var(--font-mono);color:var(--brand-blue);justify-content:center;align-items:center;font-size:.875rem;font-weight:700;display:flex}.project-tech-card__label{font-family:var(--font-display);font-size:1rem;font-weight:var(--weight-bold);color:var(--brand-dark);margin:0 0 6px}.project-tech-card__detail{color:var(--brand-gray);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.8125rem;line-height:1.55;display:-webkit-box;overflow:hidden}@keyframes project-tech-marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.portfolio-grid-card--linked:hover{transform:none}.project-tech-marquee__track{flex-wrap:wrap;justify-content:center;gap:16px;width:auto;animation:none}.project-tech-marquee{-webkit-mask-image:none;mask-image:none}}.about-page__cta-actions{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.about-page-principles{flex-direction:column;gap:clamp(28px,4vw,40px);display:flex}.about-page-principles__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.5vw,24px);margin:0;padding:0;list-style:none;display:grid}.about-page-principle{background:var(--surface-on-dark-panel);border:1px solid var(--border-on-dark);border-radius:var(--radius-md);min-height:100%;transition:border-color var(--service-hover);grid-template-columns:auto auto 1fr;align-items:start;gap:14px 16px;padding:20px 22px;display:grid}.about-page-principle:hover{border-color:var(--border-brand-subtle)}.about-page-principle__index{font-family:var(--font-mono);letter-spacing:.08em;color:var(--brand-blue);grid-area:1/1;font-size:.6875rem;font-weight:600}.about-page-principle__icon{color:var(--brand-red);grid-area:1/2/span 2;padding-top:2px;font-size:1.375rem;line-height:1}.about-page-principle__copy{grid-area:1/3/span 2;min-width:0}.about-page-principle__title{font-family:var(--font-display);font-size:1rem;font-weight:var(--weight-bold);color:var(--brand-white);margin:0 0 6px}.about-page-principle__desc{color:var(--text-on-dark-subtle);margin:0;font-size:.875rem;line-height:1.55}.about-page-stats{border-top:1px solid var(--border-on-dark-subtle);flex-wrap:wrap;gap:clamp(20px,4vw,48px);padding-top:clamp(20px,3vw,28px);display:flex}.about-page-stats__item{flex-direction:column;gap:4px;min-width:80px;display:flex}.about-page-stats__value{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:var(--weight-extrabold);color:var(--brand-white);line-height:1.1}.about-page-stats__label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-on-dark-faint);font-size:.6875rem;font-weight:600}.about-page-anchor__head{max-width:62ch;margin-bottom:clamp(28px,4vw,40px)}.about-page-anchor__kicker{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase;color:var(--brand-blue);margin:0 0 10px;font-weight:600}.about-page-anchor__title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--brand-dark);margin:0}.about-page-anchor__layout{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:clamp(32px,5vw,56px);display:grid}.about-page-anchor__facts{flex-direction:column;gap:20px;margin:0;padding:0;list-style:none;display:flex}.about-page-anchor__fact{align-items:flex-start;gap:14px;display:flex}.about-page-anchor__fact-icon{color:var(--brand-blue);flex-shrink:0;margin-top:2px;font-size:1.25rem}.about-page-anchor__fact-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--brand-gray);margin-bottom:4px;font-size:.6875rem;font-weight:600;display:block}.about-page-anchor__fact-value{font-size:1rem;font-weight:var(--weight-semibold);color:var(--brand-dark);display:block}.about-page-anchor__stack-title{font-family:var(--font-display);font-size:1rem;font-weight:var(--weight-bold);color:var(--brand-dark);margin:0 0 14px}.about-page-anchor__chips{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}@media (width<=768px){.about-page-principles__grid{grid-template-columns:1fr}.about-page-principle{grid-template-columns:auto 1fr}.about-page-principle__index{grid-row:1}.about-page-principle__icon{grid-area:2/1}.about-page-principle__copy{grid-area:1/2/span 2}.about-page-anchor__layout,.service-detail__cta-panel{grid-template-columns:1fr}}.contact-page__body{background:var(--brand-dark);padding:clamp(48px,6vw,80px) clamp(16px,6vw,80px) 100px}.contact-page__section{max-width:1120px;margin:0 auto}.contact-section__lead{text-align:center;color:var(--brand-gray);margin-bottom:60px;font-size:17px}.contact-section__lead-accent{color:var(--brand-blue);font-weight:600}.contact-section__layout{flex-wrap:wrap;align-items:flex-start;gap:60px;display:flex}.contact-section__layout--page{gap:clamp(40px,5vw,60px)}.contact-section__infos{flex:280px}.contact-section__form{flex:2 360px}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}.skip-link{z-index:100000;background:var(--brand-blue);color:var(--brand-white);font-family:var(--font-display);border-radius:var(--radius-md);padding:12px 20px;font-size:14px;font-weight:700;text-decoration:none;position:absolute;top:16px;left:-9999px}.skip-link:focus{left:16px}.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}:focus:not(:focus-visible){outline:none}:focus-visible,button:focus-visible,a:focus-visible,.nav-link:focus-visible,.footer-link:focus-visible,.portfolio-filter-btn:focus-visible,.portfolio-modal__close:focus-visible,.portfolio-empty__reset:focus-visible{outline:2px solid var(--brand-blue);outline-offset:4px}body{font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);background:var(--brand-white);color:var(--brand-dark);overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font-body);border:none}#scroll-bar{background:var(--brand-red);z-index:9999;height:3px;transition:width .1s linear;position:fixed;top:0;left:0}.scroll-to-top{z-index:3500;background:var(--brand-dark);border:1px solid var(--border-on-dark);width:48px;height:48px;color:var(--brand-blue);box-shadow:var(--shadow-sm);opacity:0;visibility:hidden;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;font-size:18px;transition:opacity .35s cubic-bezier(.25,1,.5,1),transform .35s cubic-bezier(.25,1,.5,1),visibility .35s,background .2s,color .2s,box-shadow .2s,border-color .2s;display:flex;position:fixed;bottom:clamp(20px,5vw,32px);right:clamp(16px,4vw,28px);transform:translateY(16px)}.scroll-to-top--visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.scroll-to-top:focus-visible{outline:2px solid var(--brand-blue);outline-offset:4px}#cursor{background:var(--brand-blue);pointer-events:none;z-index:99999;border-radius:50%;width:8px;height:8px;transition:width .2s,height .2s,background .2s,transform .1s;position:fixed;transform:translate(-50%,-50%)}#cursor.large{background:var(--brand-red);opacity:.7;width:32px;height:32px}.fade-in{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(24px)}.fade-in.visible{opacity:1;transform:translateY(0)}.fade-in{transition-delay:var(--delay,0s)}.hero-enter{animation:.8s both fadeInUp}.hero-enter--delay{animation:.8s .2s both fadeInUp}.hero-float{animation:4s ease-in-out infinite float}.hero-cursor-blink{background:var(--brand-blue);vertical-align:middle;width:8px;height:16px;animation:1s infinite blink;display:inline-block}.hero-status-pulse{background:var(--color-success);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s infinite pulse}.hero-underline{animation:1.2s .8s forwards drawLine}.contact-success-enter{animation:.5s fadeInUp}.loading-spin{border:2px solid var(--spinner-track);border-top-color:var(--brand-white);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin;display:inline-block}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink{50%{opacity:0}}@keyframes ripple{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(4)}}@keyframes slideUnderline{0%{width:0}to{width:100%}}@keyframes drawLine{0%{stroke-dashoffset:300px}to{stroke-dashoffset:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes gridDot{0%,to{opacity:.04}50%{opacity:.08}}.btn-ripple{min-height:44px;position:relative;overflow:hidden}.btn-ripple .ripple-effect{background:var(--ripple-on-dark);pointer-events:none;border-radius:50%;animation:.6s linear ripple;position:absolute}.btn-primary{background:var(--brand-red);color:var(--brand-white);font-family:var(--font-display);font-weight:var(--weight-bold);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-red);transition:transform var(--transition), box-shadow var(--transition);border:none;padding:14px 32px}.btn-primary:focus-visible{outline:2px solid var(--brand-blue);outline-offset:4px}.btn-secondary{border:2px solid var(--brand-blue);color:var(--brand-blue);font-family:var(--font-display);font-weight:var(--weight-bold);border-radius:var(--radius-md);cursor:pointer;min-height:44px;transition:background var(--transition), color var(--transition);background:0 0;padding:12px 28px}.btn-secondary:hover{background:var(--brand-blue);color:var(--brand-white)}.btn-secondary:focus-visible{outline:2px solid var(--brand-blue);outline-offset:4px}.form-label{font-size:13px;font-weight:var(--weight-semibold);color:var(--text-on-dark-muted);margin-bottom:8px;display:block}.btn-primary:disabled{opacity:.8;cursor:not-allowed}.contact-form-panel{background:var(--surface-on-dark-panel);border:1px solid var(--border-on-dark-subtle);border-radius:var(--radius-xl);padding:clamp(24px,4vw,40px)}.footer-remote-badge{background:var(--surface-on-dark);color:var(--text-on-dark-subtle);border-radius:20px;align-items:center;gap:8px;margin-top:16px;padding:8px 16px;font-size:13px;display:inline-flex}.footer-bar{border-top:1px solid var(--divider-on-dark);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:20px 0;display:flex}.shadow-var-sm{box-shadow:var(--shadow-sm)}.shadow-var-md{box-shadow:var(--shadow-md)}.shadow-var-lg{box-shadow:var(--shadow-lg)}.footer-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.hero-radial{background:radial-gradient(ellipse 60% 60% at 20% 30%, var(--glow-blue-soft) 0%, transparent 70%)}.draw-line{animation:1.2s .8s forwards drawLine}.portfolio-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.services-section{background:var(--brand-light);padding:100px clamp(16px,6vw,80px)}.services-bento{flex-direction:column;gap:clamp(16px,2.5vw,28px);display:flex}.services-bento-band{grid-template-columns:1fr;gap:clamp(16px,2.5vw,28px);display:grid}.services-bento-band>.service-cell{min-height:0;display:flex}.service-card{background:var(--brand-white);border-radius:var(--radius-lg);width:100%;min-height:0;box-shadow:var(--shadow-sm);transition:box-shadow var(--service-hover), border-color var(--service-hover), transform var(--service-hover);border:1px solid oklch(20% .04 258/.14);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.service-card__media{background:var(--brand-light);transition:background var(--service-hover);flex:0 auto;justify-content:center;align-items:center;padding:16px;display:flex}.service-card__media img{-o-object-fit:contain;object-fit:contain;max-width:100%;max-height:100%;transition:transform var(--service-hover);will-change:transform}.service-card__title{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-title);line-height:var(--leading-tight);color:var(--brand-dark);transition:color var(--service-hover);flex-shrink:0;margin-bottom:clamp(6px,.8vh,10px)}.service-card__index{z-index:1;font-family:var(--font-mono);letter-spacing:.08em;color:var(--color-label-on-light);pointer-events:none;transition:color var(--service-hover);font-size:11px;font-weight:600;position:absolute;top:16px;right:20px}.service-card__body{flex-direction:column;flex:auto;justify-content:space-between;min-height:0;padding:clamp(18px,2.5vw,26px) clamp(18px,2.8vw,28px) clamp(20px,2.5vw,26px);display:flex}.service-card__content{flex-direction:column;flex:auto;min-height:0;display:flex}.service-card__desc{min-height:0;font-size:var(--text-caption);color:var(--color-text-on-light);line-height:var(--leading-prose);flex:auto;align-items:center;margin-bottom:0;display:flex}.service-card__tags{flex-wrap:wrap;flex-shrink:0;gap:8px;margin:clamp(10px,1.2vh,14px) 0 0;padding:0;list-style:none;display:flex}.service-card--featured{background:var(--brand-dark);box-shadow:var(--shadow-md);border-color:oklch(50.5% .18 253/.5);flex-direction:column;display:flex}.service-card--featured:before{content:"";background:var(--brand-red);z-index:2;height:3px;transition:box-shadow var(--service-hover);position:absolute;top:0;left:0;right:0}.service-card--featured .service-card__index--watermark{z-index:1;letter-spacing:-.04em;color:var(--watermark-on-dark);opacity:1;transition:color var(--service-hover);font-size:clamp(56px,10vw,96px);font-weight:700;line-height:1;position:absolute;top:auto;bottom:clamp(12px,2vh,20px);right:clamp(16px,2vw,24px)}.service-card--featured .service-card__media{min-height:200px;transition:filter var(--service-hover);background:radial-gradient(circle at 1px 1px,oklch(50.5% .18 253/.18) 1px,#0000 0) 0 0/22px 22px,linear-gradient(160deg,oklch(50.5% .18 253/.32) 0%,oklch(20% .04 258/.82) 100%);flex:auto;padding:clamp(24px,4vw,40px);position:relative}.service-card--featured .service-card__media img{z-index:1;max-width:88%;max-height:min(78%,220px);position:relative}.service-card--featured .service-card__body{flex:auto;justify-content:space-between;gap:clamp(12px,2vh,18px)}.service-card--featured .service-card__content{flex:auto;min-height:0}.service-card--featured .service-card__title{color:var(--brand-white);margin-bottom:clamp(6px,.8vh,10px);font-size:clamp(22px,3.2vw,30px)}.service-card--featured .service-card__desc{color:var(--text-on-dark-muted);max-width:none;font-size:clamp(14px,1.45vw,16px);line-height:1.55}.service-card--featured .service-card__tags{border-top:1px solid oklch(50.5% .18 253/.35);margin-top:0;padding-top:clamp(12px,1.8vh,18px)}.service-card--featured .tech-tag{color:var(--color-blue-muted);background:oklch(50.5% .18 253/.25);border:1px solid oklch(50.5% .18 253/.4)}.service-card--accent{background:linear-gradient(155deg, var(--brand-white) 0%, var(--color-blue-tint) 100%);box-shadow:var(--shadow-sm);transition:box-shadow var(--service-hover), border-color var(--service-hover), transform var(--service-hover), background var(--service-hover);border-color:oklch(50.5% .18 253/.28)}.service-card--accent .service-card__media{background:0 0;min-height:110px}.service-card--accent .service-card__title{color:var(--brand-blue);font-size:clamp(17px,2vw,20px)}.service-card--compact{border-color:oklch(20% .04 258/.12)}.service-card--compact .service-card__media{min-height:96px}.service-card--compact .service-card__desc{font-size:clamp(13px,1.3vw,14px)}.service-card--wide{border-color:oklch(50.5% .18 253/.22)}.service-card--wide .service-card__title{font-size:clamp(19px,2.4vw,24px)}.service-card--wide .service-card__media{min-height:140px}.service-card--mid{border-color:oklch(20% .04 258/.13)}.service-card--mid .service-card__media{min-height:120px}.service-card--narrow{background:var(--color-surface-warm);transition:box-shadow var(--service-hover), border-color var(--service-hover), transform var(--service-hover), background var(--service-hover);border-color:oklch(20% .04 258/.11)}.service-card--narrow .service-card__media{background:var(--color-surface-warm-muted);min-height:88px;padding:12px}.service-card--narrow .service-card__title{font-size:clamp(15px,1.6vw,17px)}.service-card--narrow .service-card__desc{font-size:clamp(12px,1.2vw,13px);line-height:1.5}.service-card--strip{background:linear-gradient(128deg, oklch(98.5% .018 265) 0%, var(--brand-white) 42%, oklch(97% .038 265) 100%);box-shadow:var(--shadow-sm), inset 0 1px 0 oklch(50.5% .18 253/.08);border-color:oklch(50.5% .18 253/.3);flex-direction:column;display:flex}.service-card--strip:before{content:"";background:linear-gradient(90deg, var(--brand-blue) 0%, oklch(62% .16 253) 55%, oklch(78% .1 253) 100%);z-index:2;height:3px;transition:box-shadow var(--service-hover);position:absolute;top:0;left:0;right:0}.service-card--strip .service-card__media{background:linear-gradient(165deg,oklch(50.5% .18 253/.22) 0%,oklch(50.5% .18 253/.1) 38%,oklch(96% .045 265) 100%);min-height:120px}.service-card--strip .service-card__body{background:oklch(99% .008 265/.65);flex:1}.service-card--strip .service-card__title{color:var(--brand-red)}.service-card--strip .service-card__desc{color:oklch(48% .035 260);align-items:flex-start;line-height:1.55}.service-card--strip .service-card__index{color:oklch(38% .12 253);font-size:12px;inset:auto auto 14px 18px}.service-card--strip .tech-tag{color:oklch(38% .1 253);background:oklch(50.5% .18 253/.12);border:1px solid oklch(50.5% .18 253/.24)}.services-bento .tech-tag{transition:background-color var(--service-hover), color var(--service-hover), border-color var(--service-hover), transform var(--service-hover)}.section-header{margin-bottom:60px}.section-header--center{text-align:center}.section-header--left{text-align:left}.section-header--compact{margin-bottom:24px}.section-title{font-size:var(--text-headline);font-weight:var(--weight-bold);font-family:var(--font-display);line-height:var(--leading-tight);margin:0}.section-header--dark .section-title{color:var(--brand-dark)}.section-header--light .section-title{color:var(--brand-white)}.section-header--left .section-title{font-size:clamp(1.625rem,4vw,2.375rem)}.hamburger-toggle{transition:all .3s ease-out}.hamburger-line{background:var(--brand-white);transform-origin:50%;width:24px;height:2px;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:block}.hamburger-top{transform:translateY(0)}.hamburger-middle{opacity:1}.hamburger-bottom{transform:translateY(0)}.hamburger-top-open{transform:translateY(8px)rotate(45deg)}.hamburger-middle-open{opacity:0;transform:translate(-10px)}.hamburger-bottom-open{transform:translateY(-8px)rotate(-45deg)}.nav-link{color:var(--brand-gray);cursor:pointer;transition:color var(--transition);font-size:14px;font-family:var(--font-display);background:0 0;border:none;align-items:center;min-height:44px;padding-bottom:2px;text-decoration:none;display:inline-flex;position:relative}.nav-link:after{content:"";background:var(--brand-red);width:0;height:2px;transition:width var(--transition);position:absolute;bottom:0;left:0}.nav-link:hover{color:var(--brand-white)}.nav-link:hover:after{width:100%}.nav-link-active,.nav-link.nav-link-active:hover{color:var(--brand-white)}.nav-link-active:after{width:100%}.route-fallback{min-height:50vh}.home-section-placeholder{width:100%}.route-page{background:var(--brand-dark);min-height:100vh;padding:120px clamp(16px,6vw,80px) 80px}.route-page__inner{max-width:70ch}.route-page__kicker{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--brand-blue);margin:0 0 1rem;font-size:.6875rem;font-weight:600}.route-page__title{font-family:var(--font-display);color:var(--brand-white);margin:0 0 1rem;font-size:clamp(2rem,5vw,3rem);font-weight:800;line-height:1.1}.route-page__desc{color:var(--brand-gray);margin:0 0 2rem;font-size:1.0625rem;line-height:1.7}.route-page__cta{align-items:center;text-decoration:none;display:inline-flex}a.route-page__cta,a.footer-cta{text-decoration:none}.navbar{z-index:1000;height:72px;box-shadow:none;transition:background var(--service-hover), border-color var(--service-hover), box-shadow var(--service-hover);background:0 0;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:0 clamp(16px,4vw,60px);display:flex;position:fixed;top:0;left:0;right:0}.navbar--scrolled{background:var(--brand-dark);border-bottom-color:oklch(50.5% .18 253/.22);box-shadow:0 1px oklch(20% .04 258/.06)}.lang-switcher{letter-spacing:.08em;min-width:40px;color:var(--brand-gray);border-radius:var(--radius-sm,8px);border:1px solid #ffffff26;justify-content:center;align-items:center;padding:8px 10px;font-size:12px;font-weight:700;text-decoration:none;transition:color .2s,border-color .2s;display:inline-flex}.lang-switcher:hover{color:var(--brand-white);border-color:var(--brand-blue)}.lang-switcher:focus-visible{outline:2px solid var(--brand-blue);outline-offset:2px}.portfolio-section{background:var(--brand-light);padding:100px clamp(16px,6vw,80px)}.portfolio-section .section-header--left{margin-bottom:32px}.portfolio-filters{flex-wrap:wrap;gap:12px;margin-bottom:clamp(32px,4vw,48px);display:flex}.portfolio-filter-btn{align-items:center;gap:8px;display:inline-flex}.portfolio-filter-btn__count{font-size:12px;font-weight:var(--weight-semibold);opacity:.72;font-variant-numeric:tabular-nums}.portfolio-filter-btn[aria-pressed=true] .portfolio-filter-btn__count{opacity:.92}.portfolio-preview{flex-direction:column;gap:clamp(10px,1.2vh,16px);min-height:0;display:flex}.portfolio-cat-badge{background:var(--brand-red);color:var(--brand-white);font-size:11px;font-weight:var(--weight-semibold);border-radius:var(--radius-sm);letter-spacing:.05em;padding:4px 12px;position:absolute;top:16px;left:16px}.portfolio-metric{background:var(--metric-chip-bg);border:1px solid var(--border-brand-strong);border-radius:var(--radius-sm);color:var(--color-code-string);font-size:13px;font-weight:var(--weight-semibold);margin:var(--space-md) 0;align-items:center;gap:8px;padding:6px 12px;display:inline-flex}.portfolio-metric svg{flex-shrink:0}.portfolio-anchor{background:var(--brand-dark);border:1px solid var(--border-brand-featured);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;min-height:0;display:flex;position:relative;overflow:hidden}.portfolio-anchor:before{content:"";background:var(--brand-red);z-index:2;height:3px;position:absolute;top:0;left:0;right:0}.portfolio-anchor__media{background:var(--surface-media-dark);justify-content:center;align-items:center;min-height:160px;padding:clamp(16px,3vw,28px);display:flex;position:relative}.portfolio-anchor__media img{-o-object-fit:contain;object-fit:contain;width:100%;max-height:min(22vh,220px)}.portfolio-anchor__body{color:var(--brand-white);padding:clamp(16px,2vw,28px)}.portfolio-anchor__title{font-family:var(--font-display);font-size:clamp(1.375rem,2.5vw,1.75rem);font-weight:var(--weight-extrabold);line-height:var(--leading-tight);overflow-wrap:anywhere;min-width:0;margin-bottom:8px}.portfolio-anchor__sub{color:var(--text-on-dark-subtle);margin-bottom:8px;font-size:13px}.portfolio-anchor__desc{font-size:clamp(13px,1.1vw,15px);line-height:var(--leading-prose);color:var(--text-on-dark-body);margin-bottom:var(--space-sm);line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:70ch;display:-webkit-box;overflow:hidden}.portfolio-anchor .portfolio-metric{background:var(--metric-chip-on-dark-bg);border-color:var(--metric-chip-on-dark-border);color:var(--color-blue-muted);margin-bottom:var(--space-sm);padding:4px 10px;font-size:12px}.portfolio-signals{flex-direction:column;gap:clamp(10px,1.2vh,14px);min-height:0;display:flex}.portfolio-signals .portfolio-metric,.portfolio-grid-card .portfolio-metric{font-size:11px;font-weight:var(--weight-semibold);color:var(--metric-chip-signal-bg);background:0 0;border:none;align-self:flex-start;margin-bottom:6px;padding:5px}.portfolio-signals .portfolio-metric svg,.portfolio-grid-card .portfolio-metric svg{color:inherit;opacity:.92}.portfolio-signal{background:var(--brand-white);border:1px solid var(--border-card-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);min-height:0;transition:box-shadow var(--service-hover), border-color var(--service-hover);flex-direction:column;display:flex;position:relative;overflow:hidden}.portfolio-signal--archive .portfolio-signal__archive-overlay{z-index:2;border-radius:inherit;-webkit-backdrop-filter:blur(2px);opacity:1;pointer-events:auto;background:oklch(20% .04 258/.78);justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.portfolio-signal__media{aspect-ratio:16/9;background:var(--brand-light);flex-shrink:0;justify-content:center;align-items:stretch;padding:10px;display:flex;position:relative;overflow:hidden}.portfolio-signal__media img{-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center;width:100%;height:100%}.portfolio-signal__body{flex-direction:column;flex:1;min-width:0;min-height:0;padding:clamp(10px,1.2vw,14px);display:flex}.portfolio-signal__title{font-family:var(--font-display);font-size:clamp(.9375rem,1.2vw,1.0625rem);font-weight:var(--weight-bold);color:var(--brand-dark);overflow-wrap:anywhere;min-width:0;transition:color var(--service-hover);margin-bottom:4px}.portfolio-signal__sub{color:var(--brand-gray);margin-bottom:6px;font-size:12px}.portfolio-signal__desc{color:var(--brand-gray);line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.portfolio-signal__actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;display:flex}.portfolio-signal__link{justify-content:center;align-items:center;padding:6px 12px;font-size:.85rem;display:inline-flex}.portfolio-empty{text-align:center;color:var(--brand-gray);padding:48px 16px;font-size:16px}.portfolio-see-more{justify-content:center;align-items:center;min-height:44px;padding:8px 14px;font-size:12px;display:inline-flex}.portfolio-anchor__link{justify-content:center;align-items:center;min-height:40px;padding:12px 24px;display:inline-flex}.portfolio-empty__reset{color:var(--brand-blue);font-weight:var(--weight-semibold);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;min-height:44px;padding:8px 12px;text-decoration:underline}.portfolio-modal-root{z-index:4000;justify-content:center;align-items:center;padding:clamp(12px,2vw,24px);display:flex;position:fixed;inset:0}.portfolio-modal-scrim{z-index:0;background:var(--overlay-scrim);cursor:pointer;border:none;padding:0;position:absolute;inset:0}.portfolio-modal{z-index:1;background:var(--brand-white);border:1px solid var(--border-card);border-radius:var(--radius-xl);width:80vw;max-width:1200px;height:80vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:relative;overflow:hidden}.portfolio-modal__header{border-bottom:1px solid var(--border-card-muted);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:clamp(16px,2vw,24px) clamp(20px,2.5vw,28px);display:flex}.portfolio-modal__title{font-family:var(--font-display);font-size:clamp(1.125rem,1.8vw,1.375rem);font-weight:var(--weight-bold);color:var(--brand-dark)}.portfolio-modal__close{background:var(--brand-light);border:1px solid var(--border-card);border-radius:var(--radius-md);color:var(--brand-dark);cursor:pointer;transition:background var(--transition), border-color var(--transition);font-size:18px}.portfolio-modal__close:hover{background:var(--surface-blue-tint);border-color:var(--border-brand-subtle)}.portfolio-modal__filters{border-bottom:1px solid var(--border-card-soft);background:var(--surface-modal-strip);flex-shrink:0;padding:12px clamp(20px,2.5vw,28px) 16px}.portfolio-modal__filters .portfolio-filters{margin-bottom:0}.portfolio-modal__body{flex:1;min-height:0;padding:clamp(16px,2vw,24px) clamp(20px,2.5vw,28px) clamp(24px,3vw,32px);overflow-y:auto}.portfolio-modal__grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.portfolio-grid-card{background:var(--brand-white);border:1px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--service-hover), border-color var(--service-hover);flex-direction:column;display:flex;overflow:hidden}.portfolio-grid-card:hover{border-color:var(--border-brand-medium);box-shadow:var(--shadow-md)}.portfolio-grid-card__media{aspect-ratio:16/10;background:var(--brand-light);justify-content:center;align-items:center;padding:12px;display:flex;position:relative}.portfolio-grid-card__media img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.portfolio-grid-card__body{flex-direction:column;flex:1;min-width:0;padding:18px 20px 22px;display:flex}.portfolio-grid-card__title{font-family:var(--font-display);font-size:1.0625rem;font-weight:var(--weight-bold);color:var(--brand-dark);overflow-wrap:anywhere;min-width:0;margin-bottom:4px}.portfolio-grid-card__sub{color:var(--brand-gray);margin-bottom:10px;font-size:13px}.portfolio-grid-card__desc{font-size:13px;line-height:var(--leading-prose);color:var(--brand-gray);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:12px;display:-webkit-box;overflow:hidden}.portfolio-grid-card__link{align-self:flex-start;align-items:center;min-height:44px;margin-top:auto;padding:8px 16px;font-size:13px;display:inline-flex}.tech-tag{background:var(--brand-blue-10);color:var(--brand-blue);letter-spacing:.04em;border-radius:20px;margin:3px 2px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.form-input,.form-select,.form-textarea{background:var(--surface-on-dark);border:1px solid var(--border-on-dark);border-radius:var(--radius-md);width:100%;color:var(--brand-white);font-family:var(--font-body);transition:border-color var(--transition), background var(--transition);outline:none;padding:14px 16px;font-size:15px}.form-input::-moz-placeholder{color:var(--text-on-dark-placeholder)}.form-textarea::-moz-placeholder{color:var(--text-on-dark-placeholder)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-on-dark-placeholder)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--brand-blue);background:var(--surface-on-dark-focus)}.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible{outline:2px solid var(--brand-blue);outline-offset:2px}.form-input.error,.form-select.error,.form-textarea.error{border-color:var(--brand-red)}.form-select{appearance:none;cursor:pointer}.form-select option{background:var(--brand-dark);color:var(--brand-white)}.form-textarea{resize:vertical;min-height:120px}.field-error{color:var(--brand-red);margin-top:4px;font-size:12px}body:before{content:"";opacity:.02;pointer-events:none;z-index:99998;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");position:fixed;inset:0}.process-line{background:oklch(50.5% .18 253/.3);height:2px;position:absolute;top:32px;left:60px;right:60px}.nav-menu-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;min-width:44px;min-height:44px;padding:12px}.contact-form-grid{grid-template-columns:1fr 1fr;gap:0 20px;display:grid}.about-values-band{width:100%;margin-top:clamp(48px,5vw,72px)}.about-values-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,24px);display:grid}.about-value-card{transition:border-color var(--transition), box-shadow var(--transition);border:1px solid oklch(50.5% .18 253/.22)}.about-value-card:hover{box-shadow:var(--shadow-sm);border-color:oklch(50.5% .18 253/.38)}.about-stats-overlap{margin-bottom:-40px}.about-stats-offset{margin-left:24px}.touch-target{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.social-link{cursor:pointer;width:44px;height:44px;color:var(--brand-white);transition:background var(--transition);border-radius:50%;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.social-link--footer{background:var(--surface-on-dark);font-size:14px}.social-link--contact{background:var(--surface-on-dark-strong);font-size:18px}.social-link:hover{background:var(--brand-blue)}.portfolio-filter-btn{cursor:pointer;min-height:44px;transition:all var(--transition);font-size:14px;font-weight:600;font-family:var(--font-display);color:var(--brand-gray);background:0 0;border:2px solid #0000;border-radius:24px;padding:10px 22px}.portfolio-filter-btn[aria-pressed=true]{background:var(--brand-blue);color:var(--brand-white);border-color:var(--brand-blue)}.portfolio-filter-btn[aria-pressed=false]{border-color:var(--color-border-subtle)}.footer-link{color:var(--text-on-dark-soft);transition:color var(--transition);cursor:pointer;min-height:44px;font-size:14px;font-family:var(--font-body);text-align:left;background:0 0;border:none;align-items:center;margin-bottom:4px;padding:6px 0;text-decoration:none;display:flex}.footer-link:hover{color:var(--brand-white)}.footer-cta{background:var(--brand-red);border:1px solid var(--brand-red);color:var(--brand-white);border-radius:var(--radius-md);cursor:pointer;min-height:44px;font-size:13px;font-weight:600;font-family:var(--font-display);transition:all var(--transition);justify-content:center;align-items:center;margin-top:16px;padding:10px 18px;display:inline-flex}.footer-cta:hover{color:var(--brand-white);background:oklch(46% .22 27);border-color:oklch(46% .22 27)}.footer-legal-link{color:var(--text-on-dark-muted);cursor:pointer;font-size:12px;font-family:var(--font-display);min-height:44px;transition:color var(--transition);background:0 0;border:none;align-items:center;padding:10px 4px;text-decoration:none;display:inline-flex}.footer-legal-link:hover{color:var(--brand-white)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--brand-dark)}::-webkit-scrollbar-thumb{background:var(--brand-blue);border-radius:3px}.reduce-motion #cursor{display:none!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@media (hover:hover){.scroll-to-top:hover{background:var(--brand-blue);color:var(--brand-white);border-color:var(--brand-blue);box-shadow:var(--shadow-md)}}@media (hover:none),(pointer:coarse){#cursor{display:none!important}.fade-in{opacity:1;transition:none;transform:none}}@media (prefers-reduced-motion:no-preference){.btn-primary:hover{box-shadow:var(--shadow-red-hover);transform:translateY(-3px)}.services-bento .service-card:hover{border-color:oklch(50.5% .18 253/.38);box-shadow:0 10px 36px oklch(20% .04 258/.14)}.services-bento .service-card:hover .service-card__media img{transform:scale(1.06)}.services-bento .service-card:hover .service-card__index{color:var(--brand-blue)}.services-bento .service-card:hover .tech-tag{transform:translateY(-1px)}.services-bento .service-card:not(.service-card--featured):hover .service-card__title{color:var(--brand-blue)}.services-bento .service-card--accent:hover{border-color:oklch(50.5% .18 253/.45)}.services-bento .service-card--accent:hover .service-card__media{background:oklch(50.5% .18 253/.06)}.services-bento .service-card--narrow:hover{background:var(--color-surface-warm-hover);border-color:oklch(20% .04 258/.16)}.services-bento .service-card--featured:hover{border-color:oklch(50.5% .18 253/.72);box-shadow:0 16px 48px oklch(20% .04 258/.28)}.services-bento .service-card--featured:hover:before{box-shadow:0 0 18px oklch(52% .22 27/.45)}.services-bento .service-card--featured:hover .service-card__media{filter:brightness(1.08)}.services-bento .service-card--featured:hover .service-card__media img{transform:scale(1.07)}.services-bento .service-card--featured:hover .service-card__title{color:var(--color-blue-tint)}.services-bento .service-card--featured:hover .service-card__index--watermark{color:var(--watermark-on-dark-hover)}.services-bento .service-card--featured:hover .tech-tag{background:oklch(50.5% .18 253/.38);border-color:oklch(50.5% .18 253/.55)}.services-bento .service-card--strip:hover{border-color:oklch(50.5% .18 253/.48);box-shadow:0 14px 44px oklch(20% .04 258/.14),inset 0 1px oklch(50.5% .18 253/.12)}.services-bento .service-card--strip:hover:before{box-shadow:0 0 20px oklch(50.5% .18 253/.35)}.services-bento .service-card--strip:hover .service-card__title{color:oklch(42% .2 27)}.services-bento .service-card--strip:hover .service-card__media{background:linear-gradient(165deg,oklch(50.5% .18 253/.28) 0%,oklch(50.5% .18 253/.14) 42%,oklch(95% .05 265) 100%)}.services-bento .service-card--strip:hover .service-card__index{color:var(--brand-blue)}.services-bento .service-card--strip:hover .tech-tag{color:oklch(32% .12 253);background:oklch(50.5% .18 253/.18);border-color:oklch(50.5% .18 253/.38)}.services-bento .service-card--strip:hover .service-card__media img{transform:scale(1.04)}@media (width<=1023px){.services-bento .service-card:hover{transform:translateY(-4px)}.services-bento .service-card--featured:hover{transform:translateY(-3px)}}}@media (width>=640px){.services-bento-band{grid-template-columns:repeat(2,1fr)}.service-cell--featured,.service-cell--strip,.service-cell--wide{grid-column:span 2}.service-card--featured{flex-direction:row;align-items:stretch}.service-card--featured .service-card__media{flex:44%;align-self:stretch;min-height:0}.service-card--featured .service-card__body{flex:56%;justify-content:space-between;padding:clamp(24px,3vw,40px)}.service-card--featured .service-card__content{flex:auto;min-height:0}.service-card--wide{flex-direction:row;align-items:stretch;display:flex}.service-card--wide .service-card__media{flex:0 0 38%;min-height:auto;padding:clamp(20px,3vw,28px)}.service-card--wide .service-card__body{padding:clamp(14px,1.8vh,18px) clamp(16px,1.8vw,22px)}.service-card--strip{flex-direction:row;align-items:stretch}.service-card--strip .service-card__media{border-right:1px solid oklch(50.5% .18 253/.2);flex:0 0 min(25vw,280px);min-height:auto;padding:clamp(16px,2.5vw,24px)}.service-card--strip .service-card__media img{max-width:90%;max-height:clamp(100px,16vh,160px)}.service-card--strip .service-card__body{flex-direction:column;justify-content:center;gap:clamp(10px,1.4vh,14px);padding:clamp(18px,2.5vw,28px) clamp(22px,3vw,36px);display:flex}.service-card--strip .service-card__content{flex:0 auto;min-width:0}.service-card--strip .service-card__title{font-size:clamp(17px,1.8vw,20px)}.service-card--strip .service-card__desc{font-size:clamp(13px,1.2vw,14px)}.service-card--strip .service-card__tags{border-top:1px solid oklch(50.5% .18 253/.14);flex-shrink:0;justify-content:flex-start;align-self:flex-start;max-width:none;margin-top:0;padding-top:clamp(8px,1vh,12px)}.service-card--strip .service-card__index{color:oklch(50.5% .18 253/.5);inset:14px 18px auto auto}}@media (width>=1024px){.services-section{padding-top:clamp(48px,6vh,72px);padding-bottom:clamp(48px,6vh,72px)}.services-section .section-header{margin-bottom:clamp(24px,3vh,40px)}.services-bento{gap:clamp(16px,2vh,32px)}.services-bento-band{--band-height:90vh;height:var(--band-height);max-height:var(--band-height);grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(10px,1.2vh,14px);min-height:0;overflow:hidden}.services-bento-band--hero{grid-template-rows:repeat(2,minmax(0,1fr))}.services-bento-band--suite{grid-template-rows:minmax(0,55fr) minmax(0,45fr)}.services-bento-band>.service-cell{min-height:0;overflow:hidden}.services-bento-band>.service-cell--featured{grid-area:1/1/3/8}.services-bento-band>.service-cell--compact{grid-area:1/8/auto/13}.services-bento-band>.service-cell--accent{grid-area:2/8/auto/13}.services-bento-band>.service-cell--wide{grid-area:1/1/auto/6}.services-bento-band>.service-cell--mid{grid-area:1/6/auto/10}.services-bento-band>.service-cell--narrow{grid-area:1/10/auto/13}.services-bento-band>.service-cell--strip{grid-area:2/1/auto/13}.services-bento-band .service-card{height:100%;min-height:0}.services-bento-band .service-card__media,.services-bento-band .service-card--featured .service-card__media{min-height:0}.service-card__body{padding:clamp(14px,1.8vh,20px) clamp(14px,1.6vw,20px) clamp(14px,1.8vh,18px)}.service-card__title{margin-bottom:clamp(4px,.6vh,8px);font-size:clamp(16px,1.45vw,19px)}.service-card__desc{font-size:clamp(13px,1.15vw,14px);line-height:1.5}.service-card__media{padding:clamp(8px,1.2vh,12px)}.service-card__media img{max-height:clamp(64px,10vh,100px)}.service-card--featured{flex-direction:row;align-items:stretch}.service-card--featured .service-card__media{flex:46%;align-self:stretch;min-height:0;max-height:none;padding:clamp(16px,2.5vh,28px)}.service-card--featured .service-card__media img{max-width:92%;max-height:min(78%,clamp(140px,26vh,280px))}.service-card--featured .service-card__body{flex:54%;justify-content:space-between;gap:clamp(10px,1.6vh,16px);padding:clamp(20px,3vh,32px) clamp(24px,2.5vw,36px)}.service-card--featured .service-card__content{flex:auto;min-height:0}.service-card--featured .service-card__title{margin-bottom:clamp(6px,.8vh,10px);font-size:clamp(24px,2.8vw,32px)}.service-card--featured .service-card__desc{font-size:clamp(14px,1.3vw,16px);line-height:1.52}.service-card--featured .service-card__tags{padding-top:clamp(10px,1.5vh,14px)}.service-card--featured .service-card__index--watermark{font-size:clamp(48px,8vh,80px);bottom:clamp(10px,1.5vh,16px);right:clamp(12px,1.5vw,20px)}.service-card--compact .service-card__media,.service-card--accent .service-card__media{flex:0 30%;max-height:30%;padding:10px}.service-card--compact .service-card__media img,.service-card--accent .service-card__media img{max-height:clamp(56px,8vh,80px)}.service-card--accent .service-card__title{font-size:clamp(16px,1.5vw,20px)}.service-card--compact .service-card__desc{font-size:clamp(13px,1.15vw,14px)}.service-card--wide{flex-direction:row;align-items:stretch}.service-card--wide .service-card__media{flex:0 0 40%;min-height:0;padding:clamp(10px,1.4vh,14px)}.service-card--wide .service-card__media img{max-height:clamp(72px,12vh,110px)}.service-card--wide .service-card__title{font-size:clamp(17px,1.55vw,21px)}.service-card--wide .service-card__body{padding:clamp(14px,1.8vh,18px) clamp(16px,1.6vw,20px)}.service-card--wide .service-card__desc{font-size:clamp(13px,1.15vw,14px)}.service-card--mid .service-card__media{flex:0 32%;max-height:32%}.service-card--mid .service-card__media img{max-height:clamp(64px,10vh,96px)}.service-card--narrow .service-card__media{flex:0 28%;max-height:28%;padding:8px}.service-card--narrow .service-card__media img{max-height:clamp(52px,8vh,72px)}.service-card--mid .service-card__desc{font-size:clamp(13px,1.15vw,14px)}.service-card--narrow .service-card__title{font-size:clamp(15px,1.35vw,17px)}.service-card--narrow .service-card__desc{font-size:clamp(12px,1.1vw,13px)}.service-card--strip{flex-direction:row;align-items:stretch}.service-card--strip .service-card__media{border-right:1px solid oklch(50.5% .18 253/.22);flex:0 0 25vw;min-height:0;padding:clamp(16px,2vh,28px)}.service-card--strip .service-card__media img{max-width:88%;max-height:min(82%,clamp(120px,20vh,240px))}.service-card--strip .service-card__body{flex-direction:column;justify-content:center;gap:clamp(10px,1.2vh,14px);padding:clamp(16px,2vh,24px) clamp(24px,2.8vw,40px);display:flex}.service-card--strip .service-card__content{flex:0 auto;min-width:0;max-width:75ch}.service-card--strip .service-card__title{letter-spacing:-.01em;margin-bottom:clamp(6px,.7vh,10px);font-size:clamp(18px,1.55vw,22px)}.service-card--strip .service-card__desc{font-size:clamp(13px,1.05vw,15px);line-height:1.58}.service-card--strip .service-card__tags{border-top:1px solid oklch(50.5% .18 253/.16);flex-shrink:0;justify-content:flex-start;align-self:flex-start;gap:10px;max-width:none;margin-top:0;padding-top:clamp(10px,1.2vh,14px)}.service-card--strip .service-card__index{letter-spacing:.1em;color:oklch(50.5% .18 253/.55);opacity:1;font-size:12px;inset:clamp(12px,1.4vh,16px) clamp(16px,2vw,24px) auto auto}.service-card--strip .tech-tag{color:oklch(36% .11 253);background:oklch(50.5% .18 253/.13);border:1px solid oklch(50.5% .18 253/.26);padding:4px 12px;font-size:11px}.services-bento .tech-tag{padding:3px 8px;font-size:11px}}@media (width<=639px){.service-card--strip .service-card__media{border-bottom:1px solid oklch(50.5% .18 253/.2);border-right:none;min-height:140px}.service-card--strip .service-card__media img{max-height:clamp(100px,28vw,140px)}.service-card--strip .service-card__body{padding:20px 22px 28px}.service-card--strip .service-card__desc{font-size:14px;line-height:1.6}.service-card--strip .service-card__tags{border-top:1px solid oklch(50.5% .18 253/.14);padding-top:12px}}@media (prefers-reduced-motion:reduce){.navbar{transition:none}}@media (width>=900px){.portfolio-preview{grid-template-rows:minmax(0,1.32fr) minmax(0,1fr);height:90vh;max-height:90vh;display:grid}}@media (prefers-reduced-motion:reduce){.portfolio-signal--archive .portfolio-signal__archive-overlay{-webkit-backdrop-filter:none;background:oklch(20% .04 258/.88)}}@media (width>=768px){.portfolio-signals{flex-direction:row;align-items:stretch}.portfolio-signal{flex:1 1 0;min-width:0}}@media (width>=768px) and (width<=899px){.portfolio-signal{height:100%}.portfolio-signal__media{aspect-ratio:unset;flex:auto;min-height:100px;padding:0}.portfolio-signal__media img{-o-object-fit:cover;object-fit:cover}}@media (width>=900px){.portfolio-anchor{flex-direction:row;align-items:stretch;min-height:0;max-height:100%;overflow:hidden}.portfolio-anchor__media{flex:0 0 52%;min-height:0;padding:clamp(12px,1.5vh,20px)}.portfolio-anchor__media img{max-height:100%}.portfolio-anchor__body{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex;overflow:hidden}.portfolio-signals{align-content:stretch;height:100%;max-height:100%}.portfolio-signal{flex-direction:row;align-items:stretch;height:100%;max-height:100%}.portfolio-signal__media{aspect-ratio:unset;flex:0 0 40%;align-self:stretch;height:auto;min-height:0;padding:0}.portfolio-signal__media img{-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;width:100%;height:100%}.portfolio-signal__body{justify-content:center;padding:10px 12px}.portfolio-signal__desc{-webkit-line-clamp:2;margin-bottom:6px}.portfolio-signal__actions{gap:6px}.portfolio-cat-badge{padding:3px 8px;font-size:10px;top:8px;left:8px}}@media (prefers-reduced-motion:no-preference){.portfolio-signal:not(.portfolio-signal--archive):hover{border-color:var(--border-brand-hover);box-shadow:var(--shadow-md)}.portfolio-signal:not(.portfolio-signal--archive):hover .portfolio-signal__title{color:var(--brand-blue)}.portfolio-signal--archive:hover{border-color:var(--border-brand-hover);box-shadow:var(--shadow-md)}}@media (width<=639px){.portfolio-modal{border-radius:var(--radius-lg);width:100%;height:100%;max-height:none}.portfolio-modal__grid{grid-template-columns:1fr}.portfolio-signal__actions{flex-direction:column;align-items:stretch}.portfolio-signal__link,.portfolio-see-more{text-align:center;justify-content:center;width:100%}}@media (width<=768px){.process-line{display:none}.hide-mobile{display:none!important}.show-mobile{display:flex!important}}@media (width>=769px){.show-mobile{display:none!important}}@media (width<=640px){.contact-form-grid{grid-template-columns:1fr}}@media (width<=900px){.about-values-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.about-values-grid{grid-template-columns:1fr}.about-stats-overlap{margin-bottom:20px}.about-stats-offset{margin-left:0}.form-input,.form-select{min-height:44px;font-size:16px}#accueil,#services,#process,#portfolio,#apropos,#contact{padding-top:72px!important;padding-bottom:72px!important}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}#cursor{display:none!important}#scroll-bar{transition:none}.scroll-to-top{transition:opacity .15s,visibility .15s;transform:none}.scroll-to-top--visible{transform:none}.fade-in,.fade-in.visible{opacity:1;transition:none;transform:none}.hero-enter,.hero-enter--delay,.hero-float,.hero-cursor-blink,.hero-status-pulse,.hero-underline,.contact-success-enter,.loading-spin,.draw-line,.ripple-effect{animation:none!important}.hero-underline{stroke-dashoffset:0}.services-bento .service-card,.services-bento .service-card__media img,.services-bento .service-card__title,.services-bento .tech-tag{transition:none!important;transform:none!important}}:root,:host{--fa-font-solid:normal 900 1em/1 "Font Awesome 7 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 7 Free";--fa-font-light:normal 300 1em/1 "Font Awesome 7 Pro";--fa-font-thin:normal 100 1em/1 "Font Awesome 7 Pro";--fa-font-duotone:normal 900 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-regular:normal 400 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-light:normal 300 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-thin:normal 100 1em/1 "Font Awesome 7 Duotone";--fa-font-brands:normal 400 1em/1 "Font Awesome 7 Brands";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-regular:normal 400 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-light:normal 300 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-thin:normal 100 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-duotone-solid:normal 900 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-regular:normal 400 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-light:normal 300 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-thin:normal 100 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-slab-regular:normal 400 1em/1 "Font Awesome 7 Slab";--fa-font-slab-press-regular:normal 400 1em/1 "Font Awesome 7 Slab Press";--fa-font-whiteboard-semibold:normal 600 1em/1 "Font Awesome 7 Whiteboard";--fa-font-thumbprint-light:normal 300 1em/1 "Font Awesome 7 Thumbprint";--fa-font-notdog-solid:normal 900 1em/1 "Font Awesome 7 Notdog";--fa-font-notdog-duo-solid:normal 900 1em/1 "Font Awesome 7 Notdog Duo";--fa-font-etch-solid:normal 900 1em/1 "Font Awesome 7 Etch";--fa-font-graphite-thin:normal 100 1em/1 "Font Awesome 7 Graphite";--fa-font-jelly-regular:normal 400 1em/1 "Font Awesome 7 Jelly";--fa-font-jelly-fill-regular:normal 400 1em/1 "Font Awesome 7 Jelly Fill";--fa-font-jelly-duo-regular:normal 400 1em/1 "Font Awesome 7 Jelly Duo";--fa-font-chisel-regular:normal 400 1em/1 "Font Awesome 7 Chisel";--fa-font-utility-semibold:normal 600 1em/1 "Font Awesome 7 Utility";--fa-font-utility-duo-semibold:normal 600 1em/1 "Font Awesome 7 Utility Duo";--fa-font-utility-fill-semibold:normal 600 1em/1 "Font Awesome 7 Utility Fill"}.svg-inline--fa{box-sizing:content-box;display:var(--fa-display,inline-block);vertical-align:-.125em;height:1em;width:var(--fa-width,1.25em);overflow:visible}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714286em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left,.svg-inline--fa .fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.svg-inline--fa.fa-pull-right,.svg-inline--fa .fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);inset-block-start:.25em;inset-inline-start:calc(-1 * var(--fa-li-width,2em))}.fa-layers-counter,.fa-layers-text{text-align:center;display:inline-block;position:absolute}.fa-layers{text-align:center;vertical-align:-.125em;height:1em;width:var(--fa-width,1.25em);display:inline-block;position:relative}.fa-layers .svg-inline--fa{transform-origin:50%;margin:auto;position:absolute;inset:0}.fa-layers-text{transform-origin:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);transform:scale(var(--fa-counter-scale,.25));transform-origin:100% 0;overflow:hidden}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:100% 100%;top:auto}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:0 100%;top:auto;right:auto}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:100% 0}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:0 0}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{vertical-align:.225em;font-size:.625em;line-height:.1em}.fa-xs{vertical-align:.125em;font-size:.75em;line-height:.0833333em}.fa-sm{vertical-align:.0535715em;font-size:.875em;line-height:.0714286em}.fa-lg{vertical-align:-.075em;font-size:1.25em;line-height:.05em}.fa-xl{vertical-align:-.125em;font-size:1.5em;line-height:.0416667em}.fa-2xl{vertical-align:-.1875em;font-size:2em;line-height:.03125em}.fa-width-auto{--fa-width:auto}.fa-fw,.fa-width-fixed{--fa-width:1.25em}.fa-ul{margin-inline-start:var(--fa-li-margin,2.5em);padding-inline-start:0;list-style-type:none}.fa-ul>li{position:relative}.fa-li{text-align:center;width:var(--fa-li-width,2em);line-height:inherit;position:absolute;inset-inline-start:calc(-1 * var(--fa-li-width,2em))}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.0625em);box-sizing:var(--fa-border-box-sizing,content-box);padding:var(--fa-border-padding,.1875em .25em)}.fa-pull-left,.fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.fa-pull-right,.fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28, .84, .42, 1))}.fa-fade{animation-name:fa-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4, 0, .6, 1))}.fa-beat-fade{animation-name:fa-beat-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4, 0, .6, 1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{animation-name:fa-spin;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-bounce,.fa-fade,.fa-beat-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{transition:none!important;animation:none!important}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1)translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1), var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9), var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05), var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1, 1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1)translateY(0)}to{transform:scale(1)translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.svg-inline--fa.fa-inverse{fill:var(--fa-inverse,#fff)}.fa-stack{vertical-align:middle;width:2.5em;height:2em;line-height:2em;display:inline-block;position:relative}.fa-inverse{color:var(--fa-inverse,#fff)}.svg-inline--fa.fa-stack-1x{--fa-width:1.25em;height:1em;width:var(--fa-width)}.svg-inline--fa.fa-stack-2x{--fa-width:2.5em;height:2em;width:var(--fa-width)}.fa-stack-1x,.fa-stack-2x{z-index:var(--fa-stack-z-index,auto);margin:auto;position:absolute;inset:0}.cookie-consent{z-index:9999;max-width:420px;margin-left:auto;margin-right:auto;position:fixed;inset:auto 16px 16px}@media (width>=640px){.cookie-consent{margin:0;inset:auto 24px 24px auto}}.cookie-consent__inner{border-radius:var(--radius-md,12px);background:var(--brand-dark,#1a1f2e);border:1px solid #ffffff1f;padding:20px;box-shadow:0 12px 40px #00000059}.cookie-consent__title{color:var(--brand-white,#fff);margin:0 0 8px;font-size:15px;font-weight:700}.cookie-consent__text{color:var(--brand-gray,#9ca3af);margin:0 0 16px;font-size:13px;line-height:1.5}.cookie-consent__actions{justify-content:flex-end;gap:10px;display:flex}.cookie-consent__btn{border-radius:var(--radius-sm,8px);cursor:pointer;border:none;padding:10px 16px;font-size:13px;font-weight:600}.cookie-consent__btn--secondary{color:var(--brand-gray,#9ca3af);background:0 0;border:1px solid #ffffff26}.cookie-consent__btn--primary{background:var(--brand-blue,#3b82f6);color:#fff}.cookie-consent__btn:focus-visible{outline:2px solid var(--brand-blue,#3b82f6);outline-offset:2px}
