body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.navbar{align-items:center;background-color:#000;color:#fff;display:flex;height:10%;justify-content:space-between;position:fixed;width:100%;z-index:10}.navbar ul{justify-content:center}.navbar li{padding:10px;transition:background-color .3s ease}.navbar li.active a{background-color:green;border-radius:10px;color:#000;display:block;font-size:30px;padding:10px;transition:color .3s ease,background-color .3s ease}.navbar li a{color:green;display:block;font-size:25px;text-decoration:none;transition:color .3s ease}.navbar-icons{display:flex;justify-content:flex-end;margin-left:20px}.navbar-icons a{margin-left:15px;margin-right:15px}.navbar-icons img{height:auto;width:35px}.navbar-brand{display:flex;justify-content:flex-start;margin-right:20px}.navbar-brand a{display:inline-block;text-decoration:none}.navbar-brand img{height:65px;width:auto}.navbar-brand,.navbar-icons{flex:1 1}.navbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08080ca6;border-bottom:1px solid var(--surface-border);position:-webkit-sticky;position:sticky;top:0;z-index:20}.navbar .inner{align-items:center;display:flex;gap:12px;justify-content:space-between;margin:0 auto;max-width:1200px;padding:10px 16px}.navbar .brand{color:#fff;font-weight:800;letter-spacing:.3px}.navbar ul{display:flex;gap:12px;list-style:none;margin:0;padding:0}.navbar a{border-radius:8px;color:var(--fg-200);display:inline-block;padding:8px 10px;text-decoration:none}.navbar a:hover{background:var(--surface-2);color:#fff}.navbar a.active{background:linear-gradient(90deg,#8b5cf629,#ff225729);box-shadow:0 0 0 1px #8b5cf640;color:#fff}.home-container{align-items:center;display:flex;height:100vh;justify-content:center;position:relative}.background-video{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%;z-index:-1}.content-container{align-items:center;display:flex;justify-content:space-between;position:relative;width:80%;z-index:1}.image-container,.text-container{animation-delay:.5s;animation-duration:3s;animation-fill-mode:forwards;animation-timing-function:ease;opacity:0;transform:translateX(0)}.text-container{animation-name:fadeInAndSlideLeft;color:#fff;order:1;text-align:left}.text-container h1,.text-container p{margin:0;padding:0}.text-container h1{font-size:1em;font-weight:400}.text-container h1 .name{display:block;font-size:2.5em;font-weight:700}.text-container p{font-size:1em}.image-container{animation-name:scaleAndSlideRight;order:2}@keyframes fadeInAndSlideLeft{0%{opacity:0;transform:translateX(-50%)}to{opacity:1;transform:translateX(0)}}@keyframes scaleAndSlideRight{0%,50%{opacity:0;transform:scale(1)}to{opacity:1;transform:translateX(25%) scale(.5)}}.about-page{margin:auto;max-width:1200px;padding:50px 20px}.section{align-items:center;display:flex;margin-bottom:50px}.text-block{flex-basis:50%;padding-left:50px;padding-right:50px;text-align:left}.image-block{flex-basis:50%;text-align:center}.image-block img{height:auto;max-width:100%}@media (max-width:768px){.section{flex-direction:column}.image-block,.text-block{flex-basis:100%}}.section-header{background:linear-gradient(90deg,#e9e7ff,#ff7a9a);-webkit-background-clip:text;background-clip:text;color:#0000;font-size:clamp(28px,4vw,36px);font-weight:800;letter-spacing:.3px;margin:60px 0 8px}.section-subtext{color:var(--fg-200);margin:0 auto 18px}.project-card{box-sizing:border-box;height:360px;overflow:hidden}.project-image{border-radius:10px;flex:0 0 200px;overflow:hidden}.project-image img{display:block}.project-card h3{font-size:1.05rem;margin:10px 8px 0}.logos-container{align-items:center}.logo{display:block}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000a6;display:flex;inset:0;justify-content:center;position:fixed;z-index:50}.modal-content{background:var(--surface);border:1px solid var(--surface-border);border-radius:16px;box-shadow:var(--shadow-2);color:var(--fg-100);max-height:90vh;overflow:auto;width:min(980px,94vw)}.modal-header{align-items:center;border-bottom:1px solid var(--surface-border);display:flex;justify-content:space-between;padding:16px 18px}.modal-title{font-size:1.25rem;font-weight:800;margin:0}.close-modal{background:var(--surface-2);border:1px solid var(--surface-border);border-radius:10px;color:var(--fg-100);cursor:pointer;padding:8px 12px}.modal-actions{align-items:center;display:flex;gap:10px}.status-chip{background:var(--tag-bg);border:1px solid #ffffff0f;border-radius:999px;color:var(--tag-fg);font-size:.82rem;line-height:1;padding:6px 10px}.status-chip.check{background:var(--success);color:#fff}.status-chip.wip{background:#5a1e1e;color:#ffd3d3}.modal-actions .logo{display:block;height:24px;width:24px}.modal-body{padding:18px;position:relative}.project-image{background:#0f0f15;border-radius:12px;max-height:420px;object-fit:contain;width:100%}.arrow{background:#6b21a8d9;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1.6rem;padding:8px 14px;position:absolute;top:50%;transform:translateY(-50%);transition:background .2s}.arrow:hover{background:#9333eaf2}.left-arrow{left:12px}.right-arrow{right:12px}.tags-container{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}.tag-item{background:var(--tag-bg);border:1px solid #ffffff0f;border-radius:999px;color:var(--tag-fg);font-size:.8rem;padding:5px 10px}.project-description{color:var(--fg-200);line-height:1.65}.projects-container{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px 0 26px}.project-card{background:#12121a;background:var(--surface);border:1px solid #232339;border:1px solid var(--surface-border);border-radius:14px;box-shadow:0 2px 10px #00000059;color:#eaeaf0;color:var(--fg-100);cursor:pointer;display:flex;flex-direction:column;height:330px;padding:14px;position:relative;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;width:100%}.project-card:hover{background:#1a1a25;background:var(--surface-hover);box-shadow:0 0 0 1px #8b5cf640,0 12px 28px #00000059;transform:translateY(-4px)}.project-image{flex:0 0 240px}.project-image img{background:#0f0f15;border-radius:10px;height:100%;object-fit:cover;width:100%}.project-card h3{color:#fff;font-size:1.03rem;font-weight:700;margin:8px 6px 0;text-align:center}.project-info{background:#101018eb;border:1px solid #232339;border:1px solid var(--surface-border);border-radius:12px;bottom:14px;box-shadow:0 8px 24px #00000059;left:14px;opacity:0;padding:10px 12px;pointer-events:none;position:absolute;right:14px;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease}.project-card.hovered .project-info{opacity:1;pointer-events:auto;transform:translateY(0)}.project-title-logos{text-align:center}.logos-container{display:flex;gap:10px;justify-content:center;margin-bottom:6px}.logo{height:26px;width:26px}.project-info p{color:#cfcfe9;font-size:.92em;margin:0 4px 8px;text-align:center}.project-info ul{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;list-style:none;margin:0;padding:0}.project-info ul li{background:#1f1f2b;background:var(--tag-bg);border:1px solid #ffffff0f;border-radius:6px;color:#d7d7ef;color:var(--tag-fg);font-size:.8em;padding:4px 8px;white-space:nowrap}.project-status-icon{align-items:center;display:flex;position:absolute;right:10px;top:10px;z-index:2}.project-status-icon img{display:block;height:22px;width:22px}.project-status-text{background:#000000d9;border-radius:6px;color:#fff;display:none;font-size:.78em;margin-left:8px;padding:5px 8px;white-space:nowrap}.project-status-text.wip{background:#7a2e2e}.project-status-text.check{background:#16a34a}.project-card.hovered .project-status-text{display:block}@media (max-width:1100px){.projects-container{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.projects-container{grid-template-columns:1fr}}.skills.one-section{padding:3rem 1rem}.section-header{font-size:2rem;margin-bottom:.5rem}.section-intro{color:#ffffffb3;color:var(--text-dim);margin-bottom:2rem}.skill-groups{grid-gap:1.25rem;align-items:start;display:grid;gap:1.25rem;grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:1024px){.skill-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.skill-groups{grid-template-columns:1fr}}.skill-group{align-items:start}.skill-group__body{height:0;transition:height .22s ease,opacity .22s ease}.skill-group.expanded .skill-group__body{height:auto}.skills-row{gap:12px}.framework-logo,.logo-image{filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))}.skills-list{display:contents}.skill-group .framework-name,.skill-group .logo-name{font-size:.9rem}@media (max-width:640px){.languages-used{display:none!important}}.skills.one-section .skill-group__body{display:block!important;max-height:0;opacity:0;overflow:hidden;transition:max-height .36s ease,opacity .26s ease}.skills.one-section .skill-group.expanded .skill-group__body{max-height:1200px;opacity:1;padding-top:.5rem}@media (prefers-reduced-motion:reduce){.skills.one-section .skill-group__body{transition:none}}.logo-container{align-items:center;display:flex;justify-content:center;margin:10px;text-align:center}.logo-image{height:auto;margin-right:10px;width:80px}.logo-name{font-size:.9rem}.framework-logo-container{box-sizing:border-box;flex-basis:calc(33.333% - 40px);flex-grow:0;flex-shrink:1;margin-bottom:20px;position:relative;text-align:center}.framework-logo{height:100px;max-width:100px;transition:transform .3s ease;width:100%}.framework-logo-container:hover .framework-logo{transform:scale(1.1)}.framework-name{font-size:1rem;margin-top:.5rem}:root{--card-bg:#ffffff0a;--card-border:#ffffff1f;--text-dim:#ffffffb3;--radius-2xl:1.25rem}.skill-group{align-self:start;background:#ffffff0a;background:var(--card-bg);border:1px solid #ffffff1f;border:1px solid var(--card-border);border-radius:1.25rem;border-radius:var(--radius-2xl);cursor:pointer;padding:1rem 1rem .5rem;position:relative;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.skill-group:hover{border-color:#ffffff38;box-shadow:0 10px 30px #00000040;transform:translateY(-2px)}.skill-group__head h3{font-size:1.25rem;margin:0}.skill-group__sub{color:#ffffffb3;color:var(--text-dim);font-size:.95rem;margin:.25rem 0 .75rem}.skill-group__body{display:block;max-height:0;opacity:0;overflow:hidden;transition:max-height .36s ease,opacity .26s ease}.skill-group.expanded .skill-group__body{max-height:1200px;opacity:1;padding-top:.5rem}.stack-block{margin-bottom:.75rem}.stack-block h4{font-size:.95rem;letter-spacing:.02em;margin:0 0 .4rem;text-transform:uppercase}.skills-row{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.skill-group__hint{color:#ffffffb3;color:var(--text-dim);font-size:.8rem;padding:.5rem .25rem;text-align:right;-webkit-user-select:none;user-select:none}.skill-group .framework-logo{height:80px;max-width:80px}.skill-group .framework-name{font-size:.9rem}.skill-group .logo-image{height:auto;width:46px}.skill-group .logo-name{font-size:.9rem}.framework-logo-container,.logo-container{flex:0 1 auto;text-align:center}.skill-group__head{align-items:center;display:flex;justify-content:space-between}.skill-group__icon{height:32px;object-fit:contain;width:32px}@media (prefers-reduced-motion:reduce){.skill-group__body{transition:none}}.toolbox{margin-top:2rem}.toolbox__title{font-size:1.4rem;margin:0 0 1rem}.tool-row{margin-bottom:1rem}.tool-row__label{font-size:.95rem;letter-spacing:.02em;margin:0 0 .5rem;opacity:.8;text-transform:uppercase}.tool-row__grid{grid-gap:.6rem;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.tool-pill{align-items:center;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:999px;display:flex;gap:.5rem;padding:.5rem .7rem}.tool-pill__icon{height:20px;object-fit:contain;width:20px}.tool-pill__name{font-size:.95rem}.contact{padding:4em 2em;text-align:center}.contact h2{font-size:2rem;margin-bottom:1em}.contact p{font-size:1rem;margin-bottom:2em}.contact-icons{display:flex;gap:20px;justify-content:center}.contact-icons a img{transition:transform .3s ease;width:50px}.contact-icons a img:hover{cursor:pointer;transform:scale(1.1)}.email{padding:4em 2em;text-align:center}.email h2{margin-bottom:.5em}.email-form{margin:auto;max-width:500px}.email-form input,.email-form textarea{border:1px solid #ccc;border-radius:4px;margin-bottom:1em;padding:1em;width:100%}.email-form button{background-color:#333;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem}.email-form textarea{border:1px solid #ccc;border-radius:8px;box-sizing:border-box;font-size:1rem;max-height:400px;min-height:150px;overflow-y:hidden;padding:10px;width:100%}.tl{margin:0 auto;max-width:1100px;position:relative}.tl-rail{background:linear-gradient(180deg,#1e3a8a,#6d28d9);border-radius:3px;bottom:0;left:50%;position:absolute;top:0;width:6px;z-index:0}.tl-item{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 120px 1fr;margin:26px 0}.tl-item.tl-left{grid-template-areas:"card marker spacer"}.tl-item.tl-right{grid-template-areas:"spacer marker card"}.tl-left .tl-card{grid-area:card}.tl-left .tl-marker{grid-area:marker}.tl-left .tl-spacer{grid-area:spacer}.tl-right .tl-card{grid-area:card}.tl-right .tl-marker{grid-area:marker}.tl-right .tl-spacer{grid-area:spacer}.tl-marker{align-items:center;display:flex;justify-content:center;position:relative;z-index:1}.tl-marker img{background:#fff;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 4px #1e3a8a,0 6px 18px #6d28d959;height:64px;object-fit:contain;width:64px}.tl-dot{background:#be185d;box-shadow:0 0 10px #be185d99,0 0 0 4px #fff}.tl-card{background:var(--surface);border:1px solid var(--surface-border);border-radius:14px;box-shadow:var(--shadow-1);color:var(--fg-100);opacity:0;padding:16px;position:relative;transform:translateY(20px);transition:transform .5s cubic-bezier(.2,.65,.3,1),box-shadow .5s cubic-bezier(.2,.65,.3,1),opacity .5s;z-index:1}.tl-card.visible{opacity:1;transform:translateY(0)}.tl-card:hover{box-shadow:0 0 0 1px #8b5cf640,0 12px 28px #00000059;transform:translateY(-3px)}.tl-head{margin-bottom:10px}.tl-topline{align-items:center;display:flex;gap:8px;justify-content:space-between}.tl-role{font-size:1.1rem;font-weight:800;margin:0}.tl-pill{background:var(--success);border-radius:999px;color:#fff;font-size:12px;padding:4px 10px}.tl-subline{align-items:center;color:var(--fg-200);display:flex;flex-wrap:wrap;gap:6px}.tl-company{color:#fff;font-weight:700}.tl-sep{opacity:.5}.tl-location,.tl-period{color:var(--fg-200)}.tl-banner{background:#0f0f15;border-radius:10px;margin:8px 0 6px;overflow:hidden;position:relative;z-index:1}.tl-banner img{height:220px;object-fit:cover;width:100%}.tl-icons{background:var(--surface-2);border:1px solid var(--surface-border);border-radius:10px;display:flex;flex-wrap:wrap;gap:10px 14px;justify-content:center;margin:8px 0 6px;padding:10px 12px}.tl-icon{filter:drop-shadow(0 1px 2px rgba(0,0,0,.08));height:56px;object-fit:contain;width:56px}@media (max-width:900px){.tl-icon{height:48px;width:48px}}.tl-bullets{margin:8px 14px 12px 18px}.tl-bullets li{color:var(--fg-100);line-height:1.5;margin:6px 0}.tl-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:10px 0}.tl-tag{background:var(--tag-bg);border:1px solid #ffffff0f;border-radius:8px;color:var(--tag-fg);font-size:.8rem;padding:5px 10px;white-space:nowrap}.tl-links{display:flex;gap:10px;justify-content:center;margin-top:6px}.tl-links img{height:22px;width:22px}.tl-year{align-items:center;display:flex;justify-content:center;margin:26px 0 8px;pointer-events:none;position:relative;z-index:1}.tl-year span{background:var(--surface);border:1px solid var(--surface-border);border-radius:999px;box-shadow:var(--shadow-1);color:#fff;font-size:.95rem;font-weight:800;letter-spacing:.02em;padding:6px 12px}@media (max-width:900px){.tl-rail{left:24px;transform:none}.tl-item{grid-template-areas:"marker card";grid-template-columns:48px 1fr;margin:18px 0}.tl-spacer{display:none}.tl-marker{justify-content:center}}.experience-container{padding:10px 8px 40px}:root{--bg-900:#0b0b10;--bg-800:#101018;--fg-100:#eaeaf0;--fg-200:#bdbdd2;--purple:#6e00ff;--indigo:#6366f1;--red:#ff2257;--surface:#12121a;--surface-2:#151522;--surface-hover:#1a1a25;--surface-border:#232339;--accent:#8b5cf6;--success:#16a34a;--warning:#f59e0b;--tag-bg:#1f1f2b;--tag-fg:#d7d7ef;--shadow-1:0 2px 10px #00000059;--shadow-2:0 10px 30px #00000073}*{box-sizing:border-box}#root,body,html{height:100%}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0b0b10;background:var(--bg-900);color:#eaeaf0;color:var(--fg-100);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji;margin:0}a{color:#d6d6ff;text-decoration:none}a:hover{text-decoration:underline}.App{min-height:100%;position:relative}.content{margin:0 auto;max-width:1200px;padding:24px 16px 80px}.visible{opacity:1;transform:none}.section-enter{opacity:0;transform:translateY(16px);transition:all .5s ease}.certificate-card{background:var(--surface);border:1px solid var(--surface-border);border-radius:14px;box-shadow:var(--shadow-1);color:var(--fg-100);cursor:pointer;display:flex;flex-direction:column;gap:10px;padding:12px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;width:280px}.certificate-card:hover{background:var(--surface-hover);box-shadow:0 0 0 1px #8b5cf640,0 12px 28px #00000059;transform:translateY(-4px)}.certificate-thumb{align-items:center;aspect-ratio:16/10;background:#0f0f15;border-radius:10px;display:flex;justify-content:center;overflow:hidden;position:relative}.certificate-img{height:100%;object-fit:contain;width:100%}.status-badge{height:28px;position:absolute;right:8px;top:8px;width:28px}.certificate-title{font-size:1rem;font-weight:700}.cert-meta{margin:6px 0 14px}.cert-meta-row{color:#444}.cert-meta-cred{color:#666}.cert-meta{margin:8px 0 14px;text-align:center}.cert-meta-row{color:var(--fg-200);display:flex;flex-wrap:wrap;font-size:.95rem;gap:8px;justify-content:center}.cert-meta-cred{color:#9ca3af;font-size:.85rem;font-style:italic;margin-top:4px}.cert-meta-sep{opacity:.5}.section-subtext{color:#666;margin:0 auto 1rem;max-width:900px;text-align:center}.certificates-container{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;padding:12px 0 26px}#app-gradient{animation:hueShift 18s linear infinite;background:radial-gradient(60% 70% at 20% 30%,#1b1230 0,#0f0b1b 35%,#0b0916 100%);filter:saturate(110%);inset:0;position:fixed;z-index:-2}@keyframes hueShift{0%{filter:hue-rotate(0deg) saturate(110%)}50%{filter:hue-rotate(12deg) saturate(115%)}to{filter:hue-rotate(0deg) saturate(110%)}}