@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{color-scheme:dark;--bg:#101313;--surface:#191d1d;--text:#f2f5ef;--muted:#a6afab;--line:#343b37;--accent:#c5f277}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.wrap{width:min(1200px,calc(100% - 96px));margin:auto}header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;border-bottom:1px solid var(--line);max-width:1440px;margin:auto}.brand{font:800 38px 'Manrope',sans-serif;letter-spacing:-3px}.brand span{color:var(--accent)}nav{display:flex;align-items:center;gap:36px;font-size:14px}nav a{transition:color .2s}nav a:hover{color:var(--accent)}.nav-contact{border:1px solid var(--line);padding:10px 20px;border-radius:30px}.nav-contact span{margin-left:16px}.eyebrow,.tiny,.time,.company,.project-top,.skill-number,.code-label{font-size:12px;letter-spacing:1.7px;font-weight:500}.hero{padding-top:64px}.hero>.eyebrow{display:flex;justify-content:space-between;color:var(--muted)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,sans-serif}h1{font-size:clamp(48px,6.7vw,94px);font-weight:500;letter-spacing:-5px;line-height:1.12;margin:32px 0 44px}h1 span{color:var(--accent)}.hero-bottom{display:grid;grid-template-columns:1.55fr 1fr;gap:90px}.role{font-size:18px;font-weight:500;margin-bottom:12px}.intro{max-width:585px;color:var(--muted);font-size:18px;line-height:1.75}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.button{padding:13px 22px;border-radius:5px;font-size:14px;font-weight:600;display:inline-flex;gap:28px;align-items:center;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.primary{background:var(--accent);color:var(--bg)}.secondary{border:1px solid var(--line)}.hero-aside{border-left:1px solid var(--line);padding-left:44px;align-self:center}.tiny{color:var(--muted)}.hero-aside p{font-size:24px;line-height:1.5;margin:16px 0}.code-label{color:var(--accent);letter-spacing:1px}.stats{display:grid;grid-template-columns:1fr 1.1fr 1.2fr;margin-top:65px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0}.stats>div{padding:0 30px;border-left:1px solid var(--line)}.stats>div:first-child{padding-left:0;border:0}.stats strong{display:block;font:500 32px Manrope,sans-serif;letter-spacing:-1px}.stats span{display:block;color:var(--muted);font-size:14px;margin-top:9px}.section{padding-top:100px;padding-bottom:10px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:36px}.section .eyebrow{color:var(--accent)}h2{font-size:46px;line-height:1.2;letter-spacing:-1.8px;font-weight:500;margin-top:20px}.section-heading>p,.muted{color:var(--muted);font-size:16px}.projects{display:grid;grid-template-columns:1fr 1fr;gap:20px}.project{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s}.project:hover{border-color:#738469}.project-top{padding:23px 30px;display:flex;justify-content:space-between;color:var(--muted);border-bottom:1px solid var(--line);background:linear-gradient(120deg,#232c27,#191d1d)}.featured .project-top{background:var(--accent);color:#20321b}.project-content{padding:30px;flex:1}.company{color:var(--muted);font-size:12px;letter-spacing:1px}h3{font-size:25px;line-height:1.35;letter-spacing:-.6px;font-weight:600}.project h3{margin:10px 0 16px}.project p{color:var(--muted);line-height:1.75}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.tags span{font-size:12px;padding:4px 10px;border:1px solid #414941;border-radius:4px;color:#d0d9cd}details{margin:0 30px;border-top:1px solid var(--line)}summary{font-size:14px;cursor:pointer;list-style:none;padding:17px 0;display:flex;justify-content:space-between}summary::-webkit-details-marker{display:none}summary span{color:var(--accent);font-size:20px;line-height:1}details[open] summary span{transform:rotate(45deg)}details>p{padding-bottom:24px;font-size:14px}.compact{margin-top:20px;padding:28px 30px;flex-direction:row;align-items:center;justify-content:space-between;gap:30px}.compact h3{margin:8px 0}.compact .tags{margin:0;max-width:260px;flex-shrink:0}.experience{display:grid;grid-template-columns:.85fr 1.3fr;gap:70px}.experience .muted{margin-top:24px}.timeline{border-left:1px solid var(--line);padding-left:40px}.timeline article{position:relative;padding:0 0 35px;margin-bottom:32px;border-bottom:1px solid var(--line)}.timeline article:last-child{margin-bottom:0}.timeline article:before{content:'';width:8px;height:8px;background:var(--accent);position:absolute;left:-45px;top:7px;border-radius:50%}.time{color:var(--muted);margin-bottom:12px}.job{color:var(--accent);font-size:14px;margin-top:5px}.timeline article>p:not(.job){color:var(--muted);margin-top:18px}.skills{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.skills article{padding:28px 24px 34px;border-right:1px solid var(--line)}.skills article:first-child{padding-left:0}.skills article:last-child{border:0}.skill-number{color:var(--accent)}.skills h3{font-size:20px;margin:24px 0 16px}.skills p{color:var(--muted);line-height:1.9;font-size:15px}.education{display:flex;align-items:center;gap:28px;padding:28px 0;font-size:14px}.education>span:last-child{margin-left:auto;color:var(--muted)}.contact{background:var(--accent);color:#152014;margin-top:85px;padding:65px 0}.contact h2{font-size:clamp(36px,4.8vw,64px);letter-spacing:-2.5px;margin-bottom:28px}.contact h2 span{color:#486235}.email{font-size:clamp(17px,2.6vw,32px);border-bottom:1px solid #708c51;padding-bottom:10px;display:inline-block;max-width:100%;overflow-wrap:anywhere}.email span{margin-left:24px}.contact-links{display:flex;gap:28px;font-size:14px;margin-top:44px}.contact-links>span{margin-left:auto}footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:28px;padding-bottom:28px;font-size:12px;color:var(--muted)}.skip{position:fixed;top:-100px;left:20px;background:var(--accent);color:#101313;padding:10px;z-index:20}.skip:focus{top:10px}::selection{background:var(--accent);color:var(--bg)}@media(min-width:800px){.hero h1{animation:enter .7s ease-out}.hero-bottom{animation:enter .9s ease-out}}@keyframes enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.wrap{width:calc(100% - 48px)}header{padding:0 24px}h1{letter-spacing:-3px}.hero-bottom{gap:35px}.hero-aside{padding-left:25px}.hero-aside p{font-size:21px}.skills{grid-template-columns:1fr 1fr}.skills article:nth-child(2){border-right:0}.skills article:nth-child(n+3){border-top:1px solid var(--line)}.skills article:nth-child(3){padding-left:0}.experience{gap:36px;grid-template-columns:.85fr 1.4fr}.compact{align-items:start;flex-direction:column}.education{flex-wrap:wrap;gap:12px}.education>span:last-child{margin-left:0}}@media(max-width:600px){header{height:78px}nav{gap:18px}nav a{font-size:13px}.nav-contact{padding:7px 12px}.nav-contact span{display:none}nav a[href='#expertise']{display:none}.hero{padding-top:36px}.hero>.eyebrow{font-size:10px;letter-spacing:1px}h1{font-size:clamp(40px,10.6vw,64px);letter-spacing:-2.2px;margin:28px 0 30px}.hero-bottom{grid-template-columns:1fr}.hero-aside{display:none}.intro{font-size:16px}.role{font-size:16px}.button{gap:14px;padding:12px 14px;font-size:13px}.stats{margin-top:40px;grid-template-columns:1fr 1fr;gap:24px}.stats>div{padding:0 0 0 20px}.stats>div:last-child{grid-column:1/-1;border:0;padding:20px 0 0;border-top:1px solid var(--line)}.stats strong{font-size:28px}.stats span{font-size:12px}.section{padding-top:65px}h2{font-size:36px}.section-heading{align-items:start;flex-direction:column;gap:18px}.section-heading>p br{display:none}.projects{grid-template-columns:1fr}.project-content{padding:24px}.project-top{padding:20px 24px}details{margin:0 24px}.compact{padding:24px}.experience{grid-template-columns:1fr;gap:32px}.timeline{padding-left:24px;margin-left:5px}.timeline article:before{left:-29px}.skills article{padding:22px 16px}.skills h3{font-size:18px}.skills p{font-size:14px}.education{display:block}.education p{margin:10px 0}.contact{margin-top:45px;padding:45px 0}.contact h2{letter-spacing:-1.5px}.contact-links{flex-wrap:wrap;gap:18px}.contact-links>span{margin-left:0;width:100%}footer{gap:10px}footer .brand{font-size:30px}footer>a:last-child{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.logisoft{grid-column:1/-1}.logisoft .project-content>p{max-width:900px}.logisoft-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}.logisoft h4{font-size:16px;font-weight:600;margin:0 0 10px}.logisoft-pillars p{font-size:15px}.logisoft details ul{color:var(--muted);padding-left:20px;margin:0 0 24px;max-width:1000px}.logisoft details li{font-size:15px;margin-bottom:12px}@media(max-width:700px){.logisoft-pillars{grid-template-columns:1fr;gap:22px}}

.project details ul{color:var(--muted);padding-left:20px;margin:0 0 24px}.project details li{font-size:15px;line-height:1.75;margin-bottom:12px}.compact.with-contributions{display:block}.compact-overview{display:flex;align-items:center;justify-content:space-between;gap:30px}.with-contributions details{margin:24px 0 0}.with-contributions details ul{max-width:1000px}@media(max-width:900px){.compact-overview{align-items:flex-start;flex-direction:column}}

/* Six projects: three columns on desktop, two on tablet, one on mobile. */
.projects{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.projects>.project{grid-column:auto;min-width:0}.projects .project-content{padding:24px;display:flex;flex-direction:column}.projects .project-content>p{margin-bottom:24px}.projects .project-content>.tags{margin-top:auto;padding-top:2px}.projects h3{font-size:23px;overflow-wrap:anywhere}.projects .project-top{padding:20px 24px;gap:16px;letter-spacing:1px}.projects details{margin:0 24px}.projects summary{gap:16px}.projects summary span{flex-shrink:0}.projects .logisoft-pillars{grid-template-columns:1fr;gap:18px;margin:0 0 24px;padding-top:8px;border:0}.projects .logisoft-pillars p{font-size:15px}.projects .tags span{overflow-wrap:anywhere}@media(max-width:1050px){.projects{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.projects{grid-template-columns:minmax(0,1fr)}}

/* Compact cards and an independent, accessible project dialog. */
.projects{grid-auto-rows:1fr}.projects .project{display:flex;flex-direction:column}.projects .project-top{background:#202724;color:var(--muted)}.projects .project-top>span:last-child{color:var(--accent)}.projects .project-content{padding:24px}.projects h3{min-height:2.7em;margin:10px 0 16px}.projects .project-content>p{font-size:16px;line-height:1.7;margin-bottom:24px}.projects .tags{gap:7px}.contribution-button{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 24px;padding:19px 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);font:500 14px 'DM Sans',sans-serif;text-align:left;cursor:pointer}.contribution-button span{color:var(--accent);font-size:20px}.contribution-button:hover{color:var(--accent)}button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}body.project-dialog-open{overflow:hidden}#project-dialog{width:min(780px,calc(100% - 32px));max-height:85vh;max-height:85dvh;padding:0;border:1px solid #536047;border-radius:12px;background:var(--surface);color:var(--text);box-shadow:0 24px 100px #0009;overflow:auto;overscroll-behavior:contain}#project-dialog::backdrop{background:rgb(0 0 0 / .75);backdrop-filter:blur(5px)}.dialog-toolbar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 28px;border-bottom:1px solid var(--line);background:var(--surface);z-index:1}.dialog-toolbar>span{font-size:12px;letter-spacing:1.5px;color:var(--muted)}#close-project-dialog{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:6px;padding:10px 14px;background:transparent;color:var(--text);font:500 14px 'DM Sans',sans-serif;cursor:pointer}#close-project-dialog:hover{border-color:var(--accent);color:var(--accent)}#close-project-dialog span{font-size:23px;line-height:1}#project-dialog-content{padding:30px 32px 36px}#project-dialog h2{font-size:32px;letter-spacing:-1px;margin:12px 0 18px}#project-dialog h3{font-size:18px;letter-spacing:0;margin:28px 0 14px}#project-dialog .project-dialog-description{color:var(--muted);font-size:16px;line-height:1.75}#project-dialog .tags{margin-top:0}#project-dialog .tags span{font-size:14px}#project-dialog .logisoft-pillars{grid-template-columns:1fr;gap:20px;padding:0;border:0;margin:0 0 24px}#project-dialog h4{font-size:16px;margin:0 0 8px}#project-dialog .project-dialog-contributions p,#project-dialog li{color:var(--muted);font-size:16px;line-height:1.8}#project-dialog ul{margin:0;padding-left:22px}#project-dialog li{padding-left:4px;margin-bottom:14px}@media(max-width:650px){.projects{grid-auto-rows:auto}.projects h3{min-height:0}#project-dialog-content{padding:24px}#project-dialog h2{font-size:27px}.dialog-toolbar{padding:14px 20px}}
