.hero-section:where(.astro-j7pv25f6){padding-top:4rem;padding-bottom:4rem}@media (min-width: 640px){.hero-section:where(.astro-j7pv25f6){padding-top:6rem;padding-bottom:6rem}}.hero-content:where(.astro-j7pv25f6){margin-left:auto;margin-right:auto;max-width:56rem;text-align:left}.hero-text:where(.astro-j7pv25f6)>:not([hidden]):where(.astro-j7pv25f6)~:not([hidden]):where(.astro-j7pv25f6){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.hero-title:where(.astro-j7pv25f6){font-size:3rem;line-height:1;font-weight:700;letter-spacing:-.025em}@media (min-width: 640px){.hero-title:where(.astro-j7pv25f6){font-size:3.75rem;line-height:1}}@media (min-width: 768px){.hero-title:where(.astro-j7pv25f6){font-size:4.5rem;line-height:1}}.hero-title:where(.astro-j7pv25f6){background:linear-gradient(135deg,#3b82f6,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle:where(.astro-j7pv25f6){font-size:1.125rem;line-height:1.75rem;line-height:1.625}@media (min-width: 640px){.hero-subtitle:where(.astro-j7pv25f6){font-size:1.25rem;line-height:1.75rem}}.hero-subtitle:where(.astro-j7pv25f6){color:#e5e7eb}.hero-buttons:where(.astro-j7pv25f6){display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:1rem}@media (min-width: 640px){.hero-buttons:where(.astro-j7pv25f6){flex-direction:row}}.primary-button:where(.astro-j7pv25f6){border-radius:.5rem;padding:.75rem 2rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:#3b82f6;color:#fff}.primary-button:where(.astro-j7pv25f6):hover{background-color:#2563eb;transform:translateY(-2px)}.secondary-button:where(.astro-j7pv25f6){border-radius:.5rem;border-width:2px;padding:.75rem 2rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:transparent;color:#fff;border-color:#fff}.secondary-button:where(.astro-j7pv25f6):hover{background-color:#fff;color:#000;transform:translateY(-2px)}.social-wrapper:where(.astro-j7pv25f6){margin-top:2rem;display:flex;flex-direction:column;justify-content:flex-start}@media (min-width: 640px){.social-wrapper:where(.astro-j7pv25f6){flex-direction:row;align-items:center}}.social-links:where(.astro-j7pv25f6){margin-bottom:.5rem;margin-right:1rem;white-space:nowrap}@media (min-width: 640px){.social-links:where(.astro-j7pv25f6){margin-bottom:0}}.social-links:where(.astro-j7pv25f6){color:#e5e7eb}.tech-stack-section:where(.astro-j7pv25f6){padding:4rem 2rem}.tech-stack-title:where(.astro-j7pv25f6){margin-bottom:3rem;text-align:center;font-size:1.875rem;line-height:2.25rem;font-weight:700;letter-spacing:-.025em;color:#fff}.tech-logos:where(.astro-j7pv25f6){margin-left:auto;margin-right:auto;display:grid;max-width:72rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}@media (min-width: 640px){.tech-logos:where(.astro-j7pv25f6){grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 768px){.tech-logos:where(.astro-j7pv25f6){grid-template-columns:repeat(6,minmax(0,1fr))}}@media (min-width: 1024px){.tech-logos:where(.astro-j7pv25f6){grid-template-columns:repeat(8,minmax(0,1fr))}}.tech-logo:where(.astro-j7pv25f6){display:flex;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;border-radius:.5rem;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background-color:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.tech-logo:where(.astro-j7pv25f6):hover{background-color:#ffffff1a;border-color:#3b82f680;transform:translateY(-4px)}.tech-logo:where(.astro-j7pv25f6) img:where(.astro-j7pv25f6){margin-bottom:.5rem;height:2rem;width:2rem}.tech-logo:where(.astro-j7pv25f6) span:where(.astro-j7pv25f6){text-align:center;font-size:.75rem;line-height:1rem;font-weight:500;color:#e5e7eb}#recent-projects:where(.astro-j7pv25f6){padding-top:4rem;padding-bottom:4rem}#recent-projects:where(.astro-j7pv25f6) h2:where(.astro-j7pv25f6){text-align:center;font-size:1.875rem;line-height:2.25rem;font-weight:700;letter-spacing:-.025em;color:#fff}#recent-projects:where(.astro-j7pv25f6) ul:where(.astro-j7pv25f6){display:grid;gap:1.5rem}@media (min-width: 768px){#recent-projects:where(.astro-j7pv25f6) ul:where(.astro-j7pv25f6){grid-template-columns:repeat(2,minmax(0,1fr))}}#recent-projects:where(.astro-j7pv25f6) ul:where(.astro-j7pv25f6) li:where(.astro-j7pv25f6){display:flex}#recent-projects:where(.astro-j7pv25f6) ul:where(.astro-j7pv25f6) li:where(.astro-j7pv25f6) a:where(.astro-j7pv25f6){display:flex;width:100%;flex-direction:column}#about-me:where(.astro-j7pv25f6){border-radius:.5rem;padding:4rem 2rem;background-color:#172435}.about-content:where(.astro-j7pv25f6){margin-left:auto;margin-right:auto;display:grid;max-width:56rem;gap:2rem}@media (min-width: 768px){.about-content:where(.astro-j7pv25f6){grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}}.about-image:where(.astro-j7pv25f6){display:flex;justify-content:center}.profile-image:where(.astro-j7pv25f6){height:14rem;width:14rem;border-radius:9999px;-o-object-fit:cover;object-fit:cover;--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transform:scale(.5)}.about-text:where(.astro-j7pv25f6) h2:where(.astro-j7pv25f6){margin-bottom:1.5rem;font-size:1.875rem;line-height:2.25rem;font-weight:700;letter-spacing:-.025em;color:#fff}.about-text:where(.astro-j7pv25f6) p:where(.astro-j7pv25f6){font-size:1.125rem;line-height:1.75rem;line-height:1.625;color:#e5e7eb}.contact-section:where(.astro-j7pv25f6){padding:4rem 2rem;background-color:#172435}.contact-title:where(.astro-j7pv25f6){margin-bottom:3rem;text-align:center;font-size:1.875rem;line-height:2.25rem;font-weight:700;letter-spacing:-.025em;color:#fff}.contact-form:where(.astro-j7pv25f6){margin-left:auto;margin-right:auto;max-width:42rem}.contact-form:where(.astro-j7pv25f6)>:not([hidden]):where(.astro-j7pv25f6)~:not([hidden]):where(.astro-j7pv25f6){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.contact-form:where(.astro-j7pv25f6) input:where(.astro-j7pv25f6),.contact-form:where(.astro-j7pv25f6) textarea:where(.astro-j7pv25f6){width:100%;border-radius:.5rem;border-width:2px;padding:.75rem 1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:#ffffff0d;border-color:#ffffff1a;color:#fff}.contact-form:where(.astro-j7pv25f6) input:where(.astro-j7pv25f6):focus,.contact-form:where(.astro-j7pv25f6) textarea:where(.astro-j7pv25f6):focus{outline:2px solid transparent;outline-offset:2px;border-color:#3b82f6;background-color:#ffffff1a}.contact-form:where(.astro-j7pv25f6) input:where(.astro-j7pv25f6)::-moz-placeholder,.contact-form:where(.astro-j7pv25f6) textarea:where(.astro-j7pv25f6)::-moz-placeholder{color:#9ca3af}.contact-form:where(.astro-j7pv25f6) input:where(.astro-j7pv25f6)::placeholder,.contact-form:where(.astro-j7pv25f6) textarea:where(.astro-j7pv25f6)::placeholder{color:#9ca3af}.contact-form:where(.astro-j7pv25f6) button:where(.astro-j7pv25f6){width:100%;border-radius:.5rem;padding:.75rem 2rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:#3b82f6;color:#fff}.contact-form:where(.astro-j7pv25f6) button:where(.astro-j7pv25f6):hover{background-color:#2563eb;transform:translateY(-2px)}.success-message:where(.astro-j7pv25f6){padding-top:2rem;padding-bottom:2rem;text-align:center;font-size:1.125rem;line-height:1.75rem;color:#10b981}.recaptcha-container:where(.astro-j7pv25f6){display:flex;justify-content:center}#notes:where(.astro-j7pv25f6),#featured:where(.astro-j7pv25f6){padding-top:4rem;padding-bottom:4rem}#notes:where(.astro-j7pv25f6) h2:where(.astro-j7pv25f6),#featured:where(.astro-j7pv25f6) h2:where(.astro-j7pv25f6){margin-bottom:2rem;text-align:center;font-size:1.875rem;line-height:2.25rem;font-weight:700;letter-spacing:-.025em;color:#fff}.fade-in-up:where(.astro-j7pv25f6){opacity:0;transform:translateY(40px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1)}
