@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;700;900&family=Roboto+Mono:wght@400;700&display=swap";:root{--background-color:18, 18, 18;--primary-color:254, 240, 138;--secondary-color:217, 217, 217;--font-inter:"Inter", system-ui, sans-serif;--font-roboto-mono:"Roboto Mono", ui-monospace, monospace;font:18px/145% var(--font-inter);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;height:1.4px;color:rgb(var(--secondary-color));background:rgb(var(--background-color));font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}#root{text-align:left;box-sizing:border-box;flex-direction:column;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{background-image:radial-gradient(circle,#333 1px,#0000 2px);background-position:-16px -16px;background-size:32px 32px;margin:0;padding:60px 116px;overflow:visible}@media (width<=1200px){body{padding:24px 76px}}@media (width<=650px){body{padding:24px}}#preloader{z-index:9999;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity 50ms ease-out;display:flex;position:fixed;top:0;left:0}.typing-container{flex-direction:column;align-items:flex-start;width:300px;display:flex}.terminal-line{font-family:var(--font-inter);color:rgb(var(--secondary-color));height:38px;margin:0;font-size:32px;font-weight:900;line-height:1.2}.spacer{height:20px}.portfolio-layout section{flex-direction:column;width:100%;display:flex}.section-title{font-family:var(--font-inter);color:rgba(var(--secondary-color), .2);-webkit-backdrop-filter:blur(12px);margin:0 auto 48px 0;font-size:32px;font-weight:900;line-height:1.4}@media (width>=650px){.first-title{margin-left:auto;margin-right:0}}.intro-container{flex-direction:column;align-items:flex-start;min-height:70vh;margin-top:0;padding-top:0;display:flex}@media (width<=1200px){.intro-container{padding-top:12px}}@media (width<=650px){.intro-container{padding-top:32px}}.intro-name{font-family:var(--font-roboto-mono);color:rgb(var(--secondary-color));margin:0 0 16px;font-size:28px;line-height:1.4}@media (width<=1200px){.intro-name{font-size:24px}}.intro-role{font-family:var(--font-roboto-mono);color:rgb(var(--secondary-color));margin:0 0 64px;font-size:40px;font-weight:700;line-height:1.4}@media (width<=1200px){.intro-role{font-size:36px}}@media (width<=650px){.intro-role{font-size:32px}}.intro-description{font-family:var(--font-roboto-mono);color:rgba(var(--secondary-color), .75);letter-spacing:.1px;width:70%;margin:0 0 64px;font-size:28px;line-height:1.45}@media (width<=1200px){.intro-description{width:70%;font-size:24px}}@media (width<=650px){.intro-description{width:80%;font-size:16px}}.contact-btn{background-color:rgb(var(--background-color));border:2px solid rgba(var(--primary-color), .75);width:180px;height:60px;color:rgb(var(--secondary-color));font-family:var(--font-inter);cursor:pointer;border-radius:24px;margin-bottom:48px;font-size:20px;font-weight:900;line-height:1.4;transition:all .2s}@media (width<=650px){.contact-btn{margin-bottom:96px}}.contact-btn:hover{background-color:#ffffff1a}.projects-grid{grid-template-columns:1fr;gap:32px;width:100%;margin:0 0 96px;display:grid}@media (width>=1200px){.projects-grid{box-sizing:border-box;grid-template-columns:repeat(10,1fr);gap:32px}.project-card:first-child{order:2;grid-column:span 3}.project-card:nth-child(3){order:1;grid-column:span 7}.project-card:nth-child(4){order:4;grid-column:span 7}.project-card:nth-child(2){order:3;grid-column:span 3}}.project-card{background-color:#ffffff08;background-color:rgba(var(--background-color), .8);border:2px solid rgba(var(--primary-color), .5);box-sizing:border-box;border-radius:24px;flex-direction:column;gap:24px;padding:20px;transition:transform .2s,background-color .2s;display:flex}.project-header{justify-content:space-between;align-items:center;display:flex}.project-title{font-family:var(--font-inter);color:rgb(var(--secondary-color));margin:0;font-size:24px;font-weight:700;display:flex}.project-platform-icon{color:rgba(var(--secondary-color), .75);align-items:center;font-size:24px;display:flex}.project-video{aspect-ratio:16/9;background-color:rgba(var(--secondary-color), .1);border-radius:12px;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.project-desc{font-family:var(--font-inter);color:rgba(var(--secondary-color), .8);flex-grow:1;margin:0 0 0 8px;font-size:14px;font-weight:700;line-height:1.6}.project-tech-list{flex-wrap:wrap;gap:12px;display:flex}.tech-badge{font-family:var(--font-roboto-mono);background-color:rgba(var(--secondary-color), .08);color:rgb(var(--secondary-color));border-radius:16px;padding:6px 12px;font-size:14px;font-weight:700}.case-study-btn{background-color:rgb(var(--background-color));border:1px solid rgba(var(--primary-color), .75);color:rgba(var(--primary-color), .75);font-family:var(--font-inter);cursor:pointer;border-radius:8px;align-self:flex-start;align-items:center;gap:8px;margin:12px 0 12px 8px;padding:12px 20px;font-size:16px;font-weight:700;transition:background-color .2s;display:inline-flex}.case-study-arrow{color:rgba(var(--secondary-color), .75)}@media (width>=650px){.project-header,.project-desc,.project-tech-list,.project-details-btn,.case-study-btn{display:none}.project-card:hover{background-color:#131313cc;transform:translateY(-4px)}.project-card:first-child .project-video,.project-card:nth-child(2) .project-video{aspect-ratio:9/16;width:fit-content;height:100%}.project-card{padding:48px}.project-video{margin:0 auto}}@media (width>=1200px){.project-card{padding:36px}}@media (width>=650px) and (width<=1200px){.project-card{height:50vw}}.modal-overlay{z-index:100;justify-content:flex-end;display:flex;position:fixed;inset:0}.modal-barrier{background-color:rgba(var(--background-color), .75);position:absolute;inset:0}.modal-content-wrapper{align-items:flex-start;height:100vh;display:flex;position:relative}.modal-close-btn{border:2px solid rgba(var(--primary-color), .5);background-color:rgb(var(--background-color));cursor:pointer;border-radius:50%;margin-top:24px;margin-right:24px;padding:12px;transition:background-color .2s;display:flex}.modal-close-btn:hover{background-color:rgba(var(--secondary-color), .05)}.modal-panel{background-color:rgb(var(--background-color));border-left:2px solid rgba(var(--primary-color), .5);box-sizing:border-box;width:clamp(400px,35vw,600px);height:100%;padding:48px 32px;overflow-y:auto}.modal-title{color:rgb(var(--secondary-color));font-size:32px;font-family:var(--font-inter);margin:0;font-weight:700;line-height:1.45}.modal-video{aspect-ratio:16/9;background-color:rgba(var(--secondary-color), .1);border-radius:12px;justify-content:center;align-items:center;width:100%;margin:24px 0 28px;display:flex;overflow:hidden}.modal-tech-row{font-size:16px;font-family:var(--font-roboto-mono);justify-content:space-between;align-items:center;margin:0;font-weight:700;display:flex}.modal-tech-list{gap:12px;display:flex}.modal-desc{color:rgba(var(--secondary-color), .75);font-size:16px;font-family:var(--font-inter);margin:48px 0;font-weight:500;line-height:1.45}.modal-divider-row{align-items:center;gap:16px;display:flex}.modal-divider-line{background-color:rgba(var(--secondary-color), .25);flex:1;height:1px}.modal-divider-text{color:rgba(var(--secondary-color), .75);letter-spacing:5px;margin:0;font-family:Roboto Mono,monospace;font-size:12px;font-weight:700}.bottom-sheet-overlay{z-index:100;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet-barrier{background-color:rgba(var(--background-color), .75);position:absolute;inset:0}.bottom-sheet-content{background-color:rgb(var(--background-color));border-top:1px solid rgba(var(--primary-color), .5);border-radius:30px 30px 0 0;flex-direction:column;width:100%;height:90vh;display:flex;position:relative}.bottom-sheet-handle-wrapper{cursor:pointer;justify-content:center;width:100%;padding:12px 0 20px;display:flex}.bottom-sheet-handle{background-color:rgba(var(--secondary-color), .5);border-radius:2px;width:40px;height:4px}.bottom-sheet-scrollable{box-sizing:border-box;flex:1;padding:8px 24px;overflow-y:auto}.bottom-sheet-title{font-family:var(--font-inter);color:rgb(var(--primary-secondary));text-align:center;margin:0 0 16px;font-size:20px;font-weight:900}.timeline-container{flex-direction:column;gap:0;max-width:1000px;margin:0 auto 96px;display:flex;position:relative}.timeline-center-line{z-index:0;background-image:linear-gradient(to bottom, transparent 0%, rgba(var(--secondary-color), .15) 10%, rgba(var(--secondary-color), .15) 90%, transparent 100%);width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-row{width:100%;display:flex;position:relative}.timeline-row+.timeline-row{margin-top:-120px}.timeline-card{border:1px solid rgba(var(--secondary-color), .1);box-sizing:border-box;z-index:1;-webkit-backdrop-filter:blur(3px);background-color:#ffffff08;border-radius:16px;width:45%;padding:32px}.row-left{justify-content:flex-start}.row-right{justify-content:flex-end}.row-right .timeline-card{text-align:left}.timeline-dot{background-color:rgb(var(--primary-color));z-index:2;width:16px;height:16px;box-shadow:0 0 0 4px rgb(var(--background-color));border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.timeline-date{font-family:var(--font-inter);color:rgb(var(--secondary-color));align-items:center;gap:12px;margin:0 0 16px;font-size:16px;font-weight:700;display:flex}.timeline-date:before{content:"";background-color:rgba(var(--secondary-color), .25);border-radius:2px;width:2px;height:16px;display:block}.timeline-title{color:rgba(var(--primary-color), .75);font-family:var(--font-inter);margin:0 0 24px;font-size:24px;font-weight:900}.timeline-tech-list{flex-wrap:wrap;gap:12px;margin:32px 0 0;display:flex}.timeline-tech-badge{background-color:rgba(var(--secondary-color), .08);letter-spacing:.5px;color:rgb(var(--secondary-color));font-size:14px;font-weight:700;font-family:var(--font-inter);border-radius:16px;padding:6px 12px}.timeline-desc{color:rgba(var(--secondary-color), .75);font-family:var(--font-inter);margin:0;font-size:14px}@media (width<=1200px){.timeline-center-line{left:32px;transform:none}.timeline-row{justify-content:flex-end}.timeline-row+.timeline-row{margin-top:48px}.timeline-card{width:calc(100% - 80px)}.row-left .timeline-card{text-align:left}.timeline-dot{left:32px}}@media (width<=650px){.timeline-container{margin:0 auto 96px}.timeline-center-line{left:16px}.timeline-card{width:calc(100% - 48px);padding:24px}.timeline-dot{left:16px}}.contact-container{box-sizing:border-box;width:100%;max-width:1000px;margin:0 auto 48px;padding:0 32px}.contact-grid{align-items:flex-start;gap:96px;display:flex}.contact-column{flex-direction:column;gap:4px;display:flex}.contact-title{color:rgb(var(--secondary-color));font-family:var(--font-inter);letter-spacing:1px;margin:0 0 0 16px;font-size:24px;font-weight:900}.contact-card{border:1px solid rgba(var(--primary-color), .6);box-sizing:border-box;background-color:#0000;border-radius:16px;flex-wrap:wrap;gap:16px;width:max-content;padding:32px;display:flex}.contact-badge{background-color:rgba(var(--secondary-color), .08);-webkit-backdrop-filter:blur(12px);color:rgb(var(--secondary-color));font-family:var(--font-inter);cursor:pointer;box-sizing:border-box;border:none;border-radius:8px;align-items:center;gap:12px;max-width:100%;padding:12px 16px;font-size:14px;font-weight:700;text-decoration:none;transition:background-color .2s,transform .1s;display:flex}.contact-badge svg{flex-shrink:0}.download-icon{opacity:.6;margin-left:8px}.email-text{white-space:nowrap;text-overflow:ellipsis;text-align:left;min-width:205px;overflow:hidden}@media (width<=1200px){.contact-container{margin-bottom:96px}.contact-grid{flex-direction:column;gap:48px}}@media (width<=650px){.contact-container{padding:0 16px}.contact-grid{align-items:stretch}.contact-column{width:100%}.contact-card{flex-direction:column;width:100%;padding:16px}.contact-badge{justify-content:center;width:100%}.email-text{white-space:normal;word-break:break-word}}
