:root{--bg:15 17 21;--bg2:22 26 35;--text:245 247 250;--text2:154 164 178;--border:35 39 52;--border-hover:59 66 83;--accent:93 169 255;--fs-xs:.75rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.25rem;--fs-xl:1.75rem;--fs-2xl:2.25rem;--radius:10px;--max-width:1100px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-color:rgb(var(--text2)) rgb(var(--bg2));scrollbar-width:thin}body{background:rgb(var(--bg));color:rgb(var(--text));font-family:Inter,system-ui,--apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;overflow-x:hidden}.container{max-width:var(--max-width);border-bottom:1px solid rgb(var(--border));margin:0 auto;padding:3rem 1.5rem}.section{padding:0}.card{border:1px solid rgb(var(--border));border-radius:var(--radius);transform:border .2s ease;padding:1.5rem}.card:hover{border-color:rgb(var(--border-hover))}a{color:rgb(var(--text));text-decoration:none}a:hover{color:rgb(var(--accent))}h1{font-size:var(--fs-2xl);margin-bottom:1rem}h2{font-size:var(--fs-xl);margin-bottom:1rem}p{color:rgb(var(--text2));font-size:var(--fs-md)}.font2{font-family:Patrick Hand,cursive;font-weight:400}.navbar{background:rgb(var(--text2) / .08);border:1px solid rgb(var(--text) / .08);font-weight:600;font-size:var(--fs-xs);color:rgb(var(--text2));z-index:1000;border-radius:25px;padding:.25rem 1rem;display:flex;position:fixed;bottom:1rem;right:1rem}.navbar .menu{position:relative}.navbar .menu.active .nav-links{background-color:rgb(var(--bg));border-radius:var(--radius);width:90dvw;height:40dvh;font-size:var(--fs-md);border:1px solid rgb(var(--border));flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1rem;display:flex;position:fixed;bottom:30px;left:50%;transform:translate(-50%)}.navbar .menu.active .nav-links a{font-weight:400}.navbar .menu.active .nav-links .header{font-size:var(--fs-md);color:rgb(var(--border-hover));border-top:1px solid rgb(var(--text2));padding:8px 30px;position:absolute;top:20px}.navbar>span{gap:4px;display:flex}.navbar>span .up-arrow{justify-content:center;align-items:center;height:100%;display:flex}.navbar .nav-links{display:none}.navbar .menu a.active{color:rgb(var(--accent))}#home{z-index:0;background:linear-gradient(270deg,#0f1115,#2d3440,#0f1115) 0 0/600% 600%;min-height:100dvh;animation:30s infinite gradientShift;position:relative;overflow:hidden}#home:before{content:"";pointer-events:none;z-index:-1;background-color:#0000;background-image:radial-gradient(2px,#ffffff26,#0000 70%),radial-gradient(3px,#f1ff704d,#0000 70%),radial-gradient(1.5px,#fff3,#0000 70%);background-position:0 0,0 0,0 0;background-repeat:repeat;background-size:100px 100px,150px 150px,50px 50px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;width:140%;height:140%;animation:60s linear infinite particleMove;position:absolute;top:-20%;left:-20%}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes particleMove{0%{background-position:0 0,0 0,0 0}to{background-position:100px 100px,150px 150px,50px 50px}}#home .container,.home{height:100%}.home .header{flex-direction:column;margin:2rem 0 0;display:flex}.home .header h1{letter-spacing:10px;color:#0000;-webkit-text-fill-color:transparent;-webkit-user-select:none;user-select:none;background:linear-gradient(90deg,#00fff7,#0af,#05f,#00ffe1,#00ffe1) 0 0/200%;-webkit-background-clip:text;background-clip:text;align-self:flex-end;margin:0 0;font-family:Patrick Hand,cursive;font-size:3.2rem;font-weight:700;display:inline-block}.home .header h1:hover{animation:1.3s forwards gradient}@keyframes gradient{0%{background-position:0 0;transform:scaleY(1)scaleX(1)}50%{background-position:100% 0;transform:scaleY(1.3)scaleX(1)}to{background-position:0 0;transform:scaleY(1.2)scaleX(1.1)}}.home .header div h2,.home .header div p{margin:0}.bold{font-weight:600}.accent{color:rgb(var(--accent))}.home{flex-direction:column;display:flex}.home .body-wrapper{flex-direction:column;justify-content:space-between;gap:1rem;width:100%;height:100%;margin:3rem 0;display:flex;position:relative}.home .body-wrapper .down-arrow,.home .body-wrapper .down-arrow-icon{display:none}.home .body-wrapper .footer{justify-content:center;gap:3rem;display:flex}.home .body-wrapper .footer a{color:rgb(var(--accent));font-size:var(--fs-lg);align-items:center;gap:10px;display:flex}.home .body-wrapper .footer a:hover,.home .body-wrapper .footer a:hover span{color:rgb(var(--accent) / .6)}.home .body-wrapper .footer a span{display:none}.footer{z-index:0;min-height:80px;animation:30s infinite gradientShift;position:relative;overflow:hidden}.footer:before{content:"";pointer-events:none;z-index:-1;background-color:#0000;background-image:radial-gradient(2px,#ffffff26,#0000 70%),radial-gradient(3px,#f1ff704d,#0000 70%),radial-gradient(1.5px,#fff3,#0000 70%);background-position:0 0,0 0,0 0;background-repeat:repeat;background-size:100px 100px,150px 150px,50px 50px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;width:140%;height:140%;animation:60s linear infinite particleMove;position:absolute;top:-20%;left:-20%}.footer .container{color:rgb(var(--accent));justify-content:end;align-items:center;gap:4px;display:flex}#about .container,#projects .container{min-height:100dvh}@media (width>=768px) and (height>=1100px){.home .body-wrapper .down-arrow-wrapper{flex-direction:column;justify-content:center;align-items:center;width:fit-content;height:50%;margin:0 auto;padding:.5rem 1rem;transition:all .6s ease-in-out;display:flex}.home .body-wrapper .down-arrow-wrapper:hover{cursor:pointer;transform:scale(1.1)}.home .body-wrapper .down-arrow{background-color:rgb(var(--text2) / .6);width:2px;height:100%;display:flex}.home .body-wrapper .down-arrow-wrapper .down-arrow-icon{color:rgb(var(--text2) / .6);font-size:2.5em;display:flex}}@media (width>=768px){:root{--fs-lg:1.5rem;--fs-xl:2rem;--fs-2xl:3rem}.section{padding:0}.container{padding:6rem 1.5rem}.navbar{width:fit-content;height:fit-content;margin:1.75rem;padding:0 .9rem;top:0;left:50%;transform:translate(-50%)}.navbar>span{display:none}.navbar .nav-links{display:flex}.navbar .nav-links a{font-size:var(--fs-sm);padding:.5rem .75rem;transition:all .3s ease-out;display:flex;position:relative}.navbar .nav-links a:hover{color:rgb(var(--accent))}.navbar .menu .nav-links .header{display:none}@keyframes gradient{0%{background-position:0 0;transform:scaleY(1)scaleX(1)}50%{background-position:100% 0;transform:scaleY(1.4)scaleX(1)}to{background-position:0 0;transform:scaleY(1.2)scaleX(1.5)}}.home .body-wrapper .footer a>span{color:rgb(var(--text2));display:flex}.resume .resume-wrapper .header{padding:1rem}.resume .resume-wrapper .header .icon{display:flex}.resume .resume-wrapper .header div>span{gap:8px}.resume .resume-wrapper .header>div{justify-content:space-between;font-size:12px}.resume .resume-wrapper .body h4{color:#fff;font-size:16px}.resume .resume-wrapper .body p{margin-bottom:1rem}.resume .resume-wrapper .body ul{font-size:14px}.resume .resume-wrapper .summary p{line-height:2}}.resume{flex-direction:column;display:flex}.resume .resume-link{color:rgb(var(--accent));cursor:pointer;align-self:flex-end;width:fit-content;margin-bottom:1rem;display:flex}.resume .resume-link:hover{color:rgb(var(--text2))}.resume-wrapper{border:1px solid rgb(var(--border));border-radius:var(--radius);flex-direction:column;display:flex}.resume-wrapper .header{background-color:rgb(var(--bg2));border-top-right-radius:var(--radius);border-top-left-radius:var(--radius);flex-direction:column;padding:1rem 0;display:flex}.resume-wrapper .header h2,.resume-wrapper .header p{align-self:center}.resume-wrapper .header h2{margin-bottom:-10px}.resume-wrapper .header>div{justify-content:center;align-items:center;gap:1rem;margin-top:1rem;font-size:11px;display:flex}.resume-wrapper .header>div span{align-items:center;gap:2px;display:flex}.resume-wrapper .header .icon{display:none}.resume-wrapper .body{gap:1rem;padding:8px;display:flex}.resume-wrapper .body .left{flex-direction:column;width:60%;display:flex}.resume-wrapper .body .right{flex-direction:column;align-items:end;width:40%;display:flex}.resume-wrapper .body h3{margin-bottom:8px}.resume-wrapper .body .job{margin-bottom:1.6rem}.resume-wrapper .body .job>p{justify-content:space-between;display:flex}.resume-wrapper .body ul{flex-direction:column;gap:1rem;margin-left:30px;font-size:12px;list-style:circle;display:flex}.resume-wrapper .body .right h3{text-align:right}.resume-wrapper .body .right .education{text-align:right;flex-direction:column;align-items:end;display:flex}.resume-wrapper .body h3{align-items:center;gap:8px;width:100%;margin:20px 0;display:flex}.resume-wrapper .body h3 .thr{border:3px solid rgb(var(--accent));width:100%}.resume-wrapper .body .right .skills{flex-flow:wrap;gap:1.6rem;padding:0 12px;display:flex}.resume-wrapper .body h3{font-size:16px}.resume-wrapper .body h4{color:#fff;font-size:14px}.resume-wrapper .body ul{color:#fff}.resume-wrapper .body .education .school{color:#fff;font-size:14px;font-weight:600}.resume-wrapper .body .right .summary>p{text-align:right;color:#fff;justify-content:end;font-weight:600;display:flex}@media print{#navbar,#home,#about,#projects,#contact,.no-print,.footer{display:none!important}#resume .container{border:none}body{margin:0;padding:0}.resume-wrapper{color:#000;background-color:#fff;border:none;flex-direction:column;width:100%;margin:0;padding:18px 20px;font-size:12pt;display:flex;position:fixed;top:1px;left:0;right:0}.resume .resume-wrapper .header{border-bottom:2px solid rgb(var(--accent));padding-top:0}.resume .resume-wrapper .header .icon{display:flex}.resume .resume-wrapper .header>div{justify-content:space-between;font-size:12px}.resume .resume-wrapper .header>div span{gap:8px}.resume-wrapper .body ul,.resume-wrapper .body .education .school{color:#000}.resume-wrapper .body .right .summary>p,.resume .resume-wrapper .body h4{color:#000;font-size:14px}.resume .resume-wrapper .body p{margin-bottom:.6rem}.resume .resume-wrapper .body ul{font-size:12px}.resume .resume-wrapper .summary p{line-height:2}.job{break-inside:avoid}.resume-wrapper{break-after:avoid}}@page{size:A4;margin:0}.about-content{flex-direction:column;gap:2.5rem;display:flex}.about-bio{flex-direction:column;gap:1.2rem;max-width:680px;display:flex}.about-bio p{color:rgb(var(--text2));line-height:1.8}.about-stack{flex-direction:column;gap:.75rem;display:flex}.stack-label{font-size:var(--fs-sm);color:rgb(var(--accent));text-transform:uppercase;letter-spacing:1px;font-weight:600}.tech-list{flex-wrap:wrap;gap:.6rem;padding:0;list-style:none;display:flex}.tech-list li{font-size:var(--fs-xs);border:1px solid rgb(var(--border));color:rgb(var(--text2));border-radius:20px;padding:.3rem .75rem;transition:border-color .2s,color .2s}.tech-list li:hover{border-color:rgb(var(--accent) / .5);color:rgb(var(--text))}@media (width>=768px){.about-content{flex-direction:row;align-items:flex-start;gap:4rem}.about-bio{flex:1}.about-stack{flex-shrink:0;width:220px;padding-top:.25rem}#home{z-index:0;background:linear-gradient(270deg,#0f1115,#2d3440,#0f1115) 0 0/600% 600%;height:100dvh;animation:30s infinite gradientShift;position:relative;overflow:hidden}.home .header h1{margin:6rem 0}}.projects{flex-direction:column;gap:2rem;display:flex}.project-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=900px){.project-grid{grid-template-columns:repeat(2,1fr)}}.project-card{border:1px solid rgb(var(--border));border-radius:var(--radius);flex-direction:column;transition:border-color .2s;display:flex;overflow:hidden}.project-card:hover{border-color:rgb(var(--border-hover))}.project-preview{background:rgb(var(--bg2));border-bottom:1px solid rgb(var(--border))}.project-preview img{object-fit:cover;width:100%;display:block}.project-preview-empty{height:180px}.terminal{font-family:Courier New,Courier,monospace;font-size:var(--fs-xs);flex-direction:column;display:flex}.terminal-bar{border-bottom:1px solid rgb(var(--border));background:#0f1115;align-items:center;gap:6px;padding:8px 12px;display:flex}.terminal-bar .dot{border-radius:50%;width:10px;height:10px}.terminal-bar .dot.red{background:#ff5f57}.terminal-bar .dot.yellow{background:#febc2e}.terminal-bar .dot.green{background:#28c840}.terminal-body{flex-direction:column;gap:2px;padding:1rem 1.25rem 1.25rem;display:flex}.terminal-line{color:rgb(var(--text));font-size:.78rem;line-height:1.6}.terminal-line.muted{color:rgb(var(--text2))}.terminal-line.ok .terminal-check{color:#28c840;margin-right:4px}.terminal-prompt{color:rgb(var(--accent));-webkit-user-select:none;user-select:none;margin-right:6px}.project-info{flex-direction:column;gap:.6rem;padding:1.25rem 1.5rem 1.5rem;display:flex}.project-header{justify-content:space-between;align-items:center;display:flex}.project-header h3{font-size:var(--fs-lg);color:rgb(var(--text))}.project-links{align-items:center;gap:.75rem;display:flex}.project-links a{color:rgb(var(--text2));font-size:var(--fs-md);transition:color .2s}.project-links a:hover{color:rgb(var(--accent))}.project-tagline{font-size:var(--fs-sm);color:rgb(var(--accent));font-weight:600}.project-desc{font-size:var(--fs-sm);color:rgb(var(--text2));line-height:1.7}.project-tech{flex-wrap:wrap;gap:.4rem;margin-top:.4rem;padding:0;list-style:none;display:flex}.project-tech li{font-size:var(--fs-xs);background:rgb(var(--accent) / .08);border:1px solid rgb(var(--accent) / .2);color:rgb(var(--accent));border-radius:4px;padding:.2rem .6rem}.contact{flex-direction:column;gap:1.5rem;max-width:540px;display:flex}.contact-tagline{font-size:var(--fs-md);color:rgb(var(--text2));line-height:1.8}.contact-email{font-size:var(--fs-xl);color:rgb(var(--text));word-break:break-all;font-weight:600;transition:color .2s;display:inline-block}.contact-email:hover{color:rgb(var(--accent))}.contact-links{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.contact-link{color:rgb(var(--text2));font-size:var(--fs-sm);align-items:center;gap:.6rem;width:fit-content;transition:color .2s;display:flex}.contact-link:hover{color:rgb(var(--accent))}#about .container,#projects .container,#resume .container,#contact .container{opacity:0;transition:opacity .65s,transform .65s;transform:translateY(22px)}#about .container.in-view,#projects .container.in-view,#resume .container.in-view,#contact .container.in-view{opacity:1;transform:translateY(0)}.home-bio{color:rgb(var(--text2));max-width:580px;margin-bottom:1rem;line-height:1.8}.home-stack{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.home-stack-tag{font-size:var(--fs-xs);border:1px solid rgb(var(--border));color:rgb(var(--text2));border-radius:4px;padding:.25rem .65rem;transition:border-color .2s,color .2s}.home-stack-tag:hover{border-color:rgb(var(--accent) / .5);color:rgb(var(--text))}.btn-primary{border:1px solid rgb(var(--accent));border-radius:var(--radius);color:rgb(var(--accent));font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:6px;width:fit-content;padding:.6rem 1.2rem;font-weight:600;transition:background .2s,color .2s;display:inline-flex}.btn-primary:hover{background:rgb(var(--accent) / .12);color:rgb(var(--accent))}.btn-arrow{transition:transform .2s}.btn-primary:hover .btn-arrow{transform:translate(3px)}.resume-highlights{grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem;display:grid}@media (width<=560px){.resume-highlights{grid-template-columns:1fr}}.stat-card{border:1px solid rgb(var(--border));border-radius:var(--radius);flex-direction:column;gap:4px;padding:1.25rem;transition:border-color .2s;display:flex}.stat-card:hover{border-color:rgb(var(--accent) / .4)}.stat-value{font-size:var(--fs-xl);color:rgb(var(--accent));font-weight:700}.stat-label{font-size:var(--fs-sm);color:rgb(var(--text2))}.footer .container{justify-content:space-between}.footer-top{color:rgb(var(--text2));font-size:var(--fs-lg);line-height:1;transition:color .2s}.footer-top:hover{color:rgb(var(--accent))}.footer-copy{color:rgb(var(--accent));align-items:center;gap:4px;display:flex}
