:root{--ink:#13231e;--paper:#f8f6f0;--cream:#eeeadf;--green:#1e5948;--lime:#c9ff6a;--muted:#5c6863;--line:rgba(19,35,30,.16);--white:#fff;--radius:22px;--shadow:0 22px 55px rgba(24,43,36,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit}.shell{width:min(1160px,calc(100% - 48px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:100;background:rgba(248,246,240,.88);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.nav{height:76px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-.02em}.brand span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--lime);font-size:13px}.nav-links{display:flex;align-items:center;gap:8px}.nav-links a{padding:10px 16px;border-radius:999px;font-weight:600;font-size:14px}.nav-links a:hover{background:var(--cream)}.menu-toggle{display:none;border:0;background:var(--ink);color:#fff;padding:9px 14px;border-radius:99px}.hero{min-height:calc(100svh - 76px);display:grid;grid-template-columns:1.16fr .84fr;gap:8vw;align-items:center;padding-block:78px}.eyebrow{margin:0 0 17px;color:var(--green);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.hero h1,.section h2,.project-hero h1{font-family:Manrope,sans-serif;letter-spacing:-.055em;line-height:1.02}.hero h1{font-size:clamp(48px,6.6vw,88px);margin:0;max-width:850px}.hero-intro{max-width:680px;margin:28px 0 0;color:var(--muted);font-size:19px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:52px;padding:0 22px;border:1px solid var(--ink);border-radius:999px;font-weight:700;transition:.2s ease}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--ink);color:#fff}.button-primary span{color:var(--lime)}.button-secondary{background:transparent}.hero-facts{display:flex;gap:0;list-style:none;margin:56px 0 0;padding:0}.hero-facts li{min-width:145px;padding-right:26px;margin-right:26px;border-right:1px solid var(--line)}.hero-facts li:last-child{border:0}.hero-facts strong,.hero-facts span{display:block}.hero-facts strong{font:800 23px Manrope}.hero-facts span{color:var(--muted);font-size:12px;line-height:1.4}.portrait{position:relative;margin:0}.portrait img{position:relative;z-index:2;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center;border-radius:42% 42% 24px 24px;filter:saturate(.85)}.portrait-accent{position:absolute;z-index:1;inset:9% -6% -3% 12%;background:var(--lime);border-radius:45% 45% 24px 24px;transform:rotate(3deg)}.portrait figcaption{position:absolute;z-index:3;right:-25px;bottom:22px;padding:13px 17px;border-radius:99px;background:#fff;box-shadow:var(--shadow);font-size:13px;font-weight:700}.status-dot{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#43b672}.section{padding-block:120px}.section-tint{background:var(--cream)}.split{display:grid;grid-template-columns:.75fr 1.25fr;gap:10vw}.section h2{font-size:clamp(40px,5vw,66px);margin:0}.about-copy>p{color:var(--muted);max-width:700px}.about-copy .lead{color:var(--ink);font:600 clamp(21px,2.2vw,30px)/1.45 Manrope}.focus-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:55px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.focus-grid article{padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.focus-grid span{color:var(--green);font-size:12px;font-weight:800}.focus-grid h3{margin:23px 0 8px;font:700 18px Manrope}.focus-grid p{margin:0;color:var(--muted);font-size:14px}.section-top{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:60px}.section-top h2{max-width:730px}.resume-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw}.resume-column>h3{margin:0 0 34px;font:800 24px Manrope}.timeline-item{position:relative;padding:0 0 34px 28px;border-left:1px solid var(--line)}.timeline-item:before{content:"";position:absolute;left:-5px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--green)}.date{margin:0 0 8px;color:var(--green);font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.timeline-item h4,.education-card h4{margin:0;font:700 19px Manrope}.timeline-item .org{margin:3px 0 10px;color:var(--ink);font-weight:600}.timeline-item>p:last-child,.education-card>p:last-child{color:var(--muted);margin-bottom:0}.education-card{padding:28px;border:1px solid var(--line);border-radius:var(--radius)}.skills-title{margin-top:44px!important}.skill-list{display:flex;flex-wrap:wrap;gap:9px;list-style:none;padding:0}.skill-list li{padding:9px 13px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:700}.contact-card{margin-top:42px;padding:30px;border-radius:var(--radius);background:var(--green);color:#fff}.contact-card .eyebrow{color:var(--lime)}.contact-card h3{font:700 24px/1.3 Manrope}.contact-card a{display:inline-block;margin-top:16px;color:var(--lime);font-weight:700}.section-dark{background:var(--ink);color:#fff}.section-top.light .eyebrow{color:var(--lime)}.filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.filter{border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:8px 13px;background:transparent;color:#fff;cursor:pointer;font-size:13px}.filter.active,.filter:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:58px 24px}.project-card[hidden]{display:none}.project-card img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius);background:#d9ddd8;transition:.35s ease}.project-card:hover img{transform:translateY(-5px);box-shadow:0 20px 40px rgba(0,0,0,.26)}.project-card div{position:relative;padding:22px 5px 0}.project-card p{margin:0;color:#aab8b3;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.project-card h3{max-width:80%;margin:9px 0 0;font:700 clamp(20px,2.2vw,28px)/1.24 Manrope}.project-card span{position:absolute;right:4px;bottom:4px;color:var(--lime);font-size:13px;font-weight:700}footer{background:var(--ink);color:#aab8b3;border-top:1px solid rgba(255,255,255,.13)}footer .shell{display:flex;justify-content:space-between;padding-block:28px;font-size:13px}footer p{margin:0}footer a{margin-left:24px;color:#fff}.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}

/* Project case studies */
.project-body{background:var(--paper)}.project-header .nav-links a:last-child{background:var(--ink);color:#fff}.project-main{padding-bottom:110px}.project-hero{padding-block:82px 52px}.back-link{display:inline-block;margin-bottom:42px;color:var(--green);font-size:14px;font-weight:700}.project-hero h1{max-width:900px;margin:0;font-size:clamp(45px,7vw,84px)}.project-meta{display:flex;gap:20px;flex-wrap:wrap;margin-top:30px;color:var(--muted);font-size:14px}.project-meta span+span:before{content:"·";margin-right:20px}.project-gallery{display:grid;grid-template-columns:1fr;gap:18px}.project-gallery img{width:100%;max-height:720px;object-fit:cover;border-radius:var(--radius);background:var(--cream)}.case-grid{display:grid;grid-template-columns:.65fr 1.35fr;gap:10vw;padding-block:82px}.case-grid h2{margin:0;font:800 25px/1.25 Manrope}.case-copy .summary{margin-top:0;color:var(--ink);font:600 clamp(22px,2.5vw,31px)/1.5 Manrope}.case-copy>p{color:var(--muted)}.outcomes{margin-top:45px}.outcomes h3{font:800 18px Manrope}.outcomes ul{padding:0;list-style:none}.outcomes li{padding:18px 0 18px 28px;border-bottom:1px solid var(--line);position:relative}.outcomes li:before{content:"↗";position:absolute;left:0;color:var(--green);font-weight:800}.project-end{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:45px;border-radius:var(--radius);background:var(--green);color:#fff}.project-end p{margin:0 0 5px;color:#c9d8d3}.project-end h2{margin:0;font:700 clamp(24px,3vw,36px) Manrope}.project-end .button{border-color:var(--lime);background:var(--lime);color:var(--ink);white-space:nowrap}.not-found{text-align:center;padding:140px 24px}.not-found h1{font:800 44px Manrope}

@media(max-width:850px){.shell{width:min(100% - 32px,680px)}.nav{height:68px}.menu-toggle{display:block}.nav-links{display:none;position:absolute;top:68px;left:16px;right:16px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.nav-links.open{display:grid}.nav-links a{padding:13px}.hero{grid-template-columns:1fr;gap:70px;padding-block:65px}.portrait{max-width:470px}.portrait figcaption{right:-6px}.hero-facts{flex-wrap:wrap;gap:20px}.hero-facts li{min-width:120px}.section{padding-block:82px}.split,.resume-grid,.case-grid{grid-template-columns:1fr;gap:50px}.section-top{align-items:flex-start;flex-direction:column}.project-grid{grid-template-columns:1fr}.project-card h3{max-width:78%}.filters{justify-content:flex-start}.project-end{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.hero h1{font-size:44px}.hero-actions .button{width:100%}.hero-facts li{min-width:calc(50% - 20px)}.focus-grid{grid-template-columns:1fr}.section h2{font-size:38px}.project-card h3{max-width:100%;padding-right:0}.project-card span{position:static;display:block;margin-top:14px}.project-end{padding:30px}.project-end .button{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.button,.project-card img{transition:none}}

/* JIG palette redesign — sampled left to right from the supplied palette */
:root{
  --ink:#404e4d;
  --paper:#fffafa;
  --cream:#ffd9da;
  --green:#b86f52;
  --lime:#ffd166;
  --muted:#5d6e6d;
  --line:rgba(64,78,77,.22);
  --mist:#96bbbb;
  --clay:#b86f52;
  --sun:#ffd166;
  --blush:#ffd9da;
  --white:#ffffff;
  --shadow:0 22px 55px rgba(64,78,77,.16)
}
body{background:var(--paper);color:var(--ink)}
.site-header{background:rgba(255,250,250,.9);border-bottom:0;box-shadow:0 1px 0 rgba(64,78,77,.16)}
.site-header:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--ink) 0 20%,var(--mist) 20% 40%,var(--clay) 40% 60%,var(--sun) 60% 80%,var(--blush) 80%)}
.brand span{background:var(--clay);color:#fff;border-radius:12px;transform:rotate(-4deg)}
.nav-links a{position:relative}.nav-links a:hover{background:var(--blush)}
.hero{position:relative}.hero:before{content:"";position:absolute;z-index:-1;width:380px;height:380px;left:-230px;top:16%;border:70px solid var(--mist);border-radius:50%;opacity:.22}
.hero .eyebrow,.section-heading .eyebrow{color:var(--clay)}
.hero h1{color:var(--ink)}
.hero h1::selection,.section h2::selection{background:var(--sun)}
.button-primary{background:var(--clay);border-color:var(--clay);color:#fff;box-shadow:5px 5px 0 var(--ink)}
.button-primary:hover{box-shadow:2px 2px 0 var(--ink);transform:translate(3px,3px)}
.button-primary span{color:var(--sun)}
.button-secondary{background:#fff;border-color:var(--ink)}
.portrait-accent{inset:8% -7% -4% 11%;background:var(--mist);border-radius:28px;transform:rotate(3deg)}
.portrait:before{content:"";position:absolute;z-index:3;width:94px;height:94px;left:-34px;top:-30px;border-radius:50%;background:var(--sun);mix-blend-mode:multiply}
.portrait img{border-radius:28px;filter:none;box-shadow:12px 12px 0 var(--ink)}
.portrait figcaption{border:2px solid var(--ink);box-shadow:6px 6px 0 var(--sun)}
.status-dot{background:var(--clay)}
.hero-facts strong{color:var(--clay)}
.section-tint{background:var(--mist);color:var(--ink);position:relative;overflow:hidden}.section-tint:after{content:"";position:absolute;right:-90px;bottom:-120px;width:330px;height:330px;border-radius:50%;background:var(--sun);opacity:.5}
.section-tint .shell{position:relative;z-index:1}.section-tint .about-copy>p{color:#354241}.section-tint .section-heading .eyebrow{color:#fff}.section-tint .focus-grid{border-color:rgba(64,78,77,.35)}.section-tint .focus-grid article{background:rgba(255,255,255,.22);border-color:rgba(64,78,77,.35)}.focus-grid span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sun);color:var(--ink)}
#resume{position:relative}#resume:before{content:"";position:absolute;z-index:-1;right:0;top:130px;width:20%;height:210px;background:var(--blush);border-radius:32px 0 0 32px}
.timeline-item:before{background:var(--clay);box-shadow:0 0 0 5px var(--blush)}
.date{color:var(--clay)}
.education-card{background:var(--sun);border:2px solid var(--ink);box-shadow:7px 7px 0 var(--ink)}
.skill-list li{background:#fff;border-color:var(--mist)}
.skill-list li:nth-child(3n+1){background:var(--blush)}.skill-list li:nth-child(3n+2){background:rgba(150,187,187,.35)}.skill-list li:nth-child(3n){background:rgba(255,209,102,.55)}
.contact-card{background:var(--ink);border-radius:6px 32px 6px 32px}.contact-card .eyebrow,.contact-card a{color:var(--sun)}
.section-dark{background:var(--ink);position:relative;overflow:hidden}.section-dark:before{content:"";position:absolute;inset:0 0 auto;height:12px;background:linear-gradient(90deg,var(--mist) 0 33.33%,var(--clay) 33.33% 66.66%,var(--sun) 66.66%)}
.section-top.light .eyebrow{color:var(--sun)}
.filter{border-color:rgba(255,255,255,.42)}.filter.active,.filter:hover{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.project-card{background:#fff;color:var(--ink);border-radius:20px;overflow:hidden;padding:10px 10px 22px;box-shadow:0 10px 0 rgba(0,0,0,.15)}
.project-card:nth-child(4n+1){background:var(--mist)}.project-card:nth-child(4n+2){background:var(--blush)}.project-card:nth-child(4n+3){background:var(--sun)}.project-card:nth-child(4n){background:#fff}
.project-card img{border-radius:12px;filter:saturate(.88);border:1px solid rgba(64,78,77,.16)}
.project-card div{padding:22px 10px 0}.project-card p{color:var(--clay)}.project-card h3{color:var(--ink)}.project-card span{right:12px;bottom:0;color:var(--ink)}
.project-card:hover img{box-shadow:7px 7px 0 var(--clay)}
footer{background:var(--ink)}
.project-body{background:var(--paper)}.project-header .nav-links a:last-child{background:var(--clay);color:#fff}
.back-link,.project-hero .eyebrow{color:var(--clay)}
.project-hero{position:relative}.project-hero:after{content:"";position:absolute;right:3%;top:45px;width:130px;height:130px;background:var(--sun);border-radius:50%;z-index:-1}
.project-gallery img{border:10px solid var(--mist);box-shadow:12px 12px 0 var(--ink);border-radius:20px}
.outcomes li:before{color:var(--clay)}
.project-end{background:var(--mist);color:var(--ink);border:2px solid var(--ink);box-shadow:10px 10px 0 var(--clay)}.project-end p{color:#394746}.project-end .button{background:var(--sun);border-color:var(--ink);color:var(--ink)}
.not-found .button{color:#fff}
@media(max-width:850px){.site-header:before{height:4px}.portrait:before{width:68px;height:68px;left:-12px}.section-tint:after{opacity:.25}.project-card{padding-bottom:20px}}

/* Dark engineering edition */
:root{
  --ink:#e8efed;
  --paper:#111817;
  --cream:#1b2726;
  --green:#96bbbb;
  --lime:#ffd166;
  --muted:#a9b7b4;
  --line:rgba(150,187,187,.22);
  --white:#f7faf9;
  --shadow:none
}
body{background:var(--paper);color:var(--ink)}
.site-header{background:rgba(17,24,23,.94);border-bottom:1px solid var(--line);box-shadow:none}.site-header:before{height:2px;background:var(--mist)}
.brand{color:var(--white)}.brand span{background:transparent;color:var(--sun);border:1px solid var(--mist);border-radius:3px;transform:none}
.nav-links a{color:#cbd5d2;border-radius:3px}.nav-links a:hover{background:rgba(150,187,187,.1);color:#fff}
.menu-toggle{border:1px solid var(--line);border-radius:3px;background:#182321;color:#fff}
.hero{min-height:calc(100svh - 76px);gap:7vw}.hero:before,.portrait:before{display:none}
.hero .eyebrow,.section-heading .eyebrow,.eyebrow{color:var(--mist)}
.hero h1{color:var(--white);font-size:clamp(48px,6vw,82px);letter-spacing:-.045em}
.hero-intro{color:var(--muted);max-width:620px}
.button{border-radius:3px;min-height:50px;transition:border-color .15s ease,background .15s ease,color .15s ease}.button:hover{transform:none}
.button-primary{background:var(--mist);border-color:var(--mist);color:#111817;box-shadow:none}.button-primary:hover{background:var(--sun);border-color:var(--sun);box-shadow:none;transform:none}.button-primary span{color:#111817}
.button-secondary{background:transparent;border-color:#657a76;color:var(--white)}.button-secondary:hover{border-color:var(--mist);background:rgba(150,187,187,.08)}
.hero-facts li{border-color:var(--line)}.hero-facts strong{color:var(--sun)}.hero-facts span{color:var(--muted)}
.portrait-accent{display:none}.portrait img{aspect-ratio:4/5;border:1px solid var(--line);border-radius:4px;box-shadow:none;filter:grayscale(18%) contrast(1.04)}
.portrait figcaption{right:16px;bottom:16px;background:#15201eee;color:#e9efed;border:1px solid var(--line);border-radius:3px;box-shadow:none}.status-dot{background:var(--sun)}
.section{border-top:1px solid var(--line)}
.section-tint{background:#17211f;color:var(--ink)}.section-tint:after{display:none}.section-tint .about-copy>p{color:var(--muted)}.section-tint .about-copy .lead{color:var(--white)}.section-tint .section-heading .eyebrow{color:var(--mist)}
.section h2{color:var(--white);letter-spacing:-.045em}
.focus-grid{gap:12px;border:0!important}.focus-grid article{background:#111817!important;border:1px solid var(--line)!important;padding:28px}.focus-grid span{display:block;width:auto;height:auto;background:transparent;color:var(--sun);border-radius:0;font-family:monospace}.focus-grid h3{color:var(--white)}.focus-grid p{color:var(--muted)}
#resume:before{display:none}.resume-column>h3,.timeline-item h4,.education-card h4{color:var(--white)}.timeline-item{border-color:var(--line)}.timeline-item:before{width:7px;height:7px;left:-4px;background:var(--sun);box-shadow:none}.date{color:var(--mist);font-family:monospace}.timeline-item .org{color:#ccd6d3}.timeline-item>p:last-child,.education-card>p:last-child{color:var(--muted)}
.education-card{background:#17211f;border:1px solid var(--line);border-radius:4px;box-shadow:none}.skill-list li,.skill-list li:nth-child(n){background:#17211f;color:#d7e0de;border:1px solid var(--line);border-radius:3px}
.contact-card{background:#17211f;border:1px solid var(--line);border-radius:4px}.contact-card .eyebrow{color:var(--mist)}.contact-card a{color:var(--sun)}
.section-dark{background:#0c1211}.section-dark:before{height:1px;background:var(--line)}.section-top.light .eyebrow{color:var(--mist)}
.filters{gap:6px}.filter{border-color:#455a56;border-radius:3px;color:#c7d1ce}.filter.active,.filter:hover{background:var(--mist);border-color:var(--mist);color:#111817}
.project-grid{gap:34px 20px}.project-card,.project-card:nth-child(n){background:#151e1d;color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:0 0 22px;box-shadow:none}.project-card img{aspect-ratio:16/9;border:0;border-bottom:1px solid var(--line);border-radius:3px 3px 0 0;filter:grayscale(18%) saturate(.78);transition:filter .2s ease}.project-card:hover img{transform:none;box-shadow:none;filter:grayscale(0) saturate(1)}
.project-card div{padding:20px 20px 0}.project-card p{color:var(--mist);font-family:monospace}.project-card h3{color:var(--white)}.project-card span{right:20px;color:var(--sun)}
footer{background:#080d0c;border-color:var(--line)}
.project-body{background:var(--paper)}.project-header .nav-links a:last-child{background:rgba(150,187,187,.12);color:#fff;border:1px solid var(--line)}
.project-hero:after{display:none}.back-link,.project-hero .eyebrow{color:var(--mist)}.project-hero h1{color:var(--white)}.project-meta{color:var(--muted)}
.project-gallery img{border:1px solid var(--line);box-shadow:none;border-radius:4px;filter:grayscale(12%) saturate(.85)}
.case-grid h2,.case-copy .summary,.outcomes h3{color:var(--white)}.case-copy>p{color:var(--muted)}.outcomes li{border-color:var(--line);color:#cad3d1}.outcomes li:before{color:var(--sun)}
.project-end{background:#17211f;color:var(--white);border:1px solid var(--line);border-radius:4px;box-shadow:none}.project-end p{color:var(--mist)}.project-end .button{background:var(--mist);border-color:var(--mist);color:#111817}
.not-found h1{color:var(--white)}
@media(max-width:850px){.nav-links{background:#111817;border:1px solid var(--line);border-radius:4px;box-shadow:none}.nav-links a{color:#eef3f1}.focus-grid{gap:10px}.project-card{padding-bottom:20px}}
