@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&family=Geist:wght@500;600;700&display=swap);:root{--bg:#131313;--low:#1b1b1b;--container:#1f1f1f;--high:#353535;--text:#e2e2e2;--muted:#cfc4c5;--line:#4c4546;--outline:#988e90;--accent:#c8c8b0;--button-text:#303221}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#000;margin:0}button,input,textarea{border-radius:0;font:inherit}a{color:inherit;text-decoration:none}.app{--pointer-x:50vw;--pointer-y:30vh;background:#131313;background:var(--bg);color:#e2e2e2;color:var(--text);font:400 16px/1.6 Inter,sans-serif;isolation:isolate;min-height:100vh;overflow:clip;position:relative;transition:background .2s,color .2s}@media (hover:hover) and (pointer:fine){.app,.app a,.app button,.app input,.app textarea{cursor:none}}@media (hover:none),(pointer:coarse){.code-cursor{display:none}}.app:before{background:radial-gradient(440px circle at var(--pointer-x) var(--pointer-y),color-mix(in srgb,#c8c8b0 7%,transparent),transparent 72%);background:radial-gradient(440px circle at var(--pointer-x) var(--pointer-y),color-mix(in srgb,var(--accent) 7%,transparent),transparent 72%);content:"";z-index:-1}.app:before,.code-cursor{inset:0;pointer-events:none;position:fixed}.code-cursor{opacity:0;transition:opacity .2s ease;z-index:200}.cursor-visible .code-cursor{opacity:1}.code-cursor>span,.cursor-dot,.cursor-reticle{left:var(--pointer-x);pointer-events:none;position:fixed;top:var(--pointer-y)}.cursor-dot{background:#c8c8b0;background:var(--accent);border-radius:50%;box-shadow:0 0 10px #c8c8b0;box-shadow:0 0 10px var(--accent);height:5px;width:5px;z-index:2}.cursor-dot,.cursor-reticle{-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.cursor-reticle{border:1px solid color-mix(in srgb,#c8c8b0 65%,transparent);border:1px solid color-mix(in srgb,var(--accent) 65%,transparent);border-radius:50%;height:24px;transition:width .22s ease,height .22s ease,border-radius .22s ease,-webkit-transform .12s ease;transition:width .22s ease,height .22s ease,border-radius .22s ease,transform .12s ease;transition:width .22s ease,height .22s ease,border-radius .22s ease,transform .12s ease,-webkit-transform .12s ease;width:24px}.code-cursor>span{color:#c8c8b0;color:var(--accent);font:7px JetBrains Mono,monospace;letter-spacing:.08em;margin:13px 0 0 17px;transition:opacity .2s ease}.cursor-pressed .cursor-reticle{height:38px;-webkit-transform:translate(-50%,-50%) scale(.92);transform:translate(-50%,-50%) scale(.92);width:38px}.cursor-interactive .cursor-reticle{height:36px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:36px}.cursor-interactive .code-cursor>span{opacity:0}.app.light{--bg:beige;--low:#e5e4e2;--container:#deddd5;--high:#d2d1c7;--text:#181818;--muted:#45413f;--line:#a49d94;--outline:#68615c;--accent:#303221;--button-text:beige}.topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb,#131313 96%,transparent);background:color-mix(in srgb,var(--bg) 96%,transparent);border-bottom:1px solid #4c4546;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:20}.scroll-progress{background:#c8c8b0;background:var(--accent);bottom:-1px;box-shadow:0 0 14px color-mix(in srgb,#c8c8b0 55%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--accent) 55%,transparent);height:2px;left:0;position:absolute;transition:width .08s linear;width:var(--scroll-progress);z-index:2}.nav-wrap,footer>div,main{margin:auto;max-width:1100px}.nav-wrap{align-items:center;display:flex;gap:24px;height:68px;justify-content:space-between;padding:0 24px}.brand{font:700 24px/1 Geist,sans-serif;transition:letter-spacing .35s ease;white-space:nowrap}.brand:hover{letter-spacing:.055em}.nav{display:flex;gap:22px;margin-left:auto}.menu-button,.nav a,.resume-small{font:500 12px/1 JetBrains Mono,monospace;letter-spacing:.1em;text-transform:capitalize}.nav a{border-bottom:2px solid transparent;color:#cfc4c5;color:var(--muted);padding:27px 0 25px;transition:color .25s ease,border-color .25s ease,-webkit-transform .25s ease;transition:color .25s ease,border-color .25s ease,transform .25s ease;transition:color .25s ease,border-color .25s ease,transform .25s ease,-webkit-transform .25s ease}.nav a.active,.nav a:hover{border-color:#e2e2e2;border-color:var(--text);color:#e2e2e2;color:var(--text);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.nav-actions{align-items:center;display:flex;gap:16px}.resume-small{border:1px solid #988e90;border:1px solid var(--outline);padding:9px 16px;transition:background .25s ease,color .25s ease,-webkit-transform .25s ease;transition:background .25s ease,color .25s ease,transform .25s ease;transition:background .25s ease,color .25s ease,transform .25s ease,-webkit-transform .25s ease}.resume-small:hover{background:#e2e2e2;background:var(--text);color:#131313;color:var(--bg);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.menu-button,.theme-button{background:none;border:0;color:#cfc4c5;color:var(--muted);cursor:pointer}.theme-button{font-size:25px;line-height:1;transition:-webkit-transform .5s cubic-bezier(.2,.8,.2,1);transition:transform .5s cubic-bezier(.2,.8,.2,1);transition:transform .5s cubic-bezier(.2,.8,.2,1),-webkit-transform .5s cubic-bezier(.2,.8,.2,1)}.theme-button:hover{-webkit-transform:rotate(180deg) scale(1.12);transform:rotate(180deg) scale(1.12)}.menu-button{display:none}main{padding:0 24px}.system-rail{align-items:center;color:#988e90;color:var(--outline);display:flex;font:9px JetBrains Mono,monospace;gap:10px;left:18px;letter-spacing:.12em;position:fixed;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-writing-mode:vertical-rl;writing-mode:vertical-rl;z-index:12}.system-rail>div{background:#4c4546;background:var(--line);height:82px;overflow:hidden;position:relative;width:2px}.system-rail i{background:#c8c8b0;background:var(--accent);box-shadow:0 0 8px #c8c8b0;box-shadow:0 0 8px var(--accent);left:0;position:absolute;top:0;transition:height .12s linear;width:100%}.system-rail strong{color:#c8c8b0;color:var(--accent);font-weight:400}.hero{grid-gap:72px;align-items:start;border-bottom:1px solid var(--line);display:grid;gap:72px;grid-template-columns:1fr 1fr;min-height:690px;padding:126px 0}.hero-enter{-webkit-animation:hero-copy-in .9s cubic-bezier(.16,1,.3,1) .1s both;animation:hero-copy-in .9s cubic-bezier(.16,1,.3,1) .1s both}.hero-terminal{-webkit-animation:hero-terminal-in 1s cubic-bezier(.16,1,.3,1) .22s both;animation:hero-terminal-in 1s cubic-bezier(.16,1,.3,1) .22s both}.status,.tags span{border:1px solid var(--accent);color:var(--accent);display:inline-block;font:400 12px/1 JetBrains Mono,monospace;letter-spacing:.04em}.status{-webkit-animation:status-pulse 2.8s ease-in-out infinite;animation:status-pulse 2.8s ease-in-out infinite;margin-bottom:28px;padding:9px 13px}.hero h1{font:600 48px/1.1 Geist,sans-serif;letter-spacing:-.02em;margin:0 0 24px}.rotating-role{background:color-mix(in srgb,var(--low) 80%,transparent);border:1px solid var(--line);box-shadow:0 15px 35px rgba(0,0,0,.12),inset 0 1px color-mix(in srgb,var(--text) 4%,transparent);color:var(--text);margin:-8px 0 24px;overflow:hidden;position:relative;width:min(100%,470px)}.rotating-role:after{-webkit-animation:role-window-scan 4.5s ease-in-out infinite;animation:role-window-scan 4.5s ease-in-out infinite;background:linear-gradient(110deg,transparent 20%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 70%);content:"";inset:0;pointer-events:none;position:absolute;-webkit-transform:translateX(-110%);transform:translateX(-110%)}.role-window-head{align-items:center;background:color-mix(in srgb,var(--high) 65%,transparent);border-bottom:1px solid var(--line);display:flex;font:500 8px/1 JetBrains Mono,monospace;justify-content:space-between;letter-spacing:.12em;min-height:30px;padding:0 12px}.role-window-head>span{align-items:center;color:var(--accent);display:flex;gap:8px}.role-window-head span i{-webkit-animation:availability-pulse 2.2s ease-in-out infinite;animation:availability-pulse 2.2s ease-in-out infinite;background:#98c379;border-radius:50%;box-shadow:0 0 8px hsla(95,38%,62%,.75);height:6px;width:6px}.role-window-head small{color:var(--outline);font:inherit}.role-window-body{align-items:center;display:flex;font:500 16px/1.4 JetBrains Mono,monospace;gap:9px;min-height:59px;padding:15px 16px}.role-window-body>span{color:var(--outline);flex:none;font-size:11px}.role-window-body strong{color:var(--text);font:inherit;overflow:hidden;text-overflow:clip;white-space:nowrap}.role-window-body>i{-webkit-animation:role-caret .85s steps(1) infinite;animation:role-caret .85s steps(1) infinite;background:var(--accent);flex:none;height:19px;width:7px}.intro{color:var(--muted);font:500 24px/1.4 Geist,sans-serif;margin:0;max-width:480px}.intro strong{color:var(--text)}.facts{display:flex;font:400 13px/1.4 JetBrains Mono,monospace;gap:36px;margin-top:54px}.facts div{display:flex;flex-direction:column}.facts span{color:var(--accent);font-size:11px;letter-spacing:.12em;opacity:.65}.terminal{background:var(--low);border:1px solid var(--line);box-shadow:0 28px 45px rgba(0,0,0,.25);margin-top:30px;transition:box-shadow .45s ease,border-color .3s ease,-webkit-transform .45s cubic-bezier(.2,.8,.2,1);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease,border-color .3s ease;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease,border-color .3s ease,-webkit-transform .45s cubic-bezier(.2,.8,.2,1)}.terminal:focus-within,.terminal:hover{border-color:var(--outline);box-shadow:0 36px 70px rgba(0,0,0,.34);-webkit-transform:translateY(-6px);transform:translateY(-6px)}.terminal-bar{align-items:center;background:var(--high);border-bottom:1px solid var(--line);display:flex;gap:8px;height:39px;padding:0 16px}.terminal-bar i{-webkit-animation:terminal-light 2.4s ease-in-out infinite;animation:terminal-light 2.4s ease-in-out infinite;background:#ffb4ab;height:12px;width:12px}.terminal-bar i:nth-child(2){-webkit-animation-delay:.25s;animation-delay:.25s;background:var(--accent)}.terminal-bar i:nth-child(3){-webkit-animation-delay:.5s;animation-delay:.5s;background:#c7c6c4}.terminal-bar span{color:var(--muted);font:14px JetBrains Mono,monospace;margin-left:auto}.terminal-body{cursor:text;font:13px/1.55 JetBrains Mono,monospace;height:286px;overflow:auto;padding:24px;scrollbar-color:var(--line) transparent;scrollbar-width:thin}.terminal-line{min-height:20px;overflow-wrap:anywhere;white-space:pre-wrap}.terminal-line.output,.terminal-line.system{color:var(--muted)}.terminal-line.system{color:var(--accent);margin-bottom:10px}.terminal-line.command{color:var(--text)}.prompt,.terminal-input-row label{color:var(--accent)}.terminal-input-row{align-items:baseline;color:var(--text);display:flex;flex-direction:row;gap:7px;margin:0}.terminal-input-row label{flex:none;font:inherit;letter-spacing:0}.terminal-input-row input{background:transparent;border:0;caret-color:var(--text);color:var(--text);flex:1 1;font:inherit;margin:0;min-width:0;outline:0;padding:0}.section{padding:82px 0}.impact-strip{grid-gap:1px;background:var(--line);border-bottom:1px solid var(--line);display:grid;gap:1px;grid-template-columns:repeat(4,1fr)}.impact-strip article{background:var(--bg);display:flex;flex-direction:column;min-width:0;padding:32px 24px;transition:background .3s ease,-webkit-transform .35s cubic-bezier(.2,.8,.2,1);transition:background .3s ease,transform .35s cubic-bezier(.2,.8,.2,1);transition:background .3s ease,transform .35s cubic-bezier(.2,.8,.2,1),-webkit-transform .35s cubic-bezier(.2,.8,.2,1)}.impact-strip article:hover{background:var(--low);-webkit-transform:translateY(-5px);transform:translateY(-5px);z-index:1}.impact-strip strong{color:var(--text);font:600 34px/1 Geist,sans-serif;letter-spacing:-.03em}.impact-strip span{color:var(--accent);font:500 10px/1.3 JetBrains Mono,monospace;letter-spacing:.12em;margin-top:13px}.impact-strip small{color:var(--muted);font:11px/1.45 JetBrains Mono,monospace;margin-top:7px}.availability{grid-gap:22px 36px;align-items:center;background:linear-gradient(110deg,color-mix(in srgb,var(--accent) 5%,var(--bg)),var(--bg) 42%);border:1px solid var(--line);display:grid;gap:22px 36px;grid-template-columns:repeat(2,minmax(0,1fr));margin:30px 0 0;padding:18px 20px}.availability-detail,.availability-status{align-items:center;display:flex;gap:12px;min-width:0}.availability-detail,.availability-status>div{min-width:0}.availability-status i{-webkit-animation:availability-pulse 2.2s ease-in-out infinite;animation:availability-pulse 2.2s ease-in-out infinite;background:#98c379;box-shadow:0 0 0 4px hsla(95,38%,62%,.1);flex:none;height:8px;width:8px}.availability-detail,.availability-status div{align-items:flex-start;flex-direction:column;gap:4px}.availability-status strong{white-space:nowrap}.availability span{color:var(--outline);font:8px JetBrains Mono,monospace;letter-spacing:.12em}.availability strong{color:var(--text);font:10px/1.45 JetBrains Mono,monospace;font-weight:500;overflow:hidden;text-overflow:ellipsis}.availability>a{border:1px solid var(--outline);color:var(--accent);font:9px JetBrains Mono,monospace;justify-self:start;letter-spacing:.06em;padding:9px 10px;transition:background .25s ease,color .25s ease,-webkit-transform .25s ease;transition:background .25s ease,color .25s ease,transform .25s ease;transition:background .25s ease,color .25s ease,transform .25s ease,-webkit-transform .25s ease;white-space:nowrap}.availability>a:hover{background:var(--text);color:var(--bg);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.about-section{border-bottom:1px solid var(--line)}.about-layout{grid-gap:80px;align-items:start;display:grid;gap:80px;grid-template-columns:1.1fr .9fr}.about-copy h2{font:500 34px/1.25 Geist,sans-serif;letter-spacing:-.02em;margin:0 0 28px;max-width:620px}.about-copy p{color:var(--muted);margin:0 0 18px;max-width:650px}.principles{border-top:1px solid var(--line)}.principles article{grid-gap:16px;border-bottom:1px solid var(--line);display:grid;gap:16px;grid-template-columns:35px 1fr;padding:20px 0}.building-grid article>span,.principles article>span{color:var(--accent);font:10px JetBrains Mono,monospace;letter-spacing:.1em}.principles h3{font:500 12px JetBrains Mono,monospace;letter-spacing:.08em;margin:0 0 6px}.principles p{color:var(--muted);font-size:13px;margin:0}.reveal{-webkit-filter:blur(7px);filter:blur(7px);opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1) 0ms,-webkit-transform .8s cubic-bezier(.16,1,.3,1) 0ms,-webkit-filter .8s ease 0ms;transition:opacity .8s cubic-bezier(.16,1,.3,1) 0ms,transform .8s cubic-bezier(.16,1,.3,1) 0ms,filter .8s ease 0ms;transition:opacity .8s cubic-bezier(.16,1,.3,1) 0ms,transform .8s cubic-bezier(.16,1,.3,1) 0ms,filter .8s ease 0ms,-webkit-transform .8s cubic-bezier(.16,1,.3,1) 0ms,-webkit-filter .8s ease 0ms;transition:opacity .8s var(--reveal-delay,0ms) cubic-bezier(.16,1,.3,1),-webkit-transform .8s var(--reveal-delay,0ms) cubic-bezier(.16,1,.3,1),-webkit-filter .8s var(--reveal-delay,0ms) ease;transition:opacity .8s var(--reveal-delay,0ms) cubic-bezier(.16,1,.3,1),transform .8s var(--reveal-delay,0ms) cubic-bezier(.16,1,.3,1),filter .8s var(--reveal-delay,0ms) ease;transition:opacity .8s var(--reveal-delay,0ms) cubic-bezier(.16,1,.3,1),transform .8s var(--reveal-delay,0ms) cubic-bezier(.16,1,.3,1),filter .8s var(--reveal-delay,0ms) ease,-webkit-transform .8s var(--reveal-delay,0ms) cubic-bezier(.16,1,.3,1),-webkit-filter .8s var(--reveal-delay,0ms) ease;will-change:opacity,transform,filter}.reveal-left{-webkit-transform:translate3d(-70px,18px,0);transform:translate3d(-70px,18px,0)}.reveal-right{-webkit-transform:translate3d(70px,18px,0);transform:translate3d(70px,18px,0)}.reveal-up{-webkit-transform:translate3d(0,48px,0);transform:translate3d(0,48px,0)}.reveal.is-visible{-webkit-filter:blur(0);filter:blur(0);opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}.section-head{align-items:flex-end;display:flex;gap:24px;justify-content:space-between;margin-bottom:46px;overflow:hidden;position:relative}.section-head:after{background:linear-gradient(90deg,transparent,var(--accent),transparent);bottom:0;content:"";height:1px;left:0;opacity:.7;position:absolute;right:0;-webkit-transform:translateX(-105%);transform:translateX(-105%)}.is-visible .section-head:after{-webkit-animation:section-scan 1.4s ease .35s both;animation:section-scan 1.4s ease .35s both}.section-head h2{color:var(--accent);font:500 24px/1.4 Geist,sans-serif;letter-spacing:.1em;margin:0}.section-head>span{color:var(--muted);font:12px JetBrains Mono,monospace}.section-head a:hover{text-decoration:underline}.skill-grid{grid-gap:1px;background:var(--line);border:1px solid var(--line);display:grid;gap:1px;grid-template-columns:repeat(12,1fr)}.skill-grid article{background:var(--bg);grid-column:span 4;padding:24px;transition:background .3s ease,-webkit-transform .35s cubic-bezier(.2,.8,.2,1);transition:background .3s ease,transform .35s cubic-bezier(.2,.8,.2,1);transition:background .3s ease,transform .35s cubic-bezier(.2,.8,.2,1),-webkit-transform .35s cubic-bezier(.2,.8,.2,1)}.project-grid article:hover,.skill-grid article:hover{background:var(--low)}.skill-grid article:hover{-webkit-transform:translateY(-5px);transform:translateY(-5px)}.skill-grid h3{color:var(--accent);font:500 12px/1 JetBrains Mono,monospace;letter-spacing:.12em;margin:0 0 15px;text-transform:uppercase}.skill-grid p{font:14px/1.5 JetBrains Mono,monospace;margin:0}.building-section{border-top:1px solid var(--line)}.building-grid{grid-gap:1px;background:var(--line);border:1px solid var(--line);display:grid;gap:1px;grid-template-columns:repeat(3,1fr)}.building-grid article{background:var(--bg);min-height:260px;overflow:hidden;padding:28px;position:relative;transition:background .3s ease,-webkit-transform .35s cubic-bezier(.2,.8,.2,1);transition:background .3s ease,transform .35s cubic-bezier(.2,.8,.2,1);transition:background .3s ease,transform .35s cubic-bezier(.2,.8,.2,1),-webkit-transform .35s cubic-bezier(.2,.8,.2,1)}.building-grid article:before{border:1px solid var(--line);bottom:-45px;content:"";height:90px;position:absolute;right:-45px;-webkit-transform:rotate(45deg);transform:rotate(45deg);transition:border-color .3s ease,-webkit-transform .45s ease;transition:transform .45s ease,border-color .3s ease;transition:transform .45s ease,border-color .3s ease,-webkit-transform .45s ease;width:90px}.building-grid article:after{bottom:14px;color:var(--outline);content:"01001101 01000001 01001011 01000101";font:8px/1.6 JetBrains Mono,monospace;letter-spacing:.08em;max-width:130px;opacity:0;position:absolute;right:18px;text-align:right;-webkit-transform:translateY(8px);transform:translateY(8px);transition:opacity .35s ease,-webkit-transform .35s ease;transition:opacity .35s ease,transform .35s ease;transition:opacity .35s ease,transform .35s ease,-webkit-transform .35s ease}.building-grid article:hover{background:var(--low);-webkit-transform:translateY(-6px);transform:translateY(-6px);z-index:1}.building-grid article:hover:before{border-color:var(--accent);-webkit-transform:rotate(135deg) scale(1.2);transform:rotate(135deg) scale(1.2)}.building-grid article:hover:after{opacity:.65;-webkit-transform:translateY(0);transform:translateY(0)}.building-grid h3{font:600 26px Geist,sans-serif;margin:52px 0 16px}.building-grid p{color:var(--muted);font-size:14px;margin:0}.timeline{padding:4px 0;position:relative}.timeline:before{-webkit-animation:timeline-grow 1.2s cubic-bezier(.16,1,.3,1) both;animation:timeline-grow 1.2s cubic-bezier(.16,1,.3,1) both;background:var(--line);bottom:0;content:"";left:50%;position:absolute;top:0;-webkit-transform-origin:top;transform-origin:top;width:1px}.timeline article{min-height:290px;position:relative;width:50%}.timeline article.left{padding-right:48px;text-align:right}.timeline article.right{margin-left:50%;padding-left:48px}.timeline .node{background:var(--line);height:10px;position:absolute;top:0;transition:background .3s ease,-webkit-transform .3s ease;transition:transform .3s ease,background .3s ease;transition:transform .3s ease,background .3s ease,-webkit-transform .3s ease;width:10px}.timeline article:hover .node{background:var(--accent);-webkit-transform:scale(1.7) rotate(45deg);transform:scale(1.7) rotate(45deg)}.timeline .left .node{right:-5px}.timeline .right .node{left:-5px}.timeline article:first-child .node{background:var(--text)}.timeline time{color:var(--accent);font:12px JetBrains Mono,monospace;letter-spacing:.12em}.timeline h3{font:600 24px Geist;margin:3px 0}.timeline small{color:var(--muted);font:14px JetBrains Mono}.experience-details{color:var(--muted);font-size:14px;list-style:none;margin-bottom:0;margin-top:18px;padding:0}.experience-details li{margin-top:9px;position:relative}.timeline .left .experience-details li{padding-right:17px}.timeline .right .experience-details li{padding-left:17px}.experience-details li:before{color:var(--accent);content:"·";position:absolute}.timeline .left .experience-details li:before{right:0}.timeline .right .experience-details li:before{left:0}.project-grid{grid-gap:1px;background:var(--line);border:1px solid var(--line);display:grid;gap:1px;grid-template-columns:1fr 1fr}.project-grid article{background:var(--bg);display:flex;flex-direction:column;min-height:440px;overflow:hidden;padding:32px;position:relative;transition:background .3s ease,-webkit-transform .4s cubic-bezier(.2,.8,.2,1);transition:background .3s ease,transform .4s cubic-bezier(.2,.8,.2,1);transition:background .3s ease,transform .4s cubic-bezier(.2,.8,.2,1),-webkit-transform .4s cubic-bezier(.2,.8,.2,1)}.project-grid article:after{background:linear-gradient(115deg,transparent 35%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 65%);content:"";inset:0;pointer-events:none;position:absolute;-webkit-transform:translateX(-120%);transform:translateX(-120%);transition:-webkit-transform .75s ease;transition:transform .75s ease;transition:transform .75s ease,-webkit-transform .75s ease}.project-grid article:hover{-webkit-transform:translateY(-7px);transform:translateY(-7px)}.project-grid article:hover:after{-webkit-transform:translateX(120%);transform:translateX(120%)}.project-icon{color:var(--muted);font:42px Geist;transition:-webkit-transform .4s cubic-bezier(.2,.8,.2,1);transition:transform .4s cubic-bezier(.2,.8,.2,1);transition:transform .4s cubic-bezier(.2,.8,.2,1),-webkit-transform .4s cubic-bezier(.2,.8,.2,1)}.project-grid article:hover .project-icon{-webkit-transform:translate(5px,-5px) rotate(8deg);transform:translate(5px,-5px) rotate(8deg)}.project-grid h3{font:500 24px Geist;margin:42px 0 18px}.project-details{color:var(--muted);font-size:14px;list-style:none;margin:0 0 28px;padding:0}.project-details li{margin-bottom:14px;padding-left:22px;position:relative}.project-details li:before{color:var(--accent);content:"->";font:12px JetBrains Mono,monospace;left:0;position:absolute}.project-footer{align-items:flex-end;display:flex;gap:18px;justify-content:space-between;margin-top:auto}.tags{display:flex;flex-wrap:wrap;gap:8px}.tags span{border-color:var(--line);font-size:10px;padding:6px 9px}.live-project{background:transparent;border:1px solid var(--text);color:var(--text);cursor:pointer;flex:none;font:500 10px JetBrains Mono,monospace;letter-spacing:.08em;padding:8px 10px}.live-project:hover{background:var(--text);color:var(--bg)}.live-project.unavailable{border-color:var(--line);color:var(--outline);cursor:not-allowed}.live-project.unavailable:hover{background:transparent;color:var(--outline)}.achievement-grid{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(3,1fr)}.achievement-grid article{border:1px solid var(--line);padding:24px;transition:background .3s ease,-webkit-transform .35s cubic-bezier(.2,.8,.2,1);transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s ease;transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s ease,-webkit-transform .35s cubic-bezier(.2,.8,.2,1)}.achievement-grid article:hover{background:var(--low);-webkit-transform:translateY(-6px);transform:translateY(-6px)}.achievement-grid h3{font:600 24px Geist;margin:0 0 5px}.achievement-grid p{color:var(--muted);font:14px JetBrains Mono;margin:0}.achievement-grid small{color:var(--outline);display:block;font:11px/1.5 JetBrains Mono,monospace;margin-top:14px}.education{border-top:1px solid var(--line)}.education-card{align-items:center;border:1px solid var(--line);display:flex;gap:32px;justify-content:space-between;padding:32px;transition:background .3s ease,-webkit-transform .35s cubic-bezier(.2,.8,.2,1);transition:background .3s ease,transform .35s cubic-bezier(.2,.8,.2,1);transition:background .3s ease,transform .35s cubic-bezier(.2,.8,.2,1),-webkit-transform .35s cubic-bezier(.2,.8,.2,1)}.education-card:hover{background:var(--low);-webkit-transform:translateY(-5px);transform:translateY(-5px)}.education-date{color:var(--accent);font:11px JetBrains Mono,monospace;letter-spacing:.12em}.education-card h3{font:600 24px Geist,sans-serif;margin:12px 0 5px}.education-card p{color:var(--muted);font:13px JetBrains Mono,monospace;margin:0}.education-score{border-left:1px solid var(--line);display:flex;flex:none;flex-direction:column;min-width:120px;padding-left:32px}.education-score strong{font:600 38px/1 Geist,sans-serif}.education-score span{color:var(--accent);font:10px JetBrains Mono,monospace;letter-spacing:.12em;margin-top:8px}.contact{grid-gap:64px;border-top:1px solid var(--line);display:grid;gap:64px;grid-template-columns:1fr 1fr}.contact h2{font:500 24px/1.4 Geist;margin:0 0 32px}.contact>div>p{color:var(--muted);margin-bottom:32px;max-width:380px}.resume-large{align-items:center;background:var(--accent);color:var(--button-text);display:inline-flex;font:500 12px JetBrains Mono;gap:20px;letter-spacing:.1em;padding:16px 32px;transition:background .3s ease,-webkit-transform .3s ease;transition:transform .3s ease,background .3s ease;transition:transform .3s ease,background .3s ease,-webkit-transform .3s ease}.resume-large:hover{background:var(--text);-webkit-transform:translateY(-4px);transform:translateY(-4px)}.resume-large span{transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease}.resume-large:hover span{-webkit-transform:translateY(4px);transform:translateY(4px)}.contact-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.contact-links a{border:1px solid var(--line);color:var(--muted);font:10px JetBrains Mono,monospace;letter-spacing:.05em;padding:8px 10px;transition:color .25s ease,border-color .25s ease,-webkit-transform .25s ease;transition:color .25s ease,border-color .25s ease,transform .25s ease;transition:color .25s ease,border-color .25s ease,transform .25s ease,-webkit-transform .25s ease}.contact-links a:hover{border-color:var(--text);color:var(--text);-webkit-transform:translateY(-3px);transform:translateY(-3px)}form{display:flex;flex-direction:column;gap:22px}form label{color:var(--accent);font:500 12px/1 JetBrains Mono;letter-spacing:.1em}form input,form textarea{background:var(--container);border:0;border-bottom:2px solid var(--line);color:var(--text);display:block;font:14px JetBrains Mono;margin-top:9px;outline:0;padding:12px;resize:vertical;transition:border-color .25s ease,background .25s ease,-webkit-transform .25s ease;transition:border-color .25s ease,background .25s ease,transform .25s ease;transition:border-color .25s ease,background .25s ease,transform .25s ease,-webkit-transform .25s ease;width:100%}form input:focus,form textarea:focus{border-color:var(--text);-webkit-transform:translateX(4px);transform:translateX(4px)}form button{background:none;border:1px solid var(--text);color:var(--text);cursor:pointer;font:500 12px JetBrains Mono;letter-spacing:.1em;padding:15px;transition:background .25s ease,color .25s ease,letter-spacing .3s ease}form button:hover{background:var(--text);color:var(--bg);letter-spacing:.18em}@-webkit-keyframes hero-copy-in{0%{-webkit-filter:blur(8px);filter:blur(8px);opacity:0;-webkit-transform:translate3d(-60px,20px,0);transform:translate3d(-60px,20px,0)}}@keyframes hero-copy-in{0%{-webkit-filter:blur(8px);filter:blur(8px);opacity:0;-webkit-transform:translate3d(-60px,20px,0);transform:translate3d(-60px,20px,0)}}@-webkit-keyframes hero-terminal-in{0%{-webkit-filter:blur(8px);filter:blur(8px);opacity:0;-webkit-transform:translate3d(60px,20px,0);transform:translate3d(60px,20px,0)}}@keyframes hero-terminal-in{0%{-webkit-filter:blur(8px);filter:blur(8px);opacity:0;-webkit-transform:translate3d(60px,20px,0);transform:translate3d(60px,20px,0)}}@-webkit-keyframes status-pulse{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 7%,transparent)}}@keyframes status-pulse{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 7%,transparent)}}@-webkit-keyframes terminal-light{50%{opacity:.45;-webkit-transform:scale(.78);transform:scale(.78)}}@keyframes terminal-light{50%{opacity:.45;-webkit-transform:scale(.78);transform:scale(.78)}}@-webkit-keyframes timeline-grow{0%{-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes timeline-grow{0%{-webkit-transform:scaleY(0);transform:scaleY(0)}}footer{background:var(--low);border-top:1px solid var(--line);margin-top:48px}footer>div{align-items:center;color:var(--muted);display:flex;font:13px JetBrains Mono;justify-content:space-between;padding:22px 24px}footer b{color:var(--text);font-size:12px;letter-spacing:.12em}footer nav{display:flex;gap:24px}footer a:hover{text-decoration:underline}.command-trigger{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb,var(--low) 90%,transparent);border:1px solid var(--line);bottom:22px;box-shadow:0 12px 35px rgba(0,0,0,.24);color:var(--muted);cursor:pointer;display:flex;font:9px JetBrains Mono,monospace;gap:10px;letter-spacing:.1em;padding:10px 12px;position:fixed;right:22px;transition:color .25s ease,border-color .25s ease,-webkit-transform .25s ease;transition:color .25s ease,border-color .25s ease,transform .25s ease;transition:color .25s ease,border-color .25s ease,transform .25s ease,-webkit-transform .25s ease;z-index:25}.command-trigger:hover{border-color:var(--outline);color:var(--text);-webkit-transform:translateY(-3px);transform:translateY(-3px)}.command-titlebar i,.command-trigger i{-webkit-animation:command-status 2s ease-in-out infinite;animation:command-status 2s ease-in-out infinite;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);height:7px;width:7px}.command-list kbd,.command-titlebar kbd,.command-trigger kbd{background:var(--container);border:1px solid var(--line);color:var(--outline);font:inherit;padding:3px 5px}.command-overlay{-webkit-animation:overlay-in .22s ease both;animation:overlay-in .22s ease both;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:rgba(0,0,0,.58);inset:0;padding:15vh 20px 20px;position:fixed;z-index:100}.command-palette{-webkit-animation:palette-in .42s cubic-bezier(.16,1,.3,1) both;animation:palette-in .42s cubic-bezier(.16,1,.3,1) both;background:var(--bg);border:1px solid var(--outline);box-shadow:0 35px 100px rgba(0,0,0,.55);color:var(--text);margin:auto;max-height:70vh;overflow:auto;width:min(560px,100%)}.command-actions,.command-input,.command-titlebar{align-items:center;display:flex}.command-titlebar{background:var(--high);border-bottom:1px solid var(--line);color:var(--muted);font:10px JetBrains Mono,monospace;justify-content:space-between;padding:11px 14px}.command-titlebar div{align-items:center;display:flex;gap:10px}.command-input{border-bottom:1px solid var(--line);font:12px JetBrains Mono,monospace;gap:12px;padding:18px}.command-input>span{-webkit-animation:prompt-blink 1s steps(1) infinite;animation:prompt-blink 1s steps(1) infinite;color:var(--accent);font-size:20px}.command-input p{color:var(--muted);flex:1 1;margin:0}.command-input b{color:var(--accent);font-size:9px;font-weight:400;letter-spacing:.1em}.command-list{padding:8px}.command-list button{background:transparent;border:0;border-left:2px solid transparent;color:var(--muted);cursor:pointer;display:flex;font:12px JetBrains Mono,monospace;justify-content:space-between;padding:12px;text-align:left;width:100%}.command-list button:focus-visible,.command-list button:hover{background:var(--low);border-left-color:var(--accent);color:var(--text);outline:0}.command-actions{background:var(--line);border-top:1px solid var(--line);gap:1px}.command-actions a,.command-actions button{background:var(--low);border:0;color:var(--muted);cursor:pointer;flex:1 1;font:10px JetBrains Mono,monospace;padding:13px;text-align:center}.command-actions a:hover,.command-actions button:hover{background:var(--container);color:var(--text)}@-webkit-keyframes section-scan{to{-webkit-transform:translateX(105%);transform:translateX(105%)}}@keyframes section-scan{to{-webkit-transform:translateX(105%);transform:translateX(105%)}}@-webkit-keyframes command-status{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 5%,transparent);opacity:.45}}@keyframes command-status{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 5%,transparent);opacity:.45}}@-webkit-keyframes overlay-in{0%{opacity:0}}@keyframes overlay-in{0%{opacity:0}}@-webkit-keyframes palette-in{0%{opacity:0;-webkit-transform:translateY(-24px) scale(.97);transform:translateY(-24px) scale(.97)}}@keyframes palette-in{0%{opacity:0;-webkit-transform:translateY(-24px) scale(.97);transform:translateY(-24px) scale(.97)}}@-webkit-keyframes prompt-blink{50%{opacity:0}}@keyframes prompt-blink{50%{opacity:0}}@-webkit-keyframes availability-pulse{50%{box-shadow:0 0 0 8px hsla(95,38%,62%,0);opacity:.5}}@keyframes availability-pulse{50%{box-shadow:0 0 0 8px hsla(95,38%,62%,0);opacity:.5}}@-webkit-keyframes role-caret{50%{opacity:0}}@keyframes role-caret{50%{opacity:0}}@-webkit-keyframes role-window-scan{0%,62%{-webkit-transform:translateX(-110%);transform:translateX(-110%)}88%,to{-webkit-transform:translateX(110%);transform:translateX(110%)}}@keyframes role-window-scan{0%,62%{-webkit-transform:translateX(-110%);transform:translateX(-110%)}88%,to{-webkit-transform:translateX(110%);transform:translateX(110%)}}@media (max-width:1180px){.system-rail{display:none}}@media (max-width:850px){.brand{font-size:19px}.menu-button{display:block;margin-left:auto}.nav{background:var(--bg);border-bottom:1px solid var(--line);display:none;flex-direction:column;gap:0;left:0;margin:0;padding:16px 24px;position:absolute;right:0;top:68px}.nav.open{display:flex}.nav a{padding:14px 0}.nav-actions .resume-small{display:none}.hero{gap:40px;grid-template-columns:1fr;min-height:0;padding:64px 0}.hero-copy{background-image:linear-gradient(var(--container) 1px,transparent 1px),linear-gradient(90deg,var(--container) 1px,transparent 1px);background-size:20px 20px;margin:-24px;padding:24px}.hero h1{font-size:38px}.rotating-role{width:min(100%,520px)}.intro{font-size:22px}.terminal{margin:20px 0 0}.section{padding:64px 0}.about-layout{gap:42px;grid-template-columns:1fr}.impact-strip{grid-template-columns:repeat(2,1fr)}.skill-grid article{grid-column:span 6}.building-grid{grid-template-columns:1fr}.building-grid article{min-height:220px}.timeline:before{left:5px}.timeline article,.timeline article.right{margin-left:0;min-height:0;padding:0 0 42px 32px;text-align:left;width:100%}.timeline .left .experience-details li{padding:0 0 0 17px}.timeline .left .experience-details li:before,.timeline .left .node,.timeline .right .node{left:0;right:auto}.achievement-grid,.project-grid{grid-template-columns:1fr}.achievement-grid{gap:16px}.contact{gap:48px;grid-template-columns:1fr}footer>div{align-items:flex-start;flex-direction:column;gap:16px}}@media (max-width:560px){.availability{grid-template-columns:1fr;margin-top:18px}.command-trigger span{display:none}.command-trigger{bottom:14px;right:14px}.command-overlay{padding-top:10vh}.nav-wrap,main{padding-left:16px;padding-right:16px}.brand{font-size:17px}.theme-button{font-size:22px}.hero{padding:52px 8px}.hero h1{font-size:34px}.rotating-role{margin-top:-4px}.role-window-body{align-items:flex-start;flex-wrap:wrap;gap:5px 8px;min-height:76px;padding:13px}.role-window-body>span{width:100%}.role-window-body strong{font-size:14px;max-width:calc(100% - 18px)}.intro{font-size:20px}.facts{flex-direction:column;gap:12px;margin-top:36px}.impact-strip{grid-template-columns:1fr}.impact-strip article{padding:24px}.terminal-body{font-size:12px;padding:18px}.section-head{align-items:flex-start;flex-direction:column;margin-bottom:30px}.section-head h2{font-size:20px}.about-copy h2{font-size:27px}.skill-grid{display:block}.skill-grid article{border-bottom:1px solid var(--line)}.skill-grid article:last-child{border:0}.project-grid article{min-height:250px}.achievement-grid h3{font-size:21px}.education-card{align-items:flex-start;flex-direction:column;padding:24px}.education-score{border-left:0;border-top:1px solid var(--line);min-width:0;padding:20px 0 0;width:100%}footer nav{flex-wrap:wrap;gap:12px 20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{-webkit-animation-duration:.01ms!important;animation-duration:.01ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{-webkit-filter:none;filter:none;opacity:1;-webkit-transform:none;transform:none}.app:before,.code-cursor{display:none}}#root,body,html{min-height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:#c6c6c6;color:#303030}
/*# sourceMappingURL=main.e795e2c2.css.map*/