@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/ibm-plex-mono-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/ibm-plex-mono-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/vt323-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/vt323-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;font-display:block;src:url(/fonts/material-symbols.woff2)format("woff2")}:root{--ps-black:#e7dfce;--ps-coal:#f5f0e4;--ps-graphite:#ede6d6;--ps-iron:#8c8267;--ps-ash:#8c8267;--ps-bone:#57503f;--ps-paper:#2a2621;--ps-white:#2a2621;--ps-warn:#c4341c;--accent:#c4341c;--font-display:"IBM Plex Mono", "Space Mono", monospace;--font-pixel:"VT323", "Courier New", monospace;--font-mono:"IBM Plex Mono", "Space Mono", monospace;--shadow-hard:4px 4px 0 var(--ps-paper);--shadow-hard-sm:2px 2px 0 var(--ps-paper);--shadow-hard-lg:6px 6px 0 var(--ps-paper);--hairline:#2a26212e;--grid-line:#2a26210f;--ease-snap:cubic-bezier(.2,.8,.2,1);--primary:var(--ps-paper);--secondary:var(--ps-paper);--tertiary:var(--ps-paper);--on-primary:var(--ps-coal);--on-secondary:var(--ps-coal);--on-tertiary:var(--ps-coal);--primary-container:var(--ps-graphite);--on-primary-container:var(--ps-paper);--secondary-container:var(--ps-graphite);--on-secondary-container:var(--ps-paper);--tertiary-container:var(--ps-graphite);--background:var(--ps-black);--on-background:var(--ps-paper);--surface:var(--ps-coal);--on-surface:var(--ps-paper);--on-surface-variant:var(--ps-bone);--surface-container-lowest:var(--ps-black);--surface-container-low:var(--ps-coal);--surface-container:var(--ps-graphite);--surface-container-high:var(--ps-graphite);--surface-container-highest:var(--ps-iron);--outline:var(--ps-ash);--outline-variant:var(--hairline);--surface-bright:var(--ps-coal);--inverse-surface:var(--ps-paper);--inverse-on-surface:var(--ps-coal);--inverse-primary:var(--ps-bone);--emerald-400:var(--accent);--stone-50:var(--ps-paper);--stone-100:var(--ps-paper);--stone-200:var(--ps-paper);--stone-300:var(--ps-bone);--stone-400:var(--ps-ash);--stone-500:var(--ps-ash);--stone-800:var(--hairline);--stone-950:var(--ps-black)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-mono);background-color:var(--background);color:var(--on-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:22px 22px;background-attachment:fixed;line-height:1.55}::selection{background:var(--ps-paper);color:var(--ps-coal)}.material-symbols-outlined{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;direction:ltr;font-family:Material Symbols Outlined;font-size:24px;font-style:normal;font-weight:400;line-height:1;display:inline-block}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;font-family:inherit}.container{max-width:80rem;margin:0 auto;padding:0 1.5rem}.ps-bar{border-top:1px solid var(--ps-paper);border-bottom:1px solid var(--ps-paper);background:repeating-linear-gradient(0deg, var(--ps-paper) 0 1px, var(--ps-black) 1px 3px);max-width:80rem;height:10px;margin:0 auto}@media (width<=480px){.ps-bar{margin:0 1rem}}.section{padding:6rem 0}.section-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ps-paper);margin-bottom:2rem;font-size:2rem;font-weight:700;line-height:1.1}.card{background-color:var(--ps-coal);border:1px solid var(--hairline);transition:border-color .12s var(--ease-snap), box-shadow .12s var(--ease-snap), transform .12s var(--ease-snap);border-radius:0;padding:2rem}.card:hover{border-color:var(--ps-paper);box-shadow:var(--shadow-hard-sm);transform:translate(-1px,-1px)}.card--raised{background-color:var(--ps-coal);border:1px solid var(--ps-paper);box-shadow:var(--shadow-hard);border-radius:0;padding:2.5rem}.icon-badge{border:1px solid var(--ps-paper);background:var(--ps-coal);border-radius:0;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;display:flex}.icon-badge--sm{width:2.5rem;height:2.5rem}.color-primary,.color-secondary,.color-tertiary{background-color:var(--ps-coal)}.color-primary .material-symbols-outlined,.color-secondary .material-symbols-outlined,.color-tertiary .material-symbols-outlined{color:var(--ps-paper)}.card.hover-primary:hover,.card.hover-secondary:hover,.card.hover-tertiary:hover{border-color:var(--ps-paper)}.text-primary,.text-secondary,.text-tertiary{color:var(--ps-paper)}.btn-primary{border:1px solid var(--ps-paper);background:var(--ps-paper);color:var(--ps-coal);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;box-shadow:var(--shadow-hard-sm);transition:transform 80ms var(--ease-snap), box-shadow 80ms var(--ease-snap), background 80ms var(--ease-snap), color 80ms var(--ease-snap);border-radius:0;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.8125rem;font-weight:600;display:inline-flex}.btn-primary:hover{background:var(--ps-coal);color:var(--ps-paper)}.btn-primary:active{box-shadow:0 0 0 var(--ps-paper);transform:translate(2px,2px)}@media (width<=480px){.container{padding:0 1rem}.section{padding:3rem 0}.section-title{font-size:1.5rem}.card{padding:1.25rem}.card--raised{padding:1.5rem}}.main-content{padding-top:6rem;padding-bottom:3rem}@media (width<=480px){.main-content{padding-top:4.5rem;padding-bottom:2rem}}.navbar{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--ps-paper);background-color:#e7dfced9;width:100%;position:fixed;top:0}.navbar-inner{justify-content:space-between;align-items:center;max-width:80rem;margin:0 auto;padding:.75rem 1.5rem;display:flex}.navbar-logo{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:var(--ps-paper);font-size:1.05rem;font-weight:700}.navbar-links{align-items:center;gap:2rem;display:flex}.navbar-links a{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;transition:opacity .12s var(--ease-snap);font-size:.75rem}.navbar-links a.active{color:var(--ps-paper);border-bottom:2px solid var(--ps-paper);padding-bottom:.2rem}.navbar-links a:not(.active){color:var(--ps-ash)}.navbar-links a:not(.active):hover{color:var(--ps-paper)}.navbar-cta{background-color:var(--ps-paper);color:var(--ps-black);border:1px solid var(--ps-paper);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;box-shadow:var(--shadow-hard-sm);transition:transform 80ms var(--ease-snap), box-shadow 80ms var(--ease-snap), background 80ms var(--ease-snap), color 80ms var(--ease-snap);border-radius:0;padding:.4rem 1.25rem;font-size:.75rem;font-weight:600}.navbar-cta:hover{background-color:var(--ps-black);color:var(--ps-paper)}.navbar-cta:active{box-shadow:0 0 0 var(--ps-paper);transform:translate(2px,2px)}.navbar-burger{color:var(--ps-paper);background:0 0;padding:.25rem;display:none}@media (width<=768px){.navbar-links{border-bottom:1px solid var(--ps-paper);background-color:#e7dfcefa;flex-direction:column;gap:1.25rem;padding:1.5rem;display:none;position:absolute;top:100%;left:0;right:0}.navbar-links--open{display:flex}.navbar-links a{color:var(--ps-bone);padding:.5rem 0;font-size:.875rem}.navbar-cta--desktop{display:none}.navbar-burger{display:flex}}.hero{margin-bottom:5rem}.hero-grid{grid-template-columns:1fr 1fr;align-items:center;gap:3rem;display:grid}.hero-content{flex-direction:column;gap:1.5rem;display:flex}.hero-badge{background-color:var(--accent);color:var(--ps-coal);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;border-radius:0;align-self:flex-start;padding:.3rem .75rem;font-size:.6875rem;font-weight:700;display:inline-block}.hero-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.005em;color:var(--ps-white);font-size:3.5rem;font-weight:700;line-height:1}.hero-title .accent{color:var(--accent)}.hero-description{font-family:var(--font-mono);color:var(--on-surface-variant);max-width:36rem;font-size:1rem;line-height:1.6}.hero-actions{gap:1rem;padding-top:1rem;display:flex}.hero-btn-primary{background-color:var(--ps-paper);color:var(--ps-black);border:1px solid var(--ps-paper);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;box-shadow:var(--shadow-hard-sm);transition:transform 80ms var(--ease-snap), box-shadow 80ms var(--ease-snap), background 80ms var(--ease-snap), color 80ms var(--ease-snap);border-radius:0;align-items:center;gap:.5rem;padding:.9rem 2rem;font-size:.8125rem;font-weight:600;display:flex}.hero-btn-primary:hover{background-color:var(--ps-black);color:var(--ps-paper)}.hero-btn-primary:active{box-shadow:0 0 0 var(--ps-paper);transform:translate(2px,2px)}.hero-btn-primary .material-symbols-outlined{transition:transform .2s}.hero-btn-primary:hover .material-symbols-outlined{transform:translate(4px)}.hero-btn-secondary{background:var(--ps-black);border:1px solid var(--ps-paper);color:var(--ps-paper);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;transition:background-color 80ms var(--ease-snap), color 80ms var(--ease-snap);border-radius:0;align-items:center;gap:.5rem;padding:.9rem 2rem;font-size:.8125rem;font-weight:600;display:flex}.hero-btn-secondary:hover{background-color:var(--ps-paper);color:var(--ps-black)}.hero-image-wrapper{position:relative}.hero-image-glow{display:none}.hero-image-container{aspect-ratio:4/5;background-color:var(--ps-coal);border:1px solid var(--ps-paper);box-shadow:var(--shadow-hard);border-radius:0;position:relative;overflow:hidden}.hero-image-container img{object-fit:cover;filter:grayscale()contrast(1.1);width:100%;height:100%;transition:filter .5s}.hero-image-container:hover img{filter:grayscale(0%)contrast(1.05)}.hero-image-overlay{background-color:var(--ps-black);border:1px solid var(--ps-paper);border-radius:0;padding:1rem 1.25rem;position:absolute;bottom:1.5rem;left:1.5rem;right:1.5rem}.hero-image-overlay-inner{justify-content:space-between;align-items:center;display:flex}.hero-overlay-label{color:var(--ps-ash);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;font-size:.6875rem;font-weight:700}.hero-overlay-value{color:var(--ps-paper);margin-top:.25rem;font-weight:500}.hero-overlay-icon{background-color:var(--ps-black);border:1px solid var(--ps-paper);border-radius:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex}.hero-overlay-icon .material-symbols-outlined{color:var(--ps-paper)}@media (width<=480px){.hero-title{font-size:2rem}.hero-description{font-size:.9375rem}.hero-actions{flex-direction:column}.hero-btn-primary,.hero-btn-secondary{justify-content:center;padding:.875rem 1.5rem}.hero-image-overlay{padding:1rem;bottom:.75rem;left:.75rem;right:.75rem}.hero-overlay-value{font-size:.8125rem}}@media (width<=1024px){.hero-grid{grid-template-columns:1fr}.hero-title{font-size:2.5rem}}@media (width>=1025px){.hero-title{font-size:4.5rem}}.experience{background-color:var(--surface-container-lowest)}.experience-layout{flex-direction:column;gap:4rem;display:flex}.experience-header p{color:var(--on-surface-variant);line-height:1.6}.experience-stats{background-color:var(--ps-coal);border:1px solid var(--ps-paper);box-shadow:var(--shadow-hard-sm);border-radius:0;margin-top:0;padding:2rem}.experience-stats-number{font-family:var(--font-display);color:var(--ps-paper);font-size:2.25rem;font-style:normal;font-weight:700}.experience-stats p:last-child{color:var(--ps-bone);text-transform:uppercase;letter-spacing:.08em;margin-top:.5rem;font-size:.8125rem;font-weight:500}.experience-timeline{flex:1;position:relative}.experience-line{background:var(--hairline);width:1px;position:absolute;top:0;bottom:0;left:1.5rem}.experience-items{flex-direction:column;gap:4rem;display:flex}.experience-item{padding-left:4rem;position:relative}.experience-dot{border:2px solid var(--ps-black);z-index:1;border-radius:0;width:.85rem;height:.85rem;position:absolute;top:.35rem;left:.75rem}.experience-dot.text-primary,.experience-dot.text-secondary,.experience-dot.text-tertiary{background-color:var(--accent);box-shadow:none}.experience-item-content{transition:transform .2s var(--ease-snap)}.experience-item:hover .experience-item-content{transform:translate(.5rem)}.experience-expand-hint{text-transform:uppercase;letter-spacing:.12em;color:var(--ps-ash);align-items:center;gap:.25rem;margin-top:.5rem;font-size:.6875rem;transition:opacity .3s;display:inline-flex}.experience-expand-hint .material-symbols-outlined{font-size:1rem;transition:transform .3s}.experience-item:hover .experience-expand-hint{opacity:0}.experience-item:hover .experience-expand-hint .material-symbols-outlined{transform:rotate(180deg)}.experience-date{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--ps-ash);margin-bottom:.5rem;font-size:.6875rem;font-weight:700;display:block}.experience-role{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.02em;color:var(--ps-paper);margin-bottom:.5rem;font-size:1.35rem;font-weight:700}.experience-company{color:var(--ps-ash);margin-bottom:1rem;font-weight:500}.experience-description{color:var(--on-surface-variant);opacity:0;grid-template-rows:0fr;max-width:42rem;line-height:1.6;transition:grid-template-rows .4s,opacity .4s;display:grid}.experience-description-inner{overflow:hidden}.experience-item:hover .experience-description{opacity:1;grid-template-rows:1fr}.experience-tags{gap:.5rem;margin-top:1rem;display:flex}.experience-tag{background-color:var(--ps-black);border:1px solid var(--ps-iron);font-family:var(--font-mono);color:var(--ps-bone);text-transform:uppercase;letter-spacing:.12em;border-radius:0;padding:.3rem .7rem;font-size:.625rem;font-weight:700}@media (width<=480px){.experience-items{gap:2.5rem}.experience-role{font-size:1.125rem}.experience-tags{flex-wrap:wrap}.experience-description{opacity:1;grid-template-rows:1fr}.experience-expand-hint{display:none}}@media (width>=768px){.experience-layout{flex-direction:row}.experience-header{width:33.333%}.experience-timeline{width:66.666%}}.skills{padding-top:6rem;padding-bottom:6rem}.skills-header{justify-content:space-between;align-items:flex-end;margin-bottom:4rem;display:flex}.skills-header p{color:var(--on-surface-variant);margin-top:.5rem}.skills-grid{grid-template-columns:repeat(1,1fr);gap:2rem;display:grid}.skill-card-top{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.skill-card h3{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ps-paper);margin-bottom:1rem;font-size:1.1rem;font-weight:700}.skill-list{flex-direction:column;gap:.75rem;list-style:none;display:flex}.skill-row{justify-content:space-between;align-items:center;display:flex}.skill-name{font-family:var(--font-mono);color:var(--on-surface-variant);font-size:.8125rem}.skill-detail{color:var(--ps-ash);text-transform:uppercase;letter-spacing:.1em;font-size:.6875rem}.skill-dots{gap:.25rem;display:flex}.skill-dot{border-radius:0;width:.7rem;height:.7rem}.skill-dot.filled.primary,.skill-dot.filled.secondary,.skill-dot.filled.tertiary{background-color:var(--ps-paper)}.skill-dot.empty.primary,.skill-dot.empty.secondary,.skill-dot.empty.tertiary{background-color:#2a262138}.skill-dot.half.primary,.skill-dot.half.secondary,.skill-dot.half.tertiary{background:linear-gradient(to right, var(--ps-paper) 50%, #2a262138 50%)}@media (width<=480px){.skills-header{flex-direction:column;align-items:flex-start;gap:.5rem;margin-bottom:2rem}}@media (width>=768px){.skills-grid{grid-template-columns:repeat(2,1fr)}}.about-me{padding-top:6rem;padding-bottom:6rem}.about-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}.about-card-icon{margin-bottom:1.25rem}.about-card h3{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ps-paper);margin-bottom:.75rem;font-size:1.1rem;font-weight:700}.about-card p{color:var(--on-surface-variant);font-size:.9375rem;line-height:1.65}.about-card:hover{border-color:var(--ps-paper)}.interests-card h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--ps-paper);margin-bottom:1.25rem;font-size:1.4rem;font-weight:700}.interests-tags{flex-wrap:wrap;gap:.75rem;display:flex}.interest-tag{background-color:var(--ps-black);border:1px solid var(--ps-iron);color:var(--on-surface-variant);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;border-radius:0;padding:.4rem 1rem;font-size:.8125rem;font-weight:500}.motto{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.quote-icon{color:var(--ps-paper);margin-bottom:1rem;font-size:3rem}.motto blockquote{font-family:var(--font-mono);color:var(--ps-paper);max-width:30rem;font-size:1.15rem;font-style:italic;font-weight:500;line-height:1.6}.academic{background-color:var(--surface)}.academic-grid{grid-template-columns:1fr;gap:5rem;display:grid}.research-heading{margin-top:3rem}.education-list{flex-direction:column;gap:2rem;display:flex}.education-item{gap:1.5rem;display:flex}.education-number{border:1px solid var(--ps-paper);width:3rem;height:3rem;font-family:var(--font-pixel);color:var(--ps-paper);border-radius:0;flex-shrink:0;justify-content:center;align-items:center;font-size:1.35rem;font-weight:400;display:flex}.education-details h4{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ps-paper);font-size:1.1rem;font-weight:700}.education-details .school{color:var(--ps-ash)}.education-details .focus{color:var(--on-surface-variant);margin-top:.5rem;font-size:.875rem;line-height:1.6}.education-details .focus2{color:var(--on-surface-variant);margin-top:1.5rem;font-size:.8rem;font-style:italic;line-height:1.6}.academic-right{flex-direction:column;gap:2rem;display:flex}.competence-card h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;color:var(--ps-paper);margin-bottom:1.5rem;font-size:1.4rem;font-weight:700}.competence-list{flex-direction:column;gap:1.5rem;display:flex}.competence-item{gap:1rem;display:flex}.competence-item h4{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ps-paper);margin-bottom:.25rem;font-size:1rem;font-weight:700}.competence-item p{color:var(--on-surface-variant);font-size:.875rem;line-height:1.6}@media (width<=480px){.academic-grid{gap:3rem}.education-details h4{font-size:1.0625rem}.competence-card h3{font-size:1.25rem}}@media (width>=1024px){.academic-grid{grid-template-columns:1fr 1fr}}.footer{background-color:var(--ps-black);border-top:1px solid var(--ps-paper);width:100%;padding:3rem 1.5rem}.footer-inner{flex-direction:column;align-items:center;gap:2rem;max-width:80rem;margin:0 auto;display:flex}.footer-name{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:var(--ps-paper);font-size:1rem;font-weight:700}.footer-copy{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ps-ash);font-size:.75rem}.footer-links{gap:1.5rem;display:flex}.footer-links a{color:var(--ps-ash);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;text-underline-offset:4px;transition:opacity .12s var(--ease-snap);font-size:.75rem;text-decoration:underline}.footer-links a:hover{color:var(--ps-paper);opacity:1}@media (width>=768px){.footer-inner{flex-direction:row;justify-content:space-between}}.footer-privacy{max-width:80rem;font-family:var(--font-mono);color:var(--ps-ash);margin:2rem auto 0;font-size:.75rem}.footer-privacy summary{cursor:pointer;text-transform:uppercase;letter-spacing:.1em;text-underline-offset:4px;text-decoration:underline}.footer-privacy summary:hover{color:var(--ps-paper)}.footer-privacy p{margin-top:1rem;line-height:1.6}.footer-privacy a{text-underline-offset:3px;text-decoration:underline}.rope-climber{z-index:1000;pointer-events:none;filter:saturate(1.35)contrast(1.2)drop-shadow(3px 3px #2a2621);width:110px;position:fixed;top:0;right:1rem}.rope-climber__character{transition:top .15s linear;position:absolute;left:0}.rope-climber__character svg{animation:3s ease-in-out infinite hoverboard-float}@keyframes hoverboard-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.rc-hover-glow{animation:2s ease-in-out infinite glow-pulse}@keyframes glow-pulse{0%,to{opacity:.15;transform:scaleX(1)}50%{opacity:.4;transform:scaleX(1.1)}}.rc-jet{animation:.4s ease-in-out infinite alternate jet-flicker}.rc-jet:nth-child(2){animation-delay:.15s}.rc-jet:nth-child(3){animation-delay:.3s}@keyframes jet-flicker{0%{opacity:.6}to{opacity:1;filter:brightness(1.4)}}.rc-particle{animation:1.5s ease-out infinite particle-drift}.rc-particle--1{animation-delay:0s}.rc-particle--2{animation-delay:.5s}.rc-particle--3{animation-delay:1s}@keyframes particle-drift{0%{opacity:.6;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}.rc-sparkle{opacity:.8;animation:2s ease-in-out infinite sparkle-float}.rc-sparkle--1{animation-delay:0s}.rc-sparkle--2{animation-delay:.6s}.rc-sparkle--3{animation-delay:1.2s}@keyframes sparkle-float{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.rc-lightbulb{animation:2s ease-in-out infinite bulb-glow}@keyframes bulb-glow{0%,to{opacity:.8}50%{opacity:1;filter:brightness(1.2)}}.rc-ray{animation:1.5s ease-in-out infinite ray-pulse}.rc-ray:nth-child(odd){animation-delay:.3s}@keyframes ray-pulse{0%,to{opacity:.4}50%{opacity:1}}.rc-type-char{animation:1s step-end infinite type-blink}.rc-type-char--1{animation-delay:0s}.rc-type-char--2{animation-delay:.3s}.rc-type-char--3{animation-delay:.6s}@keyframes type-blink{0%,49%{opacity:1}50%,to{opacity:0}}.rc-draw-line{stroke-dasharray:20;stroke-dashoffset:20px;animation:2s ease-in-out infinite draw}@keyframes draw{0%{stroke-dashoffset:20px}50%{stroke-dashoffset:0}to{stroke-dashoffset:-20px}}.rc-key--0{animation:.8s ease-in-out infinite key-press}.rc-key--1{animation:.8s ease-in-out .2s infinite key-press}.rc-key--2{animation:.8s ease-in-out .4s infinite key-press}.rc-key--3{animation:.8s ease-in-out .6s infinite key-press}@keyframes key-press{0%,70%,to{transform:translateY(0)}35%{filter:brightness(.85);transform:translateY(1px)}}.rc-note{animation:3s ease-in-out infinite note-float}.rc-note--1{animation-delay:0s}.rc-note--2{animation-delay:1s}.rc-note--3{animation-delay:2s}@keyframes note-float{0%{opacity:0;transform:translate(0)}20%{opacity:1}to{opacity:0;transform:translate(5px,-20px)}}@media (width<=768px){.rope-climber{display:none}}.cv-page{background:var(--background);min-height:100vh;color:var(--on-surface);flex-direction:column;align-items:center;gap:2rem;padding:2rem;display:flex}.cv-download-btn{z-index:100;position:fixed;top:1.5rem;right:1.5rem}.cv-document{flex-direction:column;gap:2rem;width:210mm;display:flex}.cv-page-block{background-color:var(--surface-container);border:1px solid var(--outline-variant);box-sizing:border-box;border-radius:1.5rem;width:210mm;height:297mm;display:flex;overflow:hidden}.cv-sidebar{background-color:var(--primary-container);flex-direction:column;flex-shrink:0;align-items:center;width:220px;padding:2rem 1.5rem;display:flex}.cv-photo-wrap{border:3px solid var(--primary);border-radius:50%;flex-shrink:0;width:110px;height:110px;margin-bottom:1rem;overflow:hidden}.cv-photo{object-fit:cover;width:100%;height:100%}.cv-name{color:var(--on-primary-container);text-align:center;margin-bottom:.5rem;font-size:1.25rem;font-weight:900}.cv-motto{color:var(--on-primary-container);opacity:.8;text-align:center;font-size:.75rem;font-style:italic;line-height:1.5}.cv-divider{background-color:var(--primary);opacity:.4;width:100%;height:1px;margin:.9rem 0}.cv-sidebar-heading{text-transform:uppercase;letter-spacing:.08em;color:var(--on-primary-container);align-self:flex-start;margin-bottom:.75rem;font-size:.875rem;font-weight:900}.cv-skill-group-label{color:var(--primary);text-transform:uppercase;letter-spacing:.06em;align-self:center;margin-top:.5rem;margin-bottom:.3rem;font-size:.75rem;font-weight:700}.cv-skill-list{flex-direction:column;gap:.4rem;width:100%;list-style:none;display:flex}.cv-skill-row{color:var(--on-primary-container);align-items:center;gap:.4rem;font-size:.75rem;display:flex}.cv-skill-row span:first-child{flex:1}.cv-skill-sub{opacity:.6;flex-shrink:0;font-size:.65rem}.cv-dots{flex-shrink:0;gap:2px;display:flex}.cv-dot{background-color:#2a262138;border-radius:0;width:8px;height:8px}.cv-dot.filled{background-color:var(--primary)}.cv-dot.half{background:linear-gradient(to right, var(--primary) 50%, #2a262138 50%)}.cv-personalia-list{flex-direction:column;gap:.75rem;width:100%;list-style:none;display:flex}.cv-personalia-list li{color:var(--on-primary-container);align-items:center;gap:.5rem;font-size:.75rem;display:flex}.cv-personalia-list .material-symbols-outlined,.cv-icon{color:var(--primary);font-size:1rem}.cv-content{flex-direction:column;flex:1;gap:.5rem;padding:1.5rem 2rem;display:flex}.cv-section{flex-direction:column;gap:.55rem;display:flex}.cv-section-heading{border:1px solid var(--ps-paper);background:repeating-linear-gradient(0deg, var(--ps-paper) 0 2px, var(--ps-coal) 2px 5px);justify-content:center;align-items:center;padding:5px 4px;display:flex}.cv-section-heading span{background:var(--ps-coal);text-transform:uppercase;letter-spacing:.1em;color:var(--ps-paper);padding:2px 12px;font-size:1rem;font-weight:700}.cv-body{color:var(--on-surface-variant);font-size:.8125rem;line-height:1.5}.cv-bullet-list{flex-direction:column;gap:.3rem;padding-left:1.1rem;display:flex}.cv-bullet-list li{color:var(--on-surface-variant);font-size:.8125rem;line-height:1.45}.cv-job{border-bottom:1px solid var(--outline-variant);flex-direction:column;gap:.15rem;padding-bottom:.5rem;display:flex}.cv-job:last-child{border-bottom:none;padding-bottom:0}.cv-edu-item{flex-direction:column;gap:.2rem;padding-bottom:.75rem;display:flex}.cv-job-title{color:var(--ps-paper);text-transform:uppercase;letter-spacing:.04em;font-size:.875rem;font-weight:700}.cv-job-meta{color:var(--stone-400);font-size:.8rem}@media (width<=768px){.cv-page{padding:1rem}.cv-document{width:100%}.cv-page-block{flex-direction:column;width:100%;height:auto}.cv-sidebar{width:100%;padding:1.5rem}.cv-content{padding:1.5rem}.cv-download-btn{position:sticky;top:.75rem}}@page{margin:0;size:A4}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.cv-download-btn{display:none}.cv-page{min-height:unset;gap:0;padding:0;background:0 0!important}.cv-document{gap:0;width:210mm}.cv-page-block{page-break-after:always;break-after:page;border:none;border-radius:0;flex-direction:row;width:210mm;height:297mm;overflow:hidden}.cv-sidebar{width:220px;padding:2rem 1.5rem}.cv-content{padding:1.5rem 2rem}.cv-page-block:last-child{page-break-after:avoid;break-after:avoid}}
