body,html{background-color:#e0e7ff;min-height:100%;scroll-behavior:smooth}body.dark,html.dark{background-color:#1a1a2e}#root{background-color:#e0e7ff}#root:has(.App.dark){background-color:#1a1a2e}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}body.dark{--bg-color:#000;--text-color:#fff}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@property --gradient-start{syntax:"<color>";inherits:false;initial-value:#e0e7ff}:root{--primary-color:#f8f9fa;--secondary-color:#e0e7ff;--accent-color:#fff;--extra:#e9ecef;--text-color:#111827;--text-secondary:#374151;--nav-text:#374151cc;--nav-text-hover:#111827;--nav-active-border:#818cf8;--primary-color-dark:#0f1117;--secondary-color-dark:#1a1a2e;--accent-color-dark:#1e1e2e;--extra-dark:#2a2a3a;--text-color-dark:#f9fafb;--text-secondary-dark:#d1d5db}*,:after,:before{box-sizing:border-box}[role=button],a,button{cursor:pointer}[role=button],a,button,footer,header,nav{-webkit-user-select:none;user-select:none}.App{--gradient-start:#e0e7ff;background-color:#f8f9fa;background-color:var(--primary-color);background-image:linear-gradient(to bottom,var(--gradient-start) 0,#0000 60vh);color:#111827;color:var(--text-color);min-height:100vh;text-align:center;transition:background-color .3s,color .3s,--gradient-start .3s}.App.dark{--primary-color:#0f1117;--secondary-color:#1a1a2e;--accent-color:#1e1e2e;--extra:#2a2a3a;--text-color:#f9fafb;--text-secondary:#d1d5db;--nav-text:#adb5bd;--nav-text-hover:#f9fafb;--nav-active-border:#818cf8;--gradient-start:#1a1a2e}body.dark{--secondary-color:#1a1a2e;--nav-text:#adb5bd}.App.dark .cert-card,.App.dark .project,.App.dark .skill-group{background-color:#1e1e2e;color:#f9fafb}.App.dark .modal-tools ul li,.App.dark .skill-group ul li,.modal-backdrop.dark .modal-tools ul li{background-color:#312e81;color:#c7d2fe}.App.dark .cert-card h3{color:#f9fafb}.App.dark .cert-code{color:#9ca3af}.App.dark .modal-card,.modal-backdrop.dark .modal-card{background-color:#1e1e2e}.App.dark .modal-desc,.App.dark .modal-value p,.modal-backdrop.dark .modal-desc,.modal-backdrop.dark .modal-value p{color:#d1d5db}.App.dark .modal-body h3,.App.dark .project h3,.App.dark .project p,.modal-backdrop.dark .modal-body h3{color:#f9fafb}.App.dark .card-hint{color:#818cf8}.App.dark .social-media a img{filter:brightness(0) invert(1)}header{background-color:#e0e7ff;background-color:var(--secondary-color);border-bottom:1px solid #0000;color:#111827;color:var(--text-color);font-size:18px;height:3.5rem;padding:0 2rem;position:fixed;top:0;transition:background-color .3s,color .3s,border-color .3s;z-index:1000}header,nav,nav ul{align-items:center;display:flex;width:100%}nav ul{flex-wrap:wrap;gap:.25rem 1.25rem;list-style:none;margin:0;padding:0}nav a{border-bottom:2px solid #0000;color:#374151cc;color:var(--nav-text);font-size:.95rem;padding-bottom:2px;text-decoration:none;transition:color .2s}nav a.nav-active,nav a:hover{color:#111827;color:var(--nav-text-hover)}nav a.nav-active{border-bottom-color:#818cf8;border-bottom-color:var(--nav-active-border)}.nav-brand-item{margin-right:auto}.nav-brand{background:none;border:none;color:#111827;color:var(--nav-text-hover);font-family:inherit;font-size:1rem;font-weight:700;letter-spacing:.02em;padding:0;white-space:nowrap}.dark-toggle{background:#0000;border:1px solid #374151cc;border:1px solid var(--nav-text);border-radius:999px;color:#374151cc;color:var(--nav-text);font-size:.8rem;padding:.25rem .75rem;transition:background .2s,color .3s,border-color .3s;white-space:nowrap}.dark-toggle:hover{border-color:#111827;border-color:var(--nav-text-hover);color:#111827;color:var(--nav-text-hover)}main{margin:0 auto;max-width:1200px;padding:5.5rem clamp(1rem,5vw,6rem) 4rem;width:100%}main h1{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:1rem}main p{font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.6}.fade-in{opacity:0;transform:translateY(24px);transition:opacity .55s ease-out,transform .55s ease-out}.fade-in.visible{opacity:1;transform:translateY(0)}.certifications h2:after,.contact h2:after,.portfolio h2:after,.skills h2:after{background:#818cf8;border-radius:2px;content:"";display:block;height:3px;margin:.5rem auto 0;width:3rem}@media (prefers-reduced-motion:reduce){.fade-in{opacity:1;transform:none;transition:none}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (max-width:900px){main{padding:5rem clamp(1rem,4vw,3rem) 3rem}}@media (max-width:600px){header{height:auto;min-height:3rem;padding:.6rem 1rem}.nav-brand-item{display:none}nav ul{font-size:14px;gap:.2rem .6rem;justify-content:center;width:100%}.dark-toggle{display:none}main{padding:4.5rem 1rem 2rem}}.about{padding:2rem 1rem 3rem}.about h1{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:.25rem}.about-title{color:#6b7280;font-size:clamp(.9rem,1.5vw,1.1rem);font-weight:500;letter-spacing:.06em;margin-bottom:1rem;text-transform:uppercase}.about p{font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.6;margin:0 auto;max-width:700px;padding:0 .5rem}.about img{border:3px solid #818cf8;border-radius:50%;box-shadow:0 0 0 6px #818cf826;display:block;height:clamp(8rem,25vw,16rem);margin:0 auto 1.5rem;object-fit:cover;width:clamp(8rem,25vw,16rem)}.portfolio{background-color:var(--primary-color);padding:2rem 1rem 3rem;transition:background-color .3s}.portfolio h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:3rem}.project-grid{grid-gap:2rem;align-items:stretch;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));justify-items:center}.project{background-color:#eef2ff;border-radius:.5rem;box-shadow:0 2px 12px #00000014;cursor:pointer;display:flex;flex-direction:column;height:100%;max-width:420px;padding:1.25rem;transition:background-color .3s,color .3s,transform .2s ease-in-out,box-shadow .2s ease-in-out;width:100%}.project:hover{box-shadow:0 6px 20px #0000001f;transform:translateY(-4px)}.project h3{font-size:clamp(1rem,2vw,1.15rem);margin:0 0 .5rem;transition:color .3s}.project p{flex-grow:1;font-size:clamp(.875rem,1.2vw,1rem);line-height:1.5;margin:0 0 1rem;transition:color .3s}.card-hint{color:#4f46e5;display:block;font-size:.85rem;font-weight:600;letter-spacing:.02em;margin-top:.75rem;transition:opacity .2s,color .3s}.project:hover .card-hint{opacity:.7}.project-img-wrap{aspect-ratio:4/3;border-radius:.375rem;overflow:hidden;position:relative;width:100%}.project-img-wrap .skeleton{animation:shimmer 1.4s infinite;background:linear-gradient(90deg,#dde3f0 25%,#eef2ff 50%,#dde3f0 75%);background-size:200% 100%;border-radius:.375rem;inset:0;position:absolute}.App.dark .project-img-wrap .skeleton{background:linear-gradient(90deg,#2a2a3a 25%,#1e1e2e 50%,#2a2a3a 75%);background-size:200% 100%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.project img{border-radius:.375rem;display:block;height:100%;object-fit:cover;transition:opacity .3s;width:100%}@media (max-width:480px){.project-grid{grid-template-columns:1fr}.project{max-width:100%}}.modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background-color:#0009;display:flex;inset:0;justify-content:center;padding:1.5rem;position:fixed;z-index:2000}.modal-card{animation:modal-in .2s ease-out;background-color:#eef2ff;border-radius:.75rem;box-shadow:0 24px 64px #00000059;max-height:90vh;max-width:680px;overflow-y:auto;position:relative;width:100%}@keyframes modal-in{0%{opacity:0;transform:scale(.95) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-card>img{border-radius:.75rem .75rem 0 0;display:block;max-height:280px;object-fit:cover;width:100%}.modal-close{align-items:center;background:#00000073;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.9rem;height:2rem;justify-content:center;position:absolute;right:.75rem;top:.75rem;transition:background .2s;width:2rem}.modal-close:hover{background:#000000b3}.modal-body{padding:1.5rem;text-align:left}.modal-body h3{font-size:1.5rem;margin:0 0 .75rem}.modal-desc{color:#374151;font-size:1rem;line-height:1.75;margin:0 0 1.5rem}.modal-label{color:#4f46e5;font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.modal-tools{margin-bottom:1.25rem}.modal-tools ul{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:.5rem 0 0;padding:0}.modal-tools ul li{background-color:#c7d2fe;border-radius:999px;color:#312e81;font-size:.85rem;font-weight:500;padding:.25rem .75rem}.modal-value p{color:#374151;font-size:1rem;line-height:1.75;margin:.5rem 0 0}.contact{background-color:var(--primary-color);padding:2rem 1rem 4rem;transition:background-color .3s}.contact h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:.5rem}.social-media{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:2rem}.social-media a{align-items:center;border-radius:.5rem;color:var(--text-color);display:flex;flex-direction:column;gap:.4rem;padding:.75rem 1rem;text-decoration:none;transition:transform .2s ease-in-out,opacity .2s ease-in-out}.social-media a img{height:clamp(2.5rem,5vw,3.5rem);width:clamp(2.5rem,5vw,3.5rem)}.social-label{color:var(--text-secondary);font-size:.75rem;font-weight:500;transition:color .2s}.social-media a:hover .social-label{color:var(--text-color)}.social-media a:hover{opacity:.75;transform:translateY(-3px)}.social-media a img{height:100%;transition:filter .3s;width:100%}.skills{padding:2rem 1rem 3rem}.skills h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:2rem}.skills-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));text-align:left}.skill-group{background-color:#eef2ff;border-radius:.5rem;box-shadow:0 2px 8px #0000000f;padding:1.25rem;transition:background-color .3s,color .3s}.skill-group h3{color:#4f46e5;font-size:.75rem;font-weight:700;letter-spacing:.07em;margin:0 0 .75rem;text-transform:uppercase}.skill-group ul{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}.skill-group ul li{background-color:#c7d2fe;border-radius:999px;color:#312e81;font-size:.85rem;font-weight:500;padding:.25rem .65rem;transition:background-color .3s,color .3s}.certifications{padding:2rem 1rem 3rem}.certifications h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:2rem}.cert-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.cert-card{background-color:#fff;border-radius:.5rem;border-top:4px solid #ccc;box-shadow:0 2px 8px #00000012;padding:1.25rem 1.25rem 1.5rem;text-align:left;transition:background-color .3s,color .3s,transform .2s ease-in-out,box-shadow .2s ease-in-out}.cert-card:hover{box-shadow:0 6px 20px #0000001f;transform:translateY(-4px)}.cert-issuer{font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.cert-card h3{color:#111827;font-size:1rem;margin:.4rem 0 .3rem;transition:color .3s}.cert-code{color:#6b7280;font-size:.8rem;font-weight:500}.cert-date{color:#9ca3af;display:block;font-size:.75rem;margin-top:.4rem}.footer{background-color:var(--secondary-color);box-shadow:0 500px 0 500px var(--secondary-color);color:var(--nav-text);font-size:.875rem;padding:1.25rem 1rem;text-align:center;transition:background-color .3s,color .3s}
/*# sourceMappingURL=main.9865c65a.css.map*/