:root{color-scheme:dark;--black:#000;--bg:#060907;--bg-deep:#030503;--surface:#111712;--surface2:#171e18;--ink:#f4f7f3;--muted:#a9b6aa;--muted2:#7d8b7e;--green:#00be12;--green-dark:#007c12;--border:#29352b;--line:#1e2a20;--paper:#f3f6f1;--paper-ink:#172219;--paper-muted:#56645a;--max:1216px;--radius:20px;font-family:Inter,"Avenir Next","Segoe UI",system-ui,-apple-system,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.64;-webkit-font-smoothing:antialiased;overflow-x:hidden}body.menu-open{overflow:hidden}::selection{background:var(--green);color:#001300}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}img[loading=lazy]{content-visibility:auto}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{line-height:1.1;letter-spacing:-.045em}h1{font-size:clamp(3rem,5.55vw,5.65rem);font-weight:740}h2{font-size:clamp(2.3rem,4.3vw,4.1rem);font-weight:720}h3{font-size:1.42rem;letter-spacing:-.03em}p{color:var(--muted)}small{font-size:.83rem}.container{width:min(calc(100% - 56px),var(--max));margin-inline:auto}.narrow{max-width:830px}.mono,.eyebrow,.kicker,.tiny-label,.stat-label,.status,.detail-tags,.meta-line,.section-count,.filter-btn,.subnav,.footer-bottom{font-family:"IBM Plex Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace}.mono{font-size:.83rem;letter-spacing:.02em}.skip-link{position:absolute;left:18px;top:-100px;z-index:1000;background:var(--green);color:#001000;padding:10px 16px;border-radius:6px}.skip-link:focus{top:14px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:5px;border-radius:4px}
.preview-bar{background:#18251a;color:#b3d9b8;border-bottom:1px solid #29442e;padding:8px 0;font-size:.72rem;text-align:center;letter-spacing:.04em}.preview-bar b{color:#c6ffce}.site-header{position:sticky;top:0;z-index:90;background:rgba(3,6,4,.92);backdrop-filter:blur(22px);border-bottom:1px solid rgba(64,96,68,.35)}.header-inner{display:flex;justify-content:space-between;align-items:center;gap:26px;min-height:94px}.brand{display:inline-flex;align-items:center;flex:none;min-width:130px}.brand img{width:140px;height:73px;object-fit:contain}.main-nav{display:flex;align-items:center;gap:clamp(12px,1.5vw,23px)}.main-nav a{font-size:.835rem;color:#c3cdc4;font-weight:580;white-space:nowrap;transition:color .18s}.main-nav a:hover,.main-nav a[aria-current=page]{color:#fff}.main-nav a[aria-current=page]:not(.nav-cta):after{content:"";display:block;width:100%;height:2px;background:var(--green);margin-top:5px}.main-nav .nav-cta{background:var(--green);color:#001700;padding:10px 16px;border-radius:9px;font-weight:760}.main-nav .nav-cta:hover{background:#35eb46;color:#001700}.menu-toggle{display:none;border:1px solid var(--border);color:var(--ink);background:#121913;padding:10px 13px;border-radius:10px;align-items:center;gap:8px}.menu-icon{width:18px;height:13px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}.menu-icon:before{content:"";position:absolute;left:0;right:0;top:4px;border-top:2px solid currentColor}
.eyebrow,.kicker{display:flex;align-items:center;gap:12px;color:#81dd8b;font-size:.76rem;letter-spacing:.17em;text-transform:uppercase;font-weight:620}.eyebrow:before{content:"";width:22px;height:2px;background:var(--green)}.kicker{font-size:.72rem}.kicker:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}.lead{font-size:clamp(1.12rem,1.6vw,1.32rem);line-height:1.65;color:#c9d3c9}.muted{color:var(--muted)}.text-green{color:var(--green)}.accent{color:var(--green)}.section{padding:112px 0;position:relative}.section-tight{padding:78px 0}.section-head{max-width:840px;margin-bottom:42px}.section-head h2{margin:15px 0 18px}.section-head p{font-size:1.05rem;max-width:730px}.section-head .kicker{margin-bottom:12px}.section-dark{background:#090e0a;border-top:1px solid #162217;border-bottom:1px solid #162217}.section-light{background:var(--paper);color:var(--paper-ink)}.section-light p,.section-light .card p{color:var(--paper-muted)}.section-light .kicker{color:#006b11}.section-light .kicker:before{background:#007c12}.section-light h2,.section-light h3{color:var(--paper-ink)}.section-light .inline-link{color:#006e13}.section-light .inline-link:after{background:#006e13}.section-dark-alt{background:#0c110d}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:30px}.btn{display:inline-flex;gap:13px;align-items:center;justify-content:center;min-height:51px;padding:13px 19px;border-radius:10px;font-weight:750;font-size:.9rem;line-height:1.2;transition:transform .17s,background .17s,border-color .17s}.btn:hover{transform:translateY(-2px)}.btn.primary{background:var(--green);color:#001900;border:1px solid var(--green)}.btn.primary:hover{background:#39ec49}.btn.outline{border:1px solid #526254;color:#fff;background:transparent}.btn.outline:hover{border-color:#e3eee5;background:#172218}.btn.dark-outline{border:1px solid #88988c;color:#19331d;background:transparent}.btn.dark-outline:hover{border-color:#007f15;background:#e4f1e4}.btn .arr,.inline-link:after{font-size:1.12rem;line-height:1;transition:transform .18s}.btn:hover .arr{transform:translateX(4px)}.inline-link{display:inline-flex;align-items:center;gap:10px;color:#75f082;font-weight:750;font-size:.87rem}.inline-link:after{content:"→"}.inline-link:hover{color:#fff}.section-light .inline-link:hover{color:#002500}
.hero{background:#010301;overflow:hidden;padding:95px 0 70px;position:relative}.hero:before{content:"";position:absolute;right:-280px;top:-260px;width:920px;height:900px;background:radial-gradient(circle,rgba(0,166,22,.085),transparent 63%);pointer-events:none}.hero:after{content:"";position:absolute;inset:0;opacity:.11;background-image:linear-gradient(#143018 1px,transparent 1px),linear-gradient(90deg,#143018 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,transparent 20%,black 93%);pointer-events:none}.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:55px;align-items:center;position:relative;z-index:1}.hero-copy{padding-bottom:20px}.hero .eyebrow{margin-bottom:26px}.hero h1{max-width:820px;margin:0 0 27px}.hero h1 em{font-style:normal;color:var(--green)}.hero .lead{max-width:690px;margin-bottom:0}.hero .intro-note{font-size:.9rem;color:#98a69b;max-width:630px;margin-top:23px}.hero-media{position:relative;min-height:460px;display:flex;align-items:center;justify-content:center}.hero-mark{position:relative;width:100%;background:#000;border:1px solid #213324;border-radius:28px;padding:16px;box-shadow:0 25px 110px rgba(0,140,12,.13),inset 0 1px rgba(255,255,255,.025)}.hero-mark img{width:100%;height:auto;object-fit:contain;border-radius:16px}.hero-mark:after{content:"";position:absolute;inset:auto 24px 0;height:2px;background:linear-gradient(90deg,transparent,var(--green),transparent)}.hero-mini{position:absolute;bottom:-20px;right:-14px;background:#111b13;border:1px solid #305638;box-shadow:0 12px 32px #0008;padding:12px 17px;border-radius:10px;color:#a7d9ab;line-height:1.3;font-size:.71rem;font-family:Consolas,monospace;letter-spacing:.09em;text-transform:uppercase}.hero-mini strong{display:block;color:#f0fff0;font-size:.83rem;margin-bottom:4px}.hero-bottom{border-top:1px solid #203122;margin-top:71px;padding-top:20px;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:.69rem;color:#829585;letter-spacing:.13em;text-transform:uppercase;font-family:Consolas,monospace}.hero-bottom span:last-child{display:flex;gap:10px;align-items:center}.hero-bottom .dot{background:var(--green);height:5px;width:5px;border-radius:50%}
.stats-strip{background:#0c130d;border-block:1px solid #263629}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr)}.stat{padding:38px 34px;border-right:1px solid #253427}.stat:first-child{padding-left:0}.stat:last-child{border-right:0}.stat-number{font-size:clamp(2.6rem,4vw,4rem);font-weight:800;line-height:1;letter-spacing:-.055em;color:#f7fff7}.stat-number span{color:var(--green)}.stat-label{color:#a9b6ac;font-size:.73rem;text-transform:uppercase;letter-spacing:.07em;line-height:1.55;margin-top:12px;max-width:330px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.card{background:#121913;border:1px solid #293b2c;border-radius:var(--radius);padding:30px;position:relative;min-width:0}.card:hover{border-color:#45764b}.card-number{color:#7ce889;font-family:Consolas,monospace;font-size:.77rem;letter-spacing:.09em;margin-bottom:31px}.card h3{margin-bottom:15px}.card p{font-size:.94rem}.card .inline-link{margin-top:15px}.card-light{background:#fff;border:1px solid #dce6dc;color:#172319}.card-light:hover{border-color:#9abc9f}.card-light p{color:#617065}.card-symbol{width:48px;height:48px;border:1px solid #3b6341;border-radius:14px;display:grid;place-items:center;background:#17291a;color:#5df16d;font-size:1.25rem;margin-bottom:25px;font-weight:780;line-height:1}.card-light .card-symbol{background:#e9f5ea;color:#008217;border-color:#d2e6d4}.card-light .inline-link{color:#006f16}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.project-card{background:#141b15;border:1px solid #2c3c2f;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;min-width:0}.project-card:hover{border-color:#4c8f56}.project-art{min-height:185px;background:#071209;position:relative;padding:24px;overflow:hidden;border-bottom:1px solid #293d2d}.project-art .art-grid{position:absolute;inset:0;opacity:.18;background-image:linear-gradient(90deg,#5baf66 1px,transparent 1px),linear-gradient(#5baf66 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,transparent,#000)}.project-art:before{content:"";position:absolute;right:-30px;top:-90px;width:300px;height:300px;background:radial-gradient(circle,rgba(0,190,18,.24),transparent 68%)}.project-art .art-id{font:.72rem Consolas,monospace;color:#7cbd86;letter-spacing:.12em;text-transform:uppercase;position:relative;z-index:2}.art-graphic{position:absolute;inset:55px 25px 15px;display:flex;align-items:center;justify-content:center;gap:11px}.art-node{border:1px solid #338c45;background:#112719;color:#a6fbb1;font:700 1rem Consolas,monospace;border-radius:12px;min-width:60px;min-height:54px;display:flex;align-items:center;justify-content:center;padding:8px 13px;box-shadow:0 0 22px #00a61912}.art-node.strong{background:#00be12;color:#002008;border-color:#00be12}.art-wire{height:1px;background:#69b977;width:38px;max-width:12%;position:relative}.art-wire:after{content:"";position:absolute;right:0;top:-3px;border-left:6px solid #69b977;border-top:4px solid transparent;border-bottom:4px solid transparent}.project-body{padding:26px 26px 27px;display:flex;flex:1;flex-direction:column}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#a4b8a6;font:.72rem Consolas,monospace;margin-bottom:13px}.project-body h3{font-size:1.38rem;margin:0 0 13px}.project-body p{font-size:.91rem;margin:0 0 20px}.project-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.status{display:inline-block;color:#86e993;font-size:.67rem;text-transform:uppercase;letter-spacing:.05em;border:1px solid #2e7540;background:#102918;padding:5px 8px;border-radius:40px;white-space:nowrap}.status.ongoing{color:#d5e6d6;border-color:#536e58;background:#1f2b21}.status.inprogress{color:#c3eac7;border-color:#477950;background:#1b3420}.status.completed{color:#8cff99;border-color:#318f40;background:#0c2b15}.filter-row{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 25px}.filter-btn{border:1px solid #3f5542;background:#111a13;color:#c2d0c4;padding:10px 15px;border-radius:30px;font-size:.74rem;min-height:40px}.filter-btn.active,.filter-btn:hover{color:#071b0a;background:var(--green);border-color:var(--green)}.project-card[hidden]{display:none!important}
.timeline{position:relative;display:grid;gap:22px}.timeline:before{content:"";position:absolute;left:9px;top:17px;bottom:0;border-left:1px solid #36513b}.timeline-item{display:grid;grid-template-columns:21px minmax(0,1fr);gap:21px}.timeline-dot{position:relative;top:15px;z-index:2;background:#08130b;width:19px;height:19px;border-radius:50%;border:3px solid var(--green)}.timeline-body{border:1px solid #293c2c;background:#111812;border-radius:17px;padding:27px}.timeline-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.timeline-body h3{margin:0 0 7px}.timeline-body .when{font:.77rem Consolas,monospace;color:#87bd8d}.timeline-body p{margin:12px 0 0}.timeline-body .tags{margin-top:15px}.timeline-body details{margin-top:19px;padding-top:17px;border-top:1px solid #29412d}.timeline-body summary{color:#8af298;font-weight:700;cursor:pointer;list-style:none;font-size:.91rem}.timeline-body summary:after{content:"+";margin-left:12px}.timeline-body details[open] summary:after{content:"−"}.timeline-body details ul{color:#bdcabd}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-flex;border:1px solid #3c5440;color:#a6c8a9;font: .7rem Consolas,monospace;padding:6px 10px;border-radius:30px;background:#172119}.tag.paper{border-color:#d1e0d2;color:#386340;background:#f4faf4}
.page-hero{padding:105px 0 85px;background:#020503;position:relative;overflow:hidden;border-bottom:1px solid #263527}.page-hero:after{content:"";position:absolute;right:-160px;top:-210px;height:700px;width:700px;background:radial-gradient(circle,#063b0b73,transparent 64%);pointer-events:none}.page-hero .container{position:relative;z-index:1}.page-hero h1{max-width:920px;margin:17px 0 21px}.page-hero .lead{max-width:800px;margin:0}.page-hero .quick-links{margin-top:34px}.page-hero .breadcrumb{font:.73rem Consolas,monospace;color:#a5baa8;margin-bottom:30px}.breadcrumb a{color:#74e380}.breadcrumb a:hover{text-decoration:underline}.subnav{font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;color:#9caf9d}.editorial{max-width:850px}.editorial p{font-size:1.06rem;line-height:1.85;margin-bottom:22px}.editorial h2{font-size:clamp(1.8rem,3vw,2.8rem);margin:50px 0 17px}.editorial h3{margin:34px 0 12px}.editorial ul{color:#bdc9be;padding-left:23px}.editorial li{margin-bottom:12px}.page-aside{display:grid;grid-template-columns:1fr 310px;gap:75px;align-items:start}.aside-card{background:#111b13;border:1px solid #2c4531;border-radius:17px;padding:26px;position:sticky;top:116px}.aside-card h3{font-size:1.05rem;letter-spacing:0}.aside-card dl{margin:0}.aside-card dt{font:.68rem Consolas,monospace;letter-spacing:.12em;color:#8dc594;margin-top:21px;text-transform:uppercase}.aside-card dd{margin:5px 0 0;color:#ecf6ed;font-size:.88rem}.aside-card .btn{margin-top:24px;width:100%}
.callout{border-left:3px solid var(--green);background:#121e14;border-radius:0 12px 12px 0;padding:23px 26px;margin:29px 0}.callout p{margin:0;font-size:.96rem}.two-column-story{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start}.two-column-story p{line-height:1.8}.numbered{counter-reset:point;display:grid;gap:17px}.numbered .point{display:grid;grid-template-columns:44px 1fr;gap:18px;align-items:start}.numbered .point:before{counter-increment:point;content:counter(point,decimal-leading-zero);font: .85rem Consolas,monospace;color:var(--green);padding-top:6px}.point h3{font-size:1.08rem;margin:0 0 8px}.point p{font-size:.94rem;margin:0}.quote-mark{font-size:5.5rem;color:var(--green);line-height:.7;margin-bottom:28px;font-family:Georgia,serif}.quote-text{font-size:clamp(1.6rem,2.5vw,2.45rem);font-weight:600;line-height:1.35;letter-spacing:-.028em;max-width:850px}.split-panel{display:grid;grid-template-columns:1fr 1fr;min-height:340px}.split-panel>div{padding:58px}.split-panel>div:first-child{background:#0b140d;border:1px solid #314133}.split-panel>div:last-child{background:#182b1b;border:1px solid #314133}.split-panel h3{font-size:1.8rem}.credentials-card{display:grid;grid-template-columns:110px 1fr;gap:25px;padding:30px;border:1px solid #344536;background:#111b13;border-radius:18px;align-items:center}.credential-emblem{height:110px;width:110px;border:1px solid #397a45;background:radial-gradient(circle,#144c20,#06150a);border-radius:20px;display:grid;place-items:center;font-size:2.5rem;color:#a9f5b4}.credential-emblem small{display:block;font: .55rem Consolas,monospace;color:#9ac9a0}.credentials-card h3{margin:0 0 9px}.credentials-card p{margin-bottom:12px}.simple-list{display:grid;gap:13px}.simple-list-item{display:flex;align-items:flex-start;gap:18px;background:#121913;border:1px solid #293b2c;border-radius:13px;padding:20px}.simple-list-item .item-num{font:.75rem Consolas,monospace;color:#6fe07d;min-width:32px}.simple-list-item strong{display:block}.simple-list-item p{font-size:.88rem;margin:5px 0 0}.intro-banner{display:flex;align-items:center;justify-content:space-between;gap:25px;flex-wrap:wrap;background:#102214;border:1px solid #2d5c34;border-radius:20px;padding:28px 33px}.intro-banner p{margin:0;max-width:650px}.hero-actions{margin-top:33px}.job-detail{display:grid;grid-template-columns:1fr 1.2fr;gap:25px;padding:27px 0;border-bottom:1px solid #324034}.job-detail:last-child{border-bottom:0}.job-detail h3{font-size:1.18rem;margin-bottom:9px}.job-detail p{margin:0}.job-detail .tiny-label{font-size:.72rem;color:#70da7b;letter-spacing:.08em}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-card{border:1px solid #354638;background:#111b13;border-radius:20px;padding:36px;min-height:230px}.contact-card .tiny-label{font-size:.7rem;color:#7fe38c;text-transform:uppercase;letter-spacing:.1em}.contact-card h3{font-size:1.58rem;word-break:break-word;margin:26px 0 14px}.contact-card .inline-link{margin-top:9px}.footer-cta{padding:95px 0;background:linear-gradient(130deg,#0a170c,#051009);border-block:1px solid #27402a}.footer-cta h2{max-width:810px;margin:0 0 22px}.footer-cta .lead{max-width:770px}.site-footer{background:#020402;padding:52px 0 24px}.footer-main{display:grid;grid-template-columns:1fr 1.15fr;gap:50px;align-items:start}.footer-brand img{width:190px;max-width:100%}.footer-brand p{font-size:.87rem;max-width:460px;margin:15px 0}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.footer-links h4{font:.72rem Consolas,monospace;color:#7bdd87;letter-spacing:.1em;text-transform:uppercase;margin:5px 0 15px}.footer-links a{display:block;color:#a9b8aa;font-size:.85rem;margin:10px 0}.footer-links a:hover{color:#f5fff6}.footer-bottom{margin-top:42px;padding-top:19px;border-top:1px solid #233225;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:#7f9482;font-size:.67rem}.fine-print{font-size:.82rem;color:#90a191}.divider{border:0;border-top:1px solid #2b3c2f;margin:35px 0}
@media (max-width:1080px){.header-inner{min-height:82px}.brand img{width:128px;height:64px}.main-nav{gap:12px}.main-nav a{font-size:.74rem}.main-nav .nav-cta{padding:10px 12px}.hero-grid{gap:28px}.hero-media{min-height:360px}.page-aside{grid-template-columns:1fr 260px;gap:35px}}@media(max-width:860px){.container{width:min(calc(100% - 38px),var(--max))}.menu-toggle{display:flex}.main-nav{display:none;position:absolute;left:0;right:0;top:100%;padding:23px 20px 27px;flex-direction:column;align-items:stretch;gap:0;background:#071009;border-bottom:1px solid #315738;box-shadow:0 23px 40px #000b}.main-nav.open{display:flex}.main-nav a{font-size:1rem;padding:12px;border-radius:8px}.main-nav a[aria-current=page]:not(.nav-cta):after{display:none}.main-nav a[aria-current=page]{background:#18321d}.main-nav .nav-cta{text-align:center;margin-top:8px}.hero{padding:65px 0 35px}.hero-grid{grid-template-columns:1fr;gap:24px}.hero-media{max-width:550px;min-height:auto;margin-inline:auto}.hero-mark{padding:10px}.hero-mini{right:10px;bottom:-17px}.hero-bottom{margin-top:48px}.stats-grid{grid-template-columns:repeat(3,1fr)}.stat{padding:28px 20px}.section{padding:84px 0}.grid-3,.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-aside{grid-template-columns:1fr}.aside-card{position:static}.two-column-story{gap:30px}.footer-main{grid-template-columns:1fr}.footer-links{max-width:650px}}@media(max-width:620px){.container{width:min(calc(100% - 32px),var(--max))}.preview-bar{font-size:.62rem;line-height:1.5}.header-inner{min-height:72px}.brand img{width:114px;height:57px}.hero{padding:58px 0 28px}.hero .eyebrow{margin-bottom:20px}.hero h1{font-size:clamp(2.6rem,11vw,4.35rem);line-height:1.07}.hero .lead{font-size:1.04rem}.hero-mini{font-size:.59rem;padding:9px 12px}.hero-mini strong{font-size:.71rem}.hero-bottom{font-size:.57rem}.hero-bottom>span:last-child{display:none}.stats-grid{grid-template-columns:1fr}.stat,.stat:first-child{padding:24px 0;border-right:0;border-bottom:1px solid #2c3d2f}.stat:last-child{border-bottom:0}.stat-number{font-size:2.7rem}.stat-label{margin-top:7px}.section{padding:70px 0}.section-tight{padding:54px 0}.section-head{margin-bottom:28px}.grid-3,.grid-2,.portfolio-grid,.contact-grid{grid-template-columns:1fr}.card{padding:25px}.card-number{margin-bottom:18px}.project-art{min-height:160px}.page-hero{padding:70px 0 60px}.page-hero h1{font-size:clamp(2.45rem,10vw,3.7rem)}.page-hero .lead{font-size:1.03rem}.two-column-story,.split-panel{grid-template-columns:1fr}.split-panel>div{padding:32px}.job-detail{grid-template-columns:1fr;gap:9px}.credentials-card{grid-template-columns:1fr}.credential-emblem{height:90px;width:90px}.footer-cta{padding:67px 0}.footer-links{grid-template-columns:repeat(2,1fr)}.btn-row .btn{flex:1;min-width:180px}.footer-bottom{line-height:1.7}.timeline-body{padding:21px}.timeline-item{gap:13px}.timeline:before{left:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
@media print{.site-header,.preview-bar,.site-footer,.footer-cta,.btn,.filter-row,.menu-toggle{display:none!important}body{background:#fff;color:#111}.section,.page-hero{padding:25px 0;background:#fff!important}.card,.timeline-body,.project-card{background:#fff!important;color:#111;border:1px solid #aaa;break-inside:avoid}p,.lead,.muted{color:#333!important}.hero{background:#fff!important}.hero h1,h2,h3{color:#111!important}.container{width:100%}.hero-media{display:none}.hero-grid{display:block}.stats-strip{background:#fff}.stat-number{color:#111}.timeline:before{display:none}}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Keep portfolio card text and status links visually separated even with long titles. */
.project-body{min-height:310px}
.project-bottom{position:relative;min-height:35px;margin-top:24px}
@media(max-width:620px){.project-body{min-height:0}.project-bottom{margin-top:22px}}
/* Keep the hero caption below the complete logo on mobile and tablet. */
@media(max-width:860px){
  .hero-media{width:100%;min-width:0;flex-direction:column;gap:16px}
  .hero-mini{position:static;align-self:stretch;max-width:100%;overflow-wrap:anywhere}
}
/* Align the desktop logo with the headline, below the eyebrow. */
@media(min-width:861px){
  .hero-media{align-self:start;min-height:0;flex-direction:column;gap:16px;margin-top:calc(.76rem * 1.64 + 26px)}
  .hero-mini{position:static;width:max-content;max-width:100%;margin-inline:auto;overflow-wrap:anywhere}
}

/* Keep every navigation link reachable on short mobile screens. */
@media(max-width:860px){
  .main-nav{max-height:calc(100vh - var(--nav-top,120px));max-height:calc(100dvh - var(--nav-top,120px));overflow-y:auto;overscroll-behavior:contain}
}

/* Match the Experience banner to the role cards beyond the timeline marker gutter. */
.experience-intro{margin-inline-start:42px}
@media(max-width:620px){.experience-intro{margin-inline-start:34px}}
