*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{box-sizing:border-box}body,html{overflow-x:clip}body{color:var(--primary);background-color:var(--bg);font-family:Open Sauce One,Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;font-weight:400;line-height:24px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;zoom:.9;transition:background-color .3s,color .3s}h1{margin-bottom:24px;font-size:54px;line-height:60px}h1,h2{margin-top:0;font-family:Mazius Display,Tiempos,Georgia,serif;font-weight:400}h2{margin-bottom:18px;font-size:40px;line-height:48px}h3{font-size:32px;line-height:40px}h3,h4{margin-top:0;margin-bottom:12px;font-family:Mazius Display,Tiempos,Georgia,serif;font-weight:400}h4{font-size:28px;line-height:32px}h5{font-size:18px;line-height:30px}h5,h6{margin-top:0;margin-bottom:12px;font-weight:700}h6{font-size:16px;line-height:24px}a{color:var(--primary);font-weight:600;text-decoration:none}@media screen and (max-width:991px){h5{margin-top:24px;margin-bottom:18px}}@media screen and (max-width:767px){h1{margin-bottom:18px;font-size:40px;line-height:48px}h2{margin-bottom:12px;font-size:32px;line-height:40px}h3{font-size:28px;line-height:32px}}.main-container{justify-content:center;align-items:center;width:100%;max-width:1392px;margin-left:auto;margin-right:auto;padding-left:48px;padding-right:48px;display:block}.main-container.narrow{max-width:1168px}.main-container.portfolio-introduction{max-width:800px}.container-small{direction:ltr;width:100%;max-width:400px}.container-small.align-center.text-center.footer-notes{max-width:300px;margin-bottom:32px;display:block}.container-large{width:100%;max-width:624px}.container-large.align-center{max-width:720px;position:relative}.container-large.align-center.text-center{max-width:812px}.container-presentation{width:100%;max-width:624px}.container-presentation.align-center{position:relative}.container-presentation.align-center.text-center{max-width:820px}.align-center{margin-left:auto;margin-right:auto}.section-title,.text-center{text-align:center}.section-title{margin-bottom:20px}.heading-1{color:var(--neutral);white-space:normal;font-family:Tiempos,Georgia,sans-serif;font-weight:400}.heading-1.site-title{text-align:center;white-space:normal;cursor:default;margin-bottom:8px;font-size:40px;line-height:50px;display:block;background:linear-gradient(180deg,#656565,#909090 25%,#585858 50%,grey 75%,#4a4a4a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.heading-1.site-title,.heading-2{font-family:Tiempos,Georgia,sans-serif;font-weight:500}.heading-2{margin-bottom:40px}.heading-2,.heading-2.site-tagline{color:var(--primary);text-align:center}.heading-2.site-tagline{white-space:normal;word-break:keep-all;margin-top:40px;margin-bottom:80px;font-size:54px;font-weight:500;line-height:64px;display:block}.heading-2.site-tagline,.heading-3{font-family:Tiempos,Georgia,sans-serif}.heading-3{color:var(--primary);letter-spacing:-.125px;margin-bottom:16px;font-weight:400}.heading-3.spacer-bottom-24{margin-bottom:24px}.heading-6{color:var(--muted);letter-spacing:.02em;font-family:Tiempos,Georgia,sans-serif;font-size:18px;font-weight:400}.large-text{color:var(--neutral);max-width:720px;margin-left:auto;margin-right:auto;font-size:18px;line-height:26px}.large-text,.small-text{font-family:Inter,sans-serif}.small-text{clear:none;font-size:14px;font-weight:400;line-height:22px}.small-text.spacer-bottom-24.secondary{color:var(--muted)}.fine-print-text{color:color-mix(in srgb,var(--body-text) 75%,transparent);font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:18px}.small-caps-text{letter-spacing:.1em;text-transform:uppercase;font-family:Inter,sans-serif;font-size:16px;font-weight:700}.small-caps-text.section-title{color:var(--neutral);letter-spacing:.15em;margin-bottom:24px;font-weight:500}.small-caps-text.section-title.text-center{margin-bottom:24px}.body-text{text-align:left;letter-spacing:normal;font-family:Inter,sans-serif}.body-text,.body-text.spacer-bottom-24{color:var(--body-text)}.body-text.spacer-bottom-32{color:var(--body-text);margin-bottom:32px}.body-text.spacer-bottom-8{margin-bottom:8px}.link{color:var(--neutral);border-bottom:1px solid #a0a0a066;font-weight:400;text-decoration:none}.link:hover{border-bottom-color:var(--muted)}.site-tagline{text-align:center;margin-top:64px;margin-bottom:88px;font-family:Tiempos,Georgia,sans-serif;font-size:64px;font-weight:300;line-height:72px;display:block}.text-span{color:color-mix(in srgb,var(--body-text) 35%,transparent)}.past-projects-list{color:var(--primary);text-align:center;letter-spacing:-.02em;margin-bottom:16px;font-family:Inter,sans-serif;font-size:28px;font-weight:400;line-height:38px}.button{display:inline-flex;align-items:center;justify-content:center;font-family:Inter,sans-serif;font-weight:500;text-align:center;border:none;border-radius:9999px;color:var(--bg);background-color:var(--primary);padding:10px 20px;font-size:14px;line-height:20px;transition:opacity .15s}.button:hover{opacity:.8}.button.neutral{background-color:color-mix(in srgb,var(--neutral) 16%,transparent);color:var(--primary)}.button.small{padding:6px 14px;font-size:13px;line-height:18px}@media screen and (max-width:991px){.large-text{max-width:none}.container-small.align-center{width:auto;max-width:none}.container-large,.container-presentation{max-width:512px}.site-tagline{font-family:Tiempos,Georgia,sans-serif;font-size:54px;line-height:62px}}@media screen and (max-width:767px){.hero-subtitle{display:none}.main-container{padding-left:32px;padding-right:32px}.heading-1.site-title{display:none}.large-text{text-align:left}.fine-print-text{color:var(--muted)}.small-caps-text.section-title{margin-bottom:24px}.small-caps-text.section-title.text-center{text-align:left}.contact .small-caps-text.section-title{text-align:center}.heading-2{text-align:left}.contact .heading-2{text-align:center}.heading-2.site-tagline,.site-tagline{text-align:left}.site-tagline{margin-bottom:18px;font-size:40px;line-height:48px}.past-projects-list{text-align:left;font-size:20px;line-height:28px}}@media screen and (max-width:479px){.main-container{padding-left:40px;padding-right:40px}.heading-1{color:var(--neutral);white-space:normal;margin-bottom:16px}.heading-1.site-title{text-align:left;margin-bottom:8px;margin-left:0;line-height:44px;display:none}.large-text{font-size:16px;line-height:24px}.large-text,.small-caps-text.section-title{text-align:left}.contact .small-caps-text.section-title{text-align:center}.button.small{white-space:nowrap}.project-details .button{width:100%}.container-small.align-center.text-center.footer-notes{display:block}.section-title{margin-bottom:36px}.body-text{clear:left}.link{color:var(--neutral);white-space:normal}.heading-2{text-align:left}.contact .heading-2{text-align:center}.heading-2.site-tagline{text-align:left;margin-top:32px;margin-bottom:32px;font-size:32px;line-height:40px}.heading-3{font-family:Tiempos,Georgia,serif}.heading-4{font-size:22px;line-height:28px}.heading-4.site-subtitle{text-align:left;display:none}.heading-6{color:var(--muted)}.site-tagline{text-align:left}.past-projects-list{text-align:left;white-space:pre-line;font-size:20px;line-height:28px}}.footer{padding-top:40px;padding-bottom:48px}.footer-2-bottom-row{flex-direction:column;justify-content:center;align-items:center;display:flex}.contact{background-color:transparent;align-items:center;padding-top:48px;padding-bottom:48px;display:block;text-align:center}.presentation{background-color:#0000;padding-top:88px;padding-bottom:88px}.portfolio{padding-top:40px}.past-projects,.portfolio{background-color:#0000;padding-bottom:80px}.past-projects{padding-top:80px;display:block}.badges{margin-top:32px;padding-bottom:0}.badge-apple{margin-bottom:0;margin-right:8px}.badge-apple,.badge-google{width:auto;height:40px;border-radius:10px}.project-mention{text-align:left;margin-bottom:0}.app-icon{float:none;border:1px solid #a0a0a066;border-radius:22px}.app-icon.spacer-bottom-24{width:88px;max-width:none;height:88px;margin-bottom:32px;box-shadow:0 4px 12px #0000001a}.project-screenshots{float:none;text-align:center;max-width:100%;margin-top:0;margin-left:0;padding-left:0;padding-right:0;display:block;overflow:clip}.project-screenshots img{max-width:100%;height:auto}.image-3{max-width:85%;margin-top:0}.project-details{text-align:left;max-width:500px;margin-bottom:54px;margin-left:0;padding-top:120px;padding-left:44px;display:block;min-width:0}.screenshots-album{grid-column-gap:16px;grid-row-gap:16px;grid-template-columns:repeat(3,1fr);grid-auto-rows:auto;margin-top:80px;margin-bottom:80px;display:grid}.screenshots-album>*{min-width:0}.screenshots-album img{width:100%;height:auto}.image-4{display:none}.image-5{float:right;margin-bottom:16px;margin-left:24px;display:inline-block}.portrait{float:right;opacity:1;border-radius:9px;width:180px;height:auto;margin-bottom:24px;margin-left:48px}.electric-circuit{grid-column-gap:16px;margin-top:40px}.electric-circuit,.grid-3,.grid-4{grid-template-rows:auto}.image-10,.image-12,.image-9{display:none}.image-14{max-width:85%}.project-electric-circuit{width:100%;max-width:1392px;margin-left:auto;margin-right:auto;padding-left:48px;padding-right:48px}.project-electric-circuit.project-block{margin-top:80px;margin-bottom:160px;display:block}.project-foodhero{width:100%;max-width:1392px;margin-left:auto;margin-right:auto;padding-left:48px;padding-right:48px}.project-foodhero.project-block{margin-bottom:160px;display:block}.project-rtc{width:100%;max-width:1392px;margin-left:auto;margin-right:auto;padding-left:48px;padding-right:48px}.project-rtc.project-block{margin-bottom:160px;display:block}.dualshot-screenshot{float:left;margin-bottom:16px;margin-left:0;margin-right:24px}.portfolio-introduction{width:100%;max-width:624px}.footer-brand{text-align:center;margin-top:24px;position:static}.footer-title{color:var(--neutral);margin-bottom:8px;font-family:Tiempos,Georgia,sans-serif;font-size:22px;font-weight:500;line-height:28px}.past-project-list{width:100%}.past-project-list.align-center{margin-top:40px;margin-left:auto;margin-right:auto;position:relative}.currently{margin-top:40px;margin-bottom:24px}.image-15,.image-16{display:none}.project-voila{width:100%;max-width:1392px;margin-left:auto;margin-right:auto;padding-left:48px;padding-right:48px}.project-voila.project-block{margin-bottom:160px;display:block}.axso{width:100%;max-width:1392px;margin-left:auto;margin-right:auto;padding-left:48px;padding-right:48px}.axso.project-block{margin-top:80px;margin-bottom:160px;display:none}@media screen and (max-width:991px){.contact{padding-top:80px;padding-bottom:80px}.presentation{padding-top:48px;padding-bottom:80px}.badge-apple{height:40px;margin-bottom:0}.app-icon.spacer-bottom-24{float:right;width:88px;height:88px;margin-bottom:16px;margin-left:24px}.project-screenshots{float:none;text-align:center;margin:0 auto 44px;display:block}.project-details{text-align:left;width:auto;margin-bottom:40px;margin-left:auto;margin-right:auto;padding-left:0}.screenshots-album{grid-template-columns:repeat(2,1fr);margin-top:40px}.portrait{width:125px;max-width:none;height:auto;margin-bottom:24px}.past-projects{padding-top:120px;padding-bottom:120px}.project-electric-circuit.project-block{text-align:center;margin-top:80px}.project-foodhero.project-block{text-align:center}.project-rtc.project-block,.project-voila.project-block{text-align:center;margin-bottom:120px}.axso.project-block{text-align:center;margin-top:80px}}@media screen and (max-width:767px){.footer{padding-top:40px;padding-bottom:40px}.contact{padding-top:60px;padding-bottom:60px}.presentation{padding-top:80px;padding-bottom:40px}.portfolio{padding-top:60px;padding-bottom:60px;display:block}.app-icon.spacer-bottom-24{float:right;margin-top:0;margin-bottom:16px;margin-right:0}.project-screenshots{text-align:center;max-width:none;margin-bottom:24px;position:relative;left:-8px}.project-rtc .project-screenshots{left:0}.project-details{max-width:none;margin-left:0;padding-top:24px}.screenshots-album{display:none}.portrait{float:right;width:125px;margin-bottom:16px}.image-9{display:none}.past-projects{padding-top:96px;padding-bottom:96px}.axso,.project-electric-circuit,.project-foodhero,.project-rtc,.project-voila{padding-left:32px;padding-right:32px}.project-electric-circuit.project-block,.project-foodhero.project-block{margin-bottom:120px}.project-rtc.project-block,.project-voila.project-block{margin-bottom:80px}.axso.project-block{margin-bottom:120px}}@media screen and (max-width:479px){.portfolio{padding-top:24px;padding-bottom:24px}.project-details{padding-top:88px}.past-projects{padding-top:32px;padding-bottom:32px}.footer{padding-top:32px;padding-bottom:88px}.contact,.presentation{padding-top:60px;padding-bottom:60px}.badges{text-align:center;height:auto;display:flex;justify-content:center;gap:12px}.badge-apple{margin-bottom:0;margin-right:0}.badge-apple,.badge-google{float:none;width:auto;height:36px}.badge-google{clear:none}.extras{margin-top:40px}.app-icon.spacer-bottom-24{float:right;margin:0 0 16px 24px}.project-screenshots{text-align:center;max-width:none;margin-top:0;margin-bottom:0;margin-left:0}.project-details{margin-left:0;padding-top:24px}.image-4,.image-5,.screenshots-album{display:none}.portrait{float:right;width:100px;max-width:none;height:auto;margin-left:24px}.image-10,.image-11,.image-12,.image-9{display:none}.past-projects{padding-top:72px;padding-bottom:72px}.axso,.project-electric-circuit,.project-foodhero,.project-rtc,.project-voila{padding-left:40px;padding-right:40px}.project-electric-circuit.project-block{margin-top:80px;margin-bottom:0;padding-top:0;padding-bottom:0}.project-foodhero.project-block,.project-rtc.project-block{margin-top:60px;margin-bottom:0;padding-top:0;padding-bottom:0}.dualshot-screenshot{float:right;margin-left:24px;margin-right:0}.footer-brand{padding-left:0}.project-voila.project-block{margin-top:60px;margin-bottom:0;padding-top:0;padding-bottom:0}.image-18{display:none}.axso.project-block{margin-top:80px;margin-bottom:0;padding-top:0;padding-bottom:0}}.sticky{position:sticky}.top-0{top:0}.z-\[100\]{z-index:100}.mx-2{margin-left:.5rem;margin-right:.5rem}.-mt-2{margin-top:-.5rem}.mb-px{margin-bottom:1px}.ml-1\.5{margin-left:.375rem}.ml-9{margin-left:2.25rem}.flex{display:flex}.hidden{display:none}.max-h-5{max-height:1.25rem}.flex-none{flex:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.bg-transparent{background-color:transparent}.p-1{padding:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.text-center{text-align:center}.font-inter{font-family:Inter,sans-serif}.font-tiempos{font-family:Tiempos,Georgia,serif}.text-\[22px\]{font-size:22px}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.leading-\[26px\]{line-height:26px}.text-muted{color:var(--muted)}.text-neutral{color:var(--neutral)}.text-primary{color:var(--primary)}.no-underline{text-decoration-line:none}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-700{transition-duration:.7s}.duration-\[800ms\]{transition-duration:.8s}.spacer-bottom-24{margin-top:0;margin-bottom:24px}.spacer-24{margin-top:24px;margin-bottom:24px}.spacer-bottom-32{margin-bottom:32px}.spacer-bottom-8{margin-bottom:8px}@font-face{font-family:Tiempos;src:url(../fonts/tiempos-headline-web-medium.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Tiempos;src:url(../fonts/tiempos-headline-web-regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}:root{--primary:#000;--neutral:#575349;--light:#f5f5f5;--border-white:#ffffff1a;--border-dark:#08262a1a;--white:#fff;--muted:#757575;--body-text:#575349;--dark:#1b1d1f;--input-border-dark:#08262a33;--border-white-bold:#ffffff40;--bg:#fff;--bg-secondary:#f5f5f5;--logo-opacity:0.6;--ease-out-quart:cubic-bezier(.165,.84,.44,1);--ease-out-cubic:cubic-bezier(.215,.61,.355,1);--ease-out-quad:cubic-bezier(.25,.46,.45,.94);--ease-in-out-quart:cubic-bezier(.77,0,.175,1);--ease-in-out-cubic:cubic-bezier(.645,.045,.355,1)}[data-theme=dark]{--primary:#f0f0f0;--neutral:#a0a0a0;--light:#1e1e1e;--border-white:#ffffff1a;--border-dark:#ffffff1a;--white:#141414;--muted:#909090;--body-text:#c8c8c8;--dark:#f0f0f0;--input-border-dark:#ffffff33;--border-white-bold:#ffffff40;--bg:#141414;--bg-secondary:#1e1e1e;--logo-opacity:0.8}[data-theme=dark] .heading-1.site-title{background:linear-gradient(180deg,#d0d0d0,#f0f0f0 25%,silver 50%,#e0e0e0 75%,#b0b0b0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}[data-theme=dark] .dualshot-logo{content:url(../images/dualshot-logo-dark.webp)}[data-theme=dark] .social-link-image{filter:invert(1)}[data-theme=dark] .badge-apple img,[data-theme=dark] .badge-google img{filter:invert(1) hue-rotate(180deg)}.screenshots-album img{transition:transform .3s ease}.screenshots-album img:hover{transform:scale(1.025);z-index:1}.scroll-rotate{will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden}.skeleton-group{position:relative}.skeleton-group .skeleton-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;gap:12px;z-index:1;transition:opacity .4s var(--ease-out-cubic)}@media screen and (max-width:767px){.skeleton-group .skeleton-overlay{align-items:flex-start}}.skeleton-bar{background:color-mix(in srgb,var(--neutral) 12%,transparent);border-radius:8px;animation:skeleton-shimmer 1.8s ease-in-out infinite}[data-theme=dark] .skeleton-bar{background:color-mix(in srgb,var(--neutral) 16%,transparent)}@keyframes skeleton-shimmer{0%,to{opacity:.5}50%{opacity:.8}}.skeleton-group .hero-content{transition:opacity .4s var(--ease-out-cubic)}.fonts-loading .skeleton-group .hero-content{opacity:0}.fonts-loaded .skeleton-group .hero-content,.fonts-loading .skeleton-group .skeleton-overlay{opacity:1}.fonts-loaded .skeleton-group .skeleton-overlay{opacity:0;pointer-events:none}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease-out-cubic),transform .7s var(--ease-out-quart)}.reveal.revealed{opacity:1;transform:translateY(0)}.reveal-group>.reveal:first-child{transition-delay:0ms}.reveal-group>.reveal:nth-child(2){transition-delay:80ms}.reveal-group>.reveal:nth-child(3){transition-delay:.16s}.reveal-group>.reveal:nth-child(4){transition-delay:.24s}.reveal-group>.reveal:nth-child(5){transition-delay:.32s}.reveal-group>.reveal:nth-child(6){transition-delay:.4s}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}[data-theme=dark] .app-icon{filter:none}@media screen and (max-width:767px){.navbar{border:1px solid transparent;transition:background .3s,border-color .3s,box-shadow .3s,backdrop-filter .3s,-webkit-backdrop-filter .3s}.navbar.scrolled{background:linear-gradient(135deg,hsla(0,0%,100%,.45),hsla(0,0%,100%,.15) 40%,hsla(0,0%,100%,.25) 60%,hsla(0,0%,100%,.1));-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);border:1px solid hsla(0,0%,100%,.35);box-shadow:0 4px 24px -1px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04),inset 0 1px 0 hsla(0,0%,100%,.5),inset 0 -1px 0 hsla(0,0%,100%,.1)}[data-theme=dark] .navbar.scrolled{background:linear-gradient(135deg,hsla(0,0%,100%,.08),hsla(0,0%,100%,.02) 40%,hsla(0,0%,100%,.05) 60%,hsla(0,0%,100%,.01));border:1px solid hsla(0,0%,100%,.1);box-shadow:0 4px 24px -1px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.12),inset 0 -1px 0 hsla(0,0%,100%,.04)}.screenshots-album{display:none!important}}.theme-toggle{background:none;border:none;border-radius:6px;padding:6px 8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1;filter:grayscale(1);transition:border-color .2s,background-color .2s,filter .2s}.theme-toggle:hover{background-color:#0000000d}[data-theme=dark] .theme-toggle{opacity:.35}[data-theme=dark] .theme-toggle:hover{opacity:.7;background-color:#ffffff1a}.skip-to-content{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:9999;padding:12px 24px;background-color:var(--dark);color:var(--white);font-size:14px;text-decoration:none}.skip-to-content:focus{position:fixed;top:12px;left:12px;width:auto;height:auto;overflow:visible;border-radius:4px}:focus-visible{outline:2px solid var(--neutral);outline-offset:2px}a:focus-visible,button:focus-visible{outline:2px solid var(--neutral);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.w-layout-grid{grid-row-gap:16px;grid-column-gap:16px;grid-template-rows:auto auto;grid-template-columns:1fr 1fr;grid-auto-columns:1fr;display:grid}.w-layout-grid>*{min-width:0}@media screen and (max-width:991px){.w-layout-grid{grid-template-columns:1fr}}#w-node-_7d1c422a-228d-4673-7703-21e7de4573b1-beafc602{place-self:auto center}#w-node-_9398f5bd-b9c8-92f6-bf00-d205bbfe9819-beafc602,#w-node-ca4745e6-02da-5ec6-c489-e720a7297e2e-beafc602{justify-self:end}@media screen and (max-width:991px){#w-node-_4373104a-c81b-64ff-ab99-cbb7b1ab92af-beafc602{justify-self:center}}@media screen and (max-width:767px){#w-node-_7d1c422a-228d-4673-7703-21e7de4573b1-beafc602,#w-node-_7d1c422a-228d-4673-7703-21e7de4573b3-beafc602,#w-node-ce6bf628-9bd2-77b0-04ca-d35664681e70-beafc602{grid-area:span 1/span 2/span 1/span 2}#w-node-_4373104a-c81b-64ff-ab99-cbb7b1ab92af-beafc602{order:-9999;grid-area:span 1/span 2/span 1/span 2}#w-node-_9398f5bd-b9c8-92f6-bf00-d205bbfe9819-beafc602,#w-node-_9398f5bd-b9c8-92f6-bf00-d205bbfe981b-beafc602,#w-node-c098ef8a-9140-5c95-69b1-ed33429fa70f-beafc602,#w-node-ca4745e6-02da-5ec6-c489-e720a7297e2e-beafc602,#w-node-ca4745e6-02da-5ec6-c489-e720a7297e30-beafc602{grid-area:span 1/span 2/span 1/span 2}}@media print{.badges,.button,.footer,.navbar,.screenshots-album,.skip-to-content{display:none!important}body{color:#000;font-size:12pt;line-height:1.5}a[href]:after{content:" (" attr(href) ")";font-size:.85em;color:#555}a[href^="#"]:after,a[href^=index]:after{content:""}.contact,.past-projects,.portfolio,.presentation{padding:20pt 0;page-break-inside:avoid}.project-block{page-break-inside:avoid;margin-bottom:30pt}img{max-width:100%!important}}.hover\:text-neutral:hover{color:var(--neutral)}.hover\:text-primary:hover{color:var(--primary)}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-\[\.65\]:hover{opacity:.65}@media (max-width:767px){.max-md\:relative{position:relative}.max-md\:-left-2{left:-.5rem}.max-md\:top-4{top:1rem}.max-md\:mx-4{margin-left:1rem;margin-right:1rem}.max-md\:hidden{display:none}.max-md\:rounded-full{border-radius:9999px}.max-md\:px-8{padding-left:2rem;padding-right:2rem}.max-md\:py-4{padding-top:1rem;padding-bottom:1rem}.max-md\:pr-7{padding-right:1.75rem}.max-md\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (max-width:479px){.max-sm\:pr-5{padding-right:1.25rem}.max-sm\:text-\[13px\]{font-size:13px}.max-sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.max-sm\:leading-6{line-height:1.5rem}}