:root{--bg:#0d0d0d;--bg-elevated:#141414;--border:#2a2a2a;--text:#f2f2f2;--text-muted:#8a8a8a;--accent:#fff;--font-mono:"IBM Plex Mono", "JetBrains Mono", "Courier New", monospace;--font-sans:"Inter", system-ui, sans-serif;--max-width:1100px;--nav-height:72px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;line-height:1.6}#root{min-height:100vh}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.page{flex-direction:column;min-height:100vh;display:flex}.container{width:min(var(--max-width), calc(100% - 3rem));margin-inline:auto}.nav{z-index:100;height:var(--nav-height);pointer-events:none;background:linear-gradient(#0d0d0df2,#0000);justify-content:flex-end;align-items:center;padding-inline:2rem;display:flex;position:fixed;top:0;left:0;right:0}.nav__list{pointer-events:auto;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:2rem;font-size:.8rem;list-style:none;display:flex}.nav__link{color:var(--text-muted);transition:color .2s}.nav__link:hover,.nav__link--active{color:var(--text)}.nav__link--cta{border:1px solid var(--border);color:var(--text);padding:.55rem 1.1rem;transition:border-color .2s,background .2s}.nav__link--cta:hover{border-color:var(--text-muted);background:var(--bg-elevated)}.hero{text-align:center;padding:calc(var(--nav-height) + 4rem) 2rem 6rem;flex:1;justify-content:center;align-items:center;display:flex}.hero__name{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.5rem;font-size:clamp(2.5rem,8vw,5.5rem);font-weight:500;line-height:1.1}.hero__name .glitch{display:inline-block;position:relative}.hero__name .glitch:before,.hero__name .glitch:after{content:attr(data-text);opacity:0;width:100%;height:100%;position:absolute;top:0;left:0}.hero__name .glitch:hover:before{color:#00fff9;opacity:.8;clip-path:polygon(0 0,100% 0,100% 35%,0 35%);animation:.3s linear glitch-1;transform:translate(-2px,-1px)}.hero__name .glitch:hover:after{color:#ff00c1;opacity:.8;clip-path:polygon(0 65%,100% 65%,100% 100%,0 100%);animation:.3s linear glitch-2;transform:translate(2px,1px)}@keyframes glitch-1{0%{transform:translate(0)}20%{transform:translate(-3px,1px)}40%{transform:translate(3px,-1px)}60%{transform:translate(-2px)}80%{transform:translate(2px,1px)}to{transform:translate(0)}}@keyframes glitch-2{0%{transform:translate(0)}25%{transform:translate(2px,-1px)}50%{transform:translate(-3px,1px)}75%{transform:translate(1px)}to{transform:translate(0)}}.hero__title{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;min-height:1.6em;font-size:clamp(.85rem,2vw,1.05rem)}.hero__cursor{background:var(--text);vertical-align:text-bottom;width:2px;height:1.1em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.page-header{padding:calc(var(--nav-height) + 4rem) 0 3rem;border-bottom:1px solid var(--border);margin-bottom:3rem}.page-header__label{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.75rem;font-size:.75rem}.page-header__title{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:clamp(2rem,5vw,3rem);font-weight:500}.page-header__subtitle{color:var(--text-muted);max-width:55ch;margin-top:1rem;font-size:.95rem}.main{flex:1;padding-bottom:5rem}.resume-profile{border-bottom:1px solid var(--border);grid-template-columns:180px 1fr;align-items:center;gap:2rem;margin-bottom:1rem;padding:2rem 0 3rem;display:grid}.resume-profile__photo{object-fit:cover;border:1px solid var(--border);background:var(--bg-elevated);width:180px;height:220px}.resume-profile__name{font-family:var(--font-mono);letter-spacing:.04em;margin-bottom:.5rem;font-size:clamp(1.4rem,3vw,2rem);font-weight:600}.resume-profile__role{color:var(--text-muted);margin-bottom:.75rem}.resume-profile__meta{font-family:var(--font-mono);color:var(--text-muted);margin-bottom:.35rem;font-size:.85rem}.resume-summary{border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:2.5rem}.resume-summary__title{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:1rem;font-size:.75rem;font-weight:600}.resume-summary__body{flex-direction:column;gap:1rem;display:flex}.resume-summary__text{color:var(--text-muted);margin:0;font-size:.95rem;line-height:1.7}.resume-summary__text--skills{font-size:.9rem}.resume-summary__text--passion{color:var(--text);border-top:1px solid var(--border);padding-top:.25rem;font-size:.9rem;font-style:italic}.resume-summary__bullets{margin:0;padding:0}.resume-downloads{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.resume-grid{gap:3rem;display:grid}.resume-section__title{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding-bottom:.75rem;font-size:.75rem}.timeline{flex-direction:column;gap:2rem;display:flex}.timeline__item{grid-template-columns:140px 1fr;gap:1.5rem;display:grid}.timeline__period{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;font-size:.8rem}.timeline__role{margin-bottom:.25rem;font-size:1.05rem;font-weight:600}.timeline__company{font-family:var(--font-mono);color:var(--text-muted);margin-bottom:.75rem;font-size:.85rem}.timeline__bullets{color:var(--text-muted);font-size:.9rem;list-style:none}.timeline__bullets li{margin-bottom:.35rem;padding-left:1rem;position:relative}.timeline__bullets li:before{content:"•";color:var(--border);position:absolute;left:0}.skills-grid{flex-wrap:wrap;gap:.6rem;display:flex}.skill-tag{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--border);color:var(--text-muted);padding:.45rem .85rem;font-size:.75rem;transition:border-color .2s,color .2s}.skill-tag:hover{border-color:var(--text-muted);color:var(--text)}.download-btn{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--border);color:var(--text);align-items:center;gap:.5rem;margin-top:2rem;padding:.75rem 1.25rem;font-size:.8rem;transition:border-color .2s,background .2s;display:inline-flex}.download-btn:hover{border-color:var(--text-muted);background:var(--bg-elevated)}.portfolio-grid{grid-template-columns:repeat(3,1fr);align-items:stretch;gap:1.25rem;display:grid}.project-card{border:1px solid var(--border);background:var(--bg-elevated);flex-direction:column;gap:.75rem;height:100%;min-height:16rem;padding:1.5rem;transition:border-color .25s,transform .25s;display:flex}.project-card:hover{border-color:var(--text-muted);transform:translateY(-2px)}.project-card__footer{flex-direction:column;gap:.75rem;margin-top:auto;display:flex}.portfolio-actions{margin-bottom:2rem}.portfolio-section+.portfolio-section{margin-top:3.5rem}.portfolio-section__header{border-bottom:1px solid var(--border);margin-bottom:0;padding-bottom:0}.portfolio-section__toggle{width:100%;color:var(--text);cursor:pointer;text-align:left;font:inherit;background:0 0;border:0;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0;display:flex}.portfolio-section__toggle:hover .portfolio-section__title{color:var(--text-muted)}.portfolio-section__toggle-main{flex-direction:column;gap:.35rem;min-width:0;display:flex}.portfolio-section__title{letter-spacing:-.01em;font-size:1.1rem;font-weight:600;transition:color .2s}.portfolio-section__count{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.65rem}.portfolio-section__icon{font-family:var(--font-mono);color:var(--text-muted);text-align:center;flex-shrink:0;width:1.5rem;font-size:1.25rem;line-height:1}.portfolio-section__desc{color:var(--text-muted);max-width:52rem;padding-bottom:1.25rem;font-size:.9rem}.portfolio-section--collapsed .portfolio-section__desc{display:none}.portfolio-section__panel{grid-template-rows:1fr;transition:grid-template-rows .25s;display:grid}.portfolio-section--collapsed .portfolio-section__panel{grid-template-rows:0fr}.portfolio-section__panel-inner{overflow:hidden}.portfolio-section__panel .portfolio-grid{padding-top:1.75rem}.project-card__meta{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem}.project-card__title{letter-spacing:-.01em;font-size:1.05rem;font-weight:600;line-height:1.35}.project-card__desc{color:var(--text-muted);flex:1;font-size:.85rem;line-height:1.55}.project-card__tags{flex-wrap:wrap;gap:.4rem;display:flex}.project-card__tag{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border);color:var(--text-muted);padding:.3rem .6rem;font-size:.65rem}.project-card__links{flex-direction:column;gap:.35rem;margin-top:1rem;display:flex}.project-card__link{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text);opacity:.7;font-size:.75rem;transition:opacity .2s}.project-card__link:hover{opacity:1}.portfolio-grid--stacked{grid-template-columns:1fr}.project-card--stacked{min-height:auto}@media (width>=900px){.project-gallery__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}}.project-gallery{border-top:1px solid var(--border);padding-top:.75rem}.project-gallery__toggle{width:100%;color:var(--text);cursor:pointer;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 0;font-size:.7rem;display:flex}.project-gallery__toggle:hover .project-gallery__toggle-label{color:var(--text-muted)}.project-gallery__icon{color:var(--text-muted);text-align:center;flex-shrink:0;width:1.25rem;font-size:1.1rem;line-height:1}.project-gallery__panel{grid-template-rows:0fr;transition:grid-template-rows .25s;display:grid}.project-gallery--open .project-gallery__panel{grid-template-rows:1fr}.project-gallery__panel-inner{overflow:hidden}.project-gallery__list{flex-direction:column;gap:1rem;padding:.75rem 0 .25rem;list-style:none;display:flex}.project-gallery__figure{flex-direction:column;gap:.5rem;display:flex}.project-gallery__image{border:1px solid var(--border);background:#fff;border-radius:2px;width:100%}.project-gallery__caption{color:var(--text-muted);align-items:baseline;gap:.5rem;font-size:.78rem;line-height:1.45;display:flex}.project-gallery__index{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text);opacity:.55;flex-shrink:0;font-size:.65rem}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:3rem;display:grid}.contact-info{flex-direction:column;gap:1.5rem;display:flex}.contact-item__label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.35rem;font-size:.7rem}.contact-item__value{font-size:1rem}.contact-item__value a{border-bottom:1px solid var(--border);transition:border-color .2s}.contact-item__value a:hover{border-color:var(--text-muted)}.contact-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem}.form-group input,.form-group textarea{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);font-family:var(--font-sans);resize:vertical;outline:none;padding:.85rem 1rem;font-size:.95rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--text-muted)}.form-group textarea{min-height:140px}.submit-btn{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--text);color:var(--bg);cursor:pointer;border:none;align-self:flex-start;padding:.85rem 1.5rem;font-size:.8rem;transition:opacity .2s}.submit-btn:hover{opacity:.85}.form-note{color:var(--text-muted);margin-top:.5rem;font-size:.8rem}.footer{border-top:1px solid var(--border);font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-muted);justify-content:space-between;align-items:center;padding:2rem;font-size:.7rem;display:flex}.footer__social{gap:1.25rem;display:flex}.footer__social a{transition:color .2s}.footer__social a:hover{color:var(--text)}.footer__social svg{fill:currentColor;width:18px;height:18px}@media (width<=1024px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.nav{border-bottom:1px solid var(--border);background:#0d0d0dfa;padding-inline:.75rem}.nav__list{letter-spacing:.05em;flex-wrap:nowrap;gap:.65rem;font-size:.62rem}.nav__link--cta{white-space:nowrap;padding:.4rem .65rem}.timeline__item{grid-template-columns:1fr;gap:.5rem}.portfolio-grid{grid-template-columns:1fr}.resume-profile{text-align:center;grid-template-columns:1fr;justify-items:center;gap:1.25rem}.resume-profile__meta{word-break:break-word}.container{width:min(var(--max-width), calc(100% - 1.5rem))}.contact-grid{grid-template-columns:1fr}.footer{text-align:center;flex-direction:column;gap:1rem}}
