@font-face{font-family:RobotoMono;font-style:normal;font-weight:100;src:url(/static/media/RobotoMono-Thin.b54395e68207fbc88b36.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:italic;font-weight:100;src:url(/static/media/RobotoMono-ThinItalic.909e042f2bebd7d009e9.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:normal;font-weight:200;src:url(/static/media/RobotoMono-ExtraLight.4620604e700a4d69b5af.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:italic;font-weight:200;src:url(/static/media/RobotoMono-ExtraLightItalic.b39873212192ff37b920.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:normal;font-weight:300;src:url(/static/media/RobotoMono-Light.234f40fa88a810bad5e4.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:italic;font-weight:300;src:url(/static/media/RobotoMono-LightItalic.967bee7c12d18800b9b3.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:normal;font-weight:400;src:url(/static/media/RobotoMono-Regular.94ffabb10cbc81ee42ba.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:italic;font-weight:400;src:url(/static/media/RobotoMono-Italic.3cf8ca3e53a0ed6c6917.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:normal;font-weight:500;src:url(/static/media/RobotoMono-Medium.275e41b58d96111c1152.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:italic;font-weight:500;src:url(/static/media/RobotoMono-MediumItalic.cdbe51a19ce2897078b0.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:normal;font-weight:600;src:url(/static/media/RobotoMono-SemiBold.caa2274ab099019bc599.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:italic;font-weight:600;src:url(/static/media/RobotoMono-SemiBoldItalic.37663932da268e6b006c.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:normal;font-weight:700;src:url(/static/media/RobotoMono-Bold.7211ab61a8b83177865a.ttf) format("truetype")}@font-face{font-family:RobotoMono;font-style:italic;font-weight:700;src:url(/static/media/RobotoMono-BoldItalic.93aa05f8e36217573b30.ttf) format("truetype")}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#09090b;font-family:RobotoMono,monospace;margin:0;overflow-x:hidden;padding:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.header-container{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#09090bd9;border:1px solid #ffffff14;border-radius:14px;box-shadow:0 4px 24px #0009;color:#fff;display:flex;font-family:RobotoMono,sans-serif;justify-content:space-between;left:18px;margin:0 auto;max-width:calc(100% - 36px);padding:16px 36px;position:fixed;right:18px;top:18px;z-index:1000}@media(max-width:768px){.header-container{border-radius:12px;left:10px;max-width:calc(100% - 20px);padding:14px 20px;right:10px;top:10px}}.logo{color:#f8fafc;font-size:clamp(.95em,2vw,1.25em);font-weight:700;letter-spacing:1.5px;position:relative;text-decoration:none;transition:color .2s ease;z-index:1}.logo:hover{color:#a5b4fc}.nav{align-items:center;display:flex}@media(max-width:768px){.nav{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#09090bfa;flex-direction:column;height:100%;justify-content:center;position:fixed;right:-100%;top:0;transition:right .3s ease-in-out;width:100%;z-index:999}}.nav.open{right:0}.nav-link{align-items:center;color:#f8fafc8c;display:flex;font-family:RobotoMono,sans-serif;font-size:clamp(.85em,1.3vw,.95em);font-weight:500;letter-spacing:.04em;margin-left:32px;position:relative;text-decoration:none;transition:color .2s ease;z-index:1}.nav-link:hover{color:#f8fafc}.nav-link--active{color:#a5b4fc!important}.nav-link--active svg{opacity:1!important}.nav-link svg{margin-right:7px;opacity:.6;transition:opacity .2s ease}.nav-link:hover svg{opacity:1}@media(max-width:768px){.nav-link{color:#f8fafcb3;font-size:clamp(1.2em,4vw,1.5em);margin-bottom:28px;margin-left:0}}.hamburger{cursor:pointer;display:none}@media(max-width:768px){.hamburger{color:#f8fafcb3;display:block;position:absolute;right:20px;top:12px;z-index:1001}}.button{align-items:center;background:#6366f114;border:1px solid #a5b4fc59;border-radius:8px;color:#a5b4fc;display:flex;font-family:RobotoMono,sans-serif;font-size:clamp(.85em,1.3vw,.95em);font-weight:500;letter-spacing:.04em;margin-left:32px;padding:8px 16px;position:relative;text-decoration:none;transition:all .2s ease;z-index:1}.button:hover{background:#6366f12e;border-color:#a5b4fc99;box-shadow:0 2px 12px #6366f133;color:#c7d2fe}.button svg{margin-right:7px;transition:transform .2s ease}.button:hover svg{transform:scale(1.1) rotate(5deg)}@media(max-width:768px){.button{font-size:clamp(1.2em,4vw,1.5em);margin-bottom:24px;margin-left:0;padding:12px 24px}}.close-icon{display:block;z-index:1002}.resume-container{align-items:center;color:#fff;display:flex;flex-direction:column;font-family:RobotoMono,sans-serif;margin:0 auto;max-width:1400px;padding:40px 0;width:95%}.resume-container .resume-title{color:#c7d2fe;font-size:clamp(2em,5vw,2.8em);font-weight:700;letter-spacing:-.02em;margin:0 0 30px;padding:0;text-align:left;width:100%}.resume-container .content-wrapper{display:flex;flex-direction:column;gap:20px;width:100%}@media(min-width:1025px){.resume-container .content-wrapper{flex-direction:row;gap:60px;justify-content:center}}.left-column{flex:1.3 1;margin-bottom:20px}@media(min-width:1025px){.left-column{margin-right:0}}@media(max-width:1024px){.left-column{margin-right:0;width:100%}}.right-column{align-items:center;display:flex;flex:1 1;justify-content:center;width:100%}.right-column iframe{border:1px solid #ffffff12;border-radius:8px;box-shadow:0 4px 24px #00000080;height:115vh;width:100%}@media(max-width:1200px){.right-column iframe{height:60vh}}.section-container,.section-title{position:relative}.section-title{color:#c7d2fe;font-size:clamp(1.8em,4vw,2.5em);font-weight:700;letter-spacing:-.01em;margin-bottom:24px}.line-container{position:relative}.line-container:before{background:linear-gradient(180deg,#6366f1,#6366f11a);bottom:0;content:"";position:absolute;top:0;width:1px}.job-container{margin-bottom:20px;padding-left:40px;position:relative}.job-container:before{background:#6366f1;content:"";height:1px;left:0;position:absolute;top:1em;width:18px}.job-title{color:#f8fafc;font-size:1.4em;font-weight:600;margin:10px 0;position:relative}.company{color:#a5b4fc;font-weight:600}.job-dates{color:#f8fafc66;font-size:.9em;letter-spacing:.02em;margin:4px 0 10px}.bullet-point{color:#f8fafca6;font-size:.95em;line-height:1.65;list-style-type:none;margin-bottom:4px;padding-left:20px;position:relative}.bullet-point:before{color:#6366f1;content:"›";font-size:1.1em;font-weight:700;left:0;line-height:1.5;position:absolute}.projects-container{align-items:center;color:#fff;display:flex;flex-direction:column;font-family:RobotoMono,sans-serif;margin:0 auto;overflow-x:hidden;padding:0 10px;width:80%}.projects-container .section-title{box-sizing:border-box;color:#c7d2fe;font-size:clamp(2em,5vw,3em);font-weight:700;letter-spacing:-.02em;margin-bottom:30px;text-align:left;width:100%}.projects-container .projects-controls{display:flex;flex-direction:column;gap:20px;margin-bottom:30px;width:100%}.projects-container .projects-controls .search-section{display:flex;flex-direction:column;gap:15px}@media(min-width:768px){.projects-container .projects-controls .search-section{align-items:center;flex-direction:row;justify-content:space-between}}.projects-container .projects-controls .search-section .search-bar{align-items:center;background:#ffffff0a;border:1px solid #ffffff17;border-radius:8px;display:flex;flex:1 1;padding:12px 16px;transition:border-color .2s ease}.projects-container .projects-controls .search-section .search-bar:focus-within{border-color:#6366f180}.projects-container .projects-controls .search-section .search-bar input{background:none;border:none;color:#f8fafc;flex:1 1;font-family:RobotoMono,sans-serif;font-size:1em;outline:none}.projects-container .projects-controls .search-section .search-bar input::placeholder{color:#f8fafc4d}.projects-container .projects-controls .search-section .search-bar .search-icon{color:#f8fafc4d;font-size:1.1em;margin-right:12px;transition:color .2s ease}.projects-container .projects-controls .search-section .search-bar:focus-within .search-icon{color:#a5b4fc}.projects-container .projects-controls .search-section .show-all-button{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;color:#f8fafca6;cursor:pointer;font-family:RobotoMono,sans-serif;font-size:clamp(.9em,1.5vw,1em);font-weight:500;padding:11px 20px;transition:all .2s ease;white-space:nowrap}.projects-container .projects-controls .search-section .show-all-button:hover{border-color:#fff3;color:#f8fafc}.projects-container .projects-controls .search-section .show-all-button.active{background:#6366f126;border-color:#6366f180;color:#c7d2fe}.projects-container .projects-controls .filter-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}@media(min-width:768px){.projects-container .projects-controls .filter-tags{justify-content:flex-start}}.projects-container .projects-controls .filter-tags .tag-filter{background:#ffffff0a;border:1px solid #ffffff17;border-radius:20px;color:#f8fafc8c;cursor:pointer;font-family:RobotoMono,sans-serif;font-size:clamp(.8em,1.1vw,.9em);font-weight:500;padding:7px 14px;transition:all .2s ease}.projects-container .projects-controls .filter-tags .tag-filter:hover{border-color:#fff3;color:#f8fafc}.projects-container .projects-controls .filter-tags .tag-filter.active{background:#6366f126;border-color:#6366f180;color:#c7d2fe}.projects-container .projects-display{width:100%}.projects-container .projects-display .no-results{color:#f8fafc66;font-size:1.1em;margin:40px 0;text-align:center}.projects-container .projects-display .big-projects-container{align-items:center;display:flex;flex-direction:column;margin-bottom:40px;width:100%}.projects-container .projects-display .small-projects-container{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;width:100%}@media(max-width:768px){.projects-container .projects-display .small-projects-container{justify-content:center}}.project-container{background:#111116;border:1px solid #ffffff14;border-radius:12px;box-shadow:0 4px 20px #00000080;cursor:pointer;margin-bottom:40px;min-height:250px;overflow:hidden;position:relative;transition:all .25s ease;width:100%}.project-container:hover{border-color:#a5b4fc40;box-shadow:0 8px 32px #0009,0 0 0 1px #6366f133;transform:translateY(-4px)}.project-container .project-cta-icon{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0c19b3;border:1px solid #a5b4fc66;border-radius:999px;box-shadow:0 0 0 1px #6366f11f;color:#dbe4ff;display:flex;height:30px;justify-content:center;pointer-events:none;position:absolute;right:12px;top:12px;transition:all .2s ease;width:30px;z-index:3}.project-container:focus-within .project-cta-icon,.project-container:hover .project-cta-icon{border-color:#c7d2feb3;box-shadow:0 0 0 1px #6366f133,0 0 14px #6366f14d;color:#f8fafc}.project-container .project-background-img,.project-container video{height:100%;left:0;object-fit:cover;opacity:.6;position:absolute;top:0;width:100%;z-index:1}.project-container .project-content{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(180deg,#111116e0,#111116b8);box-sizing:border-box;display:flex;flex-direction:column;height:100%;padding:24px;position:relative;z-index:2}.project-container .project-content .project-header{margin-bottom:12px;text-align:center}.project-container .project-content .project-header h3{color:#f8fafc;font-size:clamp(1.5em,3vw,2em);font-weight:700;letter-spacing:-.01em;margin-bottom:8px}.project-container .project-content .project-header .project-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:0}.project-container .project-content .project-header .project-tags .tag{background:#6366f11a;border:1px solid #6366f133;border-radius:4px;color:#a5b4fc;font-size:clamp(.7em,.9vw,.8em);font-weight:600;letter-spacing:.03em;padding:4px 10px;transition:background .2s ease}.project-container .project-content .project-header .project-tags .tag:hover{background:#6366f12e}.project-container .project-content .project-description{color:#f8fafc99;font-size:1.1em;line-height:1.6;margin-bottom:12px;text-align:center}.project-container .project-content .project-hover-teaser{color:#c7d2fed9;font-size:.85em;line-height:1.45;margin:0 0 10px;text-align:center}.project-container .project-content .project-technologies{margin-bottom:12px;text-align:center}.project-container .project-content .project-technologies .tech-uses{color:#f8fafc73;font-size:clamp(.8em,1.1vw,.9em);font-weight:600;margin-right:8px}.project-container .project-content .project-technologies .tech-items{display:inline-flex;flex-wrap:wrap;gap:6px}.project-container .project-content .project-technologies .tech-items .tech-item{background:#ffffff0d;border:1px solid #ffffff17;border-radius:4px;color:#f8fafcbf;font-size:clamp(.72em,.95vw,.82em);padding:3px 9px;transition:border-color .2s ease}.project-container .project-content .project-technologies .tech-items .tech-item:hover{border-color:#a5b4fc4d;color:#f8fafc}.project-container .project-content .project-links{display:flex;gap:20px;justify-content:center;margin-top:12px}.project-container .project-content .project-links a{align-items:center;color:#a5b4fc;display:flex;font-size:clamp(.95em,1.4vw,1.1em);font-weight:500;gap:7px;text-decoration:none;transition:color .2s ease}.project-container .project-content .project-links a:hover{color:#c7d2fe}.project-container .project-content .project-links a svg{transition:transform .2s ease}.project-container .project-content .project-links a:hover svg{transform:scale(1.1)}.project-container .project-content .project-peek-strip{background:linear-gradient(180deg,#0f1223c7,#080a16e6);border-top:1px solid #6366f142;color:#c7d2feeb;font-size:.76em;font-weight:700;letter-spacing:.04em;margin:auto -24px -24px;padding:9px 12px;text-align:center;text-transform:uppercase}@media(max-width:768px){.project-container{margin-bottom:20px;width:100%}.project-container .project-content{padding:20px}.project-container .project-content .project-header h3{font-size:1.5em}.project-container .project-content .project-description{font-size:1em}}.small-project{background:#111116;border:1px solid #ffffff14;border-radius:12px;box-shadow:0 4px 20px #00000080;cursor:pointer;margin-bottom:20px;min-height:300px;overflow:hidden;position:relative;transition:all .25s ease;width:45%}.small-project:hover{border-color:#a5b4fc40;box-shadow:0 8px 32px #0009,0 0 0 1px #6366f133;transform:translateY(-4px)}.small-project .project-cta-icon{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0c19b3;border:1px solid #a5b4fc66;border-radius:999px;box-shadow:0 0 0 1px #6366f11f;color:#dbe4ff;display:flex;height:28px;justify-content:center;pointer-events:none;position:absolute;right:10px;top:10px;transition:all .2s ease;width:28px;z-index:3}.small-project:focus-within .project-cta-icon,.small-project:hover .project-cta-icon{border-color:#c7d2feb3;box-shadow:0 0 0 1px #6366f133,0 0 14px #6366f14d;color:#f8fafc}.small-project .project-background-img,.small-project video{height:100%;left:0;object-fit:cover;opacity:.6;position:absolute;top:0;width:100%;z-index:1}.small-project .project-content{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(180deg,#111116e0,#111116b8);box-sizing:border-box;display:flex;flex-direction:column;height:100%;padding:24px;position:relative;text-align:center;z-index:2}.small-project .project-content .project-header{margin-bottom:4px;text-align:center}.small-project .project-content .project-header h3{color:#f8fafc;font-size:clamp(1.2em,2.5vw,1.5em);font-weight:700;letter-spacing:-.01em;margin-bottom:6px}.small-project .project-content .project-header .project-tags{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-bottom:4px}.small-project .project-content .project-header .project-tags .tag{background:#6366f11a;border:1px solid #6366f133;border-radius:4px;color:#a5b4fc;font-size:clamp(.68em,.9vw,.78em);font-weight:600;letter-spacing:.03em;padding:3px 9px;transition:background .2s ease}.small-project .project-content .project-header .project-tags .tag:hover{background:#6366f12e}.small-project .project-content .project-description{color:#f8fafc99;font-size:.92em;line-height:1.55;margin-bottom:4px;text-align:center}.small-project .project-content .project-hover-teaser{color:#c7d2fedb;font-size:.78em;line-height:1.4;margin:0 0 8px;text-align:center}.small-project .project-content .project-technologies{margin-bottom:4px;margin-top:6px;text-align:center}.small-project .project-content .project-technologies .tech-uses{color:#f8fafc66;display:inline;font-size:clamp(.72em,1vw,.82em);font-weight:600;margin-right:6px}.small-project .project-content .project-technologies .tech-items{display:inline-flex;flex-wrap:wrap;gap:4px;justify-content:center}.small-project .project-content .project-technologies .tech-items .tech-item{background:#ffffff0d;border:1px solid #ffffff17;border-radius:4px;color:#f8fafcb3;font-size:clamp(.68em,.9vw,.75em);padding:2px 7px;transition:border-color .2s ease}.small-project .project-content .project-technologies .tech-items .tech-item:hover{border-color:#a5b4fc4d;color:#f8fafc}.small-project .project-content .project-links{display:flex;gap:15px;justify-content:center;margin-top:auto;padding-top:12px}.small-project .project-content .project-links a{align-items:center;color:#a5b4fc;display:flex;font-size:clamp(.9em,1.2vw,1em);font-weight:500;gap:6px;text-decoration:none;transition:color .2s ease}.small-project .project-content .project-links a:hover{color:#c7d2fe}.small-project .project-content .project-links a svg{transition:transform .2s ease}.small-project .project-content .project-links a:hover svg{transform:scale(1.1)}.small-project .project-content .project-peek-strip{background:linear-gradient(180deg,#0f1223c7,#080a16e6);border-top:1px solid #6366f142;color:#c7d2feeb;font-size:.7em;font-weight:700;letter-spacing:.04em;margin:auto -24px -24px;padding:8px 10px;text-align:center;text-transform:uppercase}@media(max-width:1250px){.small-project{width:45%}}@media(max-width:968px){.small-project{width:43%}}@media(max-width:768px){.small-project{margin:0 auto 16px;min-height:260px;width:100%}.small-project .project-content{padding:20px}.small-project .project-content .project-header h3{font-size:1.2em}.small-project .project-content .project-description{font-size:.9em;line-height:1.4}.small-project .project-content .project-technologies .tech-uses{font-size:.72em}.small-project .project-content .project-technologies .tech-items .tech-item{font-size:.68em;padding:1px 4px}.small-project .project-content .project-links a{font-size:.88em;gap:4px}}@media(max-width:480px){.small-project{min-height:240px}.small-project .project-content{padding:10px}.small-project .project-content .project-header h3{font-size:1.1em}.small-project .project-content .project-description{font-size:.85em}.small-project .project-content .project-links{gap:10px}.small-project .project-content .project-links a{font-size:.83em}}.coming-soon-project{background:#ffffff05;border:1px dashed #ffffff1f;border-radius:12px;box-shadow:0 4px 20px #0006;display:flex;flex-direction:column;margin-bottom:40px;min-height:220px;transition:all .25s ease;width:45%}.coming-soon-project:hover{background:#6366f10a;border-color:#a5b4fc4d;transform:translateY(-4px)}.coming-soon-project .project-content{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:20px;text-align:center}.coming-soon-project .project-content h3{color:#c7d2fe;font-size:clamp(1.2em,2.5vw,1.5em);font-weight:700;margin-bottom:14px}.coming-soon-project .project-content p{color:#f8fafc80;font-size:.92em;line-height:1.55;margin-bottom:20px}.coming-soon-project .project-content .project-links{display:flex;gap:20px;justify-content:center}.coming-soon-project .project-content .project-links a{align-items:center;color:#a5b4fc;display:flex;font-size:clamp(.9em,1.2vw,1em);font-weight:500;gap:7px;text-decoration:none;transition:color .2s ease}.coming-soon-project .project-content .project-links a:hover{color:#c7d2fe}.coming-soon-project .project-content .project-links a svg{transition:transform .2s ease}.coming-soon-project .project-content .project-links a:hover svg{transform:scale(1.1)}@media(max-width:768px){.coming-soon-project{margin:0 auto 20px;width:100%}}.modal-backdrop{align-items:center;animation:backdropFadeIn .25s ease-out;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#000000bf;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-container{animation:modalSlideIn .3s ease-out;background:linear-gradient(135deg,#14141cf7,#1e1632f7 50%,#14141cf7);border:1px solid #a5b4fc26;border-radius:20px;box-shadow:0 25px 80px #000000b3,0 0 0 1px #6366f11a,inset 0 1px 0 #ffffff0d;display:flex;flex-direction:column;height:90vh;max-height:90vh;max-width:1100px;overflow:hidden;position:relative;width:90vw}.modal-close{align-items:center;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:12px;color:#f8fafcb3;cursor:pointer;display:flex;font-size:1.1em;height:40px;justify-content:center;position:absolute;right:18px;top:18px;transition:all .2s ease;width:40px;z-index:10}.modal-close:hover{background:#ef444426;border-color:#ef444466;color:#fca5a5;transform:scale(1.05)}.modal-scroll-area{flex:1 1;overflow-x:hidden;overflow-y:auto;padding:40px 48px}.modal-scroll-area::-webkit-scrollbar{width:6px}.modal-scroll-area::-webkit-scrollbar-track{background:#0000}.modal-scroll-area::-webkit-scrollbar-thumb{background:#a5b4fc33;border-radius:3px}.modal-scroll-area::-webkit-scrollbar-thumb:hover{background:#a5b4fc59}.modal-header{margin-bottom:32px;text-align:center}.modal-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#f8fafc,#c7d2fe);-webkit-background-clip:text;background-clip:text;color:#f8fafc;font-family:RobotoMono,sans-serif;font-size:clamp(1.8em,4vw,2.8em);font-weight:800;letter-spacing:-.02em;margin-bottom:16px}.modal-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.modal-tags .modal-tag{background:#6366f11f;border:1px solid #6366f140;border-radius:20px;color:#a5b4fc;font-family:RobotoMono,sans-serif;font-size:.85em;font-weight:600;letter-spacing:.03em;padding:5px 14px}.modal-screenshots{background:#00000040;border:1px solid #ffffff0f;border-radius:14px;margin-bottom:36px;overflow:hidden;padding:16px}.screenshots-categories{display:flex;flex-direction:column;gap:24px}.screenshot-category-header{margin-bottom:16px;margin-left:4px}.screenshot-category-title{color:#f8fafce6;font-family:RobotoMono,sans-serif;font-size:1.1em;font-weight:600;letter-spacing:.02em;margin-bottom:6px}.screenshot-category-description{color:#f8fafca6;font-family:Inter,sans-serif;font-size:.9em;line-height:1.5}.screenshots-track{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px;scroll-behavior:smooth;scroll-snap-type:x mandatory}.screenshots-track.single-item{justify-content:center}.screenshots-track::-webkit-scrollbar{height:6px}.screenshots-track::-webkit-scrollbar-track{background:#0000}.screenshots-track::-webkit-scrollbar-thumb{background:#a5b4fc33;border-radius:3px}.screenshots-track::-webkit-scrollbar-thumb:hover{background:#a5b4fc59}.screenshot-item{border:1px solid #ffffff14;border-radius:10px;flex-shrink:0;max-height:400px;overflow:hidden;scroll-snap-align:start;transition:border-color .2s ease}.screenshot-item:hover{border-color:#a5b4fc4d}.screenshot-item img{object-fit:contain}.screenshot-item img,.screenshot-item video{display:block;height:100%;max-height:400px;width:auto}.screenshot-item video{border-radius:8px;max-width:100%}.screenshot-item.video-item{align-items:center;background:#0006;display:flex;justify-content:center;max-height:420px}.modal-body{margin-bottom:36px}.modal-body p{color:#f8fafcb8;font-family:RobotoMono,sans-serif;font-size:1.05em;line-height:1.75;margin-bottom:18px}.modal-body p:last-child{margin-bottom:0}.modal-body p:first-child{color:#f8fafcd9;font-size:1.12em}.modal-tech-section{background:#ffffff08;border:1px solid #ffffff0f;border-radius:14px;margin-bottom:36px;padding:24px}.modal-tech-section h3{color:#f8fafc73;font-family:RobotoMono,sans-serif;font-size:.9em;font-weight:700;letter-spacing:.1em;margin-bottom:14px;text-transform:uppercase}.modal-tech-section .modal-tech-items{display:flex;flex-wrap:wrap;gap:8px}.modal-tech-section .modal-tech-items .modal-tech-item{background:#6366f114;border:1px solid #6366f126;border-radius:8px;color:#f8fafccc;font-family:RobotoMono,sans-serif;font-size:.9em;font-weight:500;padding:6px 14px;transition:all .2s ease}.modal-tech-section .modal-tech-items .modal-tech-item:hover{background:#6366f124;border-color:#a5b4fc59;color:#f8fafc}.modal-links-section{border-top:1px solid #ffffff0f;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding-bottom:10px;padding-top:10px}.modal-link-button{align-items:center;background:#6366f11a;border:1px solid #6366f140;border-radius:12px;color:#c7d2fe;cursor:pointer;display:inline-flex;font-family:RobotoMono,sans-serif;font-size:1em;font-weight:600;gap:10px;padding:12px 24px;text-decoration:none;transition:all .25s ease}.modal-link-button svg{font-size:1.15em;transition:transform .2s ease}.modal-link-button:hover{background:#6366f133;border-color:#6366f180;box-shadow:0 6px 20px #6366f126;color:#e0e7ff;transform:translateY(-2px)}.modal-link-button:hover svg{transform:scale(1.1)}.modal-link-button.demo{background:#10b9811a;border-color:#10b98140;color:#6ee7b7}.modal-link-button.demo:hover{background:#10b98133;border-color:#10b98180;box-shadow:0 6px 20px #10b98126;color:#a7f3d0}@media(max-width:768px){.modal-backdrop{padding:10px}.modal-container{border-radius:14px;height:93vh;width:95vw}.modal-scroll-area{padding:24px 20px}.modal-title{font-size:1.6em}.modal-body p{font-size:.95em;line-height:1.65}.screenshot-item,.screenshot-item img,.screenshot-item video{max-height:250px}.modal-link-button{font-size:.9em;padding:10px 18px}}@media(max-width:480px){.modal-scroll-area{padding:20px 16px}.modal-title{font-size:1.4em}.modal-tags .modal-tag{font-size:.75em;padding:4px 10px}.screenshot-item,.screenshot-item img,.screenshot-item video{max-height:180px}}.about-container{color:#fff;font-family:RobotoMono,sans-serif;margin:0 auto;padding:40px 0;width:80%}.about-container h2{color:#c7d2fe;font-family:RobotoMono,sans-serif;font-size:clamp(1.8em,4vw,2.5em);font-weight:700;letter-spacing:-.02em;margin:0 0 30px;padding-top:10px;text-align:left}.about-container .about-intro{align-items:flex-start;display:flex;flex-direction:row;margin-bottom:40px}@media(min-width:769px){.about-container .about-intro{align-items:center}}@media(max-width:768px){.about-container .about-intro{flex-direction:column;text-align:center}}.about-container .about-intro .about-text{flex:1 1;padding-right:0;text-align:left}@media(max-width:768px){.about-container .about-intro .about-text{padding-right:0;text-align:center}}.about-container .about-intro .about-text p{color:#f8fafca6;font-size:clamp(.95em,1.8vw,1.1em);line-height:1.8;margin-bottom:20px}.about-container .about-intro .about-text .purple-text{color:#a5b4fc;font-weight:600}.about-container .about-intro .about-text .purple-text a{color:#a5b4fc;text-decoration:none}.about-container .about-intro .about-text .purple-text a:hover{color:#c7d2fe}.about-container .about-intro .about-text a{color:#a5b4fc;text-decoration:underline;-webkit-text-decoration-color:#a5b4fc59;text-decoration-color:#a5b4fc59;transition:all .2s ease}.about-container .about-intro .about-text a:visited{color:#a5b4fc}.about-container .about-intro .about-text a:hover{color:#c7d2fe;-webkit-text-decoration-color:#c7d2fe99;text-decoration-color:#c7d2fe99}.about-container .about-intro .about-text .specializations{border-bottom:1px solid #a5b4fc26;border-top:1px solid #a5b4fc26;margin:28px 0;padding:20px 0}.about-container .about-intro .about-text .specializations .spec-title{color:#c7d2fe;font-size:clamp(.9em,1.5vw,1.05em);font-weight:600;letter-spacing:.05em;margin:0 0 14px}.about-container .about-intro .about-text .specializations .spec-item{color:#f8fafcbf;font-size:clamp(.9em,1.6vw,1em);letter-spacing:.02em;line-height:1.6;padding:5px 0}.about-container .about-intro .about-text .specializations .spec-item .spec-arrow{color:#a5b4fc;font-weight:600;margin-right:6px}@media(max-width:768px){.about-container .about-intro .about-text .specializations{padding-left:20px;text-align:left}}.about-container .about-intro .about-photo{align-items:center;display:flex;flex:0 0 40%;justify-content:flex-end;padding-left:5%}.about-container .about-intro .about-photo .profile-photo{aspect-ratio:3/4;border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 4px 20px #00000080;max-width:500px;object-fit:cover;transition:transform .3s ease,box-shadow .3s ease;width:100%}.about-container .about-intro .about-photo .profile-photo:hover{border-color:#a5b4fc4d;box-shadow:0 8px 32px #6366f140;transform:translateY(-5px)}@media(max-width:768px){.about-container .about-intro .about-photo{align-items:center;justify-content:center;margin-left:auto;margin-right:auto;margin-top:20px;padding-left:0;width:70%}}.about-container .about-contact,.about-container .about-technologies{margin-bottom:40px}.about-container .about-contact form{display:flex;flex-direction:column}.about-container .about-contact form label{font-family:RobotoMono,sans-serif;margin-bottom:10px}.about-container .about-contact form input,.about-container .about-contact form textarea{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:6px;color:#f8fafc;font-family:RobotoMono,sans-serif;font-size:1em;margin-bottom:20px;padding:10px}.about-container .about-contact form input:focus,.about-container .about-contact form textarea:focus{border-color:#6366f180;outline:none}.about-container .about-contact form button{background:#6366f1;border:none;border-radius:6px;color:#f8fafc;cursor:pointer;font-family:RobotoMono,sans-serif;font-size:1.1em;padding:10px 20px;transition:background .2s ease}.about-container .about-contact form button:hover{background:#818cf8}.about-technologies-container{color:#fff;font-family:RobotoMono,sans-serif;margin:0 auto;padding:20px 0;width:70%}.about-technologies-container .about-technologies h2{color:#fff;font-family:RobotoMono,sans-serif;font-size:2em;margin-bottom:20px;text-align:center}.about-technologies-container .about-technologies .technology-categories{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}@media(max-width:500px){.about-technologies-container .about-technologies .technology-categories{grid-template-columns:1fr}}.about-technologies-container .about-technologies .technology-categories .technology-category{background-color:#2a2a2a;border-radius:10px;color:#fff;padding:20px}.about-technologies-container .about-technologies .technology-categories .technology-category h3{color:#fff;font-size:1.5em;margin-bottom:30px;text-align:center}.about-technologies-container .about-technologies .technology-categories .technology-category .technology-items{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}@media(max-width:500px){.about-technologies-container .about-technologies .technology-categories .technology-category .technology-items{grid-template-columns:repeat(2,1fr)!important}}.about-technologies-container .about-technologies .technology-categories .technology-category .technology-items .technology-item{align-items:center;color:#fff;cursor:pointer;display:flex;flex-direction:column;font-size:1.2em}.about-technologies-container .about-technologies .technology-categories .technology-category .technology-items .technology-item i{color:#fff;font-size:3em;margin-bottom:10px}.about-technologies-container .about-technologies .technology-categories .technology-category .technology-items .technology-item p{color:#fff;font-family:Inter,sans-serif;margin:0;text-align:center}.about-technologies-container .about-technologies .technology-categories .technology-category .technology-items .technology-item:hover{color:#a5b4fc}.footer-container{align-items:center;background-color:#09090b;border-top:1px solid #ffffff12;color:#fff;display:grid;font-family:RobotoMono,sans-serif;grid-template-columns:repeat(3,1fr);padding:24px 40px;text-align:center}@media(max-width:768px){.footer-container{display:flex;flex-direction:column;gap:10px;text-align:center}}.footer-container .footer-content{align-items:center;display:flex;flex-direction:column}@media(max-width:768px){.footer-container .footer-content{align-items:center;text-align:center}}.footer-container .purple-heart{animation:pulse 2s ease-in-out infinite;color:#a5b4fc}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.footer-container .footer-link{color:#a5b4fc;font-weight:600;margin-left:5px;text-decoration:underline;-webkit-text-decoration-color:#a5b4fc4d;text-decoration-color:#a5b4fc4d;transition:color .2s ease}.footer-container .footer-link:hover{color:#c7d2fe;-webkit-text-decoration-color:#c7d2fe80;text-decoration-color:#c7d2fe80}.footer-container .social-icons{display:flex;gap:20px;justify-content:flex-end}@media(max-width:768px){.footer-container .social-icons{justify-content:center}}.footer-container .social-icons a{color:#f8fafc66;font-size:clamp(1.3em,2vw,1.6em);position:relative;transition:all .2s ease;z-index:1}.footer-container .social-icons a:hover{color:#a5b4fc;transform:translateY(-2px)}.footer-container p{color:#f8fafc66;font-size:clamp(.8em,1.1vw,.9em);margin:0;position:relative;z-index:1}.footer-container .left-align{text-align:left}@media(max-width:768px){.footer-container .left-align{padding-bottom:5px;text-align:center}}.footer-container .center-align{text-align:center}.footer-container .right-align{text-align:right}@media(max-width:768px){.footer-container .right-align{padding-top:5px;text-align:center}}.portfolio-page{color:#f8fafc;font-family:RobotoMono,monospace;min-height:100vh;padding-top:88px}.port-back{align-items:center;color:#f8fafc66;display:inline-flex;font-size:.78em;gap:8px;letter-spacing:.07em;margin-bottom:40px;text-decoration:none;transition:color .2s ease}.port-back:hover{color:#a5b4fc}.port-back svg{font-size:.85em;transition:transform .2s ease}.port-back:hover svg{transform:translateX(-3px)}.port-hero{margin:0 auto;max-width:1200px;opacity:0;padding:72px clamp(24px,6vw,100px) 80px;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.port-hero--visible{opacity:1;transform:translateY(0)}.port-hero__eyebrow{color:#f8fafc59;font-size:.72em;letter-spacing:.22em;margin:0 0 16px;text-transform:uppercase}.port-hero__title{color:#a5b4fc;font-size:clamp(3em,8vw,7em);font-weight:700;letter-spacing:-.03em;line-height:1;margin:0 0 28px}.port-hero__tagline{color:#f8fafc8c;font-size:clamp(.88em,1.6vw,1.05em);line-height:1.75;margin:0 0 20px;max-width:480px}.port-hero__meta{align-items:center;color:#f8fafc40;display:flex;flex-wrap:wrap;font-size:.74em;gap:10px;letter-spacing:.06em}.port-hero__sep{color:#f8fafc1f}.port-projects{display:flex;flex-direction:column;gap:120px;margin:0 auto;max-width:1400px;padding:20px clamp(24px,6vw,100px) 80px}.pcard{grid-gap:clamp(32px,5vw,72px);align-items:center;display:grid;gap:clamp(32px,5vw,72px);grid-template-columns:1.15fr .85fr;opacity:0;transform:translateY(48px);transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1)}.pcard--visible{opacity:1;transform:translateY(0)}.pcard--reversed{grid-template-columns:.85fr 1.15fr}.pcard--reversed .pcard__media{order:2}.pcard--reversed .pcard__info{order:1}@media(max-width:900px){.pcard{gap:28px;grid-template-columns:1fr!important}.pcard .pcard__media{order:1!important}.pcard .pcard__info{order:2!important}}.pcard__media{aspect-ratio:16/10;background:#0b0b14;border:1px solid #ffffff12;border-radius:20px;box-shadow:0 24px 64px #0000008c,inset 0 1px 0 #ffffff0a;overflow:hidden;position:relative;transition:border-color .35s ease,box-shadow .35s ease}.pcard__media:hover{border-color:#ffffff24;box-shadow:0 28px 80px #000000a6,0 0 48px #6366f114,inset 0 1px 0 #ffffff0f}@media(max-width:900px){.pcard__media{aspect-ratio:16/9;border-radius:14px}}.pcard__img,.pcard__video{display:block;height:100%;object-fit:cover;width:100%}.slideshow{height:100%;position:relative;width:100%}.slideshow__slide{height:100%;inset:0;object-fit:cover;opacity:0;position:absolute;transition:opacity .8s ease;width:100%;will-change:opacity}.slideshow__slide--active{opacity:1}.slideshow__dots{bottom:14px;display:flex;gap:6px;left:50%;position:absolute;transform:translateX(-50%);z-index:10}.slideshow__dot{background:#ffffff40;border:none;border-radius:50%;cursor:pointer;height:6px;padding:0;transition:background .3s ease,transform .2s ease;width:6px}.slideshow__dot--active{transform:scale(1.4)}.slideshow__dot:hover{background:#ffffff80}.concept-card{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;position:relative;width:100%}.concept-card__bg{background:radial-gradient(ellipse at 50% 50%,#06b6d412 0,#0000 70%);inset:0;position:absolute}.concept-card__hud{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#06b6d40a;border:1px solid #06b6d440;border-radius:12px;font-size:clamp(.65em,1.2vw,.8em);max-width:460px;overflow:hidden;padding:0;position:relative;width:calc(100% - 48px);z-index:1}.concept-card__topbar{align-items:center;background:#06b6d40f;border-bottom:1px solid #06b6d426;display:flex;gap:12px;padding:10px 16px}.concept-card__logo{color:#67e8f9;flex:1 1;font-size:.88em;font-weight:600;letter-spacing:.05em}.concept-card__status{align-items:center;color:#67e8f980;display:flex;font-size:.78em;gap:5px}.concept-card__dot{animation:xr-pulse 2.4s ease-in-out infinite;background:#4ade80;border-radius:50%;box-shadow:0 0 6px #4ade8099;height:6px;width:6px}.concept-card__battery{color:#67e8f966;font-size:.78em;letter-spacing:.02em}.concept-card__body{padding:18px 20px}.concept-card__chapter{color:#67e8f973;font-size:.72em;letter-spacing:.18em;margin:0 0 4px;text-transform:uppercase}.concept-card__booktitle{color:#e0f7fa;font-size:1em;font-weight:600;letter-spacing:.02em;margin:0 0 14px}.concept-card__divider{background:#06b6d41f;height:1px;margin:0 0 14px}.concept-card__line{color:#e0f7fab3;font-size:.82em;letter-spacing:.01em;line-height:1.9;margin:0}.concept-card__line--faint{color:#e0f7fa59}.concept-card__footer{align-items:center;border-top:1px solid #06b6d41f;display:flex;gap:12px;padding:12px 20px}.concept-card__progress-track{background:#06b6d426;border-radius:2px;flex:1 1;height:3px;overflow:hidden}.concept-card__progress-fill{background:linear-gradient(90deg,#06b6d4,#67e8f9);border-radius:2px;height:100%;width:67%}.concept-card__page{color:#67e8f966;font-size:.72em;letter-spacing:.04em;white-space:nowrap}@keyframes xr-pulse{0%,to{opacity:1}50%{opacity:.4}}.pcard__info{padding:8px 0;position:relative}@media(max-width:900px){.pcard__info{padding:0}}.pcard__number{color:hsla(0,0%,100%,.025);font-size:clamp(5em,10vw,8.5em);font-weight:700;left:-.08em;letter-spacing:-.04em;line-height:1;pointer-events:none;position:absolute;top:-.35em;-webkit-user-select:none;user-select:none}@media(max-width:900px){.pcard__number{display:none}}.pcard__title{font-size:clamp(2em,4vw,3.2em);font-weight:700;letter-spacing:-.025em;line-height:1.05;margin:0 0 6px;position:relative}.pcard__subtitle{color:#f8fafc59;font-size:.77em;letter-spacing:.08em;margin:0 0 22px;text-transform:uppercase}.pcard__description{color:#f8fafc9e;font-size:clamp(.8em,1.2vw,.88em);line-height:1.85;margin:0 0 28px}.pcard__tags{display:flex;flex-wrap:wrap;gap:7px;list-style:none;margin:0 0 32px;padding:0}.pcard__tag{background:hsla(0,0%,100%,.025);border:1px solid #ffffff17;border-radius:4px;color:#f8fafc73;font-size:.68em;letter-spacing:.06em;padding:4px 10px}.pcard__links{display:flex;flex-wrap:wrap;gap:10px}.pcard__link{align-items:center;border-radius:8px;display:inline-flex;font-family:RobotoMono,monospace;font-size:.78em;font-weight:500;gap:8px;letter-spacing:.06em;padding:9px 18px;text-decoration:none;transition:all .2s ease}.pcard__link--github{background:#ffffff08;border:1px solid #ffffff1a;color:#f8fafca6}.pcard__link--github:hover{background:#ffffff12;border-color:#ffffff38;color:#f8fafc}.pcard__link--demo{background:#0000;transition:all .2s ease}.pcard__link--demo:hover{background:#ffffff0d;opacity:.85}.pcard__link svg{font-size:.9em;opacity:.8}.port-footer{border-top:1px solid #ffffff0d;margin:0 auto;max-width:1200px;padding:40px clamp(24px,6vw,100px) 80px}.port-footer .port-back{margin-bottom:0}.blog-back{align-items:center;color:#f8fafc73;display:inline-flex;font-family:RobotoMono,monospace;font-size:.78em;gap:8px;letter-spacing:.07em;margin-bottom:40px;text-decoration:none;transition:color .2s ease}.blog-back:hover{color:#a5b4fc}.blog-back svg{font-size:.85em;transition:transform .2s ease}.blog-back:hover svg{transform:translateX(-3px)}.blog-listing{color:#f8fafc;font-family:RobotoMono,monospace;min-height:100vh;padding-top:88px}.blog-listing__inner{margin:0 auto;max-width:860px;padding:64px clamp(24px,6vw,80px) 120px}.blog-listing__eyebrow{color:#f8fafc73;font-size:.72em;letter-spacing:.22em;margin:0 0 16px;text-transform:uppercase}.blog-listing__title{color:#f8fafc;font-size:clamp(2rem,5vw,3.2rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0 0 12px}.blog-listing__subtitle{color:#f8fafc73;font-size:.9em;letter-spacing:.04em;margin:0 0 64px}.blog-listing__grid{display:flex;flex-direction:column;gap:24px}.blog-card{background:#ffffff08;border:1px solid #ffffff12;border-radius:12px;display:block;padding:28px 32px;text-decoration:none;transition:border-color .25s ease,background .25s ease,transform .2s ease}.blog-card:hover{background:#a5b4fc0d;border-color:#a5b4fc4d;transform:translateY(-2px)}.blog-card__meta{align-items:center;display:flex;gap:12px;margin-bottom:12px}.blog-card__category{background:#a5b4fc2e;border-radius:4px;color:#a5b4fc;font-size:.68em;letter-spacing:.15em;padding:3px 10px;text-transform:uppercase}.blog-card__date{color:#f8fafc73;font-size:.72em;letter-spacing:.06em}.blog-card__title{color:#f8fafc;font-size:1.15em;font-weight:600;letter-spacing:-.01em;line-height:1.35;margin:0 0 10px}.blog-card__excerpt{color:#f8fafcbf;font-size:.83em;line-height:1.65;margin:0}.blog-post{color:#f8fafc;font-family:RobotoMono,monospace;min-height:100vh;padding-top:88px}.blog-post__inner{margin:0 auto;max-width:740px;padding:64px clamp(24px,6vw,80px) 120px}.blog-post__category{background:#a5b4fc2e;border-radius:4px;color:#a5b4fc;display:inline-block;font-size:.68em;letter-spacing:.15em;margin-bottom:20px;padding:3px 10px;text-transform:uppercase}.blog-post__title{color:#f8fafc;font-size:clamp(1.7rem,4vw,2.8rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin:0 0 16px}.blog-post__date{color:#f8fafc73;display:block;font-size:.74em;letter-spacing:.06em;margin-bottom:56px}.blog-post__body{color:#f8fafcbf;font-size:.92em;line-height:1.85}.blog-post__body p{margin:0 0 1.5em}.blog-post__body h2{border-bottom:1px solid #ffffff12;color:#f8fafc;font-size:1.2em;font-weight:600;letter-spacing:-.01em;margin:2.4em 0 .8em;padding-bottom:8px}.blog-post__body .blog-figure{margin:2em 0;padding:0}.blog-post__body .blog-img{border-radius:10px;display:block;object-fit:cover;width:100%}.blog-post__body strong{color:#f8fafc;font-weight:600}.blog-post__body em{color:#a5b4fc;font-style:normal}
/*# sourceMappingURL=main.a60ae755.css.map*/