.highlight{color:#d0d0d0}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight .w{color:#d0d0d0}.highlight .err{color:#151515;background-color:#ac4142}.highlight .c,.highlight .cd,.highlight .cm,.highlight .c1,.highlight .cs{color:#888}.highlight .cp{color:#f4bf75}.highlight .o,.highlight .ow{color:#f4bf75}.highlight .p,.highlight .pi{color:#d0d0d0}.highlight .gi{color:#90a959}.highlight .gd{color:#ac4142}.highlight .gh{color:#6a9fb5;font-weight:bold}.highlight .k,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kv{color:#aa759f}.highlight .kc,.highlight .kt,.highlight .kd{color:#d28445}.highlight .s,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .sh,.highlight .sx,.highlight .s1{color:#90a959}.highlight .sr{color:#75b5aa}.highlight .si,.highlight .se{color:#8f5536}.highlight .nt,.highlight .nn,.highlight .nc,.highlight .no{color:#f4bf75}.highlight .na{color:#6a9fb5}.highlight .m,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .il,.highlight .mo,.highlight .mb,.highlight .mx{color:#90a959}.highlight .ss{color:#90a959}body{margin:0;padding:0;background:#151515 url("../images/bkg.png") 0 0;color:#eaeaea;font-size:16px;line-height:1.5;font-family:Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace}.container{width:90%;max-width:1000px;margin:0 auto}section{display:block;margin:0 0 20px 0}h1,h2,h3,h4,h5,h6{margin:0 0 20px}li{line-height:1.4}header{background:rgba(0,0,0,0.1);width:100%;border-bottom:1px dashed #b5e853;padding:20px 0;margin:0 0 40px 0}header h1{font-size:30px;line-height:1.5;margin:0 0 0 -40px;font-weight:bold;font-family:Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;color:#b5e853;text-shadow:0 1px 1px rgba(0,0,0,0.1),0 0 5px rgba(181,232,83,0.1),0 0 10px rgba(181,232,83,0.1);letter-spacing:-1px;-webkit-font-smoothing:antialiased}@media (max-width: 1000px){header h1{margin-left:0}}header h1:before{content:"./ ";font-size:24px}header h2{font-size:18px;font-weight:300;color:#666}#downloads .btn{display:inline-block;text-align:center;margin:0}#main_content{width:100%;-webkit-font-smoothing:antialiased}section img{max-width:100%}h1,h2,h3,h4,h5,h6{font-weight:normal;font-family:Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;color:#b5e853;letter-spacing:-0.03em;text-shadow:0 1px 1px rgba(0,0,0,0.1),0 0 5px rgba(181,232,83,0.1),0 0 10px rgba(181,232,83,0.1)}#main_content h1{font-size:30px}#main_content h2{font-size:24px}#main_content h3{font-size:18px}#main_content h4{font-size:14px}#main_content h5{font-size:12px;text-transform:uppercase;margin:0 0 5px 0}#main_content h6{font-size:12px;text-transform:uppercase;color:#999;margin:0 0 5px 0}dt{font-style:italic;font-weight:bold}ul li{list-style-image:url("../images/bullet.png")}blockquote{color:#aaa;padding-left:10px;border-left:1px dotted #666}pre{background:rgba(0,0,0,0.9);border:1px solid rgba(255,255,255,0.15);padding:10px;font-size:16px;color:#b5e853;border-radius:2px;word-wrap:normal;overflow:auto;overflow-y:hidden}code.highlighter-rouge{background:rgba(0,0,0,0.9);border:1px solid rgba(255,255,255,0.15);padding:0px 3px;margin:0px -3px;color:#aa759f;border-radius:2px}table{width:100%;margin:0 0 20px 0}th{text-align:left;border-bottom:1px dashed #b5e853;padding:5px 10px}td{padding:5px 10px}hr{height:0;border:0;border-bottom:1px dashed #b5e853;color:#b5e853}.btn{display:inline-block;background:-webkit-linear-gradient(top, rgba(40,40,40,0.3), rgba(35,35,35,0.3) 50%, rgba(10,10,10,0.3) 50%, rgba(0,0,0,0.3));padding:8px 18px;border-radius:50px;border:2px solid rgba(0,0,0,0.7);border-bottom:2px solid rgba(0,0,0,0.7);border-top:2px solid #000;color:rgba(255,255,255,0.8);font-family:Helvetica, Arial, sans-serif;font-weight:bold;font-size:13px;text-decoration:none;text-shadow:0 -1px 0 rgba(0,0,0,0.75);box-shadow:inset 0 1px 0 rgba(255,255,255,0.05)}.btn:hover{background:-webkit-linear-gradient(top, rgba(40,40,40,0.6), rgba(35,35,35,0.6) 50%, rgba(10,10,10,0.8) 50%, rgba(0,0,0,0.8))}.btn .icon{display:inline-block;width:16px;height:16px;margin:1px 8px 0 0;float:left}.btn-github .icon{opacity:0.6;background:url("../images/blacktocat.png") 0 0 no-repeat}a{color:#63c0f5;text-shadow:0 0 5px rgba(104,182,255,0.5)}.cf:before,.cf:after{content:"";display:table}.cf:after{clear:both}.cf{zoom:1}#a-title{text-decoration:none}:root{--ink: #e8e8e8;--muted: #969b99;--green: #b5e853;--green-soft: rgba(181, 232, 83, .13);--blue: #63c0f5;--line: rgba(181, 232, 83, .28);--mono: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:linear-gradient(rgba(17,18,16,0.96), rgba(17,18,16,0.96)),repeating-linear-gradient(0deg, transparent 0, transparent 3px, rgba(255,255,255,0.012) 4px);color:var(--ink);font-family:var(--mono);line-height:1.65}a{color:var(--blue);text-underline-offset:4px}a:focus-visible{outline:2px solid var(--green);outline-offset:4px}.container{width:min(1120px, calc(100% - 40px));max-width:none;margin:0 auto}.skip-link{position:fixed;z-index:100;top:10px;left:10px;padding:8px 12px;background:var(--green);color:#111;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;z-index:20;top:0;width:auto;margin:0;padding:0;border-bottom:1px dashed var(--line);background:rgba(17,18,16,0.9);backdrop-filter:blur(14px)}.header-inner,.footer-inner{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:24px}.site-mark{color:var(--ink);font-weight:700;text-decoration:none}.prompt,.site-mark:hover{color:var(--green);text-shadow:0 0 10px rgba(181,232,83,0.28)}nav{display:flex;gap:24px}nav a{color:var(--muted);font-size:.82rem;text-decoration:none}nav a::before{content:"./";color:#676c69}nav a:hover{color:var(--green)}.hero{position:relative;overflow:hidden;border-bottom:1px dashed var(--line);background:radial-gradient(circle at 76% 14%, rgba(181,232,83,0.1), transparent 28%),rgba(0,0,0,0.12)}.scanline{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom, transparent 50%, rgba(0,0,0,0.09) 50%);background-size:100% 4px;opacity:.45}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0, 1.35fr) minmax(320px, 0.65fr);align-items:center;gap:clamp(48px, 8vw, 100px);min-height:650px;padding-block:92px}.terminal-line,.section-heading>p,.date{margin:0 0 16px;color:var(--muted);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.terminal-line{text-transform:none}h1,h2,h3,p{overflow-wrap:anywhere}.hero h1{max-width:780px;margin:0;color:var(--green);font-size:clamp(3.25rem, 7vw, 6.7rem);font-weight:700;letter-spacing:-.08em;line-height:.95;text-shadow:0 0 5px rgba(181,232,83,0.14),0 0 24px rgba(181,232,83,0.08)}.hero h1::before{content:"./";color:#6f8e35}.hero-role{margin:30px 0 12px;color:var(--ink);font-size:clamp(1.05rem, 2vw, 1.35rem)}.hero-copy{max-width:720px;margin:0;color:var(--muted);font-family:Arial,sans-serif;font-size:1.06rem;line-height:1.75}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 15px;border:1px solid #383b38;border-radius:3px;background:linear-gradient(180deg, #242624, #191a19);color:#d8d8d8;font-family:Arial,sans-serif;font-size:.78rem;font-weight:700;text-decoration:none}.button:hover{border-color:var(--green);color:var(--green)}.button.primary{border-color:var(--green);background:var(--green);color:#10110f}.terminal-card{border:1px solid #343834;border-radius:7px;background:rgba(13,14,13,0.86);box-shadow:0 28px 70px rgba(0,0,0,0.36)}.terminal-bar{display:flex;align-items:center;gap:7px;height:42px;padding:0 14px;border-bottom:1px solid #303330;background:#1b1d1b}.terminal-bar span{width:9px;height:9px;border-radius:50%;background:#535753}.terminal-bar span:first-child{background:var(--green)}.terminal-bar small{margin-left:auto;color:#737873;font-size:.68rem}.terminal-body{padding:23px 24px 25px}.terminal-body p{display:grid;grid-template-columns:86px 1fr;gap:14px;margin:0 0 17px;font-size:.78rem;line-height:1.45}.terminal-body strong{color:#d8dbd8;font-weight:500}.muted{color:#707670}.terminal-body .ready{display:block;margin:25px 0 0;padding-top:18px;border-top:1px dashed #343834;color:#9ca39c}.ready span{margin-right:8px;color:var(--green);font-size:.65rem;text-shadow:0 0 9px var(--green)}.content{padding-block:34px 100px}.section{display:block;margin:0;padding-block:72px 44px;border-bottom:1px dashed #343834}.section-heading{margin-bottom:42px}.section-heading>p{color:#727772}.section-heading h2{margin:0;color:var(--green);font-size:clamp(1.75rem, 4vw, 2.8rem);font-weight:600;letter-spacing:-.05em;line-height:1.15}.section-heading h2::before{content:"## ";color:#668432}.timeline-item{display:grid;grid-template-columns:220px 1fr;gap:44px;padding:32px 0;border-top:1px solid #292c29}.timeline-meta{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:.76rem}.timeline-meta time,.publication-year{color:var(--green)}.timeline-item h3,.education-card h3,.publication h3,.skill-group h3{margin:0;color:var(--ink);font-size:1.08rem;font-weight:650;letter-spacing:-.02em}.role{margin:3px 0 18px;color:var(--blue);font-size:.84rem}.timeline-item ul{margin:0;padding:0;list-style:none;color:#b9bdb9;font-family:Arial,sans-serif;font-size:.93rem}.timeline-item li{position:relative;margin:8px 0;padding-left:22px;list-style-image:none}.timeline-item li::before{content:">";position:absolute;left:0;color:#668432;font-family:var(--mono)}.education-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:16px}.education-card{position:relative;min-height:285px;padding:26px;border:1px solid #303330;border-radius:4px;background:linear-gradient(145deg, #1a1c1a, #151615)}.education-card::after{content:"";position:absolute;right:20px;bottom:20px;width:28px;border-bottom:1px solid #526b29}.education-card .role{margin-top:12px}.education-card .detail{color:#9ea39e;font-family:Arial,sans-serif;font-size:.86rem;line-height:1.58}.education-card .place{position:absolute;bottom:20px;left:26px;margin:0;color:#696e69;font-size:.72rem}.split{display:flex;align-items:end;justify-content:space-between;gap:24px}.text-link{color:var(--blue);font-size:.78rem;text-decoration:none}.publication-list{border-top:1px solid #303330}.publication{display:grid;grid-template-columns:96px 1fr;gap:28px;padding:25px 0 26px;border-bottom:1px solid #292c29}.publication h3{max-width:850px}.publication p{margin:8px 0 0;color:#888e88;font-size:.78rem}.publication .venue{margin-top:2px;color:var(--blue)}.two-column{display:grid;grid-template-columns:1.4fr .6fr;gap:100px;border-bottom:0}.skill-group{margin-bottom:30px}.skill-group h3{margin-bottom:13px;color:#a9aea9;font-size:.78rem;text-transform:lowercase}.tags{display:flex;flex-wrap:wrap;gap:8px}.tags span{padding:5px 10px;border:1px solid #384038;border-radius:2px;background:var(--green-soft);color:#d7e4c1;font-size:.77rem}.language-list{margin:0}.language-list div{padding:14px 0;border-top:1px solid #303330}.language-list dt{color:var(--ink);font-size:.86rem}.language-list dd{margin:3px 0 0;color:var(--muted);font-size:.74rem}footer{border-top:1px dashed var(--line);background:rgba(0,0,0,0.18)}.footer-inner{min-height:110px;color:#757a75;font-size:.72rem}@media (max-width: 920px){.hero-grid{grid-template-columns:1fr;gap:52px;padding-block:78px}.terminal-card{max-width:620px}.education-grid{grid-template-columns:1fr}.education-card{min-height:auto;padding-bottom:64px}.two-column{grid-template-columns:1fr;gap:28px}}@media (max-width: 680px){.container{width:min(100% - 28px, 1120px)}nav{gap:12px}nav a{font-size:0}nav a::before{font-size:.82rem}nav a[href="#experience"]::before{content:"exp"}nav a[href="#publications"]::before{content:"pub"}nav a[href="#skills"]::before{content:"skills"}.hero-grid{min-height:auto;padding-block:62px}.hero h1{font-size:clamp(2.65rem, 14vw, 4.3rem)}.actions .button{flex:1 1 calc(50% - 10px)}.terminal-body p{grid-template-columns:70px 1fr}.section{padding-block:56px 30px}.timeline-item{grid-template-columns:1fr;gap:18px}.timeline-meta{flex-flow:row wrap;justify-content:space-between}.publication{grid-template-columns:54px 1fr;gap:16px}.footer-inner{align-items:flex-start;flex-direction:column;justify-content:center;gap:0}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
