body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;color:#1a1a1a;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100vh;margin:0;overflow:hidden;width:100vw}.app-container{height:100vh;width:100vw}.app-container,.intro-content{align-items:center;display:flex;justify-content:center;position:relative}.intro-content{flex-direction:column;padding:2rem;z-index:10}.name-title{animation:typing 1.5s steps(30) forwards,blink-caret .75s step-end infinite;animation:typing 1.5s steps(20) forwards,blink-caret .75s step-end infinite,caretFadeOut .1s ease-out 2s forwards;border-right:.15em solid orange;color:#111;font-size:5rem;font-weight:200;letter-spacing:1.2rem;margin:0 auto 0 1.2rem;opacity:1;overflow:hidden;white-space:nowrap;width:0}.separator-line{animation:expandLine 1s ease-out 1.6s forwards;background-color:#ccc;height:1px;margin:2rem 0;opacity:0;transform:scaleX(0);width:100px}.role-subtitle{animation:fadeIn 1s ease-out 2.2s forwards;color:#555;font-size:.9rem;font-weight:600;letter-spacing:.4rem;margin-bottom:4rem;margin-left:.4rem;margin-top:0;opacity:0;text-transform:uppercase}.loading-container{align-items:center;animation:fadeIn 1s ease-out 2.5s forwards;display:flex;flex-direction:column;opacity:0;width:300px}.loading-bar-bg{background-color:#e0e0e0;height:2px;overflow:hidden;position:relative;width:100%}.loading-bar-progress{animation:loadProgress 2.5s cubic-bezier(.22,1,.36,1) 2.6s forwards;background:linear-gradient(90deg,#111,#555);height:100%;left:0;position:absolute;top:0;width:0}.loading-text{color:#888;font-size:.7rem;letter-spacing:.15rem;margin-top:1rem;opacity:1}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{0%,to{border-color:#0000}50%{border-color:#111}}@keyframes caretFadeOut{to{border-color:#0000}}@keyframes expandLine{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes loadProgress{to{width:100%}}@media (max-width:768px){.name-title{font-size:2.5rem;letter-spacing:.5rem;margin-left:.5rem}.role-subtitle{font-size:.75rem;letter-spacing:.2rem;margin-bottom:2rem}.separator-line{margin:1.5rem 0;width:60px}.loading-container{width:200px}}.main-page-container{animation:fadeInMain 1.5s ease-out forwards;display:flex;flex-direction:column;height:100vh;left:0;opacity:0;pointer-events:none;position:absolute;top:0;width:100vw;z-index:20}.footer-panel,.main-header,.main-viewport,.project-title-container{pointer-events:auto}@keyframes fadeInMain{to{opacity:1}}.glass-panel{backdrop-filter:blur(12px);background:#ffffffb3;border:1px solid #ffffff80;box-shadow:0 4px 6px #0000000d}.glass-panel,.main-header{-webkit-backdrop-filter:blur(12px)}.main-header{align-items:center;backdrop-filter:blur(12px);background:#ffffffd9;border-bottom:1px solid #0000000d;display:flex;justify-content:space-between;margin:0;padding:1.2rem 3rem}.header-name{color:#111;font-size:1.5rem;font-weight:300;letter-spacing:-.02em}.header-nav{display:flex;gap:2.5rem}.header-nav a{color:#444;font-size:.95rem;font-weight:500;text-decoration:none;transition:color .2s ease}.header-nav a:hover{color:#000}.project-title-container{margin-bottom:.2rem;margin-top:.5rem;text-align:center}.project-title{background:linear-gradient(90deg,#333,#666);-webkit-background-clip:text;background-clip:text;color:#0000;font-size:1rem;font-weight:600;letter-spacing:.1em;margin:0;text-transform:uppercase}.main-viewport{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff80;border:1px solid #fff9;border-radius:16px;box-shadow:0 10px 30px #00000014;display:flex;flex:1 1;justify-content:center;margin:.5rem 4rem 1rem;overflow:hidden;position:relative}.project-viewer,.viewer-frame{height:100%;width:100%}.project-iframe,.project-image{border:none;display:block;height:100%;width:100%}.placeholder-content{align-items:center;color:#666;display:flex;flex-direction:column;height:100%;justify-content:center}.footer-panel{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;border:1px solid #ffffff80;border-radius:12px;box-shadow:0 4px 15px #0000000d;display:flex;justify-content:space-between;margin:0 4rem 1.5rem;padding:1.2rem 3rem}.description-btn{background:#fff;background-clip:padding-box,border-box;background-image:linear-gradient(#fff,#fff),linear-gradient(90deg,#7f00ff,#00bfff,#0ff);background-image:linear-gradient(#fff,#fff),var(--project-gradient,linear-gradient(90deg,#7f00ff,#00bfff,#0ff));background-origin:padding-box,border-box;border:2px solid #0000;border-radius:50px;box-shadow:0 2px 5px #0000000d;color:#333;cursor:pointer;font-family:Inter,sans-serif;font-size:.9rem;font-weight:600;padding:.6rem 2rem;position:relative;transition:transform .2s ease,box-shadow .2s ease;z-index:1}.description-btn:hover{background-image:linear-gradient(90deg,#7f00ff,#00bfff,#0ff);background-image:var(--project-gradient,linear-gradient(90deg,#7f00ff,#00bfff,#0ff));border-color:#0000;box-shadow:0 4px 10px #0000001a;color:#fff;transform:translateY(-1px)}.footer-center{align-items:center;display:flex;gap:1.5rem}.nav-arrow{background:none;border:none;color:#888;cursor:pointer;font-size:1.5rem;transition:color .2s,transform .2s}.nav-arrow:hover{color:#111;transform:scale(1.1)}.dots-container{gap:.8rem}.nav-dot{background-color:#e0e0e0;border-radius:50%;cursor:pointer;height:8px;transition:all .3s ease;width:8px}.nav-dot.active{background-color:#333;transform:scale(1.2)}.footer-right{font-size:.95rem;font-weight:500}.gradient-link{background:linear-gradient(90deg,#7f00ff,#00bfff,#0ff);background:var(--project-gradient,linear-gradient(90deg,#7f00ff,#00bfff,#0ff));-webkit-background-clip:text;background-clip:text;color:#0000;font-weight:700;text-decoration:none;transition:opacity .2s}.gradient-link:hover{opacity:.8}.separator{color:#ccc;margin:0 .5rem}.modal-overlay{align-items:center;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#fff6;display:flex;height:100vh;justify-content:center;left:0;pointer-events:auto;position:fixed;top:0;width:100vw;z-index:100}.modal-content{backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);background:#ffffff73!important;border:1px solid #fffc;border-radius:20px;box-shadow:0 25px 50px #00000026;max-width:600px;padding:2.5rem;position:relative;width:90%}.modal-close-btn{background:none;border:none;color:#888;cursor:pointer;font-size:2rem;left:1.5rem;position:absolute;right:auto;top:1.2rem;transition:color .2s}.modal-close-btn:hover{color:#111}.modal-title{color:#111;font-size:2rem;font-weight:300;letter-spacing:-.02em;margin-bottom:.5rem;margin-top:1rem;text-align:center}.modal-dates{color:#555;font-size:.9rem;font-weight:500;text-align:center}.modal-dates,.modal-section{margin-bottom:2rem}.modal-section h3{color:#444;font-size:1.1rem;font-weight:600;letter-spacing:.05em;margin-bottom:.8rem;text-transform:uppercase}.modal-section p{color:#555;line-height:1.6}.stack-list{list-style:none;padding:0}.stack-list li{border-left:2px solid #00bfff;color:#555;line-height:1.5;margin-bottom:.8rem;padding-left:1rem}.stack-category{color:#333;font-weight:700;margin-right:.5rem}.about-modal{max-width:800px;padding:1.5rem 2rem;text-align:left;width:90%}.about-header{margin-bottom:1.2rem;text-align:center}.about-title{background:linear-gradient(90deg,#333,#555);-webkit-background-clip:text;background-clip:text;color:#0000;font-size:1.8rem;font-weight:700;letter-spacing:-.02em;margin:0}.about-divider{background:#00bfff;border-radius:2px;height:3px;margin:.8rem auto 0;width:40px}.about-body p{color:#444;font-size:.95rem;line-height:1.6;margin-bottom:1rem}.about-subtitle{border-left:3px solid #7f00ff;color:#222;font-size:1.1rem;font-weight:600;margin-bottom:.8rem;margin-top:1.5rem;padding-left:8px}.about-list{list-style:none;margin-bottom:1.5rem;padding:0}.about-list li{color:#555;font-size:.9rem;margin-bottom:.4rem;padding-left:1rem;position:relative}.about-list li:before{color:#00bfff;content:"•";font-weight:700;left:0;position:absolute}.about-footer{border-top:1px solid #0000001a;margin-top:2rem;padding-top:1.2rem;text-align:center}.thank-you{color:#333;font-size:.9rem;font-style:italic;font-weight:600}.contact-modal{max-width:600px;padding:1.5rem 2.5rem;width:90%}.contact-intro{color:#444;font-size:1rem;margin-bottom:2rem;text-align:center}.contact-list{list-style:none;margin:0 auto;max-width:450px;padding:0}.contact-list li{align-items:center;background:#fff6;border-radius:8px;display:flex;font-size:1rem;margin-bottom:1.2rem;padding:.8rem 1rem;transition:transform .2s,background .2s}.contact-list li:hover{background:#fff9;transform:translateX(5px)}.contact-label{color:#333;font-weight:700;width:100px}.contact-link,.contact-text{color:#555;flex:1 1;font-weight:500;text-decoration:none}.contact-link:hover{color:#00bfff;text-decoration:underline}@media (max-width:768px){.main-header{background:#ffffffe6;flex-direction:column;gap:1rem;padding:1rem 1.5rem}.header-name{font-size:1.25rem}.header-nav{font-size:.9rem;gap:1.5rem}.main-viewport{border-radius:12px;margin:.5rem 1rem}.footer-panel{flex-direction:column;gap:1.25rem;margin:0 1rem 1rem;padding:1rem 1.5rem;text-align:center}.footer-center{justify-content:center;width:100%}.description-btn{text-align:center;width:100%}.modal-content{max-height:85vh;overflow-y:auto;padding:1.5rem;width:95%}.modal-title{font-size:1.5rem;margin-top:1.5rem}.modal-close-btn{align-items:center;background:#fffc;border-radius:50%;display:flex;font-size:1.8rem;height:32px;justify-content:center;left:auto;right:1rem;top:1rem;width:32px}.stack-list li{font-size:.9rem}.about-modal{padding:1.5rem}.about-title{font-size:1.5rem}.contact-modal{padding:1.5rem}.contact-list li{align-items:flex-start;flex-direction:column;gap:.25rem}.contact-label{color:#777;font-size:.85rem;width:auto}}.resume-page-container{animation:fadeInMain .8s ease-out forwards;color:#000;display:flex;flex-direction:column;height:100vh;left:0;opacity:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:0;width:100vw;z-index:20}.resume-header{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;border-bottom:1px solid #0000000d;display:flex;justify-content:space-between;padding:1.2rem 3rem;position:-webkit-sticky;position:sticky;top:0;z-index:50}.resume-btn{background:#fff;background-clip:padding-box,border-box;background-image:linear-gradient(#fff,#fff),linear-gradient(90deg,#7f00ff,#00bfff,#0ff);background-origin:padding-box,border-box;border:2px solid #0000;border-radius:50px;box-shadow:0 2px 5px #0000000d;color:#333;cursor:pointer;display:inline-block;font-family:Inter,sans-serif;font-size:.9rem;font-weight:600;padding:.6rem 2rem;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}.resume-btn:hover{background-image:linear-gradient(90deg,#7f00ff,#00bfff,#0ff);border-color:#0000;box-shadow:0 4px 10px #0000001a;color:#fff;transform:translateY(-1px)}.resume-document{background:#fff;border-radius:4px;box-shadow:0 10px 40px #00000026;font-family:Times New Roman,Times,serif;line-height:1.4;margin:2rem auto 4rem;max-width:900px;padding:4rem 5rem;width:90%}.resume-top-section{margin-bottom:1.5rem;text-align:center}.resume-name{color:#000;font-family:Times New Roman,Times,serif;font-size:2.2rem;font-weight:700;letter-spacing:.05em;margin-bottom:.8rem;text-transform:uppercase}.resume-contact-info{color:#000;display:flex;flex-wrap:wrap;font-family:Cambria,serif;font-size:.95rem;gap:1.5rem;justify-content:center}.resume-contact-info span i{font-size:.85rem;margin-right:.4rem}.resume-divider{background:#000;display:none;height:2px}.resume-divider,.resume-section{margin-bottom:2rem}.resume-section-title{color:#000;font-family:Arial,sans-serif;font-family:Times New Roman,Times,serif;font-size:1.1rem;font-weight:800;letter-spacing:.05em;margin-bottom:.3rem;text-transform:uppercase}.resume-section-divider{background-color:#000;height:2px;margin-bottom:1rem;width:100%}.resume-list{list-style-type:none;margin-top:.5rem;padding-left:0}.resume-list li{font-size:1rem;margin-bottom:.3rem;padding-left:1rem;position:relative}.resume-list li:before{content:"•";font-weight:700;left:0;position:absolute}.experience-item{margin-bottom:1.5rem}.job-header{align-items:flex-start;display:flex;font-family:Times New Roman,serif;justify-content:space-between}.job-title-company{display:flex;flex-direction:column}.job-title{font-size:1.05rem;font-weight:700}.company-name{font-size:1rem;font-style:italic}.job-location-date{display:flex;flex-direction:column;font-size:1rem;text-align:right}.job-details{margin-top:.2rem}.education-item{margin-bottom:1.2rem}.languages-grid{grid-gap:1rem 4rem;display:grid;gap:1rem 4rem;grid-template-columns:1fr 1fr}.language-item{align-items:center;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;padding-bottom:.2rem}.lang-name{font-size:1rem;font-weight:700}.lang-level{color:#444;font-size:.9rem;font-weight:400;margin-left:.5rem}.dots-container{display:flex;gap:4px}.dot{background-color:#e0e0e0;border-radius:50%;height:10px;width:10px}.dot.filled{background-color:#000}@media (max-width:768px){.resume-document{padding:2rem;width:95%}.languages-grid{grid-template-columns:1fr}.resume-contact-info{align-items:center;gap:.5rem}.job-header,.resume-contact-info{flex-direction:column}.job-location-date{flex-direction:row;font-style:italic;gap:1rem;margin-top:.2rem;text-align:left}}
/*# sourceMappingURL=main.29ca9b71.css.map*/