@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--bg:#eee3d4;--paper:#f7f0e6;--ink:#3e271d;--muted:#705f55;--line:#d7c3ad;--accent:#b54e28;--dark:#332017;--max:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 'DM Sans',Arial,sans-serif}.container{width:min(calc(100% - 48px),var(--max));margin-inline:auto}.site-header{width:min(calc(100% - 48px),var(--max));margin:auto;min-height:78px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:24px}.brand{font:600 23px 'Playfair Display',serif;color:var(--ink);text-decoration:none}.site-header nav{display:flex;gap:28px;flex-wrap:wrap}.site-header nav a{color:var(--ink);text-decoration:none;padding:27px 0 20px;border-bottom:3px solid transparent;font-size:14px}.site-header nav a.active,.site-header nav a:hover{color:var(--accent);border-color:var(--accent)}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;line-height:1.1;margin:0;color:var(--ink)}h1{font-size:clamp(54px,7vw,92px);letter-spacing:-.055em}h2{font-size:clamp(32px,4vw,48px)}h3{font-size:22px}.eyebrow,.category{color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:0 0 11px}.hero{display:grid;grid-template-columns:1.3fr .7fr;gap:50px;align-items:center;padding:68px 0 64px}.role{font:500 24px 'Playfair Display',serif;color:var(--accent);margin:16px 0}.intro,.page-intro{max-width:600px;color:var(--muted);font-size:17px;margin:0 0 25px}.actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-block;padding:13px 20px;border:1px solid var(--accent);border-radius:5px;text-decoration:none;font-weight:700}.primary{background:var(--accent);color:#fff}.secondary{color:var(--accent)}.availability{font-size:14px;margin:19px 0}.availability span{color:var(--accent);padding:0 5px}.quick-skills{list-style:none;padding:0;margin:28px 0 0;display:flex;gap:24px;flex-wrap:wrap}.quick-skills li{font-weight:700;font-size:14px}.quick-skills li:before{content:'◌';color:var(--accent);font-size:24px;vertical-align:-2px;margin-right:7px}.portrait-wrap{height:355px;display:flex;align-items:center;justify-content:center;background:#d8c5b1;border-radius:12px;overflow:hidden}.portrait-wrap img{width:100%;height:100%;object-fit:cover;object-position:center 8%;filter:saturate(.86)}.section{padding:70px 0}.muted-section{background:var(--paper);border-block:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.text-link,.project-card a,.case-card a{color:var(--accent);font-weight:700;text-decoration:none;font-size:14px}.text-link span,.project-card a span,.case-card a span{margin-left:5px}.featured-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.project-card{background:var(--paper);border:1px solid var(--line);padding:14px;display:flex;flex-direction:column}.project-card h3{font-size:22px;margin:5px 0 9px}.project-card p:not(.category){font-size:14px;color:var(--muted);margin:0 0 18px}.project-card strong{font:600 24px 'Playfair Display',serif;color:var(--accent);margin-top:auto}.project-card small{display:block;color:var(--muted);font:12px 'DM Sans',sans-serif}.project-card a{padding-top:16px;margin-top:12px;border-top:1px solid var(--line)}.project-visual{height:116px;border-radius:7px;margin-bottom:16px;display:flex;align-items:center;justify-content:center;color:var(--paper);font:700 30px 'DM Sans',sans-serif;letter-spacing:.15em}.visual-data{background:#644438}.visual-vision{background:#4d4a38}.visual-health{background:#85614b}.visual-nlp{background:#6e5141}.visual-iot{background:#504b3a}.visual-support{background:#684637}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:30px}.skills-grid article{padding:8px 22px;border-left:1px solid var(--line)}.skills-grid article:first-child{border-left:0;padding-left:0}.skills-grid h3{font-size:21px}.skills-grid p{font-size:14px;color:var(--muted)}.timeline{margin-top:28px;max-width:870px}.timeline article{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:18px 0;border-top:1px solid var(--line)}.timeline time{color:var(--accent);font-weight:700}.timeline h3{font-size:21px}.timeline p{margin:6px 0 0;color:var(--muted);font-size:14px}footer{background:var(--dark);color:#f9f1e6;margin-top:0}footer h2{color:#f9f1e6;font-size:31px;max-width:390px}.footer-inner{display:flex;justify-content:space-between;gap:50px;padding:52px 0}.footer-inner .eyebrow{color:#dd966e}.contact-links{display:grid;grid-template-columns:repeat(2,minmax(170px,1fr));gap:14px;align-content:start}.contact-links a,.contact-links p{color:#f9f1e6;text-decoration:none;margin:0;font-size:14px}.contact-links span{display:block;font-size:12px;color:#d7c1af}.project-index{padding:60px 0 80px}.project-index h1{font-size:clamp(48px,6vw,76px);margin-bottom:12px}.filters{display:flex;gap:24px;flex-wrap:wrap;margin:36px 0 24px;border-bottom:1px solid var(--line)}.filters button{border:0;background:transparent;color:var(--ink);padding:0 0 12px;font:700 14px 'DM Sans';cursor:pointer;border-bottom:3px solid transparent}.filters button.selected{color:var(--accent);border-color:var(--accent)}.all-projects{display:grid;gap:18px}.case-card{display:grid;grid-template-columns:42% 1fr;gap:30px;padding:15px;background:var(--paper);border:1px solid var(--line)}.case-art{min-height:245px;display:flex;align-items:center;justify-content:center;color:var(--paper);font:600 65px 'Playfair Display';border-radius:5px}.case-card h2{font-size:31px;margin-bottom:11px}.case-card>div>p:not(.category){margin:0;color:var(--muted)}dl{margin:16px 0}dl div{padding:9px 0;border-top:1px solid var(--line)}dt{color:var(--accent);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.06em}dd{margin:2px 0 0;font-size:14px}.case-study{padding:29px 0 80px}.crumb{font-size:13px;color:var(--muted)}.crumb a{color:var(--muted)}.crumb span{padding:0 8px}.back-link{float:right;margin-top:-39px;color:var(--accent);font-weight:700;text-decoration:none;font-size:14px}.case-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;padding:50px 0}.case-number{font:56px 'Playfair Display';color:var(--accent);margin:0 0 23px}.case-hero h1{font-size:clamp(45px,5vw,68px);margin-bottom:17px}.metrics{display:flex;gap:22px;margin-top:28px}.metrics div{padding-right:22px;border-right:1px solid var(--line)}.metrics div:last-child{border:0}.metrics strong{font:32px 'Playfair Display';color:var(--accent);display:block}.metrics span{font-size:13px;color:var(--muted)}.audit-preview{background:var(--paper);border:1px solid var(--line);padding:25px;align-self:center}.audit-preview>p{margin:0 0 20px;font-weight:700}.audit-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.audit-stats b{padding:12px;background:var(--bg);font-size:24px}.audit-stats span{font:11px 'DM Sans';display:block;color:var(--muted)}.audit-bars{height:155px;display:flex;gap:13px;align-items:flex-end;margin:22px 0;border-bottom:1px solid var(--line)}.audit-bars i{display:block;flex:1;background:var(--accent);opacity:.75}.audit-bars i:nth-child(1){height:38%}.audit-bars i:nth-child(2){height:61%}.audit-bars i:nth-child(3){height:80%}.audit-bars i:nth-child(4){height:54%}.audit-bars i:nth-child(5){height:90%}.audit-preview small{color:var(--muted)}.case-section{border-top:1px solid var(--line);padding:43px 0}.case-section h2{font-size:38px;margin-bottom:16px}.case-section>p{max-width:820px;color:var(--muted)}.contribution-grid{display:grid;grid-template-columns:repeat(4,1fr)}.contribution-grid article{padding:0 17px;border-left:1px solid var(--line)}.contribution-grid article:first-child{border-left:0;padding-left:0}.contribution-grid h3{font-size:19px;color:var(--accent)}.contribution-grid p{font-size:14px;color:var(--muted)}.process{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);padding:0;margin:0}.process li{padding:0 14px;border-left:1px solid var(--line)}.process li:first-child{padding-left:0;border:0}.process b{display:block;width:34px;height:34px;border-radius:50%;background:var(--accent);color:white;text-align:center;line-height:34px}.process h3{font-size:18px;margin-top:13px}.process p{font-size:13px;color:var(--muted)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:13px;text-align:left;border:1px solid var(--line)}th{background:var(--paper)}.result-note{color:var(--accent);font-weight:700}.tags{list-style:none;padding:0;display:flex;gap:9px;flex-wrap:wrap}.tags li{padding:6px 12px;border:1px solid var(--line);border-radius:4px;font-size:13px}.other-projects>div{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.other-projects a{padding:22px;border:1px solid var(--line);color:var(--ink);text-decoration:none;font:22px 'Playfair Display'}.other-projects a span{float:right;color:var(--accent)}
@media(max-width:800px){.site-header{padding:16px 0;align-items:flex-start;flex-direction:column}.site-header nav{gap:16px}.site-header nav a{padding:0;border:0}.hero,.case-hero{grid-template-columns:1fr;gap:28px;padding:46px 0}.portrait-wrap{width:min(100%,330px);height:320px}.featured-grid,.skills-grid,.contribution-grid{grid-template-columns:repeat(2,1fr)}.skills-grid article:nth-child(3){border-left:0;padding-left:0;margin-top:25px}.case-card{grid-template-columns:1fr;gap:18px}.case-art{min-height:190px}.process{grid-template-columns:1fr;gap:19px}.process li{border-left:0;border-top:1px solid var(--line);padding:15px 0}.process li:first-child{border-top:0}.footer-inner{flex-direction:column}.back-link{float:none;display:inline-block;margin:0 0 20px}.case-study{padding-top:25px}}
@media(max-width:520px){.container,.site-header{width:min(calc(100% - 30px),var(--max))}h1{font-size:58px}.featured-grid,.skills-grid,.contribution-grid,.other-projects>div{grid-template-columns:1fr}.skills-grid article,.skills-grid article:first-child{border-left:0;padding-left:0;padding-top:18px}.section-heading{align-items:flex-start;flex-direction:column}.metrics{gap:12px}.metrics strong{font-size:23px}.metrics div{padding-right:12px}.audit-stats{grid-template-columns:1fr}.timeline article{grid-template-columns:1fr;gap:5px}.contact-links{grid-template-columns:1fr}.filters{gap:15px}}

/* One-page release refinements */
.site-header{position:sticky;top:0;z-index:20;width:100%;padding-inline:max(24px,calc((100% - var(--max))/2));margin:0;background:rgba(238,227,212,.96);backdrop-filter:blur(10px)}
.hero,.section{min-height:calc(100svh - 78px)}
.section{display:flex;flex-direction:column;justify-content:center}
.button{display:inline-flex;align-items:center;gap:8px}.button svg{width:17px;height:17px}
.availability,.quick-skills li{display:flex;align-items:center;gap:7px}.availability svg,.quick-skills svg,.skills-grid article>svg{color:var(--accent)}.availability svg{width:15px;height:15px}.quick-skills svg{width:19px;height:19px}.quick-skills li:before{display:none}
.project-visual svg{width:43px;height:43px;stroke-width:1.5}.skills-grid article>svg{width:28px;height:28px;margin-bottom:14px}
.timeline article{grid-template-columns:190px 1fr}.contact-links svg{width:16px;height:16px;margin-right:7px;vertical-align:-3px}
@media(max-width:800px){.site-header{padding-inline:24px}.hero,.section{min-height:auto}.timeline article{grid-template-columns:1fr;gap:5px}}
@media(max-width:520px){.site-header{padding-inline:15px}.site-header nav{gap:13px}.site-header nav a{font-size:13px}.hero,.section{min-height:auto}.availability{flex-wrap:wrap}}

.brand{display:flex;align-items:center;gap:9px}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--accent);border-radius:50%;color:var(--accent);font:700 11px 'DM Sans',sans-serif;letter-spacing:-.06em}
footer{min-height:calc(100svh - 78px);display:flex;align-items:center}.footer-inner{width:100%}.footer-inner h2{font-size:clamp(38px,4vw,54px)}.contact-links a,.contact-links p{display:block;padding:13px 0;border-top:1px solid rgba(249,241,230,.22)}.contact-links a:first-child{border-top:0}.contact-links svg{color:#dd966e}
@media(max-width:800px){footer{min-height:auto}.footer-inner h2{font-size:34px}}

/* Compact contact footer with branded contact icons. */
footer{min-height:0;display:block}.footer-inner{width:min(calc(100% - 48px),var(--max));margin-inline:auto}.footer-inner h2{font-size:31px}.contact-links a,.contact-links p,.contact-links button{display:grid;grid-template-columns:19px 1fr;column-gap:8px;align-items:start;padding:0;border:0;background:transparent;text-align:left;font:inherit}.contact-links button{cursor:pointer}.contact-links .contact-name{grid-column:2;color:#f9f1e6;font-size:14px}.contact-links .contact-value{grid-column:2;color:#d7c1af;font-size:12px}.contact-links svg{grid-row:span 2;width:16px;height:16px;margin:2px 0 0;color:#dd966e}
