:root{--bg: #0a0a0f;--bg2: #12121a;--surface: rgba(255, 255, 255, .04);--surface2: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .08);--border2: rgba(255, 255, 255, .14);--accent: #38bdf8;--accent2: #a78bfa;--accent3: #34d399;--text: #f0f0f5;--muted: #8b8b9a;--green: #34d399;--rule: rgba(255, 255, 255, .1);--glow: rgba(56, 189, 248, .25);--glow2: rgba(167, 139, 250, .2)}*{margin:0;padding:0;box-sizing:border-box}html{color-scheme:dark;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:DM Sans,sans-serif;line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}body:before,body:after{content:"";position:fixed;border-radius:50%;filter:blur(120px);opacity:.35;pointer-events:none;z-index:0}body:before{width:500px;height:500px;background:radial-gradient(circle,var(--accent),transparent 70%);top:-120px;right:-80px;animation:float1 18s ease-in-out infinite}body:after{width:420px;height:420px;background:radial-gradient(circle,var(--accent2),transparent 70%);bottom:-100px;left:-60px;animation:float2 22s ease-in-out infinite}@keyframes float1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-40px,30px) scale(1.08)}66%{transform:translate(20px,-20px) scale(.95)}}@keyframes float2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-40px) scale(1.06)}66%{transform:translate(-20px,25px) scale(.92)}}.container{position:relative;z-index:1;max-width:1000px;margin:0 auto;padding:32px 24px 48px}.topbar{display:flex;justify-content:flex-end;margin-bottom:14px}.lang-switch{display:inline-flex;border:1px solid var(--border2);border-radius:10px;overflow:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--surface)}.lang-btn{font-family:Space Mono,monospace;font-size:13px;letter-spacing:1.5px;padding:6px 14px;background:transparent;color:var(--muted);border:none;cursor:pointer;transition:all .25s ease;position:relative}.lang-btn+.lang-btn{border-left:1px solid var(--border)}.lang-btn:hover{color:var(--text);background:var(--surface2)}.lang-btn.is-active{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-weight:700;box-shadow:0 0 20px var(--glow)}.lang-btn:focus-visible{outline:2px solid var(--accent2);outline-offset:-2px}.header{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;padding:28px;margin-bottom:22px;background:var(--surface);border:1px solid var(--border);border-radius:20px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:border-color .3s ease,box-shadow .3s ease;animation:fadeSlideUp .6s ease both}.header:hover{border-color:var(--border2);box-shadow:0 8px 40px #0000004d,0 0 0 1px var(--glow)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.photo-box{position:relative}.photo-box:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2),var(--accent3));opacity:0;transition:opacity .4s ease;z-index:0}.header:hover .photo-box:before{opacity:1}.photo-box img.profile-photo{position:relative;z-index:1;width:120px;height:120px;border-radius:50%;object-fit:cover;object-position:center top;display:block;border:2px solid var(--border2);transition:transform .4s ease}.header:hover .photo-box img.profile-photo{transform:scale(1.04)}.name-block h1{font-family:Space Mono,monospace;font-size:32px;font-weight:700;line-height:1.1;letter-spacing:-.5px}.name-block h1 span{background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.role-line{font-size:17px;color:var(--muted);margin-top:6px;min-height:1.45em}.role-line .cursor{display:inline-block;width:2px;height:1em;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.role-gh{font-size:14px;margin-top:4px}.role-gh a{color:var(--accent);text-decoration:none;transition:color .2s ease;display:inline-flex;align-items:center;gap:6px}.role-gh svg{flex:none}.role-gh a:hover{color:var(--accent2);text-decoration:underline}.role-gh .k{color:var(--accent);font-size:.6em;vertical-align:.08em}.contact-list{list-style:none;text-align:right;font-family:Space Mono,monospace;font-size:13.5px;color:var(--muted);line-height:2}.contact-list li{white-space:nowrap;transition:color .2s ease,transform .2s ease}.contact-list li:hover{color:var(--text);transform:translate(-3px)}.contact-list .k{color:var(--accent)}.contact-list a{color:var(--accent);text-decoration:none;transition:color .2s ease}.contact-list a:hover{color:var(--accent2);text-decoration:underline}.tabnav{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:22px;padding:5px;background:var(--surface);border:1px solid var(--border);border-radius:14px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;animation:fadeSlideUp .6s ease .1s both}.tab{font-family:Space Mono,monospace;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);background:transparent;border:none;border-radius:10px;padding:10px 16px;cursor:pointer;transition:all .3s cubic-bezier(.22,.61,.36,1);position:relative;flex:1;text-align:center;min-width:90px}.tab:hover{color:var(--text);background:var(--surface2)}.tab.is-active{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent2));font-weight:700;box-shadow:0 4px 20px var(--glow),0 0 0 1px #ffffff1a inset;transform:translateY(-1px)}.tab:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}.panels{margin-top:4px;min-height:420px}.col-a,.col-b{display:contents}.panel{display:none}.panel.is-active{display:block;animation:panelIn .45s cubic-bezier(.22,.61,.36,1) both}@keyframes panelIn{0%{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){body:before,body:after{animation:none}.panel.is-active,.header,.tabnav{animation:none}}.profile{font-size:16.5px;color:var(--muted);max-width:none;margin-bottom:8px;line-height:1.6;text-align:justify;-webkit-hyphens:auto;hyphens:auto}.section-header{display:flex;align-items:center;gap:10px;margin-bottom:14px;margin-top:8px}.section-label{font-family:Space Mono,monospace;font-size:13px;letter-spacing:2.5px;text-transform:uppercase;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700;white-space:nowrap}.section-line{flex:1;height:1px;background:linear-gradient(90deg,var(--accent),var(--accent2),transparent);opacity:.5}.panel .section-header:not(:first-child){margin-top:28px}.entry{margin-bottom:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .3s ease;animation:fadeSlideUp .5s ease both}.entry:nth-child(2){animation-delay:.05s}.entry:nth-child(3){animation-delay:.1s}.entry:nth-child(4){animation-delay:.15s}.entry:nth-child(5){animation-delay:.2s}.entry:nth-child(6){animation-delay:.25s}.entry:nth-child(7){animation-delay:.3s}.entry:hover{background:var(--surface2);border-color:var(--border2);transform:translate(4px);box-shadow:0 4px 24px #0003,-3px 0 0 var(--accent)}.entry:last-child{margin-bottom:0}.entry-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.entry-title{font-weight:700;font-size:16.5px;color:var(--text)}.entry-date{font-family:Space Mono,monospace;font-size:12.5px;color:var(--accent);white-space:nowrap;flex-shrink:0;background:#38bdf814;padding:2px 8px;border-radius:6px}.entry-org{font-size:14.5px;color:var(--accent2);margin:4px 0 6px}.bullets{list-style:none;display:flex;flex-direction:column;gap:3px}.bullets li{font-size:14.5px;color:var(--muted);padding-left:14px;position:relative;transition:color .2s ease}.bullets li:hover{color:var(--text)}.bullets li:before{content:"›";position:absolute;left:0;color:var(--accent);font-weight:700;transition:transform .2s ease}.bullets li:hover:before{transform:translate(2px)}.fact,.lang-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 14px;margin-bottom:6px;background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:15px;transition:all .3s ease;overflow:hidden;position:relative}.fact:hover,.lang-row:hover{background:var(--surface2);border-color:var(--border2);transform:translateY(-1px)}.fact b{color:var(--text);font-weight:600}.fact .fact-val,.lang-row .lv{font-family:Space Mono,monospace;font-size:13px;color:var(--accent);text-align:right;flex-shrink:0;display:flex;align-items:baseline;gap:6px}.lang-row .lv small,.fact .fact-val small{color:var(--accent);opacity:.75;font-size:11px;white-space:nowrap}.fact-last{margin-top:12px;margin-bottom:0}.lang-bar{position:absolute;bottom:0;left:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:0 2px 2px 0;transition:width 1s cubic-bezier(.22,.61,.36,1)}.stack{display:flex;flex-direction:column;gap:6px}.stack-row{font-size:15px;color:var(--muted);line-height:1.4;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;transition:all .3s ease}.stack-row:hover{background:var(--surface2);border-color:var(--border2);transform:translate(3px)}.stack-row:last-child{margin-bottom:0}.stack-row .sk{font-family:Space Mono,monospace;font-size:11.5px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);font-weight:700}.stack-row .sk:after{content:" ·";color:var(--rule);letter-spacing:0}.proj{border-left:3px solid var(--accent);padding:14px 16px;margin-bottom:12px;background:var(--surface);border-radius:0 14px 14px 0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .3s ease;animation:fadeSlideUp .5s ease both}.proj:nth-child(2){animation-delay:.05s}.proj:nth-child(3){animation-delay:.1s}.proj:nth-child(4){animation-delay:.15s}.proj:hover{background:var(--surface2);border-left-color:var(--accent2);transform:translate(4px);box-shadow:0 4px 24px #0003}.proj:last-child{margin-bottom:0}.proj-origin{font-family:Space Mono,monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent3);margin-bottom:2px}.proj-name{font-weight:700;font-size:16.5px;color:var(--text);margin-bottom:2px}.proj-desc{font-size:14.5px;color:var(--muted);margin:0 0 8px;line-height:1.45}.proj-tags{display:flex;flex-wrap:wrap;gap:5px}.proj-tags span{font-family:Space Mono,monospace;font-size:11px;color:var(--accent);background:#38bdf814;border:1px solid rgba(56,189,248,.2);padding:2px 8px;border-radius:6px;transition:all .2s ease}.proj-tags span:hover{background:#38bdf829;border-color:#38bdf866}footer{margin-top:28px;padding-top:14px;border-top:1px solid var(--border);display:flex;justify-content:space-between;font-family:Space Mono,monospace;font-size:12px;color:var(--muted);animation:fadeSlideUp .6s ease .3s both}@media screen and (max-width: 860px){.container{padding:20px 16px 36px}.header{grid-template-columns:auto 1fr;gap:18px;padding:20px}.contact-list{grid-column:1 / -1;text-align:left;border-top:1px solid var(--border);padding-top:12px}.contact-list li:hover{transform:translate(3px)}.tabnav{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.tab{padding:9px 12px;font-size:12px;min-width:80px}.name-block h1{font-size:24px}.photo-box img.profile-photo{width:88px;height:88px}}@page{size:A4;margin:8mm 9mm}@media print{:root{--bg: #ffffff;--surface: #f6f6f7;--border: #d9dade;--accent: #0284c7;--accent2: #7c3aed;--text: #111111;--muted: #4a4a4f;--rule: #c9cbd1}html,body{background:#fff!important;font-size:10pt;line-height:1.38}body:before,body:after{display:none!important}.container{max-width:none;padding:0}.topbar,.tabnav{display:none!important}.panels{margin-top:4mm;min-height:0;display:grid;grid-template-columns:1fr 60mm;column-gap:7mm;align-items:start}.col-a,.col-b{display:block;min-width:0}.panel{display:block!important;animation:none!important;break-inside:auto}.header{display:grid;grid-template-columns:auto 1fr auto;gap:4mm;padding:0 0 3mm;margin-bottom:3mm;background:none;border:none;border-bottom:2px solid var(--accent);border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;animation:none}.header:hover{box-shadow:none}.photo-box:before{display:none}.profile{font-size:10pt;max-width:none;margin-bottom:4mm}.photo-box img.profile-photo{width:27mm;height:27mm}.name-block h1{font-size:17pt}.name-block h1 span{-webkit-text-fill-color:var(--accent);color:var(--accent)}.section-label{font-size:8.8pt}.section-header{margin-bottom:2.4mm}.panel .section-header:not(:first-child){margin-top:4mm}.entry{margin-bottom:2.4mm;padding:0;background:none;border:none;border-radius:0;animation:none;break-inside:avoid}.entry:hover{background:none;border:none;transform:none;box-shadow:none}.entry-title,.proj-name{font-size:10.5pt}.entry-date{font-size:8pt;background:none;padding:0}.bullets li,.entry-org,.fact,.lang-row,.profile{font-size:9.8pt}.proj-desc{font-size:9.4pt}.proj-origin{font-size:7.5pt}.proj{margin-bottom:2.4mm;padding:0 0 0 2mm;background:none;border-radius:0;animation:none;break-inside:avoid}.proj:hover{background:none;transform:none;box-shadow:none}.stack-row{font-size:9.4pt;margin-bottom:1.5mm;padding:0;background:none;border:none;border-radius:0}.stack-row:hover{background:none;transform:none}.fact,.lang-row{padding:1px 0;margin-bottom:0;background:none;border:none;border-bottom:1px dotted var(--border);border-radius:0;break-inside:avoid}.fact:hover,.lang-row:hover{background:none;transform:none}.lang-bar{display:none}.fact-val,.lang-row .lv{font-size:8pt}.fact-val small,.lang-row .lv small{font-size:7pt}.entry,.proj,.fact,.lang-row,.section-header,.photo-box{break-inside:avoid}.role-line{font-size:10pt}.role-line .cursor{display:none}.role-gh{font-size:8.5pt}.contact-list{font-size:8.5pt;line-height:1.7}.stack-row .sk,.proj-tags span{font-size:7pt}footer{margin-top:4mm;font-size:8pt;animation:none}}
