/* Michel AFFEDJOU — independent personal portfolio · 2026 */
:root {
  --ink:#172430; --ink-deep:#101c27; --ink-soft:#4c5b62; --cream:#f5f2eb;
  --paper:#fcfbf8; --paper-warm:#ece6dd; --stroke:#d9d6ce; --gold:#b18b55;
  --gold-dark:#8d693c; --bluegrey:#dae3e3; --white:#fffdf8;
  --max:1200px; --shadow:0 22px 65px rgba(21,29,32,.09);
  --serif:Georgia,'Times New Roman',serif;
  --sans:'Lato',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font:400 16px/1.66 var(--sans);-webkit-font-smoothing:antialiased}
::selection{background:#b18b55;color:#fff}
img{max-width:100%;display:block}
a{color:inherit;text-underline-offset:4px}
button,input{font:inherit}
button{cursor:pointer}
.container{width:min(calc(100% - 72px),var(--max));margin-inline:auto}
.narrow{width:min(calc(100% - 72px),920px);margin-inline:auto}
.kicker{font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.2em;line-height:1.4;color:var(--gold-dark)}
.eyebrow{display:flex;align-items:center;gap:14px;font-size:.7rem;font-weight:800;letter-spacing:.19em;text-transform:uppercase;line-height:1.5;color:var(--gold-dark)}
.eyebrow:before{content:"";width:28px;height:1px;background:currentColor;flex:none}
.section{padding:clamp(72px,8vw,116px) 0}
.section-tight{padding:66px 0}
.section-title{font:400 clamp(2.4rem,4.3vw,4.35rem)/1.13 var(--serif);letter-spacing:-.052em;margin:17px 0 18px;max-width:840px}
.section-title em{font-weight:400;color:var(--gold-dark)}
.section-head{margin-bottom:38px}
.section-head .lead{max-width:660px}
.lead{font-size:clamp(1.04rem,1.5vw,1.22rem);line-height:1.75;color:var(--ink-soft);margin:0}
.prose{color:var(--ink-soft);line-height:1.85}
.prose p{margin:0 0 17px}
small{font-size:.78rem}
.skip-link{position:absolute;left:10px;top:-100px;background:var(--ink);color:white;padding:10px;z-index:1000}.skip-link:focus{top:10px}
/* shell */
.site-header{height:87px;background:rgba(252,251,248,.97);position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(25,40,47,.13);backdrop-filter:blur(14px)}
.header-inner{height:100%;display:flex;justify-content:space-between;align-items:center;gap:36px}
.identity{display:flex;gap:14px;align-items:center;text-decoration:none;min-width:210px}
.identity-mark{height:42px;width:42px;border:1px solid var(--gold);display:grid;place-items:center;font:italic 24px/.9 var(--serif);color:var(--ink)}
.identity-text{display:flex;flex-direction:column;line-height:1.06;gap:5px;white-space:nowrap}
.identity-name{font-size:1rem;font-weight:850;letter-spacing:-.03em}.identity-name span{font-weight:450}
.identity-subtitle{font-size:.53rem;letter-spacing:.21em;text-transform:uppercase;color:#6b736f;font-weight:800}
.site-nav{display:flex;align-items:center;gap:27px;margin-left:auto}
.site-nav>a{font-size:.75rem;text-decoration:none;color:#3c4a50;white-space:nowrap;font-weight:700;position:relative;letter-spacing:.025em;padding:32px 0}
.site-nav>a:hover,.site-nav>a[aria-current="page"]{color:var(--gold-dark)}
.site-nav>a[aria-current="page"]:after{content:"";position:absolute;bottom:25px;height:2px;background:var(--gold);left:0;right:0}
.header-contact{flex:none;display:inline-flex;align-items:center;gap:14px;background:var(--ink);color:white;text-decoration:none;font-size:.75rem;font-weight:750;letter-spacing:.02em;padding:13px 18px;transition:background .18s,transform .18s}
.header-contact:hover{background:#36505a;transform:translateY(-2px)}
.header-contact span{color:#d6b27b;font-size:1.2rem}
.menu-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--stroke);background:none;flex:none;color:var(--ink)}
.menu-toggle svg{width:21px;height:21px}
/* common */
.button{min-height:48px;padding:13px 22px;display:inline-flex;align-items:center;justify-content:center;gap:20px;min-width:fit-content;font-size:.81rem;font-weight:770;letter-spacing:.015em;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s;border:1px solid var(--ink);background:var(--ink);color:var(--white)}
.button:hover{transform:translateY(-2px);background:#3e4c53;box-shadow:0 8px 25px rgba(28,31,37,.12)}
.button:focus-visible,.site-nav a:focus-visible,.menu-toggle:focus-visible,.filter-btn:focus-visible{outline:3px solid #d2a565;outline-offset:3px}
.button-outline{background:transparent;color:var(--ink);border-color:#b9bab5}.button-outline:hover{background:#ece8e0}
.button-light{background:var(--white);color:var(--ink);border-color:var(--white)}.button-light:hover{background:#e8e0d0}
.button-text{border:0;background:none;min-height:40px;padding:8px 0;text-decoration:none;font-weight:780;color:var(--ink)}
.inline-arrow{color:var(--gold-dark);font-size:1.2em;font-weight:500}
.text-link{font-weight:730;font-size:.8rem;display:inline-flex;align-items:center;gap:12px;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:4px}
.text-link:hover{color:var(--gold-dark)}
.rule{border:0;border-top:1px solid var(--stroke)}
/* home */
.hero{background:var(--cream);overflow:hidden;border-bottom:1px solid var(--stroke)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.17fr) minmax(320px,.83fr);min-height:690px;gap:7%;align-items:center;padding-block:60px 66px}
.hero-intro{align-self:center;padding-block:40px}
.hero-title{font:400 clamp(3.8rem,6.35vw,6.5rem)/.99 var(--serif);letter-spacing:-.068em;margin:24px 0 25px;max-width:780px}
.hero-title em{font-weight:400;color:var(--gold-dark)}
.hero-title .under{border-bottom:2px solid var(--gold);padding-bottom:1px}
.hero-summary{font-size:1.09rem;max-width:550px;line-height:1.82;color:var(--ink-soft);margin:0 0 31px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-note{display:flex;gap:14px;align-items:center;margin-top:45px;font-size:.76rem;font-weight:680;letter-spacing:.08em;color:#67706f;text-transform:uppercase}
.hero-note .circle{width:7px;height:7px;border-radius:50%;background:var(--gold)}
.portrait-stage{position:relative;align-self:stretch;display:flex;align-items:center;justify-content:center;padding:30px 17px 28px 12px}
.portrait-rail{position:absolute;width:83%;height:87%;border:1px solid #b9aa94;right:0;bottom:5%;pointer-events:none}
.portrait-stage:before{content:"";width:150px;height:150px;border-radius:50%;border:1px solid #d6c5af;position:absolute;top:1%;left:-6%}
.portrait-image{position:relative;height:min(540px,65vw);width:100%;object-fit:cover;object-position:center 18%;filter:saturate(.83);box-shadow:var(--shadow)}
.portrait-stamp{position:absolute;bottom:58px;left:-40px;background:var(--ink);color:#f8f5ee;padding:17px 21px;display:flex;gap:15px;align-items:center;max-width:270px;box-shadow:0 14px 30px rgba(10,20,28,.14)}
.stamp-symbol{font:italic 2.6rem/.9 var(--serif);color:#c2a16d}
.stamp-copy{font-size:.65rem;line-height:1.6;letter-spacing:.12em;text-transform:uppercase;font-weight:710}
.proof-strip{background:var(--ink-deep);color:var(--white)}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);padding:23px 0}
.proof{display:flex;align-items:center;gap:18px;padding:11px 32px;border-right:1px solid #3d4a4d}.proof:first-child{padding-left:0}.proof:last-child{border-right:0}
.proof-num{font:normal 2.35rem/1 var(--serif);color:#e6c99e;white-space:nowrap}.proof-label{font-size:.75rem;line-height:1.5;letter-spacing:.04em;color:#dbe1dd;max-width:180px}
.intro-columns{display:grid;grid-template-columns:.87fr 1.13fr;gap:10%;align-items:start}
.intro-side{border-top:1px solid var(--gold);padding-top:22px;color:#77746e;font-size:.83rem;max-width:220px}
.intro-copy{font:400 clamp(1.5rem,2.6vw,2.55rem)/1.52 var(--serif);letter-spacing:-.025em;margin:0}
.intro-copy strong{font-weight:400;color:var(--gold-dark)}
.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:37px}
.focus-card{padding:32px 30px 33px;min-height:250px;background:#f7f5f0;border:1px solid var(--stroke);display:flex;flex-direction:column;align-items:start}
.focus-no{font:.76rem/1 var(--serif);color:var(--gold-dark);margin-bottom:28px}
.focus-card h3{font:400 1.49rem/1.2 var(--serif);letter-spacing:-.025em;margin:0 0 13px}
.focus-card p{font-size:.89rem;line-height:1.8;color:var(--ink-soft);margin:0}
.projects-section{background:var(--cream);border-block:1px solid var(--stroke)}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.project-tile{background:var(--paper);border:1px solid #d8d5ce;text-decoration:none;overflow:hidden;transition:transform .2s,box-shadow .2s;display:block}
.project-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.project-thumb{height:255px;display:grid;place-items:center;overflow:hidden;position:relative}
.project-thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 70%,rgba(10,18,23,.07));pointer-events:none}
.project-thumb img{height:90%;width:auto;object-fit:contain;border-radius:10px 10px 0 0;box-shadow:0 3px 12px rgba(30,39,41,.14)}
.thumb-cream{background:#e3ded2}.thumb-mint{background:#dce6dd}.thumb-green{background:#d9e2dc}.thumb-sand{background:#e7e2d4}
.project-tile-copy{padding:26px 28px 27px}
.project-meta{display:flex;justify-content:space-between;gap:18px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.13em;color:#7e7b72}
.project-tile h3{font:400 2.05rem/1.2 var(--serif);letter-spacing:-.035em;margin:10px 0 9px}
.project-tile p{font-size:.88rem;line-height:1.72;color:var(--ink-soft);margin:0 0 22px;min-height:45px}
.project-go{font-size:.78rem;font-weight:750;color:var(--gold-dark);display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--stroke);padding-top:14px}
.section-cta{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:35px;flex-wrap:wrap}
.section-cta p{margin:0;color:var(--ink-soft);font-size:.91rem;max-width:600px}
.wide-photo{position:relative;min-height:365px;display:grid;grid-template-columns:50% 50%;background:#e1dfd6;overflow:hidden}
.wide-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.wide-photo-copy{padding:60px 10%;display:flex;flex-direction:column;align-items:start;justify-content:center}
.wide-photo-copy h2{font:400 clamp(2rem,3.3vw,3.4rem)/1.18 var(--serif);letter-spacing:-.05em;margin:15px 0 16px}
.wide-photo-copy p{color:var(--ink-soft);margin:0 0 21px;line-height:1.75}
.quote-band{background:#eae4d8;padding:66px 0;border-top:1px solid #d5cdbf}
.quote-band .q{font:400 clamp(1.55rem,3vw,3rem)/1.42 var(--serif);max-width:930px;letter-spacing:-.027em;margin:0}
.quote-band .q em{color:var(--gold-dark)}
.callout-dark{background:var(--ink);color:var(--white);padding:75px clamp(30px,6vw,90px);position:relative;overflow:hidden}
.callout-dark:after{content:"MA";font:italic 18rem/1 var(--serif);color:rgba(255,255,255,.025);position:absolute;right:-1%;bottom:-25%;pointer-events:none}
.callout-dark .section-title{color:var(--white);margin:13px 0 25px}.callout-dark .section-title em{color:#dbb985}
.callout-dark p{color:#c8d0d1;max-width:625px;margin:0 0 26px}
/* page heroes */
.page-hero{padding:85px 0 80px;background:var(--cream);border-bottom:1px solid var(--stroke);position:relative;overflow:hidden}
.page-hero.dark{background:var(--ink);color:var(--white)}
.page-hero:after{content:"";border:1px solid rgba(164,144,118,.28);width:400px;height:400px;border-radius:50%;position:absolute;right:-190px;top:-160px;pointer-events:none}
.page-hero h1{font:400 clamp(3.25rem,5.7vw,5.9rem)/1.07 var(--serif);letter-spacing:-.06em;max-width:950px;margin:22px 0 20px}
.page-hero h1 em{font-weight:400;color:var(--gold-dark)}
.page-hero.dark h1 em{color:#d9b98a}
.page-hero .lead{max-width:725px}
.page-hero.dark .lead{color:#c7d0d0}
.breadcrumb{font-size:.74rem;color:#8c897e;margin:0 0 25px}.breadcrumb a{text-decoration:none}.breadcrumb span{margin:0 7px}
/* timeline */
.story-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:8%;align-items:start}
.story-photo{aspect-ratio:5/4;object-fit:cover;width:100%;filter:saturate(.88)}
.photo-caption{display:flex;justify-content:space-between;gap:20px;font-size:.75rem;color:#77796e;border-bottom:1px solid var(--stroke);padding:16px 2px}
.story-copy h2{font:400 clamp(2rem,3.1vw,3.2rem)/1.22 var(--serif);letter-spacing:-.04em;margin:13px 0 23px}
.story-copy .prose{font-size:1.04rem}
.timeline{border-left:1px solid #bdbcb5;margin:30px 0 0 10px;padding-left:36px}
.timeline-entry{position:relative;padding:0 0 45px}
.timeline-entry:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--gold);border:4px solid var(--paper);position:absolute;left:-44px;top:8px;box-sizing:content-box}
.timeline-year{font-size:.72rem;font-weight:850;text-transform:uppercase;color:var(--gold-dark);letter-spacing:.14em}
.timeline-entry h3{font:400 1.75rem/1.25 var(--serif);margin:10px 0}
.timeline-entry .org{color:#555f62;font-weight:650;font-size:.86rem;margin:0 0 11px}
.timeline-entry p{max-width:690px;color:var(--ink-soft);font-size:.94rem;line-height:1.77;margin:0}
.timeline-entry:last-child{padding-bottom:0}
.stat-card{border:1px solid var(--stroke);padding:28px;display:flex;align-items:start;gap:17px;background:#f7f5f0}
.stat-card b{font:400 3rem/1 var(--serif);color:var(--gold-dark)}
.stat-card p{margin:4px 0 0;color:var(--ink-soft);font-size:.84rem}
/* case studies */
.case{padding:86px 0;border-bottom:1px solid var(--stroke)}
.case:nth-of-type(even){background:var(--cream)}
.case-head{display:grid;grid-template-columns:1.05fr .95fr;gap:6%;align-items:end}
.case-index{font-size:.69rem;letter-spacing:.21em;color:var(--gold-dark);font-weight:800;text-transform:uppercase}
.case h2{font:400 clamp(2.7rem,4.8vw,4.8rem)/1.1 var(--serif);letter-spacing:-.05em;margin:11px 0 7px}
.case-deck{font:400 1.43rem/1.45 var(--serif);color:#596566;margin:0}
.case-tags{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-start;padding-bottom:9px}
.tag{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid #d5d0c7;padding:7px 10px;font-weight:800;color:#596160}
.case-body{display:grid;grid-template-columns:1fr .9fr;gap:8%;margin-top:33px}
.case-detail{display:grid;grid-template-columns:90px 1fr;gap:19px;border-top:1px solid #d6d2c9;padding:18px 0}
.case-detail dt{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;font-weight:850;color:#8c6a45;padding-top:4px}
.case-detail dd{margin:0;color:#48585e;font-size:.93rem;line-height:1.74}
.case-visual{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.screen-card{margin:0;text-align:center}
.screen-display{height:325px;background:#e3e5dc;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:17px 14px 0;border:1px solid #d7d6ce}
.screen-display img{height:100%;width:auto;object-fit:contain;object-position:top;border-radius:10px 10px 0 0;box-shadow:0 3px 13px rgba(17,23,26,.13)}
.screen-card figcaption{font-size:.73rem;line-height:1.5;color:#738080;padding:11px 2px}
.small-note{font-size:.78rem;color:#85847e;line-height:1.6;margin-top:11px}
.case-narrative{padding:26px 30px;background:#eee8dc;border-left:2px solid var(--gold);color:#4e5755;font-size:.87rem;line-height:1.78;margin-top:17px}
.case-narrative strong{color:var(--ink)}
/* learning */
.cert-controls{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:31px}
.filter-btn{border:1px solid #c9c4ba;background:transparent;color:#55615e;padding:9px 18px;font-size:.74rem;font-weight:750}
.filter-btn:hover,.filter-btn[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:white}
.credential-groups{display:grid;grid-template-columns:1fr 1fr;gap:19px}
.credential-group{background:#f8f6f0;border:1px solid var(--stroke);padding:30px}
.credential-group h2{font:400 1.85rem/1.2 var(--serif);margin:6px 0 21px;letter-spacing:-.035em}
.credential-list{display:grid;gap:0}
.credential{padding:14px 0;border-top:1px solid #ddd9d0}
.credential strong{font-size:.9rem;display:block;line-height:1.5;color:var(--ink)}
.credential span{font-size:.79rem;color:#7a807d;display:block;margin-top:4px}
.credential-group[hidden]{display:none!important}
.credentials-note{margin-top:24px;padding:21px 27px;border-left:3px solid var(--gold);background:#efeae0;color:#526063;font-size:.83rem;line-height:1.75}
/* engagement */
.engagement-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:22px}
.feature-award{background:var(--ink);color:var(--white);padding:43px 44px;min-height:340px;position:relative;overflow:hidden}
.feature-award:after{content:"2026";font:400 11rem/1 var(--serif);color:rgba(255,255,255,.05);position:absolute;right:-20px;bottom:-36px}
.feature-award h2{font:400 clamp(2.1rem,3.2vw,3.2rem)/1.14 var(--serif);letter-spacing:-.04em;max-width:390px;margin:20px 0}
.feature-award p{color:#cdd5d5;max-width:430px;margin:0;font-size:.94rem;line-height:1.8}
.engagement-cards{display:grid;gap:22px}
.engagement-card{background:var(--cream);border:1px solid var(--stroke);padding:29px;display:flex;flex-direction:column;justify-content:center}
.engagement-card h3{font:400 1.63rem/1.25 var(--serif);margin:10px 0}
.engagement-card p{margin:0;color:var(--ink-soft);font-size:.86rem;line-height:1.75}
/* contact */
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:7%}
.contact-intro{padding-right:5%}
.contact-intro h2{font:400 clamp(2.1rem,3.5vw,3.7rem)/1.16 var(--serif);letter-spacing:-.05em;margin:17px 0 20px}
.contact-links{display:grid;gap:14px}
.contact-link{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:90px;padding:20px 22px;border:1px solid var(--stroke);text-decoration:none;background:var(--cream);transition:border .2s,transform .2s}
.contact-link:hover{border-color:var(--gold);transform:translateX(4px)}
.contact-link .label{font-size:.64rem;font-weight:850;text-transform:uppercase;letter-spacing:.14em;color:#8b6d47}
.contact-link strong{display:block;font-size:1.04rem;line-height:1.5;overflow-wrap:anywhere}
.contact-link .go{font-size:1.4rem;color:var(--gold-dark)}
.contact-extra{margin-top:21px;font-size:.81rem;color:var(--ink-soft)}
/* footer */
.site-footer{background:var(--ink-deep);color:var(--white)}
.footer-top{padding:65px 0 42px;display:grid;grid-template-columns:1.45fr 1fr 1fr;gap:9%}
.footer-signature{font:400 2.4rem/1 var(--serif);letter-spacing:-.05em;margin:0 0 14px}
.footer-signature small{display:block;font:.66rem/1.5 var(--sans);color:#a9bdbe;letter-spacing:.13em;text-transform:uppercase;margin-top:11px}
.footer-about{color:#bac6c7;font-size:.83rem;max-width:320px;line-height:1.8;margin:0}
.footer-col h3{font:.67rem/1.5 var(--sans);color:#d6b784;letter-spacing:.16em;text-transform:uppercase;margin:0 0 18px}
.footer-col a{display:block;font-size:.83rem;color:#c8d2d2;text-decoration:none;margin-bottom:8px}
.footer-col a:hover{color:white;text-decoration:underline}
.footer-bottom{border-top:1px solid #31414a;padding:19px 0;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#a7b4b6;font-size:.7rem}
.footer-bottom a{text-decoration:none;color:inherit}
/* misc */
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mini-grid .item{border-top:1px solid var(--gold);padding-top:20px}
.mini-grid h3{font:400 1.4rem/1.25 var(--serif);margin:0 0 9px}
.mini-grid p{font-size:.87rem;line-height:1.75;color:var(--ink-soft);margin:0}
.number-block{font:400 4rem/1 var(--serif);color:var(--gold-dark);letter-spacing:-.05em}
.cv-download{background:var(--paper-warm);border:1px solid #d4c9b9;padding:30px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.cv-download h3{font:400 1.6rem/1.25 var(--serif);margin:0 0 5px}.cv-download p{color:var(--ink-soft);font-size:.84rem;margin:0}
figcaption{font-size:.75rem}
@media (max-width:1050px){
  .container,.narrow{width:min(calc(100% - 52px),var(--max))}
  .site-nav{gap:14px}.site-nav>a{font-size:.69rem}.header-inner{gap:20px}.header-contact{padding:12px 14px}
  .hero-grid{gap:4%}.hero-title{font-size:clamp(3.3rem,6.1vw,5.6rem)}
  .portrait-stamp{left:-20px}.case-body{gap:4%}
}
@media (max-width:860px){
  .site-header{height:76px}.container,.narrow{width:min(calc(100% - 40px),var(--max))}
  .site-nav{position:absolute;left:0;right:0;top:76px;background:var(--paper);border-bottom:1px solid var(--stroke);box-shadow:var(--shadow);display:none;flex-direction:column;align-items:stretch;gap:0;padding:16px 20px 19px}
  .site-nav[data-open="true"]{display:flex}
  .site-nav>a{padding:12px 4px;font-size:.9rem;border-bottom:1px solid #eee9e0}
  .site-nav>a[aria-current="page"]:after{display:none}
  .menu-toggle{display:inline-flex;margin-left:auto}
  .header-contact{display:none}
  .hero-grid{grid-template-columns:1fr 0.82fr;min-height:auto;gap:24px;padding-block:45px 55px}
  .hero-title{font-size:clamp(3rem,7vw,4.4rem)}
  .hero-summary{font-size:1rem}
  .portrait-image{height:455px}.portrait-stamp{left:-10px;bottom:40px;padding:12px 14px}.stamp-copy{font-size:.54rem}
  .proof-grid{grid-template-columns:repeat(3,1fr)}.proof{padding:10px 13px;gap:10px}.proof-num{font-size:1.75rem}.proof-label{font-size:.68rem}
  .intro-columns{gap:6%;grid-template-columns:.7fr 1.3fr}.focus-grid{gap:13px}.focus-card{padding:25px 20px}
  .case-body{grid-template-columns:1fr}.case-visual{max-width:630px;margin-top:23px}
  .case-head{grid-template-columns:1fr}.case-tags{margin-top:19px}
  .footer-top{gap:5%;grid-template-columns:1.2fr 1fr 1fr}
}
@media (max-width:640px){
  body{font-size:15px}
  .container,.narrow{width:min(calc(100% - 36px),var(--max))}
  .identity{gap:10px;min-width:0}.identity-mark{height:36px;width:36px;font-size:20px}.identity-name{font-size:.9rem}.identity-subtitle{font-size:.47rem}
  .section{padding:67px 0}.section-tight{padding:45px 0}
  .hero-grid{grid-template-columns:1fr;gap:15px;padding-top:29px;padding-bottom:38px}
  .hero-intro{padding:14px 0 0}.hero-title{font-size:clamp(3.6rem,15vw,5.1rem);margin:15px 0 17px}
  .hero-summary{line-height:1.7;margin-bottom:23px}.hero-actions{gap:9px}.hero-actions .button{min-width:auto;padding:13px 15px;font-size:.76rem}
  .hero-note{margin-top:25px;font-size:.65rem}
  .portrait-stage{min-height:410px;padding:24px 20px 20px 12px;max-width:420px;width:100%;margin:0 auto}
  .portrait-image{height:410px;object-position:center 15%}.portrait-stamp{left:0;bottom:36px}.portrait-rail{height:89%}
  .proof-grid{grid-template-columns:1fr;gap:0;padding:12px 0}.proof{border-right:0;border-bottom:1px solid #30404a;padding:15px 5px;gap:23px}.proof:first-child{padding-left:5px}.proof:last-child{border:0}.proof-num{width:76px;flex:none}.proof-label{font-size:.75rem;max-width:none}
  .intro-columns,.focus-grid,.project-grid,.story-grid,.credential-groups,.engagement-layout,.contact-layout,.mini-grid{grid-template-columns:1fr}
  .intro-side{max-width:none;margin-bottom:8px}.intro-copy{font-size:1.64rem}
  .focus-grid{gap:12px}.focus-card{min-height:auto;padding:25px}.focus-no{margin-bottom:15px}
  .section-title{font-size:2.55rem}
  .project-thumb{height:235px}.project-tile h3{font-size:1.9rem}
  .wide-photo{grid-template-columns:1fr}.wide-photo img{height:250px}.wide-photo-copy{padding:32px 26px 40px}
  .quote-band{padding:48px 0}.quote-band .q{font-size:1.65rem}
  .page-hero{padding:57px 0 58px}.page-hero h1{font-size:3.25rem}
  .story-grid{gap:30px}.story-copy h2{font-size:2.35rem}.timeline{padding-left:27px}.timeline-entry:before{left:-35px}
  .case{padding:60px 0}.case h2{font-size:3rem}.case-deck{font-size:1.25rem}.case-body{margin-top:19px}
  .case-detail{grid-template-columns:1fr;gap:4px;padding:16px 0}.case-detail dt{padding-top:0}
  .case-visual{gap:8px}.screen-display{height:225px;padding:10px 6px 0}.screen-card figcaption{font-size:.65rem}
  .case-narrative{padding:22px 20px}
  .credential-group{padding:24px}.credential-group h2{font-size:1.6rem}
  .feature-award{padding:32px 26px;min-height:290px}.engagement-card{padding:26px}
  .contact-layout{gap:25px}.contact-intro{padding:0}.contact-links{gap:10px}
  .callout-dark{padding:56px 25px}.callout-dark:after{font-size:11rem;bottom:-12%}
  .cv-download{flex-direction:column;align-items:stretch;padding:22px}
  .footer-top{grid-template-columns:1fr 1fr;gap:35px 24px;padding-top:49px}.footer-top>div:first-child{grid-column:span 2}.footer-bottom{flex-direction:column;text-align:center;gap:4px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:0s!important;transition-duration:0s!important}}

/* Navigation collapses before mid-sized screens become crowded. */
@media (min-width:861px) and (max-width:1020px){
 .site-header{height:76px}
 .site-nav{position:absolute;left:0;right:0;top:76px;background:var(--paper);border-bottom:1px solid var(--stroke);box-shadow:var(--shadow);display:none;flex-direction:column;align-items:stretch;gap:0;padding:16px 26px 19px}
 .site-nav[data-open="true"]{display:flex}
 .site-nav>a{padding:12px 4px;font-size:.9rem;border-bottom:1px solid #eee9e0}
 .site-nav>a[aria-current="page"]:after{display:none}
 .menu-toggle{display:inline-flex;margin-left:auto}
 .header-contact{display:none}
}