/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--line: 1px;--radius: 4px;--shadow: none}:root,:root[data-theme=light]{color-scheme:light;--bg: #F3F5F7;--surface: #FFFFFF;--bg-hover: #EAF0F6;--text: #15212D;--muted: #5B6C7C;--border: #D8DFE6;--accent: #0E5AA7}:root[data-theme=dark]{color-scheme:dark;--bg: #10161D;--surface: #161E27;--bg-hover: #1C2733;--text: #D8E0E8;--muted: #8397A9;--border: #283542;--accent: #4C97E0}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.theme-picker{position:fixed;left:1rem;bottom:1rem;z-index:10;display:flex;gap:.2rem;padding:.35rem .45rem;background:var(--surface);border:1px solid var(--border);border-radius:100vmax;font-family:IBM Plex Mono,Consolas,Monaco,monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.theme-picker button{padding:.2rem .5rem;border:0;border-radius:100vmax;background:none;color:var(--muted);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.theme-picker button:hover{color:var(--accent)}.theme-picker button[aria-pressed=true]{color:var(--text);background:var(--bg-hover)}.lang-switch{position:fixed;right:1rem;bottom:1rem;z-index:10;display:flex;gap:.2rem;padding:.35rem .45rem;background:var(--surface);border:1px solid var(--border);border-radius:100vmax;font-family:IBM Plex Mono,Consolas,Monaco,monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.lang-switch a,.lang-switch span{padding:.2rem .5rem;border-radius:100vmax;text-decoration:none;color:var(--muted)}.lang-switch [aria-current]{color:var(--text);background:var(--bg-hover)}.lang-switch a:hover{color:var(--accent)}.screen{min-height:100dvh;display:grid;place-items:center;padding:clamp(1rem,2.5vw,2rem);padding-bottom:3.5rem}.grid{width:100%;max-width:72rem;height:min(100dvh - 5.5rem,46rem);display:grid;gap:clamp(.7rem,1.4vw,1rem);grid-template-columns:1.05fr 1.16fr;grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"intro projects" "email profiles"}.projects{grid-area:projects;min-height:0;display:grid;grid-auto-rows:minmax(0,1fr);gap:clamp(.7rem,1.4vw,1rem)}.card{background:var(--surface);border:var(--line) solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(1.25rem,2vw,1.8rem)}.card-intro{grid-area:intro;display:flex;flex-direction:column}.portrait{width:8.5rem;height:8.5rem;object-fit:cover;object-position:50% 18%;border-radius:6px;margin-bottom:clamp(1rem,2.5vh,1.5rem)}h1{margin:0;font-size:clamp(1.6rem,2.2vw,2.05rem);font-weight:650;letter-spacing:-.015em}.role{margin:.4rem 0 0;font-family:IBM Plex Mono,Consolas,Monaco,monospace;font-size:.85rem;color:var(--muted)}.bio{margin:clamp(1rem,2.5vh,1.4rem) 0 0;max-width:56ch;font-size:.93rem;line-height:1.65;color:var(--text)}.fineprint{margin:1rem 0 0;margin-top:auto;padding-top:1rem;font-family:IBM Plex Mono,Consolas,Monaco,monospace;font-size:.72rem;color:var(--muted)}.card-project{position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;text-decoration:none;transition:border-color .2s ease}.card-project:hover{border-color:var(--accent)}.card-project:hover .project-arrow{color:var(--accent);transform:translate(2px,-2px)}.card-project:hover .project-foot{color:var(--accent)}.project-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0}.project-watermark{position:absolute;z-index:-1;right:clamp(1.25rem,2vw,1.8rem);bottom:clamp(1.25rem,2vw,1.8rem);width:9rem;height:9rem;color:var(--muted);opacity:.15;pointer-events:none;transition:opacity .2s ease}.card-project:hover .project-watermark{opacity:.22}.project-tag{font-family:IBM Plex Mono,Consolas,Monaco,monospace;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.project-arrow{flex-shrink:0;color:var(--muted);transition:color .2s ease,transform .2s ease}.project-name{margin:.5rem 0 .45rem;font-size:clamp(1.15rem,1.5vw,1.4rem);font-weight:650;letter-spacing:-.01em}.project-desc{margin:0;font-size:.9rem;line-height:1.6;color:var(--text)}.project-foot{margin:.75rem 0 0;margin-top:auto;padding-top:.75rem;font-family:IBM Plex Mono,Consolas,Monaco,monospace;font-size:.76rem;color:var(--muted);transition:color .2s ease}.profiles{grid-area:profiles;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(.7rem,1.4vw,1rem)}.profile-card{display:flex;align-items:center;gap:.85rem;padding:1rem 1.3rem;text-decoration:none;transition:border-color .2s ease}.profile-card:hover{border-color:var(--accent)}.profile-card:hover .profile-arrow{color:var(--accent);transform:translate(2px,-2px)}.profile-icon{flex-shrink:0;color:var(--muted)}.profile-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.profile-text strong{font-size:.92rem;font-weight:600}.profile-text span{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-arrow{margin-left:auto;color:var(--muted);transition:color .2s ease,transform .2s ease}.card-email{grid-area:email;display:flex;flex-direction:column;justify-content:center;gap:.3rem;text-decoration:none;transition:border-color .2s ease}.card-email:hover{border-color:var(--accent)}.card-email:hover .email-address{color:var(--accent)}.email-label{margin:0;font-family:IBM Plex Mono,Consolas,Monaco,monospace;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.email-address{margin:0;font-family:IBM Plex Mono,Consolas,Monaco,monospace;font-size:.84rem;transition:color .2s ease;overflow-wrap:anywhere}@media (max-height: 44rem){.grid{height:auto}.project-watermark{right:clamp(.625rem,1vw,.9rem);bottom:clamp(.625rem,1vw,.9rem);width:6.75rem;height:6.75rem}}@media (max-height: 50rem) and (min-width: 900px){.portrait{width:6.5rem;height:6.5rem}.bio{font-size:.88rem;line-height:1.55}}@media (max-width: 900px){.screen{padding-bottom:4.5rem}.grid{height:auto;grid-template-columns:1fr;grid-template-rows:none;grid-template-areas:"intro" "projects" "profiles" "email"}.projects{grid-auto-rows:auto}}@media (max-width: 600px){.profiles{grid-template-columns:1fr}}
