@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#111211;--fg:#f0f0e8;--muted:#aaaDa5;--line:#383b35;--accent:#d3ff5f;--panel:#1a1c18}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--fg);font-family:'DM Sans',sans-serif;font-size:16px;transition:background .3s,color .3s}body.light{--bg:#f5f6f0;--fg:#151712;--muted:#5c6256;--line:#c7cdbc;--panel:#e7eadf}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:7px}.skip{position:absolute;top:-60px;background:var(--accent);color:#111;padding:15px;z-index:10}.skip:focus{top:0}header{max-width:1600px;margin:auto;padding:28px 5%;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.brand{font-family:Manrope,sans-serif;font-size:32px;font-weight:800;letter-spacing:-2px}.brand span{font-size:12px;vertical-align:top;letter-spacing:0;margin-left:3px}nav{display:flex;align-items:center;gap:38px;margin-left:auto;font-size:14px}.contact{border:1px solid var(--line);border-radius:30px;padding:12px 20px}.contact span{margin-left:24px}#theme{background:none;border:0;font-size:24px;padding:6px}.hero,.work,.journey,.connect,footer{padding-left:6%;padding-right:6%;max-width:1600px;margin:auto}.hero{padding-top:48px}.eyebrow{font-size:12px;letter-spacing:1.5px;font-weight:600;display:flex;justify-content:space-between;gap:20px}.hero h1{font-family:Manrope,sans-serif;font-size:clamp(48px,6.8vw,104px);font-weight:500;letter-spacing:-.065em;line-height:1.12;margin:48px 0 30px}em{font-style:normal;color:var(--accent)}.light em{color:#487014}.hero-bottom{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}.hero-bottom p{font-size:18px;color:var(--muted);line-height:1.65}.round-link{display:flex;align-items:center;gap:28px;font-size:14px}.round-link b{height:62px;width:62px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:27px;font-weight:400;transition:.3s}.round-link:hover b{background:var(--accent);color:#111;transform:translateY(4px)}.system{border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden}.system-top,.system-caption{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;font-size:12px;letter-spacing:1px;color:var(--muted)}.system-top button{background:none;border:0;font-size:12px}.pipeline{position:relative;display:flex;justify-content:space-around;padding:28px 7% 38px;isolation:isolate}.line{position:absolute;height:1px;background:var(--line);width:70%;top:64px;z-index:-1;overflow:hidden}.line:after{content:'';position:absolute;width:80px;height:1px;background:var(--accent);animation:flow 5s linear infinite;box-shadow:0 0 12px var(--accent)}@keyframes flow{from{left:-80px}to{left:100%}}.paused .line:after{animation-play-state:paused}.node{background:none;border:none;display:flex;align-items:center;flex-direction:column;gap:9px;width:130px}.node-symbol{width:74px;height:74px;border:1px solid var(--line);background:var(--bg);border-radius:50%;display:grid;place-items:center;font-size:32px;transition:.25s}.node.active .node-symbol,.node:hover .node-symbol{background:var(--accent);color:#111;border-color:var(--accent);transform:translateY(-4px)}.node>span:nth-child(2){font-size:16px}.node small{font-size:10px;letter-spacing:1.5px;color:var(--muted)}.system-caption{border-top:1px solid var(--line);min-height:66px;letter-spacing:0;font-size:14px}.hint{font-size:10px;letter-spacing:1px}.work{padding-top:120px;padding-bottom:100px}.section-top{display:flex;justify-content:space-between}.index{font-size:12px;color:var(--muted)}h2{font-family:Manrope,sans-serif;font-size:clamp(36px,4.5vw,68px);font-weight:500;letter-spacing:-.055em;line-height:1.13}.work h2{margin:30px 0 55px}.work h2 span{color:var(--muted)}details{border-top:1px solid var(--line)}details:last-child{border-bottom:1px solid var(--line)}summary{list-style:none;display:flex;align-items:center;gap:30px;padding:34px 0;cursor:pointer}summary::-webkit-details-marker{display:none}.number{font-size:13px;color:var(--muted);align-self:flex-start;padding-top:7px}.project-title{font-family:Manrope,sans-serif;font-size:clamp(24px,2.5vw,38px);letter-spacing:-1px;line-height:1.2}.project-title small{display:block;font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:1px;color:var(--muted);margin-top:18px;line-height:1.6}.tag{margin-left:auto;font-size:12px;border:1px solid var(--line);padding:8px 13px;border-radius:22px;white-space:nowrap}.expand{font-size:26px;margin-left:22px;font-weight:400;transition:transform .3s}details[open] .expand{transform:rotate(45deg);color:var(--accent)}.project-body{margin-left:48px;display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-bottom:30px;max-width:980px}.project-body p{font-size:16px;color:var(--muted);line-height:1.7;margin-top:0}.project-body h3{font-size:13px;font-weight:500;margin-top:0}.journey{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-top:90px;padding-bottom:110px}.journey h2{margin:28px 0}.journey p{line-height:1.8;color:var(--muted);max-width:500px}.timeline{padding-top:10px}.timeline article{border-left:1px solid var(--line);padding:0 0 30px 30px;position:relative}.timeline article:before{content:'';width:7px;height:7px;background:var(--muted);position:absolute;left:-4px;top:4px}.timeline article.next:before{background:var(--accent)}.timeline article span{font-size:11px;letter-spacing:1.5px;color:var(--muted)}.timeline h3{font-size:26px;font-weight:500;letter-spacing:-1px;margin:15px 0 5px}.timeline p{font-size:14px;margin:0}.connect{background:var(--accent);color:#161b0e;padding-top:65px;padding-bottom:65px;position:relative;overflow:hidden}.connect h2{font-size:clamp(60px,8vw,120px);margin:35px 0}.connect em{color:#547320}.connect a{display:flex;justify-content:space-between;width:310px;border-bottom:1px solid #617d34;padding:15px 0;font-size:18px}.asterisk{position:absolute;right:9%;top:65px;font-size:230px;line-height:1;transition:transform 1s}.connect:hover .asterisk{transform:rotate(90deg)}footer{display:flex;align-items:center;justify-content:space-between;padding-top:35px;padding-bottom:35px}footer>span,footer>a:last-child{font-size:13px;color:var(--muted)}@media(min-width:1601px){.connect{border-radius:8px}}@media(max-width:700px){header{padding:20px 6%;gap:12px}nav{gap:18px}nav>a:first-child{display:none}.contact{padding:8px 12px}.contact span{margin-left:8px}nav a{font-size:12px}.hero{padding-top:28px}.eyebrow{font-size:10px;letter-spacing:1px}.hero .eyebrow span:last-child{display:none}.hero h1{font-size:clamp(42px,8.6vw,60px);margin-top:35px}.hero-bottom p{font-size:15px}.round-link span{display:none}.round-link b{height:46px;width:46px}.system-top,.system-caption{padding:16px;font-size:11px}.pipeline{padding:20px 6px 26px}.node{width:25%;padding:0;gap:8px}.node-symbol{width:52px;height:52px;font-size:25px}.node>span:nth-child(2){font-size:13px}.node small{font-size:9px;letter-spacing:.6px}.line{top:46px}.hint{display:none}.system-caption{font-size:12px;line-height:1.5}.work{padding-top:75px;padding-bottom:60px}summary{gap:18px}.tag{display:none}.expand{margin-left:auto}.project-body{margin-left:32px;grid-template-columns:1fr;gap:8px}.project-title small{font-size:9px}.journey{grid-template-columns:1fr;gap:30px;padding-top:60px;padding-bottom:60px}.asterisk{font-size:100px;top:95px;right:4%;opacity:.4}.connect{padding-top:40px;padding-bottom:40px}.connect h2{position:relative;z-index:1}.connect a{width:100%}footer>span{max-width:130px;font-size:11px;text-align:center}footer>a:last-child{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
.hero-intro{display:grid;grid-template-columns:1fr 300px;gap:5%;align-items:center;margin:35px 0}.hero-intro h1{font-size:clamp(42px,5.4vw,80px);margin:0 0 25px}.hero-lead{font-size:18px;line-height:1.7;color:var(--muted)}.resume-link,.text-link{display:inline-block;border-bottom:1px solid var(--line);padding:10px 0;font-size:14px}.portrait{margin:0;transform:rotate(3deg)}.portrait img{width:100%;height:auto;display:block;border-radius:4px}.portrait figcaption{font-size:10px;letter-spacing:1px;margin-top:12px;color:var(--muted)}.hero-bottom{margin-bottom:30px}.resume-main{max-width:1250px;margin:auto;padding:60px 6%}.resume-head{display:grid;grid-template-columns:1fr 220px;gap:50px;align-items:center}.resume-head h1{font-family:Manrope,sans-serif;font-weight:500;font-size:64px;letter-spacing:-3px;margin:25px 0}.resume-head h1 span{display:block;font-size:25px;letter-spacing:-.5px;margin-top:10px;color:var(--accent)}.light .resume-head h1 span{color:#487014}.resume-head p{line-height:1.7;color:var(--muted)}.resume-head>img{width:100%;height:auto;border-radius:4px}.resume-actions{display:flex;gap:24px;align-items:center;margin-top:25px;font-size:14px}.resume-actions button{background:var(--accent);border:0;padding:13px 20px;color:#111;border-radius:30px}.location{font-size:14px;color:var(--muted)}.resume-nav{margin:50px 0 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;gap:30px;flex-wrap:wrap}.resume-section{padding:48px 0;border-bottom:1px solid var(--line)}.resume-section h2{font-size:36px;margin:0 0 30px}.resume-section h3{font-size:21px;font-weight:500;letter-spacing:-.5px;margin:0 0 10px}.summary-copy{max-width:850px;font-size:17px;line-height:1.8;color:var(--muted)}.resume-role{display:grid;grid-template-columns:200px 1fr;gap:35px;padding:28px 0;border-top:1px solid var(--line)}.role-date{font-size:14px;line-height:1.6}.role-date span{display:block;color:var(--muted);font-size:12px;margin-top:8px}.company{margin:0;color:var(--muted)}.resume-role ul{padding-left:19px;margin-bottom:0;color:var(--muted);line-height:1.8}.resume-role li{margin:9px 0}.resume-projects{display:grid;grid-template-columns:1fr 1fr;gap:30px}.resume-projects article{padding:25px;border:1px solid var(--line);border-radius:6px}.resume-projects h3{margin-top:18px}.resume-projects p{color:var(--muted);line-height:1.8}.project-tech{font-size:13px;color:var(--muted)}.skill-groups{display:grid;grid-template-columns:1fr 1fr;gap:20px}.skill-groups h3{font-size:17px}.skill-groups p{display:flex;flex-wrap:wrap;gap:8px}.skill-groups p span{font-size:14px;border:1px solid var(--line);padding:8px 12px;border-radius:22px}#education>p{line-height:1.7}@media(max-width:850px){.hero-intro{grid-template-columns:1fr 220px}.hero-intro h1{font-size:45px}}@media(max-width:600px){.hero-intro{grid-template-columns:1fr;gap:25px}.hero-intro h1{font-size:44px}.portrait{width:210px;transform:rotate(2deg);margin:0 5px 0 auto}.hero-lead{font-size:16px}.hero-lead br{display:none}.resume-main{padding-top:35px}.resume-head{grid-template-columns:1fr;gap:25px}.resume-head h1{font-size:48px}.resume-head>img{width:150px;grid-row:1}.resume-nav{gap:18px;font-size:14px}.resume-role{grid-template-columns:1fr;gap:18px}.resume-projects,.skill-groups{grid-template-columns:1fr}.resume-section h2{font-size:32px}.resume-actions{gap:15px}.resume-actions button{padding:12px 16px}}
@media print{body,body.light{--bg:#fff;--fg:#111;--muted:#444;--line:#ccc;--accent:#244915;background:#fff;color:#111}header,footer,.resume-nav,.resume-actions{display:none!important}.resume-main{max-width:none;padding:0}.resume-head{display:grid;grid-template-columns:1fr 105px;gap:20px}.resume-head>img{width:105px;grid-row:auto}.resume-head h1{font-size:32px;letter-spacing:-1px;margin:10px 0}.resume-head h1 span{font-size:16px;color:#111}.resume-head p{font-size:11px;margin:6px 0}.resume-section{padding:20px 0}.resume-section h2{font-size:22px;margin-bottom:14px}.resume-section h3{font-size:14px}.summary-copy,.resume-role li,.resume-projects p{font-size:11px;line-height:1.5}.resume-role{grid-template-columns:140px 1fr;gap:20px;padding:16px 0;break-inside:avoid}.role-date,.company{font-size:11px}.role-date span{font-size:10px}.resume-projects{display:block}.resume-projects article{break-inside:avoid;padding:12px;margin-bottom:10px}.skill-groups{grid-template-columns:1fr 1fr}.skill-groups p span{font-size:10px;padding:4px 8px}.resume-section>h2{break-after:avoid}@page{margin:16mm}}

.resume-website{font-size:14px;overflow-wrap:anywhere}.resume-website a{text-decoration:underline;text-underline-offset:3px}@media print{.resume-website{display:block!important;font-size:10px!important}}
