@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#161826;--color-surface:#232532;--color-text:#e9e9ed;--color-accent:#9184d9;--color-divider:#e9e9ed29;--color-neutral-100:#f3f5fe;--color-neutral-200:#e4e7f5;--color-neutral-300:#cfd3e5;--color-neutral-400:#b2b6ca;--color-neutral-500:#9397ab;--color-neutral-600:#75798c;--color-neutral-700:#595d6c;--color-neutral-800:#3f424d;--color-neutral-900:#292b31;--color-accent-100:#f5f4ff;--color-accent-300:#d2cefd;--color-accent-400:#b5abfc;--color-accent-700:#5d5294;--color-accent-800:#423a6a;--color-accent-900:#2b2741;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--shadow-sm:0 0 0 1px #3f424d;--shadow-md:0 0 0 1px #595d6c, 0 6px 18px #0000008c;font-family:Inter,system-ui,sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:82px}body{background:var(--color-bg);min-width:320px;color:var(--color-text);margin:0;font:400 15px/1.55 Inter,system-ui,sans-serif}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:3px}button{color:inherit}svg{flex:none;display:block}::selection{background:color-mix(in srgb, var(--color-accent) 35%, transparent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.site-shell{background:radial-gradient(900px 520px at 8% -10%, var(--color-accent-900), transparent 70%), var(--color-bg);min-height:100vh;overflow:clip}.wrap{width:min(100% - 64px,1160px);margin-inline:auto}.skip-link{z-index:100;background:var(--color-text);color:var(--color-bg);border-radius:4px;padding:10px 14px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:none}.site-header{z-index:20;border-bottom:1px solid color-mix(in srgb, var(--color-text) 8%, transparent);background:color-mix(in srgb, var(--color-bg) 86%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0}.nav{align-items:center;gap:20px;min-height:58px;display:flex}.nav-brand{flex:none;align-items:center;gap:10px;margin-right:auto;font-size:15px;font-weight:500;text-decoration:none;display:flex}.brand-mark{border:1px solid var(--color-accent);width:27px;height:27px;color:var(--color-accent);border-radius:4px;place-items:center;font-size:11px;display:grid}.nav-links{align-items:center;gap:clamp(10px,1.8vw,22px);display:flex}.nav-links a{color:var(--color-neutral-300);font-size:13px;text-decoration:none;transition:color .16s}.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--color-accent-300)}.language-switch,.filter-switch{border:1px solid var(--color-divider);border-radius:var(--radius-md);flex:none;margin:0;padding:0;display:inline-flex;overflow:hidden}.language-switch label,.filter-switch label{cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;min-height:30px;padding:5px 10px;font-size:12px;display:inline-flex;position:relative}.language-switch label+label,.filter-switch label+label{border-left:1px solid var(--color-divider)}.language-switch input,.filter-switch input{opacity:0;width:1px;height:1px;position:absolute}.language-switch label.selected,.filter-switch label.selected{color:var(--color-accent-300);box-shadow:inset 0 0 0 1px var(--color-accent)}:is(.language-switch label:has(input:focus-visible),.filter-switch label:has(input:focus-visible)){outline:2px solid var(--color-accent);outline-offset:-2px}.hero{grid-template-columns:minmax(0,1.35fr) minmax(280px,.9fr);align-items:end;gap:56px;padding-block:72px 64px;display:grid}.hero-copy{flex-direction:column;align-items:flex-start;gap:17px;min-width:0;padding-bottom:12px;display:flex}.kicker{color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.hero h1{letter-spacing:0;margin:0;font-size:64px;font-weight:500;line-height:1}.hero-role{max-width:40ch;color:var(--color-accent-300);margin:0;font-size:19px;line-height:1.4}.hero-summary{max-width:60ch;color:var(--color-neutral-300);text-wrap:pretty;margin:0;font-size:15px;line-height:1.65}.hero-actions{flex-wrap:wrap;align-items:center;gap:9px;margin-top:5px;display:flex}.btn{border-radius:var(--radius-md);border:1px solid #0000;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:8px 13px;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{border-color:var(--color-accent);color:var(--color-accent-300)}.btn-primary:hover{background:color-mix(in srgb, var(--color-accent) 14%, transparent)}.btn-secondary{border-color:var(--color-divider)}.btn-secondary:hover,.icon-button:hover{background:color-mix(in srgb, var(--color-text) 7%, transparent)}.btn-ghost{color:var(--color-accent-300);padding-inline:9px}.btn-ghost:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:min(100%,620px);margin:19px 0 0;display:grid}.facts div{border-top:1px solid var(--color-accent);flex-direction:column;gap:4px;min-width:0;padding-top:10px;display:flex}.facts dt{color:var(--color-neutral-500);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.facts dd{color:var(--color-neutral-200);margin:0;font-size:13px}.portrait{aspect-ratio:4/5;border-radius:var(--radius-lg);background:var(--color-neutral-200);box-shadow:var(--shadow-md);margin:0;position:relative;overflow:hidden}.portrait:after{background:linear-gradient(to top, var(--color-bg), transparent);content:"";pointer-events:none;height:36%;position:absolute;inset:auto 0 0}.portrait img{object-fit:cover;object-position:50% 12%;filter:saturate(.9)brightness(.94);width:100%;height:100%}.portrait figcaption{z-index:1;color:var(--color-neutral-200);align-items:center;gap:7px;font-size:12px;display:flex;position:absolute;bottom:14px;left:16px}.location-dot{background:var(--color-accent);width:7px;height:7px;box-shadow:0 0 10px var(--color-accent);border-radius:50%}.section-block{padding-block:56px;scroll-margin-top:78px}.section-heading{align-items:baseline;gap:14px;min-width:0;margin-bottom:26px;display:flex}.section-number{color:var(--color-accent);font-variant-numeric:tabular-nums;font-size:12px}.section-heading h2{letter-spacing:0;margin:0;font-size:30px;font-weight:500;line-height:1.15}.section-note{color:var(--color-neutral-500);font-size:13px}.experience-layout{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start;gap:32px;display:grid}.role-list{flex-direction:column;gap:2px;display:flex;position:sticky;top:76px}.role-tab{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;grid-template-columns:3px minmax(0,1fr);gap:12px;min-width:0;padding:9px 12px 9px 0;display:grid}.role-tab:hover{background:color-mix(in srgb, var(--color-text) 5%, transparent)}.role-tab.active{background:color-mix(in srgb, var(--color-accent) 9%, transparent)}.role-indicator{background:var(--color-neutral-800);border-radius:2px}.role-tab.active .role-indicator{background:var(--color-accent)}.role-tab>span:last-child{flex-direction:column;gap:1px;min-width:0;display:flex}.role-company{overflow-wrap:anywhere;color:var(--color-neutral-400);font-size:14px;font-weight:500}.role-tab.active .role-company{color:var(--color-text)}.role-period{color:var(--color-neutral-500);font-variant-numeric:tabular-nums;font-size:11px}.role-panel,.skill-card,.contact-item{border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.role-panel{flex-direction:column;gap:14px;min-height:420px;padding:26px 28px;display:flex}.role-panel-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.role-panel-head h3{margin:4px 0 1px;font-size:24px;font-weight:500;line-height:1.2}.role-panel-head p{color:var(--color-accent-300);margin:0;font-size:14px}.role-controls{gap:6px;display:flex}.icon-button{border:1px solid var(--color-divider);cursor:pointer;background:0 0;border-radius:6px;flex:none;place-items:center;width:36px;height:36px;display:grid}.bullet-list{flex-direction:column;gap:11px;margin:7px 0 0;padding:0;list-style:none;display:flex}.bullet-list li{color:var(--color-neutral-200);text-wrap:pretty;padding-left:22px;font-size:14px;line-height:1.6;position:relative}.bullet-list li:before{background:var(--color-accent);content:"";width:8px;height:1px;position:absolute;top:.8em;left:1px}.tag-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.role-tags{margin-top:auto;padding-top:8px}.tag{letter-spacing:0;border-radius:6px;align-items:center;gap:5px;min-height:23px;padding:3px 9px;font-size:11px;line-height:1.3;display:inline-flex}.tag-neutral{background:var(--color-neutral-800);color:var(--color-neutral-100)}.tag-accent{background:var(--color-accent-800);color:var(--color-accent-100)}.tag-outline{border:1px solid var(--color-accent);color:var(--color-accent-300)}.section-hint{color:var(--color-neutral-500);align-items:center;gap:6px;margin:-16px 0 24px;font-size:13px;display:flex}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px;display:grid}.skill-card{flex-direction:column;gap:12px;min-width:0;padding:18px 20px;display:flex}.skill-card h3{align-items:center;gap:10px;margin:0;font-size:15px;font-weight:500;display:flex}.skill-card h3 svg,.translation-mark{color:var(--color-accent)}.translation-mark{font-size:18px}.skill-tag{border:1px solid var(--color-accent-800);min-height:27px;color:var(--color-neutral-200);cursor:pointer;background:0 0}.skill-tag span{color:var(--color-accent-400);font-size:10px}.skill-tag:not(:disabled):hover,.skill-tag.is-active{border-color:var(--color-accent);background:var(--color-accent-800);color:var(--color-accent-100)}.skill-tag:disabled{background:var(--color-neutral-900);color:var(--color-neutral-500);cursor:default;border-color:#0000}.language-card{gap:15px}.language-level{flex-direction:column;gap:6px;display:flex}.language-level>div{justify-content:space-between;gap:12px;font-size:13px;display:flex}.language-level>div span:last-child{color:var(--color-neutral-400)}.level-track{background:var(--color-neutral-800);border-radius:2px;height:3px;overflow:hidden}.level-track>span{border-radius:inherit;background:var(--color-accent);height:100%;display:block}.project-controls{flex-wrap:wrap;align-items:center;gap:12px;margin:-5px 0 20px;display:flex}.filter-switch{max-width:100%}.filter-switch label{min-height:33px;padding-inline:11px;font-size:12px}.filter-chip{background:var(--color-accent-800);color:var(--color-accent-100);border-radius:6px;align-items:center;gap:8px;padding:4px 6px 4px 10px;font-size:12px;display:inline-flex}.filter-chip button{cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;width:22px;height:22px;display:grid}.filter-chip button:hover{background:color-mix(in srgb, var(--color-accent) 28%, transparent)}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:14px;display:grid}.project-card{border-radius:var(--radius-md);background:var(--color-surface);min-width:0;min-height:220px;box-shadow:var(--shadow-sm);text-align:left;cursor:pointer;border:0;flex-direction:column;align-items:stretch;gap:9px;padding:18px 20px;transition:box-shadow .15s,transform .15s;display:flex}.project-card:hover{box-shadow:0 0 0 1px var(--color-accent), 0 10px 28px #00000073;transform:translateY(-2px)}.project-meta{color:var(--color-neutral-500);justify-content:space-between;align-items:center;gap:10px;display:flex}.project-name{overflow-wrap:anywhere;font-size:18px;font-weight:500;line-height:1.25}.project-kind{color:var(--color-accent-300);font-size:12px}.project-description{color:var(--color-neutral-400);text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:13px;line-height:1.55;display:-webkit-box;overflow:hidden}.project-stack{flex-wrap:wrap;gap:5px;margin-top:auto;padding-top:4px;display:flex}.project-stack span{border:1px solid var(--color-divider);color:var(--color-neutral-400);border-radius:4px;padding:2px 7px;font-size:10px}.empty-state{color:var(--color-neutral-500);font-size:14px}.table-scroll{max-width:860px;overflow-x:auto}.education-table{border-collapse:collapse;width:100%;font-size:14px}.education-table th{color:var(--color-neutral-400);letter-spacing:.08em;text-align:left;text-transform:uppercase;padding:9px 10px;font-size:11px;font-weight:500}.education-table th:first-child,.education-table td:first-child{width:120px}.education-table td{border-bottom:1px solid color-mix(in srgb, var(--color-text) 8%, transparent);vertical-align:top;padding:9px 10px}.education-table td:first-child,.education-table td:last-child{color:var(--color-neutral-400);font-variant-numeric:tabular-nums;font-size:13px}.education-table tr:hover{background:color-mix(in srgb, var(--color-text) 3%, transparent)}.contact-section{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start;gap:48px;padding-bottom:88px;display:grid}.contact-copy .section-heading{margin-bottom:14px}.contact-copy>p{max-width:24ch;color:var(--color-neutral-200);text-wrap:pretty;margin:0 0 8px;font-size:22px;line-height:1.35}.contact-list{flex-direction:column;gap:8px;display:flex}.contact-item{grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:13px;min-width:0;padding:13px 15px;display:grid}.contact-icon{color:var(--color-accent)}.contact-item>div{flex-direction:column;min-width:0;display:flex}.contact-label,.dialog-label{color:var(--color-neutral-500);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.contact-item a{overflow-wrap:anywhere;color:var(--color-text);font-size:14px;text-decoration:none}.contact-item a:hover,.site-footer a:hover{color:var(--color-accent-300)}.copy-button{min-height:34px;color:var(--color-accent-300);cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:5px;padding:5px 7px;font-size:11px;display:inline-flex}.copy-button:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.site-footer{border-top:1px solid color-mix(in srgb, var(--color-text) 8%, transparent);color:var(--color-neutral-500);justify-content:space-between;gap:20px;padding-block:22px 30px;font-size:12px;display:flex}.site-footer a{text-decoration:none}.project-dialog{border:1px solid var(--color-neutral-700);border-radius:var(--radius-lg);background:var(--color-surface);width:min(600px,100% - 32px);max-width:600px;max-height:min(85vh,760px);color:var(--color-text);padding:0;box-shadow:0 16px 40px #000000a6}.project-dialog::backdrop{background:color-mix(in srgb, var(--color-neutral-900) 72%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-content{flex-direction:column;gap:14px;padding:24px 26px;display:flex}.dialog-top{justify-content:space-between;align-items:center;display:flex}.dialog-content h2{overflow-wrap:anywhere;margin:0;font-size:24px;font-weight:500}.dialog-kind{color:var(--color-accent-300);margin:-10px 0 0;font-size:13px}.dialog-description{color:var(--color-neutral-300);text-wrap:pretty;margin:0;font-size:14px;line-height:1.65}.dialog-label{margin-bottom:8px;display:block}.dialog-actions{color:var(--color-neutral-500);justify-content:space-between;align-items:center;gap:12px;margin-top:4px;font-size:12px;display:flex}.dialog-actions>div{align-items:center;gap:7px;display:flex}.section-reveal{animation:.65s both rise-in}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=1000px){.nav{flex-wrap:wrap;gap:9px 16px;padding-block:10px}.nav-brand{margin-right:auto}.nav-links{scrollbar-width:thin;order:3;width:100%;padding-block:3px;overflow-x:auto}.nav-links a{flex:none}.hero{grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr);gap:34px}.hero h1{font-size:54px}.experience-layout{grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:20px}}@media (width<=720px){.wrap{width:min(100% - 36px,560px)}.hero{grid-template-columns:1fr;gap:28px;padding-block:42px 40px}.hero-copy{gap:14px;padding-bottom:0}.hero h1{font-size:48px}.hero-role{font-size:17px}.portrait{justify-self:center;width:min(100%,430px)}.facts{gap:12px;margin-top:10px}.facts dd{font-size:12px}.section-block{padding-block:40px}.section-heading{flex-wrap:wrap;gap:8px 12px;margin-bottom:20px}.section-heading h2{font-size:26px}.section-note{width:100%;padding-left:25px}.experience-layout{grid-template-columns:1fr;gap:14px}.role-list{flex-direction:row;gap:5px;padding-bottom:5px;position:static;overflow-x:auto}.role-tab{min-width:190px}.role-panel{min-height:auto;padding:21px 19px}.role-panel-head h3{font-size:21px}.bullet-list li{font-size:13px}.skills-grid{grid-template-columns:1fr}.filter-switch{overflow-x:auto}.filter-switch label{flex:none;padding-inline:9px;font-size:11px}.projects-grid{grid-template-columns:1fr}.project-card{min-height:200px}.contact-section{grid-template-columns:1fr;gap:24px;padding-bottom:58px}.contact-copy>p{max-width:34ch;font-size:20px}.site-footer{padding-bottom:22px}}@media (width<=420px){.wrap{width:calc(100% - 28px)}.nav{gap:8px}.nav-brand{font-size:14px}.language-switch label{padding-inline:8px}.hero h1{font-size:42px}.hero-actions{gap:6px}.btn{min-height:36px;padding-inline:10px;font-size:12px}.facts{grid-template-columns:1fr 1fr}.facts div:last-child{grid-column:1/-1}.contact-item{grid-template-columns:21px minmax(0,1fr) auto;gap:9px;padding:12px 10px}.contact-item a{font-size:12px}.copy-button{padding-inline:4px}.copy-button span{display:none}.dialog-content{padding:20px 17px}.dialog-actions{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
