:root{--bg-color:#050505;--text-primary:#f8fafc;--text-secondary:#ffffff80;--text-muted:#64748b;--dot-color:#ffffff14;--line-w:1px;--frame-line:255 255 255;--frame-line-a:.4;--grid-line:255 255 255;--grid-line-a:.22;--pad:1.25rem;--label-col:10rem;--row-h:3.5rem;--name-pad-y:1rem;--about-pad-y:2.5rem;--bar-pad-y:.85rem;--about-align:center;--mobile-side-space:3.5vw;--name-bg:0 0 0;--name-bg-a:.75;--name-fg:248 250 252;--name-fg-a:1;--name-sub-fg:255 255 255;--name-sub-fg-a:.5;--about-bg:0 0 0;--about-bg-a:.75;--about-fg:255 255 255;--about-fg-a:.8;--label-bg:0 0 0;--label-bg-a:.75;--label-fg:255 255 255;--label-fg-a:.9;--content-bg:0 0 0;--content-bg-a:.75;--content-fg:255 255 255;--content-fg-a:.65;--bar-bg:255 255 255;--bar-bg-a:.05;--bar-fg:248 250 252;--bar-fg-a:1;--cell-bg:0 0 0;--cell-bg-a:.75;--cell-hover-bg:255 255 255;--cell-hover-bg-a:.05;--cell-title-fg:248 250 252;--cell-title-fg-a:.9;--cell-fg:203 213 225;--cell-fg-a:.75;--cell-tech-fg:255 255 255;--cell-tech-fg-a:.5;--chip-bg:0 0 0;--chip-bg-a:.05;--chip-fg:255 255 255;--chip-fg-a:.6;--chip-line:255 255 255;--chip-line-a:.25;--chip-line-strong-a:.5;--chip-hover-bg:255 255 255;--chip-hover-bg-a:.2;--toggle-active-bg:255 255 255;--toggle-active-bg-a:.12;--edu-bg:0 0 0;--edu-bg-a:.75;--edu-fg:203 213 225;--edu-fg-a:1;--skill-bg:255 255 255;--skill-bg-a:.1;--skill-hover-bg:255 255 255;--skill-hover-bg-a:.25;--skill-fg:248 250 252;--skill-fg-a:.8;--popup-bg:10 10 10;--popup-bg-a:.75;--footer-fg:255 255 255;--footer-fg-a:.4}html,body,#root{width:100%;min-height:100%;margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-width:thin;scrollbar-color:#ffffff1a transparent}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}#root{z-index:1;position:relative}body{background:var(--bg-color);color:#e2e8f0;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;min-height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#ffffff59}h1,h2,h3,code,.font-mono{color:var(--text-primary);font-family:JetBrains Mono,monospace}h1{font-size:3rem}h2{font-size:1.75rem}h3{font-weight:400}p{color:#fffc;font-size:1.25rem}.font-mono{color:var(--text-secondary);margin-bottom:1rem}.meta-text,time,.tag{color:var(--text-muted);font-size:.875rem}.gravity-dots{pointer-events:none;z-index:0;width:100%;height:100lvh;position:fixed;inset:0}.gravity-dots-controls{z-index:10;gap:.4rem;display:flex;position:fixed;bottom:.5rem;right:.5rem}.gravity-dots-button{background:#000;border:1px solid #ffffff80;border-radius:3px;justify-content:center;align-items:center;width:38px;height:38px;padding:0;transition:background .3s,border-color .3s,transform .3s;display:flex}.gravity-dots-button:active{transform:translateY(0)}.gravity-dots-button img{opacity:.75;object-fit:contain;width:25px;height:25px;display:block}@keyframes smoothFadePop{0%{opacity:0;filter:blur(5px);transform:translateY(12px)scale(.98)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.fade-pop{opacity:0;will-change:transform, opacity, filter;animation:.75s cubic-bezier(.16,1,.3,1) forwards smoothFadePop}.app-container{z-index:1;max-width:55rem;margin:0 auto;padding:10rem 1.5rem 1rem;position:relative}.about-section,.app-container>section:first-of-type,.projects-section,.education-section,.image-section{border:var(--line-w) solid rgb(var(--frame-line) / var(--frame-line-a));border-top-width:0;margin:0;position:relative}.about-section,.app-container>section:first-of-type{border-top-width:var(--line-w)}.app-container>section:has(.popup-wrapper:hover){z-index:30}h1{padding:var(--name-pad-y) var(--pad);background:rgb(var(--name-bg) / var(--name-bg-a));color:rgb(var(--name-fg) / var(--name-fg-a));border-bottom:var(--line-w) solid rgb(var(--grid-line) / var(--grid-line-a));padding-left:1rem;line-height:1.2}h1:has(+.font-mono){border-bottom:0;padding-bottom:.25rem}h1+.font-mono{padding:0 var(--pad) var(--name-pad-y);background:rgb(var(--name-bg) / var(--name-bg-a));color:rgb(var(--name-sub-fg) / var(--name-sub-fg-a));border-bottom:var(--line-w) solid rgb(var(--grid-line) / var(--grid-line-a));margin:0}.about-text{padding:var(--about-pad-y) var(--pad);background:rgb(var(--about-bg) / var(--about-bg-a));color:rgb(var(--about-fg) / var(--about-fg-a));border-bottom:var(--line-w) solid rgb(var(--grid-line) / var(--grid-line-a));margin:0;line-height:1.6}.about-list{z-index:20;grid-template-columns:var(--label-col) minmax(0, 1fr);min-height:var(--row-h);border-bottom:var(--line-w) solid rgb(var(--grid-line) / var(--grid-line-a));align-items:stretch;margin:0;font-size:.95rem;display:grid;position:relative}.about-list:not(:has(~.about-list)){border-bottom:var(--line-w) solid rgb(var(--frame-line) / var(--frame-line-a))}.education-card:last-child{border-bottom:var(--line-w) solid rgb(var(--frame-line) / var(--frame-line-a))}.education-list{border-bottom:none}.about-list:hover{z-index:30}.about-list strong{padding:.75rem var(--pad);white-space:nowrap;background:rgb(var(--label-bg) / var(--label-bg-a));color:rgb(var(--label-fg) / var(--label-fg-a));border-right:var(--line-w) solid rgb(var(--grid-line) / var(--grid-line-a));align-items:center;font-size:.95rem;font-weight:700;display:flex}.card-container{padding:.75rem var(--pad);background:rgb(var(--content-bg) / var(--content-bg-a));flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.mini-card{border:1px solid rgb(var(--chip-line) / var(--chip-line-a));background:rgb(var(--chip-bg) / var(--chip-bg-a));color:rgb(var(--chip-fg) / var(--chip-fg-a));border-radius:0;padding:.3rem .8rem;font-family:monospace;font-size:.85rem;transition:all .5s}.mini-card:hover{background:rgb(var(--chip-hover-bg) / var(--chip-hover-bg-a));border-color:rgb(var(--chip-line) / var(--chip-line-strong-a))}.popup-wrapper{display:flex;position:relative}.hover-popup{background:rgb(var(--popup-bg) / var(--popup-bg-a));border:1px solid rgb(var(--chip-line) / var(--chip-line-strong-a));z-index:999;opacity:0;visibility:hidden;pointer-events:none;border-radius:0;width:180px;padding:10px;transition:all .5s ease-in-out;position:absolute;top:calc(100% + 8px);left:0}.popup-wrapper:hover .hover-popup{opacity:1;visibility:visible;pointer-events:auto}.popup-header{color:#fff;text-transform:uppercase;letter-spacing:.5px;text-align:left;opacity:.75;margin-bottom:8px;font-size:.75rem;font-weight:700}.popup-item{border-bottom:1px solid rgb(var(--chip-line) / var(--chip-line-strong-a));align-items:center;gap:10px;padding:8px 0;display:flex}.popup-item:last-child{border-bottom:none;padding-bottom:0}.popup-icon{object-fit:cover;background:#333;border-radius:0;width:24px;height:24px}.popup-text{color:#e2e8f0;white-space:nowrap;font-size:.85rem}.projects-section>h2,.projects-heading,.education-header-row{padding:var(--bar-pad-y) var(--pad);background:rgb(var(--bar-bg) / var(--bar-bg-a));color:rgb(var(--bar-fg) / var(--bar-fg-a));border-bottom:var(--line-w) solid rgb(var(--grid-line) / var(--grid-line-a));margin:0;line-height:1}.projects-heading{font-size:1.25rem;font-weight:600}.projects-section h2,.education-section h2{font-size:1.75rem}.education-header-row{justify-content:space-between;align-items:center;display:flex}.education-header-row h2{color:inherit;margin:0}.projects-grid{background:rgb(var(--cell-bg) / var(--cell-bg-a));grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid}.project-card{min-height:190px;padding:var(--pad);flex-direction:column;transition:background .3s;display:flex}.project-card:nth-child(odd){border-right:var(--line-w) solid rgb(var(--grid-line) / var(--grid-line-a))}.project-card:not(:last-child){border-bottom:var(--line-w) solid rgb(var(--grid-line) / var(--grid-line-a))}.project-card:nth-last-child(2):nth-child(odd){border-bottom:0}.project-card-top{align-items:center;gap:.8rem;margin-bottom:.9rem;display:flex}.project-icon-link{flex-shrink:0;text-decoration:none;display:block}.project-icon-square{background:rgb(var(--chip-bg) / var(--chip-bg-a));border:1px solid rgb(var(--chip-line) / var(--chip-line-a));border-radius:0;justify-content:center;align-items:center;width:3.1rem;height:3.1rem;transition:transform .3s,border-color .3s,background .3s;display:flex;overflow:hidden}.project-icon-square img{object-fit:contain;opacity:.8;width:50%;height:50%;transition:opacity .3s,transform .3s}.project-title{min-width:0}.project-title h3{color:rgb(var(--cell-title-fg) / var(--cell-title-fg-a));margin:0;font-size:1rem;font-weight:600;line-height:1.3}.project-title a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:rgb(var(--cell-title-fg) / .45);text-decoration-color:rgb(var(--cell-title-fg) / .45);text-underline-offset:3px;text-decoration-thickness:1.75px;transition:color .2s,text-decoration-color .2s}.project-title a:hover{color:rgb(var(--cell-title-fg) / 1);-webkit-text-decoration-color:rgb(var(--cell-title-fg) / 1);text-decoration-color:rgb(var(--cell-title-fg) / 1)}.project-description{color:rgb(var(--cell-fg) / var(--cell-fg-a));margin:0;font-size:1rem;line-height:1.55}.project-tech{color:rgb(var(--cell-tech-fg) / var(--cell-tech-fg-a));margin-top:auto;padding-top:1rem;font-family:monospace;font-size:.78rem}.project-tech-item{white-space:nowrap}.project-tech-separator{opacity:.4}.view-toggle{background:rgb(var(--chip-bg) / var(--chip-bg-a));border:1px solid rgb(var(--chip-line) / var(--chip-line-a));border-radius:0;gap:0;padding:0;display:flex}.toggle-btn{color:rgb(var(--chip-fg) / var(--chip-fg-a));cursor:pointer;background:0 0;border:none;border-radius:0;padding:6px 14px;font-family:monospace;font-size:.85rem;font-weight:750;transition:all .5s}.toggle-btn+.toggle-btn{border-left:1px solid rgb(var(--chip-line) / var(--chip-line-a))}.toggle-btn:hover{color:rgb(var(--chip-fg) / 1);background:rgb(var(--chip-hover-bg) / var(--chip-hover-bg-a))}.toggle-btn.active{background:rgb(var(--toggle-active-bg) / var(--toggle-active-bg-a));color:rgb(var(--chip-fg) / 1);font-weight:700}.education-list{border-bottom:0;flex-direction:column;gap:0;display:flex}.education-card{background:rgb(var(--edu-bg) / var(--edu-bg-a));flex-direction:column;display:flex}.education-card+.education-card{border-top:var(--line-w) solid rgb(var(--grid-line) / .4)}.education-header{padding:var(--pad) var(--pad) 0;justify-content:space-between;align-items:center;display:flex}.education-header-left{align-items:center;gap:.5rem;display:flex}.education-inst-rect,.education-name-rect,.education-meta-rect{background:rgb(var(--chip-bg) / var(--chip-bg-a));border:1px solid rgb(var(--chip-line) / var(--chip-line-a));border-radius:0;align-items:center;padding:6px 10px;transition:background .5s,border-color .5s;display:flex}.education-inst-rect{border-color:rgb(var(--chip-line) / var(--chip-line-strong-a));color:rgb(var(--chip-fg) / 1);font-size:.9rem;font-weight:600}.education-inst-rect span{color:rgb(var(--chip-fg) / 1);font-size:.95rem;transition:all 1s}.education-name-rect h3{color:rgb(var(--chip-fg) / var(--chip-fg-a));margin:0;font-size:.75rem;font-weight:575;transition:color .5s}.education-meta-rect{color:rgb(var(--chip-fg) / var(--chip-fg-a));font-family:monospace;font-size:.8rem}.education-details-box{min-height:120px;color:rgb(var(--edu-fg) / var(--edu-fg-a));font-size:.95rem;line-height:1.6;position:relative}.education-details-box p{padding:var(--pad);color:rgb(var(--edu-fg) / var(--edu-fg-a));margin:0;font-size:1.05rem}.education-footer-info{min-height:var(--row-h);padding:.85rem var(--pad) .85rem calc(var(--label-col) + var(--pad));background:rgb(var(--content-bg) / var(--content-bg-a));color:rgb(var(--content-fg) / var(--content-fg-a));border-top:var(--line-w) solid rgb(var(--grid-line) / var(--grid-line-a));font-family:monospace;font-size:.9rem;position:relative}.footer-label{width:var(--label-col);padding:0 var(--pad);background:rgb(var(--label-bg) / var(--label-bg-a));color:rgb(var(--label-fg) / var(--label-fg-a));border-right:var(--line-w) solid rgb(var(--grid-line) / var(--grid-line-a));align-items:center;font-weight:500;display:flex;position:absolute;top:0;bottom:0;left:0}.footer-section{text-align:center;margin:0;padding:2rem 0 0;font-family:monospace}.footer-section p{color:rgb(var(--footer-fg) / var(--footer-fg-a));font-family:Arial,Helvetica,sans-serif;font-size:.9rem}.custom-cursor{pointer-events:none;z-index:999999;will-change:transform;background:#050505;border:3px solid #fff;border-radius:50%;width:15px;height:15px;transition:opacity .2s,width .2s,height .2s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-moon{pointer-events:none;z-index:1;background:#fff;border-radius:50%;width:4px;height:4px;margin-top:-2px;margin-left:-2px;animation:5s linear infinite orbit;position:absolute;top:50%;left:50%}@keyframes orbit{0%{transform:rotate(0)translate(14px)}to{transform:rotate(360deg)translate(14px)}}.icon-btn{z-index:100;background:0 0;border:none;outline:none;justify-content:center;align-items:center;width:4rem;height:4rem;padding:0;transition:transform 1s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:1.5rem;left:1.5rem}.icon-img{object-fit:contain;width:100%;height:100%;display:block}img{image-rendering:auto;-webkit-font-smoothing:antialiased}.icon-svg{fill:#fff;width:100%;height:100%}.custom-link{color:#f8fafc;font-weight:500;text-decoration:none;transition:color .5s;display:inline-block;position:relative}.custom-link:after{content:"";transform-origin:100% 100%;background-color:#ffffff59;width:100%;height:2px;transition:transform .25s ease-out,background-color .2s;position:absolute;bottom:-1px;left:0}.custom-link:hover{color:#fff}.custom-link:hover:after{background-color:#fff;transform:scaleY(1.5)}.blinking-cursor{color:#f8fafc;margin-left:2px;font-weight:300;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.contact-container{border:var(--line-w) solid #ffffff80;background:rgb(var(--content-bg) / var(--content-bg-a));z-index:100;grid-auto-columns:2.75rem;grid-auto-flow:column;align-items:stretch;display:grid;position:fixed;top:1rem;right:1rem}.contact-btn{border:none;border-right:var(--line-w) solid #ffffff80;cursor:pointer;background:0 0;justify-content:center;align-items:center;width:100%;height:2.75rem;padding:0;display:flex;position:relative}.contact-btn:last-child{border-right:none}.contact-btn img{opacity:.65;filter:brightness(0)saturate()invert();width:1.25rem;height:1.25rem;transition:opacity .5s,transform .5s}@media (hover:hover) and (pointer:fine){.contact-btn:hover img{opacity:1;transform:scale(1.15)}}.copied-text{white-space:nowrap;color:#fffc;font-family:monospace;font-size:.75rem;animation:.3s copiedFade;position:absolute;top:calc(100% + .5rem);left:50%;translate:-50%}@keyframes copiedFade{0%{opacity:0;translate:-50% -5px}to{opacity:1;translate:-50%}}@media (width<=768px){:root{--mobile-side-space:3.5vw;--pad:.9rem;--label-col:6.5rem;--row-h:3rem;--about-pad-y:1.5rem}.app-container{max-width:100%;padding-top:5rem;padding-right:var(--mobile-side-space);padding-bottom:0;padding-left:var(--mobile-side-space)}.icon-btn{top:1.5rem;left:auto;right:calc(var(--mobile-side-space) + .25rem);width:3rem;height:3rem}.contact-container{top:2.5rem;left:var(--mobile-side-space);grid-auto-columns:2rem;position:absolute;right:auto}.contact-btn{width:2rem;height:2rem}.contact-btn img{width:.9rem!important;height:.9rem!important}h1{font-size:2.2rem}h2{font-size:1.4rem}h3{font-size:.95rem}p{font-size:1rem;line-height:1.5}.education-section h2,.projects-section h2{font-size:1.25rem;font-weight:700}.custom-cursor{display:none}.about-list strong{white-space:normal;font-size:.85rem}.card-container{padding:.6rem var(--pad);gap:.4rem}.mini-card{white-space:nowrap;padding:.15rem .4rem;font-size:.7rem}.hover-popup{display:none!important}.project-icon-square{width:2.3rem;height:2.3rem}.education-header{flex-direction:column;align-items:flex-start;gap:.5rem}.education-header-left{flex-wrap:wrap}.education-inst-rect{font-size:.8rem}.education-name-rect h3{font-size:.7rem}.education-details-box p{font-size:.95rem}.education-footer-info{font-size:.8rem}}@media (width<=400px){h1{font-size:1.9rem}}@media (width<=700px){.projects-grid{grid-template-columns:1fr}.project-card{min-height:0}.project-card:nth-child(odd){border-right:0}.project-card:nth-last-child(2):nth-child(odd){border-bottom:var(--line-w) solid rgb(var(--grid-line) / var(--grid-line-a))}}.bottom-status-container{z-index:50;align-items:center;gap:.5rem;display:flex;position:fixed;bottom:1rem;left:1rem}.location-clock-badge{color:#ffffffbf;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;background:#000000bf;border:1px solid #ffffff80;border-radius:3px;justify-content:center;align-items:center;gap:.6rem;padding:.45rem .85rem;font-family:monospace;font-size:.8rem;transition:border-color .2s,background .2s;display:flex}.clock-time{color:#ffffffbf;font-weight:500}@media (width<=768px){:root{--bar-h:2rem}.contact-container{height:var(--bar-h);min-height:var(--bar-h);max-height:var(--bar-h)}.contact-btn{align-self:stretch;height:auto;min-height:0}.bottom-status-container{top:2.5rem;left:calc(var(--mobile-side-space) + 6.5rem);z-index:50;height:var(--bar-h);min-height:var(--bar-h);max-height:var(--bar-h);align-items:stretch;display:flex;position:absolute;bottom:auto}.location-clock-badge{box-sizing:border-box;height:var(--bar-h);min-height:var(--bar-h);max-height:var(--bar-h);border:var(--line-w) solid #ffffff80;border-radius:0;padding:0 .65rem;font-size:.7rem;line-height:1}}@media (any-pointer:coarse){.custom-cursor{display:none}}@media (width<=700px){.projects-grid{grid-template-columns:1fr;width:100%;min-width:0}.project-card{width:100%;min-width:0}.project-card-top{min-width:0}.project-title{overflow-wrap:anywhere;min-width:0}.project-description{overflow-wrap:anywhere}.project-tech{overflow-wrap:anywhere;min-width:0}.project-tech-item{white-space:normal}}.image-section{height:10rem;overflow:hidden}.image-section-bg{background-image:url(/showcase.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%}@media (width<=768px){.image-section{height:5rem}}
