.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/poppins-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/poppins-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/poppins-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/poppins-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/poppins-800-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/poppins-800-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/roboto-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg: #1C1C1C;--color-text: #F4F4F4;--color-accent: #9580FF;--color-secondary: #8A8DAA;--color-menu-bg: #141414;--color-input-bg: #2a2a2a;--color-input-border: #3a3a3a;--font-heading: "Poppins", sans-serif;--font-body: "Roboto", sans-serif;--header-height: 0px;--section-padding: 32px;--content-max: 1200px;--content-padding: 20px;--radius: 4px;--radius-lg: 6px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}html:focus-within{scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:400;font-size:16px;line-height:1.6;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;flex-direction:column;min-height:100dvh}body.menu-open{overflow:hidden}.site-main{flex:1}img{max-width:100%;height:auto;display:block}a{color:var(--color-text);text-decoration:none;transition:color .25s ease}a:hover{color:var(--color-accent)}ul{list-style:none}.skip-link{position:absolute;top:-100%;left:16px;z-index:200;padding:12px 24px;font-family:var(--font-heading);font-weight:700;font-size:14px;color:var(--color-bg);background-color:var(--color-accent);border-radius:var(--radius);text-decoration:none;transition:top .15s ease}.skip-link:focus{top:12px;color:var(--color-bg)}::selection{background-color:var(--color-accent);color:var(--color-bg)}:root{accent-color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}html{scroll-behavior:auto}[data-reveal],[data-reveal] .split-text,[data-reveal] .split-image,[data-reveal] .tag{opacity:1!important;transform:none!important}[data-reveal] .divider{width:60px!important}}[data-reveal]{opacity:.01;visibility:hidden;transform:translateY(32px);transition:opacity .7s cubic-bezier(.16,1,.3,1),visibility .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}[data-reveal].is-visible{opacity:1;visibility:visible;transform:translateY(0)}[data-reveal] .divider{width:0;transition:width .6s cubic-bezier(.16,1,.3,1) .3s}[data-reveal].is-visible .divider{width:60px}[data-reveal] .tag{opacity:.01;transform:translateY(12px);transition:opacity .4s ease,transform .4s ease}[data-reveal].is-visible .tag{opacity:1;transform:translateY(0)}[data-reveal].is-visible .tag:nth-child(1){transition-delay:.4s}[data-reveal].is-visible .tag:nth-child(2){transition-delay:.5s}[data-reveal].is-visible .tag:nth-child(3){transition-delay:.6s}[data-reveal] .split-text{opacity:.01;transform:translateY(20px);transition:opacity .6s ease .1s,transform .6s ease .1s}[data-reveal] .split-image{opacity:.01;transform:translateY(20px);transition:opacity .6s ease .25s,transform .6s ease .25s}[data-reveal].is-visible .split-text,[data-reveal].is-visible .split-image{opacity:1;transform:translateY(0)}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;height:auto;background:none;pointer-events:none}.menu-toggle{position:fixed;top:20px;right:20px;display:flex;flex-direction:column;justify-content:center;gap:6px;width:48px;height:48px;padding:12px;background:#14141480;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:none;border-radius:50%;cursor:pointer;z-index:110;pointer-events:auto;transition:background-color .25s ease}.menu-toggle:hover{background:#141414bf}.hamburger-line{display:block;width:100%;height:2px;background-color:var(--color-text);border-radius:1px;transition:transform .3s ease,opacity .3s ease}.menu-toggle[aria-expanded=true] .hamburger-line:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-toggle[aria-expanded=true] .hamburger-line:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] .hamburger-line:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.off-canvas-overlay{position:fixed;inset:0;background-color:#0009;z-index:90;opacity:0;visibility:hidden}.off-canvas-overlay.is-visible{opacity:1;visibility:visible}.off-canvas-menu{position:fixed;top:0;right:0;bottom:0;width:min(380px,85vw);background-color:var(--color-menu-bg);z-index:95;transform:translate(100%);visibility:hidden;overflow-y:auto}.transitions-ready .off-canvas-overlay{transition:opacity .35s ease,visibility .35s ease}.transitions-ready .off-canvas-menu{transition:transform .35s cubic-bezier(.4,0,.2,1),visibility .35s}.off-canvas-menu.is-open{transform:translate(0);visibility:visible}.off-canvas-inner{display:flex;flex-direction:column;min-height:100%;padding:80px 40px 40px}.off-canvas-nav-wrapper{flex:1;display:flex;align-items:center}.off-canvas-nav{display:flex;flex-direction:column;gap:8px}.off-canvas-nav li a{display:block;padding:12px 0;font-family:var(--font-heading);font-weight:700;font-size:24px;letter-spacing:.05em;text-transform:uppercase;transition:color .25s ease}.off-canvas-nav li a:hover{color:var(--color-accent)}.off-canvas-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:40px}.off-canvas-menu .lang-switch{display:flex;align-items:center;gap:6px;font-family:var(--font-heading);font-weight:600;font-size:16px;letter-spacing:.05em}.off-canvas-menu .lang-switch a{color:var(--color-secondary)}.off-canvas-menu .lang-switch a:hover{color:var(--color-accent)}.off-canvas-menu .lang-switch .lang-active{color:#fff}.off-canvas-menu .lang-switch .lang-sep{color:var(--color-secondary)}.off-canvas-social{display:flex;gap:12px}.off-canvas-social a{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:var(--color-secondary);transition:color .25s ease}.off-canvas-social a:hover{color:var(--color-accent)}.hero{position:relative;width:100%;overflow:hidden;background-color:var(--color-bg)}.hero-video{display:block;width:100%;height:auto}.service-intro{padding:var(--section-padding) var(--content-padding);padding-bottom:calc(var(--section-padding) * .5);max-width:var(--content-max);margin:0 auto;text-align:center}.hero+.service-intro{padding-top:32px}.section-heading{font-family:var(--font-heading);font-weight:800;font-size:28px;line-height:1.15;letter-spacing:-.01em}.accent{color:var(--color-accent)}.divider{height:3px;background-color:var(--color-accent);margin:20px auto;border-radius:2px}.tags{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px}.tag{display:inline-block;padding:8px 20px;border:1px solid var(--color-secondary);border-radius:var(--radius);font-family:var(--font-body);font-weight:500;font-size:13px;letter-spacing:.08em;color:var(--color-secondary)}.service-content{max-width:var(--content-max);margin:0 auto;padding:var(--section-padding) var(--content-padding)}.split{display:flex;flex-direction:column;gap:30px}.split-text,.split-image{min-width:0}.split-image{order:-1}.split-text p{margin-bottom:20px;color:var(--color-text);font-size:16px;line-height:1.7}.split-text p:last-of-type{margin-bottom:24px}.split-image img{width:100%;border-radius:var(--radius-lg)}.split-buttons{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.btn{display:inline-block;padding:14px 36px;font-family:var(--font-heading);font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text);border:2px solid var(--color-text);border-radius:var(--radius);background:none;cursor:pointer;transition:transform .25s ease,background-color .25s ease,border-color .25s ease,color .25s ease}.btn:hover,.btn:focus-visible{transform:scale(1.05);background-color:var(--color-accent);border-color:var(--color-accent);color:#fff}.btn--submit{align-self:center;text-align:center}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.contact{max-width:var(--content-max);margin:0 auto;padding:var(--section-padding) var(--content-padding)}.contact-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-family:var(--font-heading);font-weight:600;font-size:14px;letter-spacing:.04em}.required{color:var(--color-accent)}.form-group input,.form-group textarea{width:100%;padding:14px 16px;font-family:var(--font-body);font-size:16px;color:var(--color-text);background-color:var(--color-input-bg);border:1px solid var(--color-input-border);border-radius:var(--radius);outline:none;transition:border-color .25s ease}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-accent)}.form-group textarea{min-height:160px;resize:vertical}.char-count{font-size:14px;color:var(--color-secondary);text-align:right}.form-feedback{font-size:14px;min-height:20px}.form-feedback--success{color:#6ee07a}.form-feedback--error{color:#ff6b6b}.form-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;tab-index:-1}.site-footer{border-top:1px solid rgba(148,128,255,.2);background-color:var(--color-menu-bg)}.footer-main{display:flex;flex-direction:row;align-items:center;justify-content:space-between;max-width:var(--content-max);margin:0 auto;padding:24px var(--content-padding);gap:16px}.footer-bottom{order:-1}.footer-social{order:1}.footer-social{display:flex;gap:4px}.footer-social a{display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;color:var(--color-secondary);transition:color .25s ease}.footer-social a:hover{color:var(--color-accent)}.footer-copy{font-size:13px;color:var(--color-secondary);letter-spacing:.04em;flex-shrink:0}.footer-bottom{display:flex;align-items:center;gap:16px}.footer-legal{display:flex;align-items:center;gap:6px;font-size:13px;padding-left:12px;border-left:1px solid rgba(113,117,147,.2)}.footer-legal a{color:var(--color-secondary);transition:color .25s ease}.footer-legal a:hover{color:var(--color-secondary)}.page-title{padding:72px var(--content-padding) var(--section-padding);max-width:var(--content-max);margin:0 auto;text-align:center}.page-title .divider{margin:24px auto 0}.showcase-grid{display:grid;grid-template-columns:1fr;gap:40px;max-width:var(--content-max);margin:0 auto;padding:var(--section-padding) var(--content-padding)}.showcase-card{text-align:center}.showcase-card-name{font-family:var(--font-heading);font-weight:700;font-size:22px;margin-bottom:20px}.showcase-viewport{aspect-ratio:3 / 4;overflow:hidden;border-radius:var(--radius-lg);border:1px solid rgba(113,117,147,.15)}.showcase-viewport img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:object-position 3.5s cubic-bezier(.25,.1,.25,1)}.showcase-viewport:hover img{object-position:bottom center}.showcase-card-link:hover{color:var(--color-text)}.client-logos{padding:var(--section-padding) 0;overflow:hidden}.client-logos-track{display:flex;gap:40px;align-items:center;width:max-content;animation:marquee-scroll 50s linear infinite}.client-logos-track:hover{animation-play-state:paused}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.client-logos-track a{flex-shrink:0;display:flex}.client-logos-track img{flex-shrink:0;width:140px;height:70px;object-fit:contain;filter:grayscale(100%) brightness(.7);opacity:.6;transition:filter .3s ease,opacity .3s ease}.client-logos-track a:hover img,.client-logos-track img:hover{filter:grayscale(0%) brightness(1);opacity:1}.app-showcase-gallery{display:flex;justify-content:safe center;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:0 var(--content-padding) 20px;margin-bottom:var(--section-padding)}.app-showcase-gallery::-webkit-scrollbar{height:4px}.app-showcase-gallery::-webkit-scrollbar-track{background:transparent}.app-showcase-gallery::-webkit-scrollbar-thumb{background:var(--color-secondary);border-radius:2px}.app-showcase-gallery img{scroll-snap-align:center;flex-shrink:0;width:80vw;max-width:500px;border-radius:var(--radius-lg);cursor:zoom-in}.app-showcase-text{max-width:var(--content-max);margin:0 auto;padding:var(--section-padding) var(--content-padding);text-align:center}.app-showcase-text .section-heading--sm{margin-bottom:20px}.app-showcase-text p{color:var(--color-text);font-size:16px;line-height:1.7;max-width:700px;margin:0 auto 24px}.app-showcase-text .split-buttons{justify-content:center}.app-gallery{overflow:hidden;border-radius:var(--radius-lg)}.app-gallery-track{display:flex;gap:16px;animation:app-scroll 20s linear infinite}.app-gallery-track:hover{animation-play-state:paused}@keyframes app-scroll{0%{transform:translate(0)}20%{transform:translate(0)}25%{transform:translate(calc(-75% - 16px))}45%{transform:translate(calc(-75% - 16px))}50%{transform:translate(calc(-150% - 32px))}70%{transform:translate(calc(-150% - 32px))}75%{transform:translate(calc(-225% - 48px))}95%{transform:translate(calc(-225% - 48px))}to{transform:translate(0)}}.app-gallery-track img{flex-shrink:0;width:75%;border-radius:var(--radius-lg)}.tags--left{justify-content:flex-start;margin-bottom:16px}.section-heading--sm{font-family:var(--font-heading);font-weight:800;font-size:24px;line-height:1.15;letter-spacing:-.01em;margin-bottom:20px}.portfolio-grid{display:grid;grid-template-columns:1fr;gap:40px}.portfolio-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;transition:transform .35s ease}.portfolio-card:hover{transform:scale(1.02)}.portfolio-card img{width:100%;display:block}.portfolio-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(to top,rgba(20,20,20,.6) 0%,transparent 100%);opacity:0;transition:opacity .35s ease;pointer-events:none}.portfolio-card:hover:after{opacity:1}.portfolio-card-info{position:relative;z-index:1;padding:24px}.portfolio-card-category{display:inline-block;padding:4px 12px;border:1px solid var(--color-secondary);border-radius:var(--radius);font-family:var(--font-body);font-weight:500;font-size:13px;letter-spacing:.08em;color:var(--color-secondary);text-transform:uppercase;margin-bottom:12px;transition:border-color .35s ease,color .35s ease}.portfolio-card:hover .portfolio-card-category{border-color:var(--color-text);color:var(--color-text)}.portfolio-card-info h3{font-family:var(--font-heading);font-weight:700;font-size:20px;margin-bottom:20px;transition:color .35s ease}.portfolio-card:hover .portfolio-card-info h3{color:var(--color-accent)}.portfolio-card-info .btn{padding:10px 28px;font-size:13px}.contact-details{display:flex;flex-direction:column;gap:40px}.contact-links{display:flex;flex-direction:column;gap:28px}.contact-link{display:flex;flex-direction:column;gap:4px}.contact-link-label{font-family:var(--font-heading);font-weight:600;font-size:13px;letter-spacing:.1em;color:var(--color-secondary);text-transform:uppercase}.contact-link a,.contact-link-value{font-family:var(--font-heading);font-weight:700;font-size:22px;color:var(--color-text);transition:color .25s ease}.contact-link a:hover{color:var(--color-accent)}.contact-details .off-canvas-social{margin-top:0}.legal-content{max-width:800px;margin:0 auto;padding:var(--section-padding) var(--content-padding)}.legal-section{margin-bottom:40px}.legal-section:last-child{margin-bottom:0}.legal-table{display:flex;flex-direction:column;gap:0}.legal-row{display:flex;flex-direction:column;padding:16px 0;border-bottom:1px solid rgba(113,117,147,.15)}.legal-row:last-child{border-bottom:none}.legal-label{font-family:var(--font-heading);font-weight:600;font-size:14px;letter-spacing:.04em;color:var(--color-secondary);text-transform:uppercase;margin-bottom:4px}.legal-value{font-size:16px;color:var(--color-text)}.legal-value a{color:var(--color-text);transition:color .25s ease}.legal-value a:hover{color:var(--color-accent)}.legal-content h3{font-family:var(--font-heading);font-weight:700;font-size:20px;margin-bottom:16px;color:var(--color-text)}.legal-content p{color:var(--color-secondary);font-size:16px;line-height:1.7;margin-bottom:16px}.legal-content p:last-child{margin-bottom:0}.legal-content p a{color:var(--color-accent)}.legal-content p a:hover{color:var(--color-text)}.legal-content .section-heading--sm{margin-bottom:24px}.more-indicator{text-align:center;padding:var(--section-padding) var(--content-padding)}.more-indicator p{font-family:var(--font-heading);font-weight:700;font-size:22px;color:var(--color-secondary);letter-spacing:.02em;margin-bottom:16px}.more-indicator-dots{display:flex;justify-content:center;gap:12px}.more-indicator-dots span{display:block;width:10px;height:10px;border-radius:50%;background-color:var(--color-accent)}.site-main:has(.contact-map){display:flex;flex-direction:column}.site-main:has(.contact-map)>*{flex-shrink:0;width:100%}.contact-map{width:100%;flex:1 1 0;min-height:350px}@media(max-width:767px){.site-main:has(.contact-map) .split-image{order:0}}.contact-map iframe{display:block;width:100%;height:100%;border:0;filter:grayscale(100%) invert(92%) contrast(83%)}@keyframes showcase-scroll{0%,10%{object-position:top center}45%,55%{object-position:bottom center}90%,to{object-position:top center}}@media(hover:none){.showcase-viewport img{animation:showcase-scroll 7s ease-in-out infinite}}.lightbox{position:fixed;inset:0;z-index:200;background:#000000eb;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;cursor:zoom-out}.lightbox.is-active{opacity:1;visibility:visible}.lightbox img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius-lg)}.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffffb3;cursor:pointer;padding:16px;transition:color .2s ease;z-index:1}.lightbox-prev:hover,.lightbox-next:hover{color:#fff}.lightbox-prev{left:8px}.lightbox-next{right:8px}@media(min-width:480px){:root{--content-padding: 28px}.section-heading{font-size:32px}.hero+.service-intro{padding-top:40px}.off-canvas-nav li a{font-size:28px}.section-heading--sm{font-size:26px}.client-logos-track{gap:50px}.client-logos-track img{width:150px;height:75px}}@media(min-width:768px){:root{--section-padding: 48px;--content-padding: 40px}.footer-main{padding:16px var(--content-padding)}.section-heading{font-size:40px}.hero+.service-intro{padding-top:48px}.hero{height:min(100vh,56.25vw);min-height:500px}.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}.split{flex-direction:row;align-items:center;gap:40px}.split--reverse{flex-direction:row-reverse}.split-text,.split-image{flex:1}.split-image{order:0}.page-title{padding-top:88px}.off-canvas-nav li a{font-size:32px}.showcase-grid{grid-template-columns:repeat(2,1fr);gap:50px 40px}.showcase-card-name{font-size:24px}.client-logos-track{gap:60px;animation-duration:45s}.client-logos-track img{width:160px;height:80px}.app-showcase-gallery img{width:60vw;max-width:500px}.app-gallery-track img{width:50%}@keyframes app-scroll{0%{transform:translate(0)}20%{transform:translate(0)}25%{transform:translate(calc(-50% - 16px))}45%{transform:translate(calc(-50% - 16px))}50%{transform:translate(calc(-100% - 32px))}70%{transform:translate(calc(-100% - 32px))}75%{transform:translate(calc(-150% - 48px))}95%{transform:translate(calc(-150% - 48px))}to{transform:translate(0)}}.portfolio-grid{grid-template-columns:repeat(2,1fr);gap:48px}.contact-link a,.contact-link-value{font-size:28px}.legal-row{flex-direction:row;gap:20px}.legal-label{flex-shrink:0;width:200px;margin-bottom:0;padding-top:2px}.section-heading--sm{font-size:30px}}@media(min-width:1024px){:root{--section-padding: 56px;--content-padding: 50px}body{font-size:17px}.section-heading{font-size:48px}.split{gap:50px}.split-text p{font-size:17px}.tag{font-size:14px}.page-title{padding-top:100px}.showcase-card-name{font-size:26px}.app-showcase-gallery img{width:500px}.app-showcase-text p{font-size:17px}.app-gallery-track img{width:40%}@keyframes app-scroll{0%{transform:translate(0)}20%{transform:translate(0)}25%{transform:translate(calc(-40% - 16px))}45%{transform:translate(calc(-40% - 16px))}50%{transform:translate(calc(-80% - 32px))}70%{transform:translate(calc(-80% - 32px))}75%{transform:translate(calc(-120% - 48px))}95%{transform:translate(calc(-120% - 48px))}to{transform:translate(0)}}.section-heading--sm{font-size:34px}.portfolio-card-info h3{font-size:22px}.legal-label{width:240px}}@media(min-width:1440px){:root{--section-padding: 64px;--content-padding: 60px}body{font-size:18px}.section-heading{font-size:56px}.hero+.service-intro{padding-top:56px}.split{gap:60px}.service-intro,.service-content,.contact,.footer-main{max-width:1400px}.showcase-card-name{font-size:28px}.section-heading--sm{font-size:38px}}
