@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../media/41e95f694c5c4549-s.0r1jrq7neqdsq.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6c55a692938ebbbc-s.0g6rbszwfgn9y.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:400;font-display:swap;src:url(../media/a218039a3287bcfd-s.p.17-1enzs_j91b.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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:500;font-display:swap;src:url(../media/bdc7e24a509eb931-s.0apt5mko2.qn3.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0da9c7f357bd9d4d-s.0ek5sshv8wk3m.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:500;font-display:swap;src:url(../media/8e6fa89aa22d24ec-s.p.0uvzar8hswo3p.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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:600;font-display:swap;src:url(../media/0a7740363b4d4863-s.1110aazvokzp..woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5f9d24ebef5d5292-s.0esuu2f5si~v8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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(../media/e2334d715941921e-s.p.12skym0rqknxy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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(../media/b53057dbf91a7acf-s.0carvq6u72s58.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(../media/798ea22d9983e047-s.106do9xzbuago.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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(../media/47fe1b7cd6e6ed85-s.p.0~mcdl10zdfb3.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins Fallback;src:local(Arial);ascent-override:93.62%;descent-override:31.21%;line-gap-override:8.92%;size-adjust:112.16%}.poppins_8ee9cffc-module__EEhuHq__className{font-family:Poppins,Poppins Fallback;font-style:normal}.poppins_8ee9cffc-module__EEhuHq__variable{--font-poppins:"Poppins", "Poppins Fallback"}
:root{--color-primary:#d2601a;--color-primary-hover:#b85315;--color-primary-soft:#e07028;--color-brand:#1a4c4c;--color-brand-hover:#2a5b5b;--color-cream:#f1e9dc;--color-page:#faf9ed;--color-project-hero-start:#f5f5f0;--color-project-section-alt:#f8f9fa;--color-surface:#fff;--color-text:#3d3935;--color-text-muted:#8a817c;--color-text-soft:#a39993;--color-hero-nav:#333;--color-hero-muted:#666;--color-hero-warm-text:#b59a74;--color-slate:#5c6b73;--color-slate-dark:#4a5761;--color-border:#e8e3da;--color-border-strong:#d4cfc7;--color-project-hero-border:#eee;--color-project-card-border:#e8e8e8;--color-input-bg:#fafafa;--color-slider-dot:#ddd;--color-slider-dot-hover:#bbb;--color-focus:#d2601a;--color-feature-amber:#eab308;--color-feature-gray:#9ca3af;--color-feature-slate:#6b7280;--color-feature-blue:#3b82f6;--color-feature-green:#10b981;--color-feature-purple:#8b5cf6;--color-feature-cyan:#06b6d4;--color-feature-orange:#f59e0b;--color-feature-github-blue:#2b7ef7;--color-feature-success:#27ae60;--color-feature-indigo:#6366f1;--color-feature-pink:#ec4899;--color-feature-red:#ef4444;--color-feature-violet:#8e44ad;--color-stack-threejs:#000;--color-stack-opengl:#5586a4;--color-stack-models:#d97706;--color-stack-gui:#6b7280;--color-stack-github:#181717;--color-code-bg:#1e1e1e;--color-code-text:#d4d4d4;--color-route-get-bg:#3498db26;--color-route-get-text:#2980b9;--color-route-post-bg:#27ae6026;--color-route-post-text:#27ae60;--color-route-put-bg:#f39c1226;--color-route-put-text:#d68910;--color-shadow:#1a4c4c1f;--color-shadow-strong:#1a4c4c38;--color-shadow-neutral:#00000014;--color-shadow-neutral-soft:#0000000f;--color-beige-1:#efe7d9;--color-beige-2:#eadfc7;--color-beige-3:#e6d7b8;--color-beige-4:#e0cfa6;--color-beige-5:#d8c49a;--color-footer-band-1:beige;--color-footer-band-2:#e9d2a6;--color-footer-band-3:tan;--color-footer-band-4:#b8a478;--color-footer-band-5:#a8996e;--color-footer-heading:#d7d5c7;--font-sans:var(--font-poppins), "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Fira Code", Consolas, "Liberation Mono", monospace;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-normal:normal;--line-height-tight:1.2;--line-height-body:1.6;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-section:clamp(4rem, 8vw, 7rem);--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:1rem;--radius-pill:999px;--container-width:75rem;--container-gutter:clamp(1rem, 5vw, 4rem);--shadow-card:0 1rem 3rem var(--color-shadow);--shadow-card-hover:0 1.25rem 3.5rem var(--color-shadow-strong);--shadow-hero-card:0 .5rem 1.875rem var(--color-shadow-neutral);--shadow-project-card:0 .25rem .75rem var(--color-shadow-neutral);--shadow-project-card-hover:0 .75rem 2.5rem #1a4c4c33;--shadow-project-hero-image:0 1.25rem 3.75rem #00000026;--shadow-project-artwork-image:0 1.25rem 3.75rem #0003;--shadow-app-screenshot:0 .625rem 1.875rem #00000026;--shadow-architecture-card-hover:0 .9375rem 2.5rem #1a4c4c26;--shadow-email-preview:0 .625rem 2.5rem #0000001a;--shadow-soft-panel:0 .25rem 1.25rem #0000000f;--shadow-route-card-hover:0 .5rem 1.875rem #0000001a;--shadow-sdk-card-hover:0 .625rem 2.1875rem #0000001a;--shadow-result-card-hover:0 .9375rem 2.5rem #1a4c4c1f;--shadow-contact-form:0 .5rem 1.875rem var(--color-shadow-neutral);--shadow-contact-focus:0 0 0 .25rem #1a4c4c1a;--shadow-contact-submit-hover:0 .5rem 1.5625rem #1a4c4c59;--shadow-footer-cta-hover:0 .375rem 1.25rem #ffffff4d;--shadow-project-cta-hover:0 .375rem 1.25rem #1a4c4c4d;--shadow-projects-link-hover:0 .375rem 1.25rem #1a4c4c59;--shadow-beige-square:0 .375rem 1.125rem var(--color-shadow-neutral-soft) inset, 0 .375rem 1.125rem var(--color-shadow-neutral-soft);--shadow-beige-square-flip:0 1.125rem 1.875rem #00000017;--shadow-cta-hover:0 .375rem 1.25rem #1a4c4c66;--tag-unity-bg:#222;--tag-unity-text:#fff;--tag-csharp-bg:#68217a;--tag-csharp-text:#fff;--tag-cloudflare-bg:#f38020;--tag-cloudflare-text:#fff;--tag-api-bg:#1a4c4c;--tag-api-text:#fff;--tag-wordpress-bg:#21759b;--tag-wordpress-text:#fff;--tag-php-bg:#777bb4;--tag-php-text:#fff;--tag-pdf-bg:#e74c3c;--tag-pdf-text:#fff;--tag-mail-bg:#27ae60;--tag-mail-text:#fff;--tag-threejs-bg:#000;--tag-threejs-text:#fff;--tag-webgl-bg:#900;--tag-webgl-text:#fff;--tag-js-bg:#f7df1e;--tag-js-text:#000;--tag-mysql-bg:#4479a1;--tag-mysql-text:#fff;--tag-cms-bg:#1a4c4c;--tag-cms-text:#fff;--tag-react-bg:#61dafb;--tag-react-text:#102b3c;--tag-nextjs-bg:#111;--tag-nextjs-text:#fff;--tag-vite-bg:#646cff;--tag-vite-text:#fff;--tag-devops-bg:#0078d4;--tag-devops-text:#fff;--tag-nginx-bg:#009639;--tag-nginx-text:#fff;--tag-postgresql-bg:#336791;--tag-postgresql-text:#fff;--tag-docker-bg:#2496ed;--tag-docker-text:#fff;--tag-kotlin-bg:#7f52ff;--tag-kotlin-text:#fff;--tag-compose-bg:#4285f4;--tag-compose-text:#fff;--tag-android-bg:#3ddc84;--tag-android-text:#000;--tag-default-bg:#faf9ed;--tag-default-text:#1a4c4c;--breakpoint-sm:30rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--breakpoint-xl:75rem}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;scroll-behavior:smooth}body{min-width:320px;font-family:var(--font-sans);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-text);background:var(--color-surface);overflow-x:hidden}button,input,textarea,select{font:inherit;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only}img,picture,svg{max-width:100%;display:block}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:.08em}[id]{scroll-margin-top:5rem}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold)}p{font-weight:var(--font-weight-regular)}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}#root{min-height:100svh}.container{width:min(100% - (2 * var(--container-gutter)), var(--container-width));margin-inline:auto}.section{padding-block:var(--space-section)}html[data-reveal-ready=true] [data-reveal]:not([data-revealed=true]){opacity:0;transform:translateY(var(--reveal-distance,1.75rem))}html[data-reveal-ready=true] [data-reveal]{transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s);will-change:opacity, transform}html[data-reveal-ready=true] [data-reveal][data-revealed=true]{opacity:1;transform:translateY(0)}[data-enter]{animation:.76s cubic-bezier(.22,1,.36,1) both page-enter;animation-delay:var(--enter-delay,0s)}[data-enter-order="1"]{--enter-delay:90ms}[data-enter-order="2"]{--enter-delay:.21s}[data-enter-order="3"]{--enter-delay:.33s}[data-enter-order="4"]{--enter-delay:.45s}[data-enter-order="5"]{--enter-delay:.57s}[data-enter-order="6"]{--enter-delay:.69s}@keyframes page-enter{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}.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}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}html[data-reveal-ready=true] [data-reveal]{will-change:auto;transition:none}[data-enter]{animation:none}}@media (prefers-color-scheme:dark){html,body,#root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;color:var(--color-text);background-color:var(--color-surface)}}
