:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#070b09;--panel:#0d1510;--panel-raised:#111c15;--green:#70f39b;--green-bright:#a0ffba;--text:#e0e9e3;--muted:#adbbb0;--faint:#91a397;--border:#2e4536;--mono:"JetBrains Mono",ui-monospace,"Cascadia Code","SFMono-Regular",Consolas,monospace;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-family:var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.7}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}a{color:var(--green);text-underline-offset:5px;text-decoration-thickness:1px}a:hover{color:var(--green-bright)}button{cursor:pointer}button:disabled{cursor:wait;opacity:.7}button,a{touch-action:manipulation}:focus-visible{outline:2px solid var(--green-bright);outline-offset:5px}h1:focus,main:focus{outline:none}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{text-wrap:balance;line-height:1.25}h1{letter-spacing:-.045em;font-size:clamp(2.2rem,4.4vw,3.7rem);font-weight:650}h2{letter-spacing:-.025em;font-size:clamp(1.45rem,2.5vw,2rem);font-weight:600}h3{font-size:1.2rem;font-weight:600}h4{font-size:1.05rem;font-weight:600}p{color:var(--muted)}svg{flex-shrink:0;width:20px;height:20px;display:block}[hidden]{display:none!important}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eyebrow{color:var(--green);font:500 .75rem/1.7 var(--mono);letter-spacing:.08em;display:block}.eyebrow span{color:var(--faint)}.actions{flex-wrap:wrap;align-items:center;gap:16px;margin-top:26px;display:flex}.button{border:1px solid var(--border);min-height:46px;font:600 .83rem/1.5 var(--mono);border-radius:5px;justify-content:center;align-items:center;gap:12px;padding:11px 19px;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.button.primary{background:var(--green);color:#071a0d;border-color:var(--green)}.button.primary:hover{background:var(--green-bright);border-color:var(--green-bright)}.button.secondary{color:var(--text);background:0 0}.button.secondary:hover{background:var(--panel-raised);border-color:var(--green)}.button svg{width:17px;height:17px}.text-link{min-height:44px;font:500 .82rem/1.6 var(--mono);color:var(--green);text-underline-offset:6px;background:0 0;border:0;align-items:center;gap:6px;text-decoration:underline;display:inline-flex}.binary-rain{z-index:-1;pointer-events:none;opacity:.055;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.binary-col{font:12px/1.7 var(--mono);color:var(--green);white-space:nowrap;writing-mode:vertical-rl;letter-spacing:4px;animation:35s linear infinite rain;position:absolute;top:-100%}@keyframes rain{0%{transform:translateY(-50%)}to{transform:translateY(230vh)}}#root{isolation:isolate;flex-direction:column;min-height:100vh;display:flex}.site-header{z-index:20;border-bottom:1px solid var(--border);background:#070b09f5;position:sticky;top:0}.nav{justify-content:space-between;align-items:center;gap:24px;max-width:1328px;margin:auto;padding:14px 32px;display:flex}.nav-brand{color:var(--text);font:600 .875rem/1.5 var(--mono);flex-shrink:0;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.nav-brand>span:first-child{color:var(--green)}.nav-brand .brand-suffix{color:var(--faint);margin-left:-8px}.cursor{background:var(--green);vertical-align:middle;opacity:.65;width:7px;height:14px;display:inline-block}.nav-links{align-items:center;gap:4px;display:flex}.nav-link{min-height:44px;font:500 .8rem/1.7 var(--mono);color:var(--muted);white-space:nowrap;border-radius:4px;padding:11px 12px;text-decoration:none;display:block}.nav-link:hover{color:var(--text);background:var(--panel-raised)}.nav-link.active{color:var(--green);background:#14261b}.nav-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.lang-switch{gap:1px;display:flex}.lang-btn{min-width:36px;min-height:44px;font:500 .72rem/1 var(--mono);color:var(--faint);border-radius:3px;justify-content:center;align-items:center;text-decoration:none;display:flex}.lang-btn.active{color:var(--text);background:#17251d}.nav-mobile-toggle{border:1px solid var(--border);width:44px;height:44px;color:var(--green);background:0 0;border-radius:4px;padding:11px;display:none}.mobile-menu{border-top:1px solid var(--border);background:var(--panel);max-height:calc(100dvh - 76px);padding:12px 20px 20px;overflow-y:auto}.mobile-menu .nav-link{padding:13px 14px}.skip-link{z-index:30;background:var(--green);color:var(--bg);padding:12px 20px;position:absolute;top:8px;left:16px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.page{z-index:0;flex:1;width:100%;max-width:1200px;margin:0 auto;padding:64px 32px 72px;position:relative}.hero{grid-template-columns:1.35fr 1fr;align-items:center;gap:54px;padding:18px 0 68px;display:grid}.hero .eyebrow{letter-spacing:0;margin-bottom:14px;font-size:.9rem}.hero-role{font:500 .8rem/1.6 var(--mono);color:var(--muted);margin-bottom:22px}.hero h1{max-width:690px}.hero-intro{max-width:640px;margin-top:24px;font-size:1.05rem;line-height:1.8}.hero .actions{gap:12px}.terminal{background:var(--panel);border:1px solid #3c5945;border-radius:8px;min-width:0;overflow:hidden;box-shadow:0 18px 60px #0004}.terminal-header{border-bottom:1px solid var(--border);color:var(--faint);font:.7rem/1.5 var(--mono);align-items:center;gap:18px;padding:14px 18px;display:flex}.terminal-dots{gap:6px;display:flex}.terminal-dots i{background:#496753;border-radius:50%;width:7px;height:7px}.terminal-dots i:first-child{background:#b47665}.terminal-dots i:nth-child(2){background:#bba264}.terminal-dots i:last-child{background:#70b68a}.terminal-body{font:400 .74rem/1.8 var(--mono);padding:24px}.terminal-command{color:var(--green)}.terminal-name{color:var(--text);letter-spacing:-.03em;margin:14px 0 20px;font-size:1.2rem}.terminal-line{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);margin:8px 0}.terminal-stack{flex-wrap:wrap;gap:8px;margin:22px 0;display:flex}.terminal-stack span,.tags span{border:1px solid var(--border);font:400 .7rem/1.7 var(--mono);color:var(--green);border-radius:3px;padding:4px 9px}.section-top{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px;display:flex}.featured-card{border:1px solid var(--border);background:var(--panel);border-radius:8px;grid-template-columns:1fr 1.1fr;display:grid;overflow:hidden}.featured-copy{padding:32px}.featured-copy h3{font:600 1.5rem/1.4 var(--mono);color:var(--text);margin:8px 0 12px}.project-summary{color:var(--text);margin-bottom:14px;font-size:1.1rem;line-height:1.5}.featured-copy>p:not(.project-summary){font-size:.92rem}.project-art{min-width:0;color:var(--green);background:linear-gradient(130deg,#122319,#09100c);justify-content:center;align-items:center;padding:16px;display:flex}.project-art svg{width:100%;max-width:550px;height:auto}.project-art rect:not([fill]),.project-art path{fill:none;stroke:currentColor;stroke-width:1.2px}.project-art text{fill:var(--green);font:14px var(--mono);stroke:none}.project-art .diagram-label{fill:var(--muted);letter-spacing:1px;font-size:11px}.project-art .diagram-small{fill:var(--muted);font-size:11px}.project-art .changed-block{fill:var(--green)!important}.home-about{border-top:1px solid var(--border);grid-template-columns:1fr 1.1fr;gap:40px;margin-top:54px;padding:30px 0 0;display:grid}.home-about h2,.home-about .text-link{margin-top:12px}.section-head{max-width:790px;margin-bottom:48px}.section-head h1{margin:10px 0 18px;font-size:clamp(2.4rem,5vw,3.4rem)}.section-sub{max-width:700px;font-size:1.1rem;line-height:1.75}.bio-intro{grid-template-columns:1.4fr 1fr;gap:48px;display:grid}.bio-intro h2{margin-bottom:22px}.bio-intro p+p{margin-top:16px}.skills-panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;align-self:start;padding:28px}.skills-panel h2{font-size:1.25rem}.skill-group+.skill-group{margin-top:22px}.skill-group h3{font:500 .8rem/1.6 var(--mono);color:var(--green);margin-bottom:6px}.skill-group p{font-size:.9rem}.skills-panel>.text-link{margin-top:20px}.experience{margin-top:64px}.company{border-top:1px solid var(--border);grid-template-columns:200px 1fr;gap:32px;padding:30px 0;display:grid}.company>h3{font:500 1.15rem/1.5 var(--mono);color:var(--green)}.roles{border-left:1px solid var(--border);padding-left:28px}.role{position:relative}.role+.role{margin-top:30px}.role:before{content:"";background:var(--green);border-radius:50%;width:7px;height:7px;position:absolute;top:9px;left:-32px}.role-date{font:.75rem/1.6 var(--mono);color:var(--faint);margin-bottom:8px}.role h4{margin-bottom:10px}.role>p:last-child{max-width:750px;font-size:.95rem}.credentials{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:48px;margin-top:48px;padding-top:36px;display:grid}.credentials h2{margin-bottom:22px}.credential{border-bottom:1px solid var(--border);padding:18px 0}.credential h3{margin-bottom:8px;font-size:1rem}.credential p{font-size:.9rem}.credential .degree{color:var(--text);margin-bottom:8px}.contact-banner{background:var(--panel);border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;gap:32px;margin-top:54px;padding:32px;display:flex}.contact-banner p{max-width:760px;margin-top:12px}.contact-banner .button{flex-shrink:0}.projects-grid{grid-template-columns:1fr 1fr;gap:26px;display:grid}.project-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;scroll-margin-top:110px;display:flex;overflow:hidden}.project-featured{grid-column:1/-1;grid-template-columns:1fr 1.1fr;display:grid}.project-copy{flex-direction:column;flex:1;padding:30px;display:flex}.project-copy h2{font:600 1.5rem/1.4 var(--mono);margin:8px 0 12px}.project-number{font:.7rem/1.6 var(--mono);color:var(--faint);letter-spacing:.08em}.tags{flex-wrap:wrap;gap:7px;margin:8px 0 24px;display:flex}.project-details{flex:1;margin:0;font-size:.92rem}.project-details dt{color:var(--green);font:500 .75rem/1.6 var(--mono);margin-bottom:5px}.project-details dd{color:var(--muted);margin:0 0 20px}.project-details dd:last-child{margin-bottom:0}.project-copy .actions{margin-top:24px}.elsewhere{margin-top:48px}.elsewhere>h2{margin-bottom:22px}.elsewhere-grid{grid-template-columns:1fr 1fr;gap:26px;display:grid}.elsewhere article{border-top:1px solid var(--border);padding:24px 0}.elsewhere h3{font-family:var(--mono);margin:8px 0 14px}.elsewhere .text-link{margin-top:12px}.interest-list{flex-direction:column;gap:24px;display:flex}.interest-row{border:1px solid var(--border);background:var(--panel);border-radius:6px;grid-template-columns:.8fr 1.2fr;display:grid;overflow:hidden}.interest-art{color:var(--green);background:#0a130d;align-items:center;max-height:270px;display:flex;overflow:hidden}.interest-art svg{max-height:270px}.interest-row:nth-child(2n) .interest-art{order:2}.interest-row:nth-child(2n){grid-template-columns:1.2fr .8fr}.interest-body{align-self:center;padding:30px 36px}.interest-body h2{margin:10px 0 14px;font-size:1.5rem}.contact-grid{grid-template-columns:1fr 1.1fr;gap:48px;display:grid}.contact-grid h2{margin-bottom:20px;font-size:1.35rem}.contact-channels>p{margin-bottom:28px}.contact-item{border-top:1px solid var(--border);grid-template-columns:40px minmax(0,1fr) 15px;align-items:center;gap:14px;min-width:0;padding:18px 0;text-decoration:none;display:grid}.contact-icon{width:40px;height:40px;color:var(--green);border:1px solid var(--border);border-radius:5px;place-items:center;display:grid}.contact-value{color:var(--text);font:500 .82rem/1.6 var(--mono);overflow-wrap:anywhere;display:block}.contact-item:hover .contact-value{color:var(--green)}.contact-meta{color:var(--faint);margin-top:3px;font-size:.8rem;display:block}.contact-card{background:var(--panel);border:1px solid var(--border);border-radius:6px;min-width:0;padding:28px}.form-hint{margin-bottom:22px;font-size:.82rem}.form-row{margin-bottom:18px}.form-row label{color:var(--text);margin-bottom:7px;font-size:.88rem;display:block}.form-row input,.form-row textarea{background:var(--bg);width:100%;color:var(--text);border:1px solid #496250;border-radius:4px;min-height:46px;padding:11px 12px;font-size:1rem;display:block}.form-row textarea{resize:vertical;min-height:160px}.form-row input:focus,.form-row textarea:focus{border-color:var(--green)}.form-row [aria-invalid=true]{border-color:#ffa799}.form-counter{text-align:right;font:.7rem/1.8 var(--mono);color:var(--faint);margin-top:5px;display:block}.over-limit,.form-error{color:#ffb9aa}.form-error p{color:inherit}.form-error p+p{margin-top:8px}.form-status:not(:empty),.form-error:not(:empty){border-left:2px solid;margin-top:20px;padding-left:14px;font-size:.92rem}.form-status{color:var(--green)}.privacy-note{margin:0 0 24px;font-size:.8rem;line-height:1.7}.honeypot{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.footer{z-index:0;border-top:1px solid var(--border);background:var(--bg);flex-wrap:wrap;align-items:center;gap:24px;padding:32px max(24px,50vw - 568px);display:flex;position:relative}.footer-name{font:500 .85rem/1.6 var(--mono);color:var(--text);text-decoration:none}.footer-name span{color:var(--faint)}.footer p{margin-top:5px;font-size:.8rem}.footer-links{flex-wrap:wrap;gap:20px;margin-left:auto;display:flex}.footer-links a{font:400 .75rem/1.7 var(--mono);align-items:center;min-height:44px;display:inline-flex}.footer small{color:var(--faint);font:400 .68rem/1.6 var(--mono)}@media (min-width:1061px){.mobile-menu{display:none!important}}@media (max-width:1060px){.nav-links{display:none}.nav-mobile-toggle{display:block}.nav{padding:12px 24px}.hero{grid-template-columns:1.2fr 1fr;gap:30px}.terminal-body{padding:20px}.terminal-line{font-size:.7rem}.bio-intro{gap:28px}.company{grid-template-columns:160px 1fr}.contact-grid{gap:28px}}@media (max-width:760px){.page{padding:36px 22px 48px}.hero{grid-template-columns:1fr;gap:30px;padding:0 0 40px}.hero h1{max-width:590px;font-size:clamp(2.15rem,7.5vw,3.2rem)}.hero-intro{margin-top:20px;font-size:1rem}.hero .terminal{max-width:none}.terminal-body{padding:18px 22px}.terminal-line{font-size:.76rem}.terminal-name{margin:10px 0}.terminal-stack{margin:14px 0}.terminal-header{padding:10px 18px}.hero-role{margin-bottom:14px}.hero .eyebrow{margin-bottom:10px}.hero .actions{margin-top:22px}.featured-card,.project-featured{flex-direction:column;display:flex}.featured-card .project-art{max-height:230px}.featured-copy,.project-copy{padding:24px}.section-top{flex-wrap:wrap;gap:4px}.section-top .text-link{min-height:36px}.home-about{grid-template-columns:1fr;gap:16px;margin-top:32px}.section-head{margin-bottom:32px}.section-sub{font-size:1rem}.bio-intro,.credentials,.contact-grid{grid-template-columns:1fr;gap:30px}.experience{margin-top:42px}.company{grid-template-columns:1fr;gap:18px;padding:25px 0}.roles{margin-left:4px;padding-left:20px}.role:before{left:-24px}.credentials{gap:24px;margin-top:24px}.contact-banner{flex-direction:column;align-items:flex-start;gap:4px;margin-top:32px;padding:24px}.contact-banner .button{margin-top:18px}.projects-grid{grid-template-columns:1fr}.project-featured{grid-column:auto}.project-art{max-height:240px}.elsewhere-grid{grid-template-columns:1fr;gap:0}.interest-row,.interest-row:nth-child(2n){grid-template-columns:1fr}.interest-art{justify-content:center;height:165px}.interest-art svg{max-width:100%;max-height:165px;width:auto!important}.interest-row:nth-child(2n) .interest-art{order:0}.interest-body{padding:22px}.interest-body h2{font-size:1.3rem}.contact-card{padding:22px}.footer{gap:16px;padding:26px 22px}.footer-links{width:100%;margin-left:0}.binary-rain{opacity:.035}}@media (max-width:440px){.nav{gap:10px;padding:10px 16px}.nav-brand{gap:6px;font-size:.88rem}.brand-suffix,.nav-brand .cursor{display:none}.nav-right{gap:6px}.lang-btn{min-width:32px}.nav-mobile-toggle{width:42px}.page{padding-left:18px;padding-right:18px}.hero h1{font-size:2.25rem}.hero .actions{gap:10px}.hero .button{padding:10px 12px;font-size:.75rem}.terminal-body{padding:16px}.terminal-line{font-size:.69rem}.contact-card{padding:20px 16px}.contact-item{grid-template-columns:36px minmax(0,1fr) 12px;gap:10px}.contact-icon{width:36px;height:36px}.footer-links{gap:14px}.section-head h1{font-size:2.25rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.binary-rain{display:none}}@media print{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--panel:#fff;--text:#111;--muted:#333;--faint:#444;--green:#163f27;--border:#bbb}body{font-size:10pt}.site-header,.binary-rain,.footer,.no-print,.contact-banner,.print-button{display:none!important}.page{max-width:none;padding:0}.section-head{margin-bottom:20px}.section-head h1{font-size:24pt}.section-sub{font-size:11pt}.bio-intro{display:block}.skills-panel{margin-top:20px;padding:16px}.experience{margin-top:25px}.company{padding:18px 0;display:block}.company>h3{margin-bottom:14px}.role,.credential{break-inside:avoid}.role+.role{margin-top:18px}h2,h3,h4{break-after:avoid}.credentials{gap:28px;margin-top:20px;padding-top:20px}a{color:#111}.button{color:#111!important;border-color:#aaa!important}.role-date{font-size:9pt}}.binary-col{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='650'%3E%3Ctext x='7' y='0' writing-mode='vertical-rl' fill='%2370f39b' font-family='monospace' font-size='12' letter-spacing='4'%3E101001001011010010010110100100101101001001011010%3C/text%3E%3C/svg%3E");width:14px;height:650px}:root{--amber:#e9be7d;--blue:#8ccede}.page{background:radial-gradient(at 100% 0,#18372632,#0000 52%)}.hero{grid-template-columns:1.12fr 1fr;gap:64px;padding-bottom:38px}.hero-role{font-family:var(--sans);color:var(--amber);font-size:.92rem}.hero h1{max-width:660px;font-size:clamp(2.8rem,5.2vw,4.4rem)}.curiosity-map{min-width:0;color:var(--green);border:1px solid var(--border);background:linear-gradient(150deg,#14241a,#090f0d);border-radius:50% 50% 10px 10px;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:block;position:relative;overflow:hidden}.curiosity-map:hover{border-color:var(--green);box-shadow:0 0 60px #70f39b0c}.map-caption{top:32px;z-index:1;justify-content:space-between;align-items:center;display:flex;position:absolute;left:22%;right:22%}.map-caption .eyebrow{letter-spacing:.04em;margin:0;font-size:.68rem}.orbit-art{width:100%;height:auto;color:var(--green)}.curiosity-map>.orbit-art{padding-top:35px}.orbit-amber{color:var(--amber)}.orbit-blue{color:var(--blue)}.map-link{border-top:1px solid var(--border);font:500 .8rem/1.7 var(--mono);color:var(--text);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.interest-trail{border-block:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:48px;display:grid}.interest-trail a{color:var(--text);align-items:center;gap:15px;padding:22px 20px;font-size:.9rem;text-decoration:none;display:flex}.interest-trail a+a{border-inline-start:1px solid var(--border)}.interest-trail a>span:last-child{color:var(--faint);margin-inline-start:auto}.interest-trail a:hover{background:var(--panel);color:var(--green)}.trail-symbol{color:var(--amber);font-size:1.7rem;line-height:1}.interest-trail a:first-child .trail-symbol{color:var(--blue)}.interest-trail a:last-child .trail-symbol{color:var(--green)}.section-head{border-bottom:1px solid var(--border);isolation:isolate;max-width:none;min-height:190px;padding:18px 28% 22px 0;position:relative}.section-orbit{opacity:.6;z-index:-1;pointer-events:none;width:260px;position:absolute;top:-42px}.section-orbit:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:0}.section-orbit:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:0}.section-orbit:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:0}.section-orbit:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:0}.section-orbit .orbit-art{max-height:250px}.section-head h1,.section-head p{position:relative}.section-head .eyebrow{width:max-content}.bio-intro{grid-template-columns:1.4fr 1fr;align-items:start}.bio-intro>div>p{font-size:1.04rem;line-height:1.9}.bio-curiosity{border:1px solid var(--border);background:linear-gradient(150deg,#11251a,#0a1510);border-radius:8px;min-width:0;overflow:hidden}.bio-sky{height:142px;color:var(--blue);border-bottom:1px solid var(--border);overflow:hidden}.bio-sky svg{width:100%;height:100%}.bio-curiosity h2{margin:24px 24px 12px;font-size:1.1rem}.bio-curiosity ul{margin:0;padding:0 24px 20px;list-style:none}.bio-curiosity a{color:var(--muted);border-bottom:1px solid #2e453670;justify-content:space-between;align-items:center;gap:16px;min-height:44px;font-size:.88rem;text-decoration:none;display:flex}.bio-curiosity a:hover{color:var(--green)}.bio-notes{border-top:1px solid var(--border);margin-top:48px}.bio-notes article{border-bottom:1px solid var(--border);grid-template-columns:72px minmax(0,1fr);gap:24px;padding:28px 0;display:grid}.note-index{font:400 2.4rem/1.2 var(--mono);color:var(--green);opacity:.8}.bio-notes article:nth-child(2) .note-index{color:var(--blue)}.bio-notes article:nth-child(3) .note-index{color:var(--amber)}.bio-notes h2{margin-bottom:12px;font-size:1.15rem}.bio-notes p{max-width:830px}.bio-notes>.text-link{margin-top:18px}.project-art{border-bottom:1px solid var(--border);background:radial-gradient(#70f39b12,#0000 65%),linear-gradient(145deg,#10271a,#0a1410);position:relative}.project-art:before{content:"";pointer-events:none;border:1px solid #70f39b18;border-radius:4px;position:absolute;top:12px;bottom:12px;left:12px;right:12px}.project-card:nth-child(2) .project-art{filter:hue-rotate(40deg)}.project-card:nth-child(3) .project-art{filter:hue-rotate(-65deg)}.interest-row{scroll-margin-top:110px}.interest-art{background:radial-gradient(at 40%,#70f39b13,#0000 70%),#0a130d;position:relative}.interest-astro .interest-art{color:var(--blue);background:radial-gradient(#8ccede15,#0000 70%),#0b1319}.interest-gaming .interest-art{color:#c4adf5;background:radial-gradient(#c4adf518,#0000 70%),#14101c}.interest-gen .interest-art{color:var(--amber);background:radial-gradient(#e9be7d14,#0000 70%),#18150f}.interest-geo .interest-art{color:#a9d999}.interest-row .eyebrow{color:var(--faint)}.contact-icon{background:radial-gradient(circle at 35% 25%,#70f39b20,#0000);border-radius:50%}.contact-card{background:radial-gradient(ellipse at 100% 0,#70f39b09,transparent 60%),var(--panel)}.footer{border-top-color:#42634c}@media (max-width:1200px){.nav-links{display:none}.nav-mobile-toggle{display:block}.hero{gap:36px}}@media (min-width:1061px) and (max-width:1200px){.mobile-menu:not([hidden]){display:block!important}}@media (max-width:760px){.hero{grid-template-columns:1fr;gap:30px}.hero h1{font-size:clamp(2.6rem,9vw,3.6rem)}.curiosity-map{width:100%;max-width:440px;margin-inline-start:auto;margin-inline-end:auto}.curiosity-map>.orbit-art{max-height:330px}.map-caption{top:24px}.interest-trail{grid-template-columns:1fr;margin-bottom:36px}.interest-trail a{min-height:60px;padding:13px 16px}.interest-trail a+a{border-inline-start:0;border-top:1px solid var(--border)}.section-head{min-height:0;padding:8px 0 22px;overflow:hidden}.section-orbit{opacity:.16;top:-50px;width:190px}.section-orbit:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:-50px}.section-orbit:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:-50px}.section-orbit:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:-50px}.section-orbit:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:-50px}.section-head h1,.section-head p{max-width:100%}.bio-intro{grid-template-columns:1fr}.bio-notes{margin-top:32px}.bio-notes article{grid-template-columns:42px minmax(0,1fr);gap:14px;padding:24px 0}.note-index{font-size:1.65rem}.bio-intro>div>p{font-size:1rem}}@media print{.section-orbit,.curiosity-map,.bio-sky{display:none}.section-head{padding:0}.bio-curiosity{background:0 0}.bio-notes article{break-inside:avoid}}.language-menu{position:relative}.language-menu summary{border:1px solid var(--border);min-height:44px;color:var(--text);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:.82rem;list-style:none;display:flex}.language-menu summary::-webkit-details-marker{display:none}.language-menu[open] summary{border-color:var(--green)}.language-chevron{color:var(--green)}.language-menu .lang-switch{background:var(--panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;min-width:168px;padding:6px;display:flex;position:absolute;top:calc(100% + 10px);box-shadow:0 12px 36px #0008}.language-menu .lang-switch:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:0}.language-menu .lang-switch:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:0}.language-menu .lang-switch:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:0}.language-menu .lang-switch:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:0}.language-menu .lang-btn{font-family:var(--sans);justify-content:space-between;gap:22px;padding:10px 12px;font-size:.88rem;line-height:1.6}.lang-btn:hover{background:var(--panel-raised)}:lang(ar){--sans:"Noto Sans Arabic",Tahoma,"Segoe UI",Arial,sans-serif;--mono:"Noto Sans Arabic",Tahoma,"Segoe UI",Arial,sans-serif}:lang(ar) h1,:lang(ar) h2,:lang(ar) h3,:lang(ar) .eyebrow{letter-spacing:0;line-height:1.6}:lang(ar) p{line-height:1.95}:lang(zh) h1,:lang(zh) h2,:lang(zh) h3{letter-spacing:0;text-wrap:pretty;word-break:normal;line-height:1.5}[dir=rtl] .section-head{padding-left:28%;padding-right:0}[dir=rtl] .nav-brand,[dir=rtl] .footer-name,[dir=rtl] .project-art,[dir=rtl] .tags,[dir=rtl] .project-number{font-family:ui-monospace,Consolas,monospace}[dir=rtl] .footer-links{margin-left:0;margin-right:auto}.form-counter{text-align:end}.form-status:not(:empty),.form-error:not(:empty){border-left:0;padding-left:0;border-inline-start:2px solid;padding-inline-start:14px}@media (max-width:760px){[dir=rtl] .section-head{padding-left:0}[dir=rtl] .footer-links{margin-right:0}}@media (max-width:440px){.language-menu summary{gap:6px;padding:8px}.nav,.nav-right{gap:8px}}@font-face{font-family:Noto Sans SC Local;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/noto-sans-sc-subset-C6cZA0hY.woff2)format("woff2");unicode-range:U+3000-9FFF,U+FF00-FFEF}:lang(zh){--sans:"Noto Sans SC Local","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--mono:"Noto Sans SC Local","PingFang SC","Microsoft YaHei",monospace}.trail-symbol svg{width:24px;height:24px}.direction-arrow{display:inline-block}[dir=rtl] .direction-arrow{transform:scaleX(-1)}
