@import url(https://unpkg.com/@tailwindcss/typography@0.2.x/dist/typography.min.css);@import url(https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css);@import url(https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,200;1,100&display=swap);@import url(https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap);@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);@import url(https://fonts.googleapis.com/css2?family=Gudea:ital@1&family=Inter&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;margin:0}.container{margin:0 auto;max-width:1200px;padding:0 1.5rem}.button{align-items:center;border-radius:.5rem;display:inline-flex;font-size:.875rem;font-weight:500;justify-content:center;padding:.75rem 1.5rem;transition:all .2s}.button-primary{background-color:#419d78;color:#fff}.button-primary:hover{background-color:#357d61;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.card{background:#fff;border-radius:1rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);transition:box-shadow .2s,-webkit-transform .2s;transition:transform .2s,box-shadow .2s;transition:transform .2s,box-shadow .2s,-webkit-transform .2s}.card:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1);-webkit-transform:translateY(-4px);transform:translateY(-4px)}.input{border:1px solid #e5e7eb;border-radius:.5rem;padding:.75rem 1rem;transition:border-color .2s;width:100%}.input:focus{border-color:#419d78;box-shadow:0 0 0 3px rgba(65,157,120,.1);outline:none}.cursive{font-family:Bebas Neue,sans-serif;font-weight:700}.prose img{border-radius:5px;margin-left:auto;margin-right:auto}.footer--t{bottom:0;left:0;position:none;right:0;text-align:center}.footer--button,.footer--text{margin-bottom:5px;position:none}.copy--div{padding-bottom:100px}.syntax-highlight{word-wrap:break-word;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap}.search-container{margin:0 auto;max-width:600px;padding:2rem 1rem}.search-input{background-color:#fff;border:2px solid #e5e7eb;border-radius:1rem;font-size:1rem;padding:1rem 1.5rem;transition:all .2s;width:100%}.search-input:focus{border-color:#419d78;box-shadow:0 0 0 4px rgba(65,157,120,.1);outline:none}.search-input::-webkit-input-placeholder{color:#9ca3af}.search-input::placeholder{color:#9ca3af}.grid{margin-top:2rem}.about-container{background:#fff;border-radius:2rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);padding:3rem}.about-header{margin-bottom:3rem;text-align:center}.about-title{color:#2d3047;font-family:Inter,sans-serif;font-size:3rem;font-weight:700;margin-bottom:1rem}.about-subtitle{color:#419d78;font-size:1.5rem;font-weight:500}.about-content{margin:0 auto;max-width:800px}.about-paragraph{color:#4b5563;font-size:1.125rem;line-height:1.8;margin-bottom:2rem}.about-paragraph:last-child{margin-bottom:0}@media (max-width:768px){.about-container{padding:2rem}.about-title{font-size:2rem}.about-subtitle{font-size:1.25rem}.about-paragraph{font-size:1rem}}.contact-container{background:#fff;border-radius:2rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);padding:3rem;text-align:center}.contact-header{margin-bottom:3rem}.contact-image-wrapper{border:4px solid #419d78;border-radius:50%;height:200px;margin:0 auto 2rem;overflow:hidden;padding:4px;width:200px}.contact-image{border-radius:50%;height:100%;object-fit:cover;width:100%}.contact-name{color:#2d3047;font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.contact-title{color:#419d78;font-size:1.25rem;font-weight:500;margin-bottom:2rem}.contact-description{color:#4b5563;font-size:1.125rem;line-height:1.8;margin:0 auto 3rem;max-width:800px}.contact-links{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center}.contact-link{align-items:center;border-radius:.75rem;display:flex;font-weight:500;gap:.75rem;padding:1rem 2rem;text-decoration:none;transition:all .2s}.contact-link span{font-size:1rem}.contact-link.email{background-color:#419d78;color:#fff}.contact-link.email:hover{background-color:#357d61;-webkit-transform:translateY(-2px);transform:translateY(-2px)}.contact-link.github{background-color:#2d3047;color:#fff}.contact-link.github:hover{background-color:#1a1c2e;-webkit-transform:translateY(-2px);transform:translateY(-2px)}.contact-link.linkedin{background-color:#0077b5;color:#fff}.contact-link.linkedin:hover{background-color:#005885;-webkit-transform:translateY(-2px);transform:translateY(-2px)}.contact-link.resume{background-color:#e0a458;color:#fff}.contact-link.resume:hover{background-color:#c88f4a;-webkit-transform:translateY(-2px);transform:translateY(-2px)}@media (max-width:768px){.contact-container{padding:2rem}.contact-image-wrapper{height:150px;width:150px}.contact-name{font-size:2rem}.contact-title{font-size:1.125rem}.contact-description{font-size:1rem}.contact-links{flex-direction:column;gap:1rem}.contact-link{justify-content:center;width:100%}}.services-container{padding:2rem 0}.services-header{margin-bottom:4rem;text-align:center}.services-title{color:#2d3047;font-size:3rem;font-weight:700;margin-bottom:1rem}.services-subtitle{color:#6b7280;font-size:1.25rem}.services-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));padding:1rem}.service-card{background:#fff;border-radius:1.5rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);padding:2rem;text-align:center;transition:all .3s ease}.service-card:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1);-webkit-transform:translateY(-5px);transform:translateY(-5px)}.service-icon{align-items:center;background:linear-gradient(135deg,#419d78,#2d3047);border-radius:1rem;color:#fff;display:flex;font-size:1.5rem;height:64px;justify-content:center;margin:0 auto 1.5rem;width:64px}.service-title{color:#2d3047;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.service-description{color:#6b7280;line-height:1.6}@media (max-width:768px){.services-title{font-size:2rem}.services-subtitle{font-size:1.125rem}.services-grid{grid-template-columns:1fr}}.cta-container{background:linear-gradient(135deg,#419d78,#2d3047);border-radius:2rem;color:#fff;margin-top:6rem;padding:4rem 2rem;text-align:center}.cta-content{margin:0 auto;max-width:600px}.cta-title{font-size:2.5rem;font-weight:700;margin-bottom:1rem}.cta-description{font-size:1.125rem;margin-bottom:2rem;opacity:.9}.cta-buttons{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.cta-button{align-items:center;border-radius:.75rem;display:inline-flex;font-weight:500;gap:.5rem;padding:1rem 2rem;text-decoration:none;transition:all .2s}.cta-button.primary{background-color:#fff;color:#2d3047}.cta-button.primary:hover{box-shadow:0 4px 12px rgba(0,0,0,.1);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.cta-button.secondary{background-color:initial;border:2px solid hsla(0,0%,100%,.5);color:#fff}.cta-button.secondary:hover{background-color:hsla(0,0%,100%,.1);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.button-icon{transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.cta-button:hover .button-icon{-webkit-transform:translateX(4px);transform:translateX(4px)}@media (max-width:768px){.cta-container{margin-top:4rem;padding:3rem 1.5rem}.cta-title{font-size:2rem}.cta-description{font-size:1rem}.cta-buttons{flex-direction:column}.cta-button{justify-content:center;width:100%}}:root{--color-bg-primary:#fafbfc;--color-bg-secondary:#fff;--color-bg-tertiary:#f3f4f6;--color-text-primary:#2d3047;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--color-primary:#419d78;--color-primary-hover:#357d61;--color-primary-light:rgba(65,157,120,.1);--color-secondary:#2d3047;--color-accent:#e0a458;--color-border:#e5e7eb;--color-shadow:rgba(0,0,0,.1);--color-overlay:rgba(45,48,71,.9);--card-bg:#fff;--card-shadow:0 4px 6px -1px rgba(0,0,0,.1);--card-shadow-hover:0 10px 15px -3px rgba(0,0,0,.1);--input-bg:#fff;--input-border:#e5e7eb;--input-focus-border:#419d78;--input-focus-shadow:0 0 0 3px rgba(65,157,120,.1);--footer-bg:#276461;--footer-text:#fbfaf8;--nav-bg:hsla(0,0%,100%,.8);--nav-border:rgba(229,231,235,.5);--code-bg:#1f2937;--code-text:#f3f4f6}[data-theme=dark]{--color-bg-primary:#0f172a;--color-bg-secondary:#1e293b;--color-bg-tertiary:#334155;--color-text-primary:#f1f5f9;--color-text-secondary:#cbd5e1;--color-text-tertiary:#94a3b8;--color-primary:#4ade80;--color-primary-hover:#22c55e;--color-primary-light:rgba(74,222,128,.1);--color-secondary:#f1f5f9;--color-accent:#fbbf24;--color-border:#334155;--color-shadow:rgba(0,0,0,.3);--color-overlay:rgba(15,23,42,.95);--card-bg:#1e293b;--card-shadow:0 4px 6px -1px rgba(0,0,0,.3);--card-shadow-hover:0 10px 15px -3px rgba(0,0,0,.4);--input-bg:#1e293b;--input-border:#334155;--input-focus-border:#4ade80;--input-focus-shadow:0 0 0 3px rgba(74,222,128,.1);--footer-bg:#1e293b;--footer-text:#f1f5f9;--nav-bg:rgba(30,41,59,.9);--nav-border:rgba(51,65,85,.5);--code-bg:#0f172a;--code-text:#f1f5f9}body{background-color:#fafbfc;background-color:var(--color-bg-primary);color:#2d3047;color:var(--color-text-primary);transition:background-color .3s ease,color .3s ease}.about-container,.card,.contact-container,.project-card,.service-card,.services-container{background:#fff;background:var(--card-bg);box-shadow:0 4px 6px -1px rgba(0,0,0,.1);box-shadow:var(--card-shadow);color:#2d3047;color:var(--color-text-primary)}.card:hover,.project-card:hover,.service-card:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1);box-shadow:var(--card-shadow-hover)}.about-title,.contact-name,.greeting-text,.services-title,h1,h2,h3,h4,h5,h6{color:#2d3047;color:var(--color-text-primary)}.about-paragraph,.contact-description,.greeting-text-p,.service-description,p{color:#6b7280;color:var(--color-text-secondary)}.about-subtitle,.contact-title,.services-subtitle{color:#419d78;color:var(--color-primary)}.input,.search-input{background-color:#fff;background-color:var(--input-bg);border-color:#e5e7eb;border-color:var(--input-border);color:#2d3047;color:var(--color-text-primary)}.input:focus,.search-input:focus{border-color:#419d78;border-color:var(--input-focus-border);box-shadow:0 0 0 3px rgba(65,157,120,.1);box-shadow:var(--input-focus-shadow)}.input::-webkit-input-placeholder,.search-input::-webkit-input-placeholder{color:#9ca3af;color:var(--color-text-tertiary)}.input::placeholder,.search-input::placeholder{color:#9ca3af;color:var(--color-text-tertiary)}.button-primary,.contact-link.email,.cta-button.primary{background-color:#419d78;background-color:var(--color-primary)}.button-primary:hover,.contact-link.email:hover{background-color:#357d61;background-color:var(--color-primary-hover)}.header{background-color:var(--nav-bg);border-bottom:1px solid var(--nav-border)}.nav-item{color:var(--color-text-secondary)}.nav-item.active,.nav-item:hover{background-color:rgba(65,157,120,.1);background-color:var(--color-primary-light);color:#419d78;color:var(--color-primary)}.footer--t{background-color:#276461;background-color:var(--footer-bg);color:#fbfaf8;color:var(--footer-text)}.card-overlay{background:rgba(45,48,71,.9);background:var(--color-overlay)}.tag{background:#f3f4f6;background:var(--color-bg-tertiary);color:#2d3047;color:var(--color-text-primary)}.tag:hover{background:#419d78;background:var(--color-primary);color:#fff}.border,.spinner-circle,hr{border-color:#e5e7eb;border-color:var(--color-border)}.spinner-circle{border-top-color:var(--color-primary)}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}@media (prefers-reduced-motion:reduce){*{-webkit-animation:none!important;animation:none!important;transition:none!important}}[data-theme=dark] .syntax-highlight,[data-theme=dark] pre{background-color:#1f2937!important;background-color:var(--code-bg)!important}[data-theme=dark]::-webkit-scrollbar{width:12px}[data-theme=dark]::-webkit-scrollbar-track{background:#fff;background:var(--color-bg-secondary)}[data-theme=dark]::-webkit-scrollbar-thumb{background:#e5e7eb;background:var(--color-border);border-radius:6px}[data-theme=dark]::-webkit-scrollbar-thumb:hover{background:#9ca3af;background:var(--color-text-tertiary)}.error-boundary-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:2rem}.error-boundary-content{background:#fff;border-radius:2rem;box-shadow:0 20px 60px rgba(0,0,0,.3);max-width:600px;padding:3rem;text-align:center}.error-icon{font-size:4rem;margin-bottom:1rem}.error-title{color:#2d3047;font-size:2rem;font-weight:700;margin-bottom:1rem}.error-description{color:#6b7280;font-size:1.125rem;line-height:1.6;margin-bottom:2rem}.error-button{background:linear-gradient(135deg,#419d78,#2d3047);border:none;border-radius:.75rem;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:box-shadow .2s,-webkit-transform .2s;transition:transform .2s,box-shadow .2s;transition:transform .2s,box-shadow .2s,-webkit-transform .2s}.error-button:hover{box-shadow:0 10px 20px rgba(65,157,120,.3);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.error-details{background:#f9fafb;border-radius:.5rem;margin-top:2rem;padding:1rem;text-align:left}.error-details summary{color:#419d78;cursor:pointer;font-weight:600;margin-bottom:.5rem}.error-stack{background:#1f2937;border-radius:.5rem;color:#f3f4f6;font-size:.875rem;line-height:1.5;overflow-x:auto;padding:1rem}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:400px;padding:2rem}.loading-spinner{height:60px;position:relative;width:60px}.spinner-circle{border:4px solid #e5e7eb;border-radius:50%;border-top-color:#419d78;height:100%;width:100%}.loading-message{color:#6b7280;font-size:1rem;font-weight:500;margin-top:1.5rem}.lazy-image-wrapper{background:#f0f0f0;overflow:hidden;position:relative}.lazy-image-placeholder{height:100%;left:0;position:absolute;top:0;width:100%}.lazy-image{height:100%;object-fit:cover;transition:opacity .5s ease-in-out;width:100%}.lazy-image.loaded{opacity:1}.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.skip-link{background:#419d78;border-radius:0 0 4px 0;color:#fff;left:0;padding:8px 16px;position:absolute;text-decoration:none;top:-40px;transition:top .3s;z-index:100}.skip-link:focus{top:0}:focus-visible{outline:2px solid #419d78;outline-offset:2px}.page-loading{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 200px)}@media (prefers-reduced-motion:reduce){*,:after,:before{-webkit-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast:high){.contact-link,.error-button{border:2px solid}}.header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:hsla(0,0%,100%,.8);border-bottom:1px solid rgba(229,231,235,.5);position:-webkit-sticky;position:sticky;top:0;z-index:50}.nav-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:1rem 1.5rem}.nav-logo{-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#419d78,#2d3047);-webkit-background-clip:text;font-family:Inter,sans-serif;font-size:1.75rem;font-weight:700;letter-spacing:-.5px}.logo-link{align-items:center;display:flex;gap:.5rem;text-decoration:none;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.logo-link:hover{-webkit-text-fill-color:#419d78;background:none;opacity:.8;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.logo-icon{height:32px;width:32px}.nav-actions{gap:1rem}.nav-actions,.nav-links{align-items:center;display:flex}.nav-links{gap:2rem}.nav-item{border-radius:.5rem;color:#6b7280;font-size:.875rem;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:all .2s}.nav-item.active,.nav-item:hover{background-color:rgba(65,157,120,.1);color:#419d78}.nav-item.active:after{background-color:#419d78;border-radius:2px;bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.nav-item-dashboard{border-left:2px solid var(--color-border);margin-left:1rem;padding-left:2rem!important}.header .menu-btn:hover,.menu li a:hover{background-color:rgba(65,157,120,.1);border-radius:.5rem;padding:.5rem 1rem}.menu-toggle{display:none}@media (max-width:768px){.nav-actions{align-items:center;display:flex;gap:.5rem}.menu-toggle{background:none;border:none;cursor:pointer;display:block;padding:.5rem}.hamburger{display:block;position:relative}.hamburger,.hamburger:after,.hamburger:before{background:#2d3047;height:2px;transition:all .3s;width:24px}.hamburger:after,.hamburger:before{content:"";position:absolute}.hamburger:before{top:-6px}.hamburger:after{bottom:-6px}.hamburger.open{background:transparent}.hamburger.open:before{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.hamburger.open:after{bottom:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.nav-links{background:#fff;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);display:none;flex-direction:column;gap:1rem;left:0;padding:1rem;position:absolute;right:0;top:100%}.nav-links.show{display:flex}}.theme-toggle{align-items:center;background:transparent;border:none;cursor:pointer;display:flex;justify-content:center;padding:4px;position:relative;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.theme-toggle:hover{-webkit-transform:scale(1.05);transform:scale(1.05)}.theme-toggle:focus{outline:none}.theme-toggle:focus-visible{border-radius:24px;outline:2px solid var(--color-primary);outline-offset:2px}.theme-toggle-track{border-radius:14px;box-shadow:inset 0 2px 4px rgba(0,0,0,.1);height:28px;padding:2px;width:52px}.theme-toggle-thumb,.theme-toggle-track{align-items:center;display:flex;position:relative}.theme-toggle-thumb{background:#fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2);height:24px;justify-content:center;width:24px}.theme-icon{color:#fdb813;font-size:12px}[data-theme=dark] .theme-icon{color:gold}@media (prefers-reduced-motion:reduce){.theme-toggle-thumb,.theme-toggle-track{transition:none!important}}@media (max-width:768px){.theme-toggle{padding:8px}.theme-toggle-track{height:26px;width:48px}.theme-toggle-thumb{height:22px;width:22px}}.install-pwa-container{bottom:20px;left:50%;max-width:600px;position:fixed;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:calc(100% - 40px);z-index:1000}.install-pwa-content{align-items:center;background:var(--card-bg);border:1px solid var(--color-border);border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.2);display:flex;gap:16px;padding:20px}.install-pwa-icon{flex-shrink:0}.install-pwa-icon img{border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);height:56px;width:56px}.install-pwa-text{flex:1 1;min-width:0}.install-pwa-text h3{color:var(--color-text-primary);font-size:1rem;font-weight:600;margin:0 0 4px}.install-pwa-text p{color:var(--color-text-secondary);font-size:.875rem;line-height:1.4;margin:0}.install-btn,.install-pwa-actions{align-items:center;display:flex;gap:8px}.install-btn{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-hover) 100%);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:10px 20px;transition:all .2s;white-space:nowrap}.install-btn:hover{box-shadow:0 4px 12px rgba(65,157,120,.3);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.install-btn:active{-webkit-transform:translateY(0);transform:translateY(0)}.dismiss-btn{align-items:center;background:transparent;border:none;border-radius:8px;color:var(--color-text-secondary);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s;width:40px}.dismiss-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}@media (max-width:768px){.install-pwa-container{bottom:80px;width:calc(100% - 32px)}.install-pwa-content{gap:12px;padding:16px}.install-pwa-icon img{height:48px;width:48px}.install-pwa-text h3{font-size:.9375rem}.install-btn,.install-pwa-text p{font-size:.8125rem}.install-btn{padding:8px 16px}.dismiss-btn{height:36px;width:36px}}@media (max-width:480px){.install-pwa-content{flex-direction:column;text-align:center}.install-pwa-actions{justify-content:center;width:100%}.install-btn{flex:1 1}}[data-theme=dark] .install-pwa-content{box-shadow:0 10px 40px rgba(0,0,0,.5)}@-webkit-keyframes pulse{0%,to{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}}@keyframes pulse{0%,to{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.05);transform:scale(1.05)}}.install-btn{-webkit-animation:pulse 2s ease-in-out infinite;animation:pulse 2s ease-in-out infinite}.install-btn:hover{-webkit-animation:none;animation:none}
/*# sourceMappingURL=main.3d4e4c41.css.map*/