*,:before,:after{--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: rgb(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: rgb(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: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#d9d9d9}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#a6a6a6}input::placeholder,textarea::placeholder{opacity:1;color:#a6a6a6}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--clr-white: hsl(0, 0%, 100%);--clr-gray-100: hsl(0, 0%, 95%);--clr-gray-200: hsl(0, 0%, 85%);--clr-gray-300: hsl(0, 0%, 75%);--clr-gray-400: hsl(0, 0%, 65%);--clr-gray-500: hsl(0, 0%, 55%);--clr-gray-600: hsl(0, 0%, 45%);--clr-gray-700: hsl(0, 0%, 35%);--clr-gray-800: hsl(0, 0%, 25%);--clr-gray-900: hsl(0, 0%, 15%);--clr-primary-400: hsl(220, 70%, 60%);--clr-primary-500: hsl(220, 70%, 50%);--clr-primary-600: hsl(220, 70%, 40%);--clr-secondary-400: hsl(280, 60%, 60%);--clr-secondary-500: hsl(280, 60%, 50%);--clr-secondary-600: hsl(280, 60%, 40%);--ff-heading: "Outfit", sans-serif;--ff-body: "Fira Sans", sans-serif;--fs-300: .875rem;--fs-400: 1rem;--fs-500: 1.125rem;--fs-600: 1.25rem;--fs-700: 1.5rem;--fs-800: 2rem;--fs-900: 3rem;--fs-1000: 4rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 2rem;--space-xl: 4rem;--border-radius-sm: .25rem;--border-radius-md: .5rem;--border-radius-lg: 1rem;--text-main: var(--clr-gray-800);--text-muted: var(--clr-gray-600);--text-high-contrast: var(--clr-gray-900);--text-inverted: var(--clr-white);--background-accent-main: var(--clr-white);--background-accent-light: var(--clr-gray-100);--background-dark: var(--clr-gray-800);--accent-color: var(--clr-primary-500);--accent-color-light: var(--clr-primary-400);--accent-color-dark: var(--clr-primary-600);--secondary-color: var(--clr-secondary-500)}@media (min-width: 768px){:root{--fs-700: 1.75rem;--fs-800: 2.5rem;--fs-900: 3.5rem;--fs-1000: 5rem}}body{font-family:var(--ff-body);color:var(--text-main);background-color:var(--background-accent-main)}h1,h2,h3,h4{font-family:var(--ff-heading);font-weight:700;color:var(--text-high-contrast)}a{color:var(--accent-color);text-decoration:none}a:hover,a:focus-visible{color:var(--accent-color-light)}img{border-radius:var(--border-radius-md)}.skip-to-main{background:var(--accent-color);padding:var(--space-md);position:absolute;top:var(--space-md);left:var(--space-md);border-radius:var(--border-radius-md);color:var(--text-inverted);z-index:100}.skip-to-main:not(:focus){clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.site-header{padding-block:var(--space-md);background-color:var(--background-accent-main);box-shadow:0 1px 3px #0000001a;position:sticky;top:0;z-index:10}.site-header__inner{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);justify-content:space-between;align-items:center}.site-logo{font-family:var(--ff-heading);font-weight:700;font-size:var(--fs-600);color:var(--text-high-contrast)}.primary-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 2rem}.primary-navigation a{text-decoration:none}[aria-controls=primary-navigation]{display:none}@media (width < 760px){[aria-controls=primary-navigation]{display:block;z-index:100;background:transparent;border:0}[aria-controls=primary-navigation] img{border-radius:0}.site-header{position:relative}.primary-navigation{display:none;opacity:1;transition:display 1s,opacity 1s;transition-behavior:allow-discrete;position:absolute;z-index:10;top:0;right:0;padding:2rem;border-radius:0 0 0 var(--border-radius-3);background:var(--background-accent-light)}.primary-navigation ul{flex-direction:column;gap:0;font-size:var(--fs-700);font-family:var(--ff-heading);font-weight:700}.primary-navigation li{translate:0;opacity:1;transition:opacity .3s,translate 875ms;transition-delay:var(--delay, 125ms)}.primary-navigation li:nth-child(2){--delay: .25s}.primary-navigation li:nth-child(3){--delay: 325ms}.primary-navigation li+li{margin-top:1rem;padding-top:1rem;border-top:2px solid var(--accent-color-light)}[aria-expanded=true]~.primary-navigation{display:block;opacity:1}@starting-style{[aria-expanded=true]~.primary-navigation{display:block;opacity:0}}[aria-expanded=true]~.primary-navigation li{translate:0;opacity:1}@starting-style{[aria-expanded=true]~.primary-navigation li{translate:100%;opacity:0}}}.hero{text-align:center;background-color:var(--background-dark);background-size:cover;color:var(--text-inverted);padding-block:calc(var(--space-xl) * 1.5)}.hero__title{font-size:var(--fs-900);margin-bottom:var(--space-md)}.hero__title span{display:block}.tag{display:inline-block;background-color:var(--accent-color-light);color:var(--text-inverted);padding:var(--space-xs) var(--space-md);border-radius:var(--border-radius-sm);font-family:var(--ff-heading);font-size:var(--fs-300);margin-bottom:var(--space-sm)}.section-title{font-size:var(--fs-800);margin-bottom:var(--space-md)}.card{background-color:var(--background-accent-light);border-radius:var(--border-radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.card img{width:100%;aspect-ratio:16 / 9;-o-object-fit:cover;object-fit:cover}.card__title{font-size:var(--fs-700);color:var(--text-high-contrast)}.tag-list{display:flex;gap:var(--space-sm);flex-wrap:wrap;list-style:none;padding:0;margin:auto 0 0}.tag-list li{background-color:var(--accent-color);color:var(--text-inverted);padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius-sm);font-size:var(--fs-300)}.tag-list li[data-tech=web]{background-color:var(--accent-color)}.tag-list li[data-tech=payment],.tag-list li[data-tech=backend]{background-color:var(--secondary-color)}.tag-list li[data-tech=css],.tag-list li[data-tech=chart],.tag-list li[data-tech=state],.tag-list li[data-tech=mobile]{background-color:var(--clr-gray-700)}.service-card{background-color:var(--background-accent-main);border-radius:var(--border-radius-lg);padding:var(--space-lg);box-shadow:0 4px 6px #0000000d;display:flex;flex-direction:column;gap:var(--space-md);text-align:center}.service-icon{width:64px;height:64px;margin-inline:auto;background-color:var(--accent-color-light);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-sm)}.service-icon img{width:32px;height:32px;filter:brightness(0) invert(1)}.social-links-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-lg);margin-top:3rem;max-width:500px;margin-inline:auto}@media (width < 760px){.social-links-container{flex-direction:column;margin-inline:4rem}}.social-link{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background-color:var(--background-light);border-radius:var(--border-radius-lg);color:var(--text-high-contrast);font-family:var(--ff-heading);font-size:var(--fs-600);font-weight:700;transition:transform .2s ease,box-shadow .2s ease}.social-link:hover,.social-link:focus-visible{transform:translateY(-3px);box-shadow:0 6px 12px #0000001a;color:var(--text-high-contrast)}.social-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center}.linkedin-icon{background-color:#0077b5}.github-icon{background-color:#333}.social-icon img{width:24px;height:24px;filter:brightness(0) invert(1)}.button{display:inline-flex;cursor:pointer;font-family:var(--ff-heading);font-weight:700;font-size:var(--fs-400);text-decoration:none;background-color:var(--accent-color);color:var(--text-inverted);padding:var(--space-sm) var(--space-lg);border-radius:var(--border-radius-sm);border:none;transition:background-color .2s ease}.button:hover,.button:focus-visible{background-color:var(--accent-color-dark);color:var(--text-inverted)}.site-footer{background-color:var(--background-dark);color:var(--text-inverted);padding-block:var(--space-lg);text-align:center}.footer-links{display:flex;justify-content:center;gap:var(--space-lg);margin-top:var(--space-md)}.footer-links a{color:var(--clr-gray-300)}.footer-links a:hover,.footer-links a:focus-visible{color:var(--accent-color-light)}.about-image{width:100%;height:auto;border-radius:var(--border-radius-lg)}.card iframe{border:none;background:#f8f9fa;transition:opacity .3s ease}.card iframe:not([src]){opacity:0}.card iframe[src]{opacity:1}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.hidden{display:none}.aspect-video{aspect-ratio:16 / 9}.h-full{height:100%}.w-full{width:100%}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.flex-wrap{flex-wrap:wrap}.justify-center{justify-content:center}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:1rem}.bg-gray-700{--tw-bg-opacity: 1;background-color:hsl(0 0% 35% / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:hsl(0 0% 15% / var(--tw-bg-opacity, 1))}.bg-cover{background-size:cover}.bg-right-top{background-position:right top}.font-heading{font-family:Outfit,sans-serif}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-gray-200{--tw-text-opacity: 1;color:hsl(0 0% 85% / var(--tw-text-opacity, 1))}.text-primary-600{--tw-text-opacity: 1;color:hsl(220 70% 40% / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.text-center{text-align:center}.background-light{background-color:var(--background-accent-light)}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}.button,a{transition:color .2s ease,background-color .2s ease}}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@layer reset{*,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}[role=list]{list-style:none;margin:0;padding:0}body{min-block-size:100vh;line-height:1.6}h1,h2,h3,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}p,li{text-wrap:pretty}img,picture{max-inline-size:100%;display:block}input,button,textarea,select{font:inherit}}@layer layout{.flow>*+*{margin-block-start:var(--flow-space, 1em)}.flex-group{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.grid-auto-fill{--grid-auto-fit-min-column-size: 300px;display:grid;gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(min(var(--grid-auto-fit-min-column-size),100%),1fr))}.equal-columns{display:grid;gap:var(--equal-columns-gap, var(--space-lg));align-items:var(--column-layout-alignment, start)}@media (min-width: 768px){.equal-columns{grid-auto-flow:column;grid-auto-columns:1fr}}.section{padding-block:var(--space-xl)}@media (min-width: 768px){.section{padding-block:calc(var(--space-xl) * 1.5)}}.wrapper{--wrapper-max-width: 1130px;--wrapper-padding: var(--space-md);max-width:var(--wrapper-max-width);margin-inline:auto;padding-inline:var(--wrapper-padding);box-sizing:content-box}.wrapper[data-width=narrow]{--wrapper-max-width: 720px}.wrapper[data-width=wide]{--wrapper-max-width: 1330px}}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:hsl(0 0% 45% / var(--tw-bg-opacity, 1))}@media (min-width: 768px){.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-7xl{font-size:4.5rem;line-height:1}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 1024px){.lg\:text-7xl{font-size:4.5rem;line-height:1}.lg\:text-8xl{font-size:6rem;line-height:1}}
