:root{--ink:#0c0f14;--ink-2:#0f141a;--surface:#151a21;--surface-2:#1a212a;--line:#222b35;--line-2:#2d3845;--text:#e7eaee;--muted:#8b95a2;--muted-2:#5c6573;--amber:#f0a93a;--amber-deep:#c8852a;--amber-soft:#f0a93a1a;--cyan:#56c2d6;--maxw:1140px;--display:"Space Grotesk",sans-serif;--body:"Inter",sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}::selection{background:var(--amber);color:#1a1206}body:before{content:"";background-image:linear-gradient(var(--line) 1px,transparent 1px), linear-gradient(90deg,var(--line) 1px,transparent 1px);opacity:.2;pointer-events:none;z-index:0;background-size:64px 64px;position:fixed;top:0;bottom:0;left:0;right:0;-webkit-mask-image:radial-gradient(90% 70% at 50% 0,#000 30%,#0000 100%);mask-image:radial-gradient(90% 70% at 50% 0,#000 30%,#0000 100%)}.wrap{max-width:var(--maxw);z-index:1;margin:0 auto;padding:0 28px;position:relative}.topbar{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:linear-gradient(#0c0f14eb,#0c0f14b8);position:sticky;top:0}.topbar .wrap{justify-content:space-between;align-items:center;height:62px;display:flex}.brand{font-family:var(--mono);letter-spacing:.04em;align-items:center;gap:11px;font-size:13px;display:flex}.brand .avatar{object-fit:cover;border:1px solid var(--line-2);border-radius:50%;width:30px;height:30px;display:block}.brand b{color:var(--text);font-weight:500}.brand .blink{background:var(--amber);width:7px;height:7px;box-shadow:0 0 10px var(--amber);border-radius:50%;animation:2.6s step-end infinite blink}@keyframes blink{0%,72%{opacity:1}73%,to{opacity:.25}}nav.links{font-family:var(--mono);letter-spacing:.03em;color:var(--muted);gap:26px;font-size:12.5px;display:flex}nav.links a{padding:4px 0;transition:color .2s;position:relative}nav.links a:hover,nav.links a.active{color:var(--text)}nav.links a:after{content:"";background:var(--amber);width:0;height:1px;transition:width .25s;position:absolute;bottom:-2px;left:0}nav.links a:hover:after,nav.links a.active:after{width:100%}nav.links .nav-sep{background:var(--line-2);align-self:center;width:1px;height:14px}nav.links .icon-link{align-self:center;align-items:center;display:inline-flex}nav.links .icon-link svg{fill:currentColor;width:17px;height:17px;display:block}nav.links .icon-link:after{display:none}@media (max-width:680px){nav.links{display:none}}.hero{padding:84px 0 0}.eyebrow{font-family:var(--mono);letter-spacing:.22em;color:var(--amber);text-transform:uppercase;align-items:center;gap:12px;margin-bottom:26px;font-size:12.5px;display:flex}.eyebrow:before{content:"";background:var(--amber);opacity:.6;width:34px;height:1px}h1{font-family:var(--display);letter-spacing:-.03em;color:var(--text);margin:0;font-size:clamp(52px,12vw,128px);font-weight:700;line-height:.92}h1 .accent{color:var(--amber)}.thesis{color:#c3cad3;max-width:600px;margin:30px 0 0;font-size:clamp(17px,2.3vw,20px);line-height:1.55}.thesis b{color:var(--text);font-weight:600}.hero-signature{margin:24px 0 0}.sig-stage{border:1px solid var(--line);background:var(--ink-2);border-radius:12px;margin:46px 0 0;padding:22px 24px;position:relative;overflow:hidden}@media (max-width:560px){.sig-stage{padding:16px}}.scope{width:100%;position:relative}.scope-head{border-bottom:1px solid var(--line);font-family:var(--mono);letter-spacing:.12em;color:var(--muted-2);text-transform:uppercase;justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 2px 11px;font-size:11px;display:flex}.scope-head .live{color:var(--amber);align-items:center;gap:8px;display:flex}.scope-head .live i{background:var(--amber);width:6px;height:6px;box-shadow:0 0 8px var(--amber);border-radius:50%;animation:1.8s step-end infinite blink}.scope-svg{width:100%;height:130px;display:block;-webkit-mask-image:linear-gradient(90deg,#000 0 92%,#0000);mask-image:linear-gradient(90deg,#000 0 92%,#0000)}.scope .trace{animation:14s linear infinite scrollx}@keyframes scrollx{0%{transform:translate(0)}to{transform:translate(-600px)}}@media (max-width:560px){.scope-svg{height:108px}}.sig-bg{border:1px solid var(--line);background:linear-gradient(180deg,var(--surface),var(--ink-2));border-radius:16px;padding:22px 24px;position:relative;overflow:hidden}.sig-bg:before{content:"";filter:blur(6px);pointer-events:none;background:radial-gradient(circle,#f0a93a1f,#f0a93a00 70%);border-radius:50%;width:420px;height:420px;position:absolute;top:-10%;bottom:auto;left:auto;right:-15%}.sig-bg .scope{z-index:1;opacity:.58;mix-blend-mode:screen;position:relative}.readout{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-wrap:wrap;gap:0;margin:14px 0 0;padding:0;list-style:none;display:flex}.readout li{border-right:1px solid var(--line);flex:1 1 0;min-width:148px;padding:16px 18px}.readout li:last-child{border-right:none}.readout .k{font-family:var(--mono);letter-spacing:.14em;color:var(--muted-2);text-transform:uppercase;font-size:10.5px}.readout .v{font-family:var(--display);color:var(--text);margin-top:6px;font-size:21px;font-weight:500}.readout .v em{color:var(--amber);font-style:normal}@media (max-width:560px){.readout li{border-bottom:1px solid var(--line);flex:50%;min-width:0}.readout li:nth-child(odd){border-right:1px solid var(--line)}.readout li:nth-child(2n){border-right:none}}body[data-graphic-variant="4"] .hero,body[data-graphic-variant="4"] .hero .wrap{position:relative}body[data-graphic-variant="4"] .hero .wrap>:not(.hero-signature){z-index:1;position:relative}body[data-graphic-variant="4"] .hero .wrap{padding-bottom:92px}body[data-graphic-variant="4"] .hero-signature{z-index:0;pointer-events:none;margin:0;display:block;position:absolute;top:88px;left:-28px;right:-28px}body[data-graphic-variant="4"] .hero-signature .variant-4{display:block}body[data-graphic-variant="4"] .hero-signature .variant-4 .sig-stage{background:0 0;border:none;margin:0;padding:0;overflow:visible}body[data-graphic-variant="4"] .hero-signature .variant-4 .sig-bg{background:0 0;border:none;border-radius:0;padding:18px 0 0}body[data-graphic-variant="4"] .hero-signature .variant-4 .scope-head,body[data-graphic-variant="4"] .hero-signature .variant-4 text{display:none}body[data-graphic-variant="4"] .hero-signature .variant-4 .scope{opacity:.18;mix-blend-mode:screen;filter:saturate(1.08)blur(.2px)}body[data-graphic-variant="4"] .hero-signature .variant-4 .sig-bg:before{opacity:.55;filter:blur(14px)}body[data-graphic-variant="4"] .hero:after{content:"";pointer-events:none;opacity:.85;filter:blur(10px);background:radial-gradient(circle at 22% 40%,#f0a93a29,#0000 35%),radial-gradient(circle at 80% 55%,#56c2d61c,#0000 30%);height:220px;position:absolute;top:140px;bottom:auto;left:0;right:0}:root{--gutter:64px;--rail:#2b3a47}@media (max-width:760px){:root{--gutter:42px}}@media (max-width:480px){:root{--gutter:28px}}main,.hero,.section{--col-left:max(28px, calc((100% - var(--maxw))/2 + 28px));position:relative}.hero>.wrap,.section>.wrap{padding-left:calc(28px + var(--gutter))}.hero:before,.section:before{content:"";top:0;bottom:0;left:calc(var(--col-left) + var(--gutter)/2 - 1px);z-index:0;width:2px;position:absolute}.section:before{background:linear-gradient(to bottom, var(--rail) 0, var(--rail) var(--ga,100%), transparent var(--ga,100%), transparent var(--gb,100%), var(--rail) var(--gb,100%), var(--rail) var(--end,100%), transparent var(--end,100%))}.hero:before{background:linear-gradient(180deg, transparent, var(--rail) 96px)}body{--edgepx:3000px}.hero h1{position:relative}.hero h1 .ghost{z-index:-1;pointer-events:none;color:#0000;-webkit-mask-image:linear-gradient(to right, #000 0, #000 calc(var(--edgepx) - 40px), transparent var(--edgepx));-webkit-mask-image:linear-gradient(to right, #000 0, #000 calc(var(--edgepx) - 40px), transparent var(--edgepx));mask-image:linear-gradient(to right, #000 0, #000 calc(var(--edgepx) - 40px), transparent var(--edgepx));padding:46px 60px;position:absolute;top:-46px;left:-60px}.source-lead{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;overflow:visible}.source-lead path{fill:none;stroke:var(--rail);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.js-spine .hero:before{display:none}.sec-head{position:relative}.sec-head .node{left:calc(-1 * var(--gutter)/2);z-index:2;line-height:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.sec-head .node svg{z-index:1;width:auto;height:38px;transition:filter .25s;display:block;position:relative}@media (max-width:480px){.sec-head .node svg{height:30px}}.sec-head .node.lit svg,.comp.lit svg{filter:drop-shadow(0 0 6px #f0a93acc)brightness(2)}.comp{z-index:2;bottom:-8px;left:calc(var(--col-left) + var(--gutter)/2);position:absolute;transform:translate(-50%)}.comp svg{z-index:1;transition:filter .25s;display:block;position:relative}@media (max-width:480px){.comp{transform:translate(-50%)scale(.82)}}.pulse{z-index:1;width:9px;height:9px;left:calc(var(--col-left) + var(--gutter)/2 - 4px);background:var(--amber);opacity:0;pointer-events:none;will-change:left,top;border-radius:50%;transition:opacity .25s linear;position:absolute;top:0;box-shadow:0 0 12px 3px #f0a93abf}.section{padding:96px 0 0}.section.last{padding-bottom:0}.sec-head{align-items:baseline;gap:14px;margin-bottom:42px;display:flex}.sec-head .pin{color:var(--amber);align-self:center;font-size:18px;line-height:1}.sec-head h2{font-family:var(--display);letter-spacing:-.02em;color:var(--text);margin:0;font-size:clamp(26px,4vw,38px);font-weight:700}.sec-head .rule{background:linear-gradient(90deg,var(--line-2),transparent);flex:1;align-self:center;height:1px;margin-left:6px}.entry{border-top:1px solid var(--line);grid-template-columns:200px 1fr;gap:38px;padding:30px 0;display:grid}.entry:first-of-type{border-top:none;padding-top:0}.entry .when{font-family:var(--mono);color:var(--muted);font-size:12.5px;line-height:1.7}.entry .when .org{color:var(--text);letter-spacing:.02em;margin-bottom:6px;font-weight:500;display:block}.entry .when .loc{color:var(--muted-2);margin-top:6px;display:block}.entry h3{font-family:var(--display);letter-spacing:-.01em;margin:0 0 4px;font-size:21px;font-weight:500}.entry .role-sub{font-family:var(--mono);color:var(--amber);letter-spacing:.02em;margin-bottom:16px;font-size:12px}.entry ul{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.entry ul li{color:#c3cad3;padding-left:22px;font-size:15px;line-height:1.55;position:relative}.entry ul li:before{content:"";background:var(--amber);width:9px;height:1px;position:absolute;top:10px;left:0}.entry ul li b{color:var(--text);font-weight:600}@media (max-width:720px){.entry{grid-template-columns:1fr;gap:16px;padding:26px 0}}.projects{flex-direction:column;gap:18px;display:flex}.card{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:30px 32px;transition:border-color .25s,transform .25s,background .25s;position:relative;overflow:hidden}.card:before{content:"";background:var(--amber);transform-origin:top;width:2px;transition:transform .3s;position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.card:hover{border-color:var(--line-2);background:var(--surface-2);transform:translateY(-2px)}.card:hover:before{transform:scaleY(1)}.card-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px 20px;margin-bottom:6px;display:flex}.card h3{font-family:var(--display);letter-spacing:-.01em;margin:0;font-size:23px;font-weight:500}.card .span{font-family:var(--mono);color:var(--muted);font-size:12px}.card .role-sub{font-family:var(--mono);color:var(--amber);letter-spacing:.01em;margin:2px 0 16px;font-size:12.5px}.card p{color:#c3cad3;max-width:780px;margin:0 0 18px;font-size:15px;line-height:1.6}.card p b{color:var(--text);font-weight:600}.tags{flex-wrap:wrap;gap:8px;display:flex}.tags span{font-family:var(--mono);color:var(--muted);border:1px solid var(--line-2);letter-spacing:.02em;border-radius:6px;padding:5px 10px;font-size:11.5px;transition:color .2s,border-color .2s}.card:hover .tags span{color:#c3cad3}.edu-grid{grid-template-columns:1.1fr 1fr;gap:18px;display:grid}@media (max-width:760px){.edu-grid{grid-template-columns:1fr}}.panel{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:28px 30px}.panel h3{font-family:var(--display);letter-spacing:-.01em;margin:0 0 4px;font-size:20px;font-weight:500}.panel .school{font-family:var(--mono);color:var(--muted);margin-bottom:22px;font-size:12.5px}.degree{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:14px;padding:13px 0;display:flex}.degree:first-of-type{border-top:none;padding-top:0}.degree .d-name{color:var(--text);font-size:15px}.degree .d-name span{font-family:var(--mono);color:var(--amber);letter-spacing:.03em;margin-top:3px;font-size:11.5px;display:block}.degree .d-when{font-family:var(--mono);color:var(--muted-2);white-space:nowrap;font-size:12px}.course-block{margin-top:22px}.course-block:first-child{margin-top:0}.course-block .lbl{font-family:var(--mono);letter-spacing:.12em;color:var(--muted-2);text-transform:uppercase;margin-bottom:9px;font-size:11px}.course-block .list{color:#aeb6c0;font-size:14px;line-height:1.75}.stack{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}@media (max-width:760px){.stack{grid-template-columns:1fr}}.stack .panel h4{font-family:var(--mono);letter-spacing:.14em;color:var(--amber);text-transform:uppercase;margin:0 0 16px;font-size:11.5px;font-weight:500}.stack .panel .items{flex-wrap:wrap;gap:8px;display:flex}.stack .panel .items span{font-family:var(--mono);color:#c3cad3;border:1px solid var(--line);background:var(--ink-2);border-radius:6px;padding:6px 11px;font-size:12.5px;transition:border-color .2s,color .2s}.stack .panel .items span:hover{border-color:var(--amber-deep);color:var(--text)}.stack .panel.soft .items span{color:#c3cad3;width:100%;font-size:14.5px;font-family:var(--body);background:0 0;border:none;padding:0 0 0 18px;display:block;position:relative}.stack .panel.soft .items{gap:11px}.stack .panel.soft .items span:before{content:"";background:var(--amber);width:8px;height:1px;position:absolute;top:11px;left:0}footer{border-top:1px solid var(--line);background:var(--ink-2);z-index:1;margin-top:104px;position:relative}.foot-grid{grid-template-columns:1fr auto;align-items:end;gap:40px;padding:72px 0 40px;display:grid}@media (max-width:680px){.foot-grid{grid-template-columns:1fr;gap:34px}}.foot-grid .big{font-family:var(--display);letter-spacing:-.025em;margin:0;font-size:clamp(30px,6vw,52px);font-weight:700;line-height:1.02}.foot-grid .big a{color:var(--amber);transition:opacity .2s}.foot-grid .big a:hover{opacity:.78}.foot-grid .sub{font-family:var(--mono);color:var(--muted);letter-spacing:.02em;margin-top:18px;font-size:12.5px}.contacts{font-family:var(--mono);flex-direction:column;gap:13px;font-size:13.5px;display:flex}.contacts a{color:var(--muted);align-items:center;gap:11px;transition:color .2s;display:flex}.contacts a:hover{color:var(--amber)}.contacts a svg{opacity:.8;flex-shrink:0}.contacts a span{letter-spacing:.01em}.contact-row{align-items:center;gap:10px;display:flex}.copy-btn{border:1px solid var(--line-2);color:var(--muted);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:7px;padding:5px 9px;font-size:11px;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.copy-btn:hover{color:var(--amber);border-color:var(--amber-deep);background:var(--amber-soft)}.copy-btn svg{display:block}.copy-btn .ic-check{color:var(--amber);display:none}.copy-btn.copied{color:var(--amber);border-color:var(--amber-deep)}.copy-btn.copied .ic-copy{display:none}.copy-btn.copied .ic-check{display:block}.foot-bottom{border-top:1px solid var(--line);font-family:var(--mono);color:var(--muted-2);letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:20px 0;font-size:11.5px;display:flex}@media (prefers-reduced-motion:no-preference){.projects,.edu-grid,.stack{perspective:1100px}.card,.edu-grid .panel,.stack .panel{transform-style:preserve-3d;will-change:transform}.card{transition:border-color .25s,transform .14s ease-out,background .25s}.edu-grid .panel,.stack .panel{transition:border-color .25s,transform .14s ease-out,background .25s;position:relative}.card:after,.edu-grid .panel:after,.stack .panel:after{content:"";z-index:0;pointer-events:none;border-radius:inherit;background:radial-gradient(300px circle at var(--sx,50%) var(--sy,50%), #f0a93a21, transparent 60%);opacity:0;transition:opacity .3s;position:absolute;top:0;bottom:0;left:0;right:0}.card:hover:after,.edu-grid .panel:hover:after,.stack .panel:hover:after{opacity:1}.card>*,.edu-grid .panel>*,.stack .panel>*{z-index:1;position:relative}body:before{transform:translate3d(var(--gx,0px), var(--gy,0px), 0);will-change:transform;transition:transform .3s ease-out}.cursor-glow{pointer-events:none;z-index:0;opacity:0;width:520px;height:520px;transform:translate3d(calc(var(--cgx,-50vw) - 260px), calc(var(--cgy,-50vh) - 260px), 0);mix-blend-mode:screen;filter:blur(6px);background:radial-gradient(circle,#f0a93a1a,#0000 62%);border-radius:50%;transition:opacity .5s;position:fixed;top:0;left:0}body.cg-on .cursor-glow{opacity:1}}.readout .v .cu{font-variant-numeric:tabular-nums}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(18px)}.reveal.in{opacity:1;transform:none}.sec-head.reveal{transform:none}a:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:3px}button:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:3px}.skip-link{z-index:100;background:var(--amber);color:#1a1206;font-family:var(--mono);letter-spacing:.02em;border-radius:0 0 8px;padding:10px 16px;font-size:13px;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}:target,.section,.hero,footer{scroll-margin-top:84px}#top{scroll-margin-top:0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}.reveal{opacity:1;transform:none}}@media print{body{color:#111!important;background:#fff!important;overflow:visible!important}body:before,.pulse,.source-lead,.cursor-glow,.hero-signature,.hero:after,.hero:before,.section:before,.sec-head .node,.comp,.scope,.skip-link,.copy-btn,.nav-sep,.topbar{display:none!important}.hero>.wrap,.section>.wrap{padding-left:28px!important}.hero{min-height:0!important;padding-top:0!important}.section{padding-top:26px!important}main{--gutter:0!important}h1,h2,h3,h4,h1 .accent,.accent,.card h3,.entry h3{color:#111!important}.thesis,.card p,.entry ul li,.course-block .list,.degree .d-name{color:#222!important}.eyebrow,.role-sub,.card .role-sub,.entry .role-sub,.card .span,.stack .panel h4,.course-block .lbl,.entry .when,.degree .d-when{color:#555!important}.thesis b,.card p b,.entry ul li b{color:#000!important}.card,.panel,.readout{box-shadow:none!important;background:#fff!important;border:1px solid #ccc!important;transform:none!important}.card:before,.card:after,.panel:after{display:none!important}.readout li{border-color:#ccc!important}.readout .v{color:#111!important}.tags span,.stack .panel .items span{color:#333!important;background:0 0!important;border-color:#bbb!important}.readout .v em,.degree .d-name span{color:#000!important}a{color:#111!important;text-decoration:none!important}footer{background:#fff!important;border-top:1px solid #ccc!important;margin-top:40px!important}.contacts a,.contacts a span,.foot-grid .big a{color:#111!important}.sec-head,h1,h2,h3{break-after:avoid}.card,.entry,.edu-grid .panel,.stack .panel{break-inside:avoid}section{break-inside:auto}}
