@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
:root{--bg:#f4f5ef;--ink:#20231f;--green:#c5f467;--line:#d9ddd2;--muted:#666c60;--mono:'IBM Plex Mono',Consolas,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #60882c;outline-offset:6px}::selection{background:var(--green);color:#20231f}.wrap{max-width:1344px;margin:auto;padding-left:56px;padding-right:56px}.header{max-width:1456px;margin:auto;min-height:100px;padding:0 56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-weight:700;font-size:38px;letter-spacing:-3px;display:flex;align-items:center}.brand>span:first-child{color:#749e37}.brand-caption{font:9px var(--mono);letter-spacing:1.4px;margin-left:22px;padding-left:22px;border-left:1px solid #c9cec1}.header nav{display:flex;gap:34px;font-size:13px}.header nav a:hover,.text-link:hover{color:#5c8029}.contact-nav{font-size:13px;border:1px solid #b9bfb0;border-radius:4px;padding:12px 17px}.contact-nav span{margin-left:20px}.hero-meta{display:flex;justify-content:space-between;font:10px var(--mono);letter-spacing:.8px;padding-top:29px;color:var(--muted)}.hero-meta b{padding:0 10px;color:#b4baac}.status-dot{display:inline-block;width:7px;height:7px;background:#759e3d;border-radius:50%;margin-right:9px;box-shadow:0 0 0 4px #91ba4420}.hero-grid{display:grid;grid-template-columns:1.23fr 1fr;gap:42px;padding:74px 0 65px;align-items:center}.eyebrow{font:10px var(--mono);letter-spacing:1.3px}.hero h1{font-size:clamp(52px,5.8vw,83px);line-height:1.06;letter-spacing:-5px;font-weight:550;margin:25px 0 28px}.highlight{position:relative;white-space:nowrap}.highlight svg{position:absolute;left:0;bottom:-10px;width:100%;height:15px;fill:none;stroke:#aadf56;stroke-width:8;z-index:-1}.period{color:#729a36}.hero-description{font-size:16px;line-height:1.8;color:var(--muted);max-width:440px}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:31px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border-radius:4px;padding:16px 21px;font-size:12px;font-weight:550}.dark{background:var(--ink);color:#fff}.dark:hover{background:#3a4830}.text-link{font-size:12px;border-bottom:1px solid #bdc4b3;padding:10px 0}.text-link span{margin-left:12px}.hero-foot{display:flex;gap:17px;margin-top:45px;font:9px var(--mono);letter-spacing:.7px;color:#808677}.hero-foot span+span:before{content:'+';margin-right:17px;color:#a4ab9b}.hero-art{position:relative;height:392px;background:#e9ecdf;background-image:radial-gradient(#a9b29a70 .7px,transparent .7px);background-size:14px 14px;border:1px solid #dce0d3;border-radius:5px;overflow:hidden;display:flex;align-items:center;justify-content:center}.art-top{position:absolute;top:20px;left:20px;right:20px;display:flex;align-items:center;gap:8px;font:8px var(--mono);letter-spacing:1px}.art-top>span:last-child{margin-left:auto}.tiny-square{width:6px;height:6px;background:#6e7a5b}.code-window{position:relative;transform:rotate(-4deg);background:#22281f;color:#dbe0d1;width:86%;border-radius:7px;box-shadow:0 25px 40px #29312030;border:1px solid #47503f;z-index:2}.window-bar{padding:14px 15px;border-bottom:1px solid #3b4433;display:flex;justify-content:space-between;font:9px var(--mono);color:#939e88}.window-bar i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#828c75;margin-right:4px}.window-bar i:first-child{background:#c5f467}.code-body{font:clamp(8px,.86vw,12px)/1.9 var(--mono);padding:18px 7px 18px 0}.code-body em{font-style:normal;display:inline-block;text-align:center;width:33px;color:#65715b;font-size:9px}.purple{color:#c3a4ef}.lime{color:#c5f467}.blue{color:#9acddd}.yellow{color:#d5d99c}.muted-code{color:#8a977c}.window-footer{display:flex;justify-content:space-between;background:#2c3525;padding:8px 14px;font:8px var(--mono);color:#a0b28b;border-radius:0 0 7px 7px}.orbit{position:absolute;border:1px solid #bac7a7;border-radius:50%;width:350px;height:350px}.orbit-two{width:460px;height:460px}.floating-tag{position:absolute;bottom:29px;right:15px;transform:rotate(3deg);background:var(--green);z-index:3;padding:13px 16px;display:flex;gap:12px;box-shadow:0 7px 15px #414d1920}.floating-tag>span{font-size:25px}.floating-tag div{font:7px/1.8 var(--mono);letter-spacing:1px}.floating-tag strong{font-family:'DM Sans',Arial,sans-serif;font-size:10px;letter-spacing:0}.art-coordinate{position:absolute;bottom:10px;left:15px;font:7px var(--mono);letter-spacing:1px;color:#738264}.hero-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0;font:8px var(--mono);letter-spacing:1px;color:var(--muted)}.hero-bottom a span{margin-left:16px}.section{padding-top:96px;padding-bottom:96px}.section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.section-note{font:8px var(--mono);letter-spacing:.8px;color:#818875}h2{font-size:clamp(38px,4vw,56px);font-weight:500;line-height:1.12;letter-spacing:-2.5px;margin:0}.serif{font-family:Georgia,serif;font-style:italic;font-weight:400}.title-row{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:37px}.filters{display:flex;gap:5px}.filters button{background:none;border:1px solid transparent;border-radius:4px;padding:10px 14px;font-size:11px}.filters button.active{border-color:#bbc3ad;background:#e7ebdf}.filters sup{font:8px var(--mono);margin-left:5px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px 28px}.project-open{display:block;text-align:left;border:0;background:none;padding:0;width:100%}.project-visual{height:310px;position:relative;overflow:hidden;border-radius:5px;padding:22px;transition:transform .3s}.project-open:hover .project-visual{transform:translateY(-4px)}.verify{background:#e1e8d6}.visual-top,.visual-bottom{display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:1px;position:relative;z-index:2}.visual-top>span{font-size:7px;letter-spacing:.6px}.visual-bottom{position:absolute;bottom:19px;left:22px;right:22px;font-size:7px}.visual-bottom>span{font-size:18px}.verification-ui{background:#f9fbf5;box-shadow:0 15px 25px #61714b15;border:1px solid #ced8c1;border-radius:7px;width:235px;margin:22px auto 0;padding:16px 20px;text-align:center;transform:rotate(-3deg)}.avatar{width:30px;height:30px;border-radius:50%;background:#d4edb3;color:#486e24;margin:auto auto 8px;padding:5px}.verification-ui strong{display:block;font-size:13px;font-weight:600}.verification-ui>span{display:block;color:#7d8774;font-size:8px;margin-top:5px;margin-bottom:16px}.verify-line{display:flex;justify-content:space-between;border-top:1px solid #e5eadf;padding:9px 0;font-size:8px;color:#69755e}.verify-line b{font-weight:500;color:#567b32}.mini-progress{height:4px;background:#b3d98b;border-radius:3px;margin-top:6px}.road{background:#252f2b;color:#d2dfd3}.road-scene{position:absolute;inset:45px 45px 35px;transform:skew(-10deg);background:linear-gradient(90deg,transparent 12%,#60756850 12%,#60756850 13%,transparent 13%,transparent 87%,#60756850 87%,#60756850 88%,transparent 88%)}.lane{position:absolute;left:50%;width:2px;top:0;bottom:0;background:repeating-linear-gradient(to bottom,#9cae8940 0,#9cae8940 19px,transparent 19px,transparent 38px)}.car{position:absolute;width:49px;height:75px;border:1px solid #bef281;box-shadow:inset 0 0 0 9px #273f3150;background:#73857340}.car:after{content:'';position:absolute;inset:14px 8px;background:#aabbb840;border-radius:5px}.car span{position:absolute;top:-15px;left:-1px;font:7px var(--mono);color:#b4e68b;white-space:nowrap}.car-one{left:22%;top:19px}.car-two{right:20%;top:100px;width:44px;height:65px}.car-three{left:23%;top:165px;height:64px;width:43px}.scan-line{position:absolute;top:42%;width:100%;height:1px;background:#c5f46755}.vision-label{position:absolute;bottom:4px;right:0;font:6px var(--mono);color:#b0bda4;writing-mode:vertical-rl}.project-heading{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.project-heading h3{font-size:22px;letter-spacing:-.6px;font-weight:550;margin:0}.project-heading>span{font-size:22px;transition:transform .2s}.project-open:hover .project-heading>span{transform:translate(3px,-3px)}.project p{font-size:13px;line-height:1.7;color:var(--muted);max-width:440px;margin:10px 0 15px}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags span{border:1px solid #d7ddcd;padding:5px 8px;border-radius:3px;font:8px var(--mono);color:#646f59}.project-wide{grid-column:1/-1}.project-wide .project-open{display:grid;grid-template-columns:1.12fr 1fr;gap:34px;align-items:center;border-top:1px solid var(--line);padding-top:30px}.rag-visual{padding:29px 26px;background:#e8e7ee;border-radius:5px}.rag-visual .eyebrow{font-size:7px;letter-spacing:.5px}.rag-flow{display:flex;align-items:center;gap:9px;margin:29px 0;font:9px var(--mono)}.rag-flow>span{background:#f8f7fa;border:1px solid #d5d2df;padding:13px 9px;border-radius:3px}.rag-flow b{font-weight:400}.rag-flow .flow-highlight{background:#d9cfee;border-color:#bcaad9}.rag-caption{font:7px var(--mono);letter-spacing:.9px}.rag-copy .project-heading{margin-top:0}.work-caption{font:8px/1.7 var(--mono);color:#838a79;margin:25px 0 0}.about{background:#e9ecdf;border-top:1px solid #dde2d2;border-bottom:1px solid #dde2d2}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.about h2{margin-top:27px}.about-monogram{font:49px var(--mono);letter-spacing:-4px;color:#8c9e73;margin-top:38px}.about-monogram span{display:block;letter-spacing:1px;font:7px var(--mono);margin-top:13px}.about-copy p{font-size:14px;line-height:1.9;color:#626b57}.about-copy .lead{font-size:23px;line-height:1.5;color:var(--ink);margin:0 0 22px;letter-spacing:-.4px}.about-details{display:flex;gap:29px;border-top:1px solid #cdd5bf;padding-top:22px;margin-top:24px}.about-details span{display:block;font:7px var(--mono);letter-spacing:1px;margin-bottom:8px;color:#717c62}.about-details strong{font-size:11px;font-weight:500}.experience h2{margin-bottom:45px}.job{display:grid;grid-template-columns:210px 1fr 35px;gap:40px;padding:33px 0;border-top:1px solid var(--line)}.job-date{font:10px/1.7 var(--mono)}.job-date span{display:block;font-size:10px;color:#8b917f;margin-top:8px}.job h3{font-size:21px;letter-spacing:-.4px;font-weight:550;margin:0 0 7px}.job h4{font-size:12px;font-weight:500;color:#6b755e;margin:0}.job p{font-size:13px;line-height:1.85;max-width:650px;color:var(--muted)}.job-index{font:11px var(--mono);color:#9fa693;text-align:right}.current-label{display:inline-block;font:7px var(--mono);background:#deefc4;padding:5px 7px;margin-bottom:12px;color:#536b32;border-radius:3px}.skills{background:#22281f;color:#f0f2e9}.skills .section-note{color:#939f86}.skills .eyebrow{color:#bddf8c}.skills h2{margin-bottom:49px}.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:29px}.skill-icon{font:25px var(--mono);color:var(--green)}.skill-grid h3{font-size:14px;font-weight:500;margin:21px 0 14px}.skill-grid p{font-size:12px;line-height:1.9;color:#c2cbb8}.skill-grid small{font-size:10px;color:#909d82;line-height:1.7;display:block}.education{margin-top:59px;padding-top:28px;border-top:1px solid #414a36;display:grid;grid-template-columns:.7fr 1fr 1fr;gap:30px}.education h3{font-weight:500;font-size:12px;margin:0 0 8px}.education p{font-size:10px;color:#a3b095;margin:0;line-height:1.8}.education p span{display:block;color:#7c8b6e}.contact-label{font:9px var(--mono);letter-spacing:1px;margin-bottom:33px}.contact-title{display:block;position:relative;font-size:clamp(54px,7.4vw,102px);line-height:1.06;letter-spacing:-5px;font-weight:500}.big-arrow{position:absolute;right:25px;top:10px;font-size:120px;color:#87ab4e;font-weight:400;transition:transform .25s}.contact-title:hover .big-arrow{transform:translate(8px,-8px)}.contact-details{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;margin-top:45px;padding-top:25px;border-top:1px solid var(--line);font-size:12px}.contact-details>span{color:#7b836e;font-size:11px}footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);min-height:100px}footer>span{font-size:10px;color:var(--muted)}footer>a:last-child{font:8px var(--mono);letter-spacing:1px}.skip{position:fixed;top:-100px;left:20px;padding:12px;background:var(--green);z-index:10}.skip:focus{top:10px}[hidden]{display:none!important}dialog{border:1px solid #c5cdb8;border-radius:10px;background:var(--bg);color:var(--ink);padding:45px;max-width:610px;width:calc(100% - 32px);box-shadow:0 35px 100px #0004}dialog::backdrop{background:#172011aa;backdrop-filter:blur(5px)}dialog h2{font-size:36px;margin-top:20px}dialog p,dialog li{font-size:14px;color:var(--muted);line-height:1.8}dialog h3{font-size:14px;margin-top:25px}dialog ul{padding-left:18px}dialog .tags{margin:25px 0}dialog .button{margin-top:5px}.close-dialog{position:absolute;right:17px;top:12px;border:0;background:none;font-size:28px}
@media(min-width:1450px){.hero-grid{padding-top:95px;padding-bottom:85px}.hero-art{height:430px}}@media(max-width:1000px){.wrap{padding-left:32px;padding-right:32px}.header{padding:0 32px}.hero-grid{gap:25px}.hero h1{letter-spacing:-3px}.hero-actions{gap:15px}.hero-art{height:345px}.code-body{font-size:9px}.floating-tag{padding:10px}.section{padding-top:75px;padding-bottom:75px}.about-grid{gap:50px}.skill-grid{grid-template-columns:1fr 1fr;gap:35px}.job{grid-template-columns:170px 1fr 20px;gap:25px}.rag-flow{font-size:7px;gap:5px}.rag-flow>span{padding:12px 6px}.project-visual{height:290px}.brand-caption{display:none}}@media(max-width:700px){.wrap{padding-left:22px;padding-right:22px}.header{padding:0 22px;min-height:79px}.brand{font-size:34px}.header nav{gap:16px;font-size:11px}.contact-nav{padding:9px 10px;font-size:10px}.contact-nav span{margin-left:4px}.hero-meta{font-size:7px;letter-spacing:0;gap:15px;line-height:1.7}.hero-meta>span:last-child{max-width:150px;text-align:right}.hero-meta b{padding:0 3px}.hero-grid{grid-template-columns:1fr;padding-top:42px;padding-bottom:32px;gap:38px}.hero h1{font-size:clamp(46px,10vw,67px);letter-spacing:-3px}.hero-description{font-size:14px;max-width:430px}.hero .eyebrow{font-size:8px}.hero-actions{gap:23px}.hero-foot{margin-top:30px;font-size:8px}.hero-art{height:330px;max-width:500px;width:100%;margin:auto}.code-window{max-width:360px}.code-body{font-size:11px}.floating-tag{right:15px;bottom:22px}.hero-bottom{font-size:6px;letter-spacing:.4px;gap:20px;line-height:1.8}.hero-bottom>a{white-space:nowrap}.section{padding-top:60px;padding-bottom:60px}.section-note{display:none}.title-row{align-items:flex-start;flex-direction:column;gap:24px}.filters button{padding:9px 13px}.project-grid{grid-template-columns:1fr;gap:30px}.project-wide .project-open{grid-template-columns:1fr;gap:20px}.project-visual{height:300px}.project-heading h3{font-size:21px}.rag-flow{font-size:8px;gap:7px}.rag-flow>span{padding:13px 9px}.about-grid{grid-template-columns:1fr;gap:30px}.about-monogram{display:none}.about-copy .lead{font-size:21px}.about-details{gap:20px}.job{grid-template-columns:1fr 25px;gap:16px;padding:27px 0}.job-date{grid-column:1/-1;font-size:9px;display:flex;gap:15px;align-items:center}.job-date span{margin:0;font-size:9px}.job h3{font-size:20px}.job-index{grid-column:2;grid-row:auto}.current-label{margin-bottom:10px}.skill-grid{gap:30px 20px}.skill-grid h3{font-size:13px}.skill-grid p{font-size:11px}.education{grid-template-columns:1fr;gap:23px;margin-top:38px}.education p span{display:inline;margin-left:10px}.contact-title{font-size:clamp(44px,10.5vw,70px);letter-spacing:-2.7px}.big-arrow{font-size:65px;right:0;top:35px}.contact-label{font-size:7px;letter-spacing:.6px}.contact-details{font-size:11px;flex-direction:column;gap:16px;margin-top:32px}footer{min-height:85px;gap:15px}footer>span{font-size:8px}footer>a:last-child{font-size:7px}dialog{padding:32px 24px}dialog h2{font-size:32px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
