@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@400;500;600&display=swap";:root{--bg:#000;--text:#f4f4f4;--body:#c4c4c4;--muted:#909090;--line:#262626;--soft-line:#181818;--mono:"DM Mono",Consolas,monospace;--sans:Inter,Arial,sans-serif}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}.page-shell{border-inline:1px solid var(--line);width:min(100%,900px);margin:0 auto}.site-header{z-index:2;border-block:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000e0;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;height:62px;padding:0 2rem;display:flex}.wordmark{font:.72rem var(--mono);color:#e8e8e8;align-items:center;gap:.5rem;display:flex}.wordmark i{background:#3a3a3a;width:8px;height:1px;transition:width .2s}.wordmark:hover i{width:16px}.header-actions{align-items:center;gap:1.35rem;display:flex}.resume-top{color:#c7c7c7;font:.7rem var(--mono)}.resume-top:hover{color:#fff}.site-header nav{font:.72rem var(--sans);color:var(--muted);align-items:center;gap:.7rem;display:flex}.site-header nav a{padding:.55rem .35rem;transition:color .2s}.site-header nav a:hover{color:var(--text)}.site-header nav em{background:#222;width:12px;height:1px}.hero{padding:clamp(7rem,15vw,10rem) 2rem clamp(4rem,8vw,6.5rem);position:relative}.hero-location{color:#d0d0d0;font:.9rem var(--mono);align-items:center;gap:.65rem;margin:0;display:flex;position:absolute;top:2.15rem;right:2rem}.hero-location i{border:2px solid #aaa;border-radius:50%;width:15px;height:15px;position:relative}.hero-location i:after{content:"";background:#aaa;border-radius:50%;position:absolute;inset:3px}.profile-strip{align-items:center;gap:1.35rem;margin-bottom:3rem;display:flex}.profile-strip img{object-fit:cover;object-position:center 22%;border:1px solid #3c3c3c;border-radius:50%;width:106px;height:106px}.profile-strip>span{background:#2d2d2d;width:1px;height:48px}.profile-strip h1{letter-spacing:-.04em;max-width:600px;margin:0;font-size:clamp(1.75rem,3.5vw,2.6rem);font-weight:500}.profile-strip small{color:#858585;font:.78rem var(--mono);margin-top:.55rem;display:block}.hero>p:not(.hero-location){max-width:600px;color:var(--body);margin:0;font-size:clamp(1rem,1.9vw,1.18rem);line-height:1.72}.ornament{align-items:center;gap:.7rem;margin-top:2.75rem;display:flex}.ornament i,.ornament b{border-radius:50%;width:8px;height:8px;display:block}.ornament i{background:#656565}.ornament span{background:var(--line);width:84px;height:1px;display:block}.ornament b{background:#292929}.section{border-top:1px solid var(--line);padding:3.5rem 2rem 4rem}.section-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2.7rem;display:flex}.section-heading>div{background:#404040;width:24px;height:1px}.section-heading>span{color:#999;font:.72rem var(--mono);text-transform:lowercase;letter-spacing:.09em;margin-right:auto}.section-heading aside{align-items:center;gap:.5rem;display:flex}.section-heading aside i{background:#414141;border-radius:50%;width:7px;height:7px}.section-heading aside b{background:var(--line);width:30px;height:1px}.experience-list{border-top:1px solid var(--soft-line)}.experience-row{border-bottom:1px solid var(--soft-line);grid-template-columns:170px 1fr;gap:1.5rem;padding:1.5rem 0;display:grid}.experience-row small{color:#888;font:.68rem var(--mono)}.experience-row div{gap:.3rem;display:grid}.experience-row strong{font-size:.9rem;font-weight:400}.experience-row span{color:#999;font-size:.78rem}.row-technologies{color:#717171;font:.65rem var(--mono);margin:.45rem 0 0}.experience-row ul{color:#aaa;gap:.4rem;margin:1rem 0 0;padding-left:1.1rem;font-size:.78rem;line-height:1.6;display:grid}.experience-row li::marker{color:#666}.project-bullets li::marker{color:#666}.project-details{gap:3rem;display:grid}.featured-copy{border-left:1px solid #303030;grid-template-columns:minmax(0,1fr) auto;gap:2.5rem;padding-left:1.5rem;display:grid}.project-kicker{color:#777;font:.68rem var(--mono);margin:0 0 1rem}.featured-copy h2{letter-spacing:-.03em;margin:0 0 1.1rem;font-size:clamp(1.45rem,2.8vw,2rem);font-weight:500}.featured-copy p{max-width:650px;color:var(--body);margin:0;font-size:.98rem;line-height:1.72}.featured-copy>a{color:#d0d0d0;white-space:nowrap;align-self:end;font-size:.8rem;transition:color .2s}.featured-copy>a:hover{color:#fff}.technologies-line{color:#838383!important;font:.7rem var(--mono)!important;margin-top:1.2rem!important}.project-bullets{color:#a8a8a8;gap:.4rem;margin:1.15rem 0 0;padding-left:1.1rem;font-size:.78rem;line-height:1.6;display:grid}.arrow{color:#777;margin-left:.45rem;transition:transform .2s,color .2s;display:inline-block}a:hover .arrow{color:#eee;transform:translate(2px,-2px)}.project-photo-globe{border-top:1px solid var(--soft-line);content-visibility:auto;contain-intrinsic-size:780px;place-items:center;margin-top:clamp(3.5rem,8vw,6rem);padding:clamp(2.5rem,5vw,4rem) 0;display:grid}.globe-label{color:#bdbdbd;width:100%;font:500 clamp(.94rem,1.6vw,1.1rem) var(--mono);letter-spacing:-.02em;margin:0 0 clamp(1.3rem,3vw,2rem)}.photo-globe-stage{perspective:1320px;cursor:grab;touch-action:none;background:radial-gradient(#ffffff0b,#0000 60%);place-items:center;width:100%;min-height:clamp(570px,68vw,790px);display:grid;position:relative;overflow:hidden}.photo-globe-stage:active{cursor:grabbing}.photo-globe-world{transform-origin:50%;width:0;height:0;transform-style:preserve-3d;position:relative}.photo-orbit-card{transform-style:preserve-3d;backface-visibility:visible;cursor:pointer;background:0 0;border:0;padding:0;display:block;position:absolute;top:0;left:0}.photo-orbit-card figure{aspect-ratio:1.5;backface-visibility:visible;background:#080808;border:1px solid #ffffff2b;border-radius:3px;width:clamp(82px,10.5vw,136px);margin:0;overflow:hidden;box-shadow:0 16px 36px #00000094}.photo-orbit-card img{object-fit:cover;opacity:.96;width:100%;height:100%;transition:opacity .25s,transform .25s,filter .25s}.photo-orbit-card:hover img,.photo-orbit-card:focus-visible img{opacity:1;filter:brightness(1.08);transform:scale(1.06)}.photo-orbit-card:focus-visible{outline-offset:4px;outline:1px solid #d7d7d7}.photo-globe-lightbox{z-index:100;cursor:zoom-out;background:#000000e0;place-items:center;padding:2rem;display:grid;position:fixed;inset:0}.photo-globe-lightbox>div{cursor:default;width:min(450px,76vw);max-height:58vh;position:relative}.photo-globe-lightbox img{object-fit:contain;background:#070707;border:1px solid #fff3;width:100%;max-height:58vh;display:block}.photo-globe-lightbox button{z-index:1;color:#fff;font:.7rem var(--mono);cursor:pointer;background:#000000b8;border:1px solid #ffffff8c;border-radius:3px;padding:.55rem .75rem;position:absolute;top:10px;right:10px}@media (width<=700px){.photo-globe-stage{perspective:880px;min-height:470px}.photo-orbit-card figure{width:clamp(66px,18vw,92px)}.photo-globe-lightbox>div{width:min(360px,82vw);max-height:54vh}.photo-globe-lightbox img{max-height:54vh}}.project-globe-detail{color:#aaa;font:.78rem/1.65 var(--sans);padding:1rem 0 0}.project-globe-detail h2{color:#f1f1f1;font:500 1rem var(--sans);margin:0 0 .45rem}.project-globe-detail p{margin:0 0 .7rem}.project-globe-detail span{color:#777;font:.64rem/1.5 var(--mono);display:block}.project-globe-detail a{color:#dedede;font:.68rem var(--mono);margin-top:.9rem;display:inline-block}.stack-list{border-top:1px solid var(--soft-line)}.stack-list p{border-bottom:1px solid var(--soft-line);color:#9d9d9d;font:.8rem/1.65 var(--mono);margin:0;padding:1.15rem 0}.stack-list b{color:#e0e0e0;width:150px;font-weight:400;display:inline-block}.about-copy{color:var(--body);grid-template-columns:1.15fr .85fr;gap:3.5rem;font-size:.96rem;line-height:1.75;display:grid}.about-copy p{margin:0 0 1.8rem}.about-copy b{color:#ececec;margin-bottom:.55rem;font-size:.78rem;font-weight:500;display:block}.contact-list{border-top:1px solid var(--soft-line)}.contact-list a{border-bottom:1px solid var(--soft-line);color:#999;grid-template-columns:100px 1fr 20px;align-items:center;gap:1rem;padding:1rem 0;transition:background .2s;display:grid}.contact-list a:hover{background:#050505}.contact-list strong{color:#c5c5c5;font:.72rem var(--mono);font-weight:400}.contact-list span{font-size:.82rem}.contact-list .arrow{margin:0}.activity{border-block:1px dashed #23313a;margin-top:5rem;padding:2rem}.activity-head{justify-content:space-between;align-items:end;gap:2rem;display:flex}.activity-head span{color:#6f91b1;font:.72rem var(--mono)}.activity-head h2{color:#e8e8e8;font:clamp(1.5rem,3vw,2.5rem) var(--mono);letter-spacing:-.08em;margin:.55rem 0 0}.activity-head a{color:#93a8b9;font:.68rem var(--mono);white-space:nowrap}.activity-link{display:block}.activity-months{color:#d6d6d6;font:.7rem var(--mono);grid-template-columns:repeat(12,1fr);gap:.4rem;margin:3rem 0 .6rem;padding-left:.15rem;display:grid}.contribution-grid{grid-template-rows:repeat(7,11px);grid-template-columns:repeat(52,11px);grid-auto-flow:column;gap:3px;display:grid;overflow:hidden}.contribution-grid i,.activity-foot i{background:#202930;border-radius:2px;width:11px;height:11px;display:block}.contribution-grid .level-1,.activity-foot .level-1{background:#0e4429}.contribution-grid .level-2,.activity-foot .level-2{background:#006d32}.contribution-grid .level-3,.activity-foot .level-3{background:#26a641}.contribution-grid .level-4,.activity-foot .level-4{background:#39d353}.activity-foot{color:#d4d4d4;font:.72rem var(--mono);justify-content:space-between;align-items:center;gap:1rem;margin-top:1.15rem;display:flex}.activity-foot>span:last-child{white-space:nowrap;align-items:center;gap:.35rem;display:flex}.activity-link:hover .contribution-grid{filter:brightness(1.18)}.activity-link:hover .activity-foot>span:first-child{color:#fff}footer{border-top:1px solid var(--line);color:#646464;font:.64rem var(--mono);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;margin-top:4rem;padding-top:1.25rem;display:flex}footer a:hover{color:#bbb}@media (width<=700px){.page-shell{border-inline:0}.header-inner{padding-inline:1.25rem}.header-actions{gap:.5rem}.resume-top{display:none}.site-header nav{gap:.35rem;font-size:.63rem}.site-header nav em{width:5px}.hero{padding:7.5rem 1.25rem 4rem}.hero-location{font-size:.72rem;top:2.2rem;right:1.25rem}.profile-strip{margin-bottom:2.7rem}.profile-strip img{width:72px;height:72px}.profile-strip h1{font-size:1.65rem}.section{padding:3rem 1.25rem}.experience-row{grid-template-columns:1fr;gap:.45rem}.featured-copy{grid-template-columns:1fr;gap:1.5rem;padding-left:1rem}.project-details{gap:2.25rem}.stack-list b{width:100%;margin-bottom:.25rem}.about-copy{grid-template-columns:1fr;gap:.5rem}.contact-list a{grid-template-columns:84px 1fr 16px}.contact-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.activity{margin-inline:-1.25rem;padding:1.25rem}.activity-head{flex-direction:column;align-items:flex-start;gap:1rem}.activity-months{margin-top:2rem;font-size:.58rem}.contribution-grid{grid-template-rows:repeat(7,10px);grid-template-columns:repeat(31,10px);gap:3px}.contribution-grid i{width:10px;height:10px}.activity-foot{flex-direction:column;align-items:flex-start;font-size:.62rem}footer{flex-wrap:wrap;gap:1rem}}
