@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-ext.woff2) format("woff2")}@font-face{font-family:Karla;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/karla-latin.woff2) format("woff2")}@font-face{font-family:Karla;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/karla-latin-ext.woff2) format("woff2")}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}[data-theme=light]{--bg: #ffffff;--text: #111111;--muted: #6e6e6e;--hairline: #e8e8e8;--accent: #5b8db8}[data-theme=dark]{--bg: #0b0f1a;--text: #f2f4f8;--muted: #9aa3b2;--hairline: #232c40;--accent: #7fa8c9}body{font-family:Karla,Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.app{min-height:100vh;display:flex;flex-direction:column}main{flex:1;display:flex;flex-direction:column}@keyframes fade{0%{opacity:0}to{opacity:1}}.page{flex:1;max-width:1020px;width:100%;margin:0 auto;padding:3rem 1.5rem 4rem;animation:fade .3s ease}.label{display:block;font-size:.75rem;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem}.title{font-size:clamp(2.25rem,1.4rem + 3.5vw,3.5rem);font-weight:800;letter-spacing:-.03em;margin-bottom:1.5rem}.tagline{font-size:1.125rem;color:var(--text)}.subtitle{color:var(--muted);margin-bottom:2rem}.header{border-bottom:1px solid var(--hairline)}.header-inner{max-width:1020px;margin:0 auto;padding:1rem 1.5rem;display:flex;align-items:center;gap:1.5rem}.logo{display:flex;align-items:center;gap:.5rem;font-weight:700;flex-shrink:0}.header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0;margin-left:auto}.header-actions button{font:inherit;background:none;cursor:pointer;transition:border-color .2s ease,color .2s ease}.lang-pill{border:1px solid var(--hairline);border-radius:999px;color:var(--text);font-size:.85rem;min-height:2.75rem;padding:.4rem .9rem}.lang-pill:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle{width:2.75rem;height:2.75rem;border:1px solid var(--hairline);border-radius:50%;color:var(--text);font-size:1rem;display:inline-flex;align-items:center;justify-content:center}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.card{border:1px solid var(--hairline);padding:1.25rem;margin-bottom:1.5rem}.divider{border:none;border-top:1px solid var(--hairline);margin:2rem 0}.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.tag{font-size:.8rem;color:var(--muted);border:1px solid var(--hairline);border-radius:999px;padding:.15rem .6rem}.project{margin-bottom:2.5rem}.project-tagline{color:var(--accent)}ul.bullets{padding-left:1.25rem;margin:.75rem 0}ul.bullets li{margin-bottom:.25rem}.meta{color:var(--muted);font-size:.9rem}.badge{color:var(--accent);font-size:.85rem;white-space:nowrap}details.tech{border:1px solid var(--hairline);border-radius:14px;padding:.875rem 1.125rem;margin:1rem 0}details.tech summary{cursor:pointer;color:var(--muted);list-style:none;display:flex;align-items:center;justify-content:space-between;gap:.75rem}details.tech summary::marker{display:none}details.tech summary::-webkit-details-marker{display:none}details.tech summary:after{content:"";flex-shrink:0;width:.55em;height:.55em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-1px,-1px);transition:transform .2s ease}details.tech[open] summary:after{transform:rotate(225deg) translate(-1px,-1px)}details.tech p{color:var(--muted);margin-top:.75rem}.pills{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0}.pill{display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;padding:.625rem 1.25rem;border:1px solid var(--hairline);border-radius:999px;color:var(--text);font-size:.95rem;transition:border-color .2s ease,color .2s ease}.pill:hover{border-color:var(--accent);color:var(--accent)}.pills-small{margin:0 0 1rem;gap:.5rem}.pills-small .pill{min-height:0;padding:.375rem .875rem;font-size:.8rem}.links{display:flex;flex-wrap:wrap;gap:1.25rem;margin:1rem 0}.links a{color:var(--accent);font-size:.9rem}.links a:hover,.next a:hover,.project-link:hover{color:var(--accent)}.project-link{color:var(--muted)}.diplomas{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.diploma{border:1px solid var(--hairline)}.diploma img{width:100%;display:block;aspect-ratio:4 / 3;object-fit:cover;border-bottom:1px solid var(--hairline)}.diploma-body{padding:.75rem 1rem}.diploma-body h4{font-size:.95rem;font-weight:600}.diploma-body span{font-size:.8rem;color:var(--muted)}.footer{border-top:1px solid var(--hairline)}.footer-inner{max-width:1020px;margin:0 auto;padding:1.25rem 1.5rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.9rem}.row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}h3.item-title{font-size:1.1rem;font-weight:600}.job{margin-bottom:2rem}a:focus-visible,button:focus-visible,.pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (min-width: 768px){.page{padding-left:2rem;padding-right:2rem}}@media (max-width: 640px){.diplomas{grid-template-columns:1fr}.header-inner{flex-wrap:wrap}}@media (prefers-reduced-motion: reduce){.page{animation:none}}
