@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#080b09;--panel:#101511;--panel2:#141b16;--text:#e8eee9;--muted:#929c94;--green:#79d69a;--line:#26332a;--mono:'DM Mono',monospace;--sans:'Manrope',Arial,sans-serif;--max:1200px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.7;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.shell{width:min(var(--max),calc(100% - 96px));margin-inline:auto}.matrix-field{position:absolute;inset:0 0 auto;height:850px;pointer-events:none;opacity:.27;background-image:linear-gradient(rgba(92,139,103,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(92,139,103,.08) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(#000,transparent 85%)}.topbar{height:82px;width:min(var(--max),calc(100% - 96px));margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(121,214,154,.15);position:relative;z-index:5}.wordmark{display:flex;align-items:center;gap:12px;font-weight:700;font-size:13px}.mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid #477355;color:var(--green);font-family:var(--mono);font-size:11px}.navigation{display:flex;align-items:center;gap:34px;font-size:12px;color:#b6c0b8}.navigation>a:hover,.footer>a:hover{color:var(--green)}.nav-contact{color:var(--text)}.nav-contact span,.button span{color:var(--green);padding-left:8px}.theme-toggle,.menu-toggle{background:none;border:0;color:var(--green);cursor:pointer}.theme-toggle{font-size:20px}.menu-toggle{display:none}.hero{min-height:680px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;position:relative;padding-top:28px;padding-bottom:90px}.hero-copy{position:relative;z-index:2;padding-top:8px}.eyebrow,.detail-label,.project-type,.portrait-index,.portrait-caption,.hero-index,.scroll-cue,.project-number,.mini-label,.terminal-title,.timeline-item time,.result-mark span,.contact-hint,.repo-note{font-family:var(--mono);font-size:10px;letter-spacing:.04em}.eyebrow{color:#a4b2a7;display:flex;align-items:center;gap:10px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px #79d69a}.hero h1{font-size:clamp(76px,10vw,132px);line-height:.91;letter-spacing:-.09em;margin:34px 0 18px;font-weight:600}.hero h1 span{color:var(--green)}.hero h1 sup{font:12px var(--mono);letter-spacing:0;color:var(--muted);vertical-align:top;margin:13px 0 0 18px}.hero-role{font-size:16px;font-weight:600;margin:0}.hero-role span{color:var(--green);padding:0 5px}.hero-intro{max-width:450px;color:#aab4ac;font-size:14px;margin:20px 0 26px;line-height:1.9}.hero-actions{display:flex;align-items:center;gap:12px}.button{display:inline-flex;min-height:48px;align-items:center;padding:0 18px;border:1px solid var(--line);font-size:12px;font-weight:700;transition:background .2s,border-color .2s,transform .2s}.button:hover{transform:translateY(-2px);border-color:var(--green)}.button-primary{background:var(--green);color:#0b140e;border-color:var(--green)}.button-primary span{color:#0b140e}.button-primary:hover{background:#91e6ad}.button-quiet{color:var(--text)}.hero-meta{display:flex;gap:25px;margin-top:44px;color:#89948b;font:10px var(--mono)}.portrait-wrap{height:500px;position:relative;display:grid;place-items:center}.portrait-index{position:absolute;top:19px;right:4%;color:#a3b0a5;z-index:2}.portrait-frame{position:relative;width:min(83%,390px);height:440px;overflow:hidden;background:#d9dedb;z-index:1;box-shadow:0 0 90px rgba(61,148,83,.12)}.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:center 27%;filter:grayscale(1) contrast(1.08);mix-blend-mode:luminosity}.portrait-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,12,8,.03) 45%,rgba(4,10,6,.88)),linear-gradient(90deg,rgba(49,142,70,.12),transparent 40%,rgba(63,172,87,.17));mix-blend-mode:multiply}.portrait-caption{position:absolute;bottom:17px;left:18px;right:18px;display:flex;justify-content:space-between;color:#eef5ef;font-size:9px}.orbit{position:absolute;width:410px;height:410px;border:1px solid rgba(119,209,146,.15);border-radius:50%;transform:scaleX(1.25) rotate(-23deg)}.orbit-two{width:465px;height:465px;transform:scaleX(1.25) rotate(31deg);border-color:rgba(119,209,146,.08)}.crosshair{position:absolute;color:var(--green);font:20px var(--mono);z-index:2}.crosshair-a{right:3%;top:19%}.crosshair-b{left:3%;bottom:18%}.scroll-cue{position:absolute;bottom:30px;left:0;display:flex;align-items:center;gap:12px;color:#8e9b90}.scroll-cue span{display:inline-block;width:30px;height:1px;background:var(--green)}.hero-index{position:absolute;right:0;bottom:30px;color:#778279}.section{padding-top:120px;padding-bottom:125px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:45px}.section h2,.results-title h2,.contact-inner h2{font-size:clamp(42px,6vw,72px);line-height:1.08;letter-spacing:-.065em;font-weight:600;margin:18px 0 0}.accent{color:var(--green)}.section-note{max-width:280px;color:var(--muted);font-size:13px;margin:0 0 7px}.projects{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.project{border:1px solid var(--line);background:linear-gradient(145deg,rgba(18,25,20,.88),rgba(11,15,12,.9));min-width:0}.project-top{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;color:#a6b1a8}.project-type{font-size:9px}.project-number{color:#657268}.project-visual{height:245px;position:relative;display:grid;place-items:center;overflow:hidden;border-block:1px solid rgba(72,100,78,.2);background:radial-gradient(ellipse at 50% 60%,rgba(41,104,57,.19),transparent 64%),repeating-linear-gradient(0deg,transparent,transparent 31px,rgba(94,141,102,.06) 32px)}.mini-window{width:min(75%,360px);border:1px solid #34483a;background:#0e1410;box-shadow:0 14px 50px #050806}.mini-head{height:30px;border-bottom:1px solid #29362d;display:flex;gap:5px;align-items:center;padding:0 10px}.mini-head>span{width:5px;height:5px;border-radius:50%;background:#64746a}.mini-head b{margin:auto;font:9px var(--mono);color:#a7b8aa}.mini-body{padding:18px 20px}.mini-label{color:#829487;font-size:8px}.mini-body strong{display:block;font:26px var(--mono);margin-top:5px}.mini-body small{font-size:12px;color:var(--green)}.bar-row{height:54px;display:flex;align-items:end;gap:9px;border-bottom:1px solid #344438;padding:0 4px}.bar-row i{width:11%;height:var(--bar);background:linear-gradient(#83d79c,#285837);opacity:.85}.mini-categories{display:flex;justify-content:space-between;margin-top:7px;color:#829087;font:8px var(--mono)}.visual-orbit{position:absolute;border:1px solid rgba(106,194,130,.16);width:360px;height:120px;border-radius:50%;transform:rotate(-19deg)}.project-body{padding:23px 22px 22px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end}.project-body h3{font-size:18px;letter-spacing:-.03em;margin:0 0 8px}.project-body p{font-size:12px;color:#a0aaa2;line-height:1.8;margin:0;max-width:430px}.tags{display:flex;flex-wrap:wrap;gap:6px;grid-column:1/-1}.tags span,.skill-list span{border:1px solid #2b392e;padding:4px 8px;color:#a6b5a9;font:9px var(--mono)}.project-link{grid-column:1/-1;justify-self:start;color:var(--green);font-size:11px;font-weight:700}.project-link span{padding-left:7px}.parser-visual{height:245px;background:radial-gradient(ellipse at 50% 50%,rgba(41,104,57,.18),transparent 67%),repeating-linear-gradient(90deg,transparent,transparent 39px,rgba(94,141,102,.05) 40px)}.terminal{width:80%;padding:17px 16px;border:1px solid #324136;background:#0b100d;color:#b5c5b8;font:10px/2 var(--mono);box-shadow:0 14px 50px #050806}.terminal-title{display:flex;justify-content:space-between;border-bottom:1px solid #29352c;padding-bottom:8px;margin-bottom:10px;color:#849588;font-size:8px}.terminal-title span:last-child{color:#638a6c}.terminal em{font-style:normal;color:#5d7763;padding-right:9px}.terminal b{color:#84d49a;font-weight:400}.terminal i{font-style:normal;color:#c6b982}.terminal-result{color:var(--green);padding-top:5px}.terminal-cursor{color:var(--green)}.repo-note{color:#737f75;font-size:9px;margin-top:15px}.results-band{border-block:1px solid #222e25;background:linear-gradient(100deg,#0d130f,#0a0e0b)}.results-inner{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;padding-top:100px;padding-bottom:100px}.results-title h2{font-size:clamp(38px,5vw,58px)}.timeline-item{display:grid;grid-template-columns:55px 1fr 55px;gap:15px;padding:19px 0;border-bottom:1px solid #29342b;align-items:start}.timeline-item:first-child{border-top:1px solid #29342b}.timeline-item time{color:var(--green);padding-top:5px}.timeline-item h3{font-size:13px;margin:0 0 4px}.timeline-item p{font-size:11px;color:#99a49b;line-height:1.7;margin:0}.result-mark{text-align:right;font:18px var(--mono);color:var(--green)}.result-mark span{display:block;font-size:8px;color:#89958b}.about-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.about-intro>p:last-child{max-width:300px;color:#9da89f;font-size:13px;margin-top:25px}.about-details{padding-top:10px}.about-details article{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:21px 0;border-bottom:1px solid var(--line)}.detail-label{color:#7f8e82;padding-top:4px}.education h3{font-size:14px;margin:0 0 5px}.education p,.learning p{margin:0;color:#a1aca3;font-size:12px}.education .muted{color:#6f7b72;margin-top:5px}.skill-list{display:flex;flex-wrap:wrap;gap:7px}.learning p{line-height:1.9;max-width:480px}.scholarship{display:flex;align-items:center;gap:12px;padding-top:24px;color:#c1ccc3;font-size:11px}.scholarship-star{color:var(--green);font-size:21px}.contact-section{border-top:1px solid var(--line);background:#0c120e;overflow:hidden}.contact-inner{position:relative;display:flex;align-items:center;justify-content:space-between;padding-top:91px;padding-bottom:91px}.contact-inner>div:first-child{position:relative;z-index:1}.contact-inner h2{font-size:clamp(48px,7vw,82px)}.contact-inner p:not(.eyebrow){max-width:440px;color:#9ba79d;font-size:13px;margin-top:20px}.contact-actions{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.contact-hint{color:#839087;font-size:9px}.contact-orb{position:absolute;width:350px;height:350px;border:1px solid rgba(110,198,134,.14);border-radius:50%;right:10%;top:50%;transform:translateY(-50%);box-shadow:0 0 0 30px rgba(63,113,73,.035),0 0 0 60px rgba(63,113,73,.025)}.footer{min-height:78px;display:flex;align-items:center;justify-content:space-between;color:#7f8b81;font-size:10px}.footer .wordmark{color:var(--text)}:focus-visible{outline:2px solid var(--green);outline-offset:4px}.light-theme{--bg:#e8eee9;--panel:#fff;--panel2:#f1f5f1;--text:#142018;--muted:#536158;--line:#c8d4ca;color-scheme:light}.light-theme .project,.light-theme .terminal,.light-theme .mini-window{background:#f4f7f4}.light-theme .results-band,.light-theme .contact-section{background:#dce7de}.light-theme .hero-intro,.light-theme .project-body p,.light-theme .timeline-item p,.light-theme .about-intro>p:last-child,.light-theme .learning p{color:#4e5b51}
@media(max-width:900px){.shell,.topbar{width:calc(100% - 52px)}.hero{min-height:620px}.portrait-wrap{height:430px}.portrait-frame{height:380px;width:85%}.projects{grid-template-columns:1fr 1fr}.project-body{grid-template-columns:1fr}.results-inner{gap:40px}.about-section{gap:45px}.about-details article{grid-template-columns:105px 1fr}}
@media(max-width:650px){.shell,.topbar{width:calc(100% - 40px)}.topbar{height:68px}.menu-toggle{display:flex;flex-direction:column;gap:5px;padding:10px}.menu-toggle span{width:21px;height:1px;background:var(--text)}.navigation{display:none;position:absolute;top:67px;left:-20px;right:-20px;padding:22px 20px;background:#0c120e;border-bottom:1px solid var(--line);align-items:flex-start;flex-direction:column;gap:18px}.navigation.is-open{display:flex}.hero{grid-template-columns:1fr;padding-top:45px;min-height:auto;padding-bottom:80px}.hero h1{font-size:clamp(76px,20vw,112px);margin-top:28px}.hero-intro{max-width:400px}.hero-meta{gap:10px;flex-wrap:wrap;margin-top:30px}.portrait-wrap{height:390px;margin-top:30px}.portrait-frame{height:350px;width:min(78%,330px)}.orbit{width:330px;height:330px}.orbit-two{width:370px;height:370px}.portrait-index{right:0}.scroll-cue{bottom:24px}.hero-index{bottom:24px}.section{padding-top:78px;padding-bottom:82px}.section-heading{display:block}.section h2{font-size:50px}.section-note{margin-top:20px}.projects{grid-template-columns:1fr;gap:14px}.project-visual,.parser-visual{height:220px}.results-inner{grid-template-columns:1fr;gap:30px;padding-top:74px;padding-bottom:75px}.timeline-item{grid-template-columns:45px 1fr 45px;gap:10px}.about-section{grid-template-columns:1fr;gap:30px}.about-details article{grid-template-columns:95px 1fr;gap:10px}.contact-inner{padding-top:73px;padding-bottom:73px;display:block}.contact-actions{margin-top:26px}.contact-orb{right:-230px;top:30%}.footer{gap:12px;flex-wrap:wrap;padding-block:18px}.footer>span{order:3;width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.contact-secondary{font:10px var(--mono);color:#a7b4a9}.contact-secondary:hover{color:var(--green)}

