:root{--paper-100:#F6F5F1;--paper-200:#EEECE6;--paper-300:#D8D6CF;--ink-900:#1A1A18;--ink-700:#3D3C38;--ink-600:#5C5B55;--fuchsia-700:#A8155A;--fuchsia-800:#8A1049;--green-700:#1F6B45;--amber-800:#7A4E00;--mat-encre:#EEE4E8;--mat-jangali:#F3E5DA;--mat-gsm:#E3E7EE;--mat-benin:#E1EAE4;--mat-paie:#E2EBE6;--data-encre:#6E1D3B;--data-jangali:#B4501F;--surface-page:var(--paper-100);--surface-sunken:var(--paper-200);--line:var(--paper-300);--line-strong:var(--ink-900);--text-strong:var(--ink-900);--text-body:var(--ink-700);--text-muted:var(--ink-600);--action:var(--fuchsia-700);--action-hover:var(--fuchsia-800);--action-text:var(--paper-100);--status-live:var(--green-700);--status-test:var(--amber-800);--focus:var(--fuchsia-700);--font-display:"Big Shoulders Display","Arial Narrow",sans-serif;--font-text:"Public Sans",system-ui,sans-serif;--fs-12:.75rem;--fs-13:.8125rem;--fs-15:.9375rem;--fs-17:1.0625rem;--fs-20:1.25rem;--fs-24:1.5rem;--fs-32:2rem;--fs-48:3rem;--fs-72:4.5rem;--fs-112:7rem;--lh-tight:.92;--lh-title:1.2;--lh-body:1.6;--s-4:4px;--s-8:8px;--s-12:12px;--s-16:16px;--s-24:24px;--s-32:32px;--s-48:48px;--s-64:64px;--s-96:96px;--s-128:128px;--radius-0:0;--radius-pill:999px;--border-1:1px;--border-2:2px;--dur-fast:.15s;--dur-med:.3s;--ease-out:cubic-bezier(.22,1,.36,1);--page-max:1200px;--gutter:var(--s-24)}@media (max-width:700px){:root{--gutter:var(--s-16)}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--surface-page);color:var(--text-body);font:400 var(--fs-17)/var(--lh-body) var(--font-text);-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:inherit}p,figure{margin:0}h1,h2,h3{margin:0;color:var(--text-strong)}:focus-visible{outline:var(--border-2) solid var(--focus);outline-offset:var(--s-4)}.wrap{max-width:var(--page-max);margin:0 auto;padding-inline:var(--gutter);box-sizing:content-box}.skip,.sr-only{position:absolute;left:-9999px}.skip:focus{left:var(--s-16);top:var(--s-16);background:var(--surface-page);padding:var(--s-8)}.nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s-24);padding-block:var(--s-16);border-bottom:var(--border-1) solid var(--line)}.brand{font:800 var(--fs-24)/1 var(--font-display);letter-spacing:.02em;text-transform:uppercase;text-decoration:none;color:var(--text-strong)}.nav ul{display:flex;justify-content:center;align-items:center;gap:var(--s-32);list-style:none;margin:0;padding:0;font-size:var(--fs-15)}.nav ul a{display:inline-flex;align-items:center;min-height:44px}.nav ul a{text-decoration:none;color:var(--text-body)}.nav ul a:hover{color:var(--text-strong);text-decoration:underline;text-underline-offset:var(--s-4)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 var(--s-24);font:600 var(--fs-15)/1 var(--font-text);text-decoration:none;border-radius:var(--radius-0);transition:background var(--dur-fast) var(--ease-out)}.btn-action{background:var(--action);color:var(--action-text)}.btn-action:hover{background:var(--action-hover)}.link{font-weight:600;color:var(--text-strong);text-decoration:underline;text-underline-offset:var(--s-4);text-decoration-thickness:var(--border-1)}.link:hover{text-decoration-thickness:var(--border-2)}.hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s-64);align-items:center;padding-block:var(--s-64) var(--s-96)}.name{font:800 var(--fs-112)/var(--lh-tight) var(--font-display);text-transform:uppercase;letter-spacing:.005em}.role{margin-top:var(--s-24);font-size:var(--fs-24);line-height:var(--lh-title);color:var(--text-strong);font-weight:500}.intro{margin-top:var(--s-32);font-size:var(--fs-20);max-width:60ch;color:var(--text-body)}.intro p+p{margin-top:var(--s-12)}.cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-24);margin-top:var(--s-32)}.portrait figcaption,.shot figcaption{margin-top:var(--s-8);font-size:var(--fs-13);color:var(--text-muted)}.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover}.chapter{padding-block:0 var(--s-96)}.chapter:before{content:"";display:block;height:var(--border-2);background:var(--line-strong);margin-bottom:var(--s-48)}.kicker{font-size:var(--fs-13);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.chapter-title{margin-top:var(--s-8);font:800 var(--fs-72)/var(--lh-tight) var(--font-display);text-transform:uppercase}.chapter-lead{margin-top:var(--s-24);max-width:62ch}.fil{margin-top:var(--s-48);display:grid;grid-template-columns:minmax(0,180px) repeat(7,minmax(0,1fr));border-top:var(--border-1) solid var(--line)}.fil>*{border-bottom:var(--border-1) solid var(--line);min-height:var(--s-64);display:flex;align-items:center}.fil .m{justify-content:center;text-align:center;line-height:var(--lh-title);font-size:var(--fs-13);color:var(--text-muted);min-height:var(--s-48)}.fil .m.before{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--surface-sunken) 6px 7px)}.fil .lane{flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--s-4);padding-right:var(--s-16)}.lane-name{font-weight:700;color:var(--text-strong)}.cell{position:relative;justify-content:center}.cell:before{content:"";position:absolute;left:0;right:0;top:var(--s-32);height:var(--border-2);background:var(--c);opacity:.35}.cell.empty:before{opacity:.12}.cell.before{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--surface-sunken) 6px 7px)}.cell.before:before{opacity:.2}.before-name{position:relative;font-size:var(--fs-12);color:var(--text-muted);background:var(--surface-page);padding:0 var(--s-4)}.fil .cell{flex-direction:column;justify-content:flex-start;gap:var(--s-4);padding-block:var(--s-8)}.count{position:relative;font-size:var(--fs-12);color:var(--text-muted);line-height:1}.mark{position:relative;font-size:var(--fs-12);font-weight:600;color:var(--text-strong);line-height:var(--lh-title);text-align:center;background:var(--surface-page);padding:0 var(--s-4)}.slot{position:relative;height:var(--s-48);display:flex;align-items:center;justify-content:center}.fil .cell.before{justify-content:flex-start;padding-top:var(--s-24)}.mark.before-name{font-weight:400;color:var(--text-muted)}.dot{position:relative;width:var(--d);height:var(--d);border-radius:var(--radius-pill);background:var(--c)}.encre{--c:var(--data-encre)}.jangali{--c:var(--data-jangali)}.fil-note{margin-top:var(--s-16);font-size:var(--fs-13);color:var(--text-muted);max-width:80ch}.status{font-size:var(--fs-13);font-weight:600}.status.live{color:var(--status-live)}.status.test{color:var(--status-test)}.entry{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s-48);margin-top:var(--s-64);align-items:start}.entry.flip{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.entry.flip .shot{order:2}.entry.wide{grid-template-columns:minmax(0,1fr);padding:var(--s-48);background:var(--surface-sunken)}.entry.wide>div{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:0 var(--s-48)}.entry.wide h3{grid-column:1 / -1}.entry.wide .qa{grid-column:1}.entry.wide .steps{grid-column:2;grid-row:2 / span 2;margin-top:var(--s-24)}.entry.wide .also{grid-column:1}.mat{padding:var(--s-32);background:var(--mat)}.mat img{width:100%;border:var(--border-1) solid var(--line)}.mat.pair{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:var(--s-16);align-items:end}.entry h3{font-size:var(--fs-32);line-height:var(--lh-title);font-weight:700}.meta{display:flex;flex-wrap:wrap;gap:var(--s-8) var(--s-16);margin-top:var(--s-8);font-size:var(--fs-15);color:var(--text-muted)}.qa{display:grid;grid-template-columns:minmax(0,120px) minmax(0,1fr);gap:var(--s-8) var(--s-16);margin-top:var(--s-24);padding-top:var(--s-16);border-top:var(--border-1) solid var(--line)}.qa dt{font-size:var(--fs-12);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding-top:var(--s-4)}.qa dd{margin:0;color:var(--text-body)}.qa dd.answer{color:var(--text-strong);font-weight:500}.steps{list-style:none;margin:var(--s-24) 0 0;padding:0;border-top:var(--border-1) solid var(--line)}.steps li{display:grid;grid-template-columns:minmax(0,120px) minmax(0,1fr);gap:var(--s-16);padding-block:var(--s-8);border-bottom:var(--border-1) solid var(--line);font-size:var(--fs-15)}.steps time{color:var(--text-muted)}.stack{margin-top:var(--s-16);font-size:var(--fs-15);color:var(--text-muted)}.also{margin-top:var(--s-24);font-size:var(--fs-15)}.clients{margin-top:var(--s-48);border-top:var(--border-1) solid var(--line)}.client{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,5fr) 280px;gap:var(--s-32);padding-block:var(--s-32);border-bottom:var(--border-1) solid var(--line);align-items:start}.client h3{font-size:var(--fs-24);font-weight:700;line-height:var(--lh-title)}.client .sector{font-size:var(--fs-15);color:var(--text-muted);margin-top:var(--s-4)}.client .mat{padding:var(--s-16)}.bootcamp{margin-top:var(--s-32);font-size:var(--fs-15);color:var(--text-body)}.cv{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s-48)}.cv ol{list-style:none;margin:0;padding:0;border-top:var(--border-1) solid var(--line)}.cv li{display:grid;grid-template-columns:minmax(0,170px) minmax(0,1fr);gap:var(--s-24);padding-block:var(--s-16);border-bottom:var(--border-1) solid var(--line)}.cv .when{font-size:var(--fs-15);color:var(--text-muted)}.cv .what{font-weight:700;color:var(--text-strong)}.cv .detail{font-size:var(--fs-15);margin-top:var(--s-4)}.method{margin-top:var(--s-32);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-32)}.method h3{font-size:var(--fs-17);font-weight:700}.method p{margin-top:var(--s-8);font-size:var(--fs-15)}.contact{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s-48);align-items:end}.contact address{font-style:normal;font-size:var(--fs-20);line-height:var(--lh-body)}.contact address a{display:inline-block;min-height:44px;padding-block:var(--s-8)}.foot{padding-block:var(--s-24);border-top:var(--border-1) solid var(--line);font-size:var(--fs-13);color:var(--text-muted)}@media (max-width:1020px){.nav ul{gap:var(--s-16)}.name{font-size:var(--fs-72)}.chapter-title{font-size:var(--fs-48)}.hero,.entry,.contact{grid-template-columns:minmax(0,1fr);gap:var(--s-32)}.entry.flip{grid-template-columns:minmax(0,1fr)}.entry.flip .shot{order:0}.hero .portrait{max-width:420px}.client{grid-template-columns:minmax(0,1fr) 240px;gap:var(--s-16) var(--s-32)}.client>div:nth-child(2){grid-column:1}.client .mat{grid-column:2;grid-row:1 / span 2}.entry.wide{padding:var(--s-32)}.entry.wide>div{grid-template-columns:minmax(0,1fr)}.entry.wide .steps,.entry.wide .qa,.entry.wide .also{grid-column:1;grid-row:auto}.cv{grid-template-columns:minmax(0,1fr);gap:var(--s-24)}}@media (max-width:700px){.nav{grid-template-columns:minmax(0,1fr) auto}.nav ul{grid-column:1 / -1;grid-row:2;justify-content:space-between;gap:var(--s-12);overflow-x:auto;padding-block:var(--s-4)}.nav ul a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}.name{font-size:var(--fs-48)}.role{font-size:var(--fs-20)}.hero{padding-block:var(--s-32) var(--s-64)}.chapter{padding-block:0 var(--s-64)}.chapter:before{margin-bottom:var(--s-32)}.chapter-title{font-size:var(--fs-48)}.mat{padding:var(--s-16)}.fil{grid-template-columns:repeat(7,minmax(0,1fr))}.fil .corner{display:none}.fil .lane{grid-column:1 / -1;min-height:auto;padding-block:var(--s-12) var(--s-4);border-bottom:none;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:var(--s-12)}.fil .m{font-size:var(--fs-12)}.mark{display:none}.mark.before-name{display:inline}.client{grid-template-columns:minmax(0,1fr)}.client .mat{grid-column:1;grid-row:auto;max-width:320px}.entry.wide{padding:var(--s-16)}.qa,.steps li,.cv li{grid-template-columns:minmax(0,1fr);gap:var(--s-4)}.method{grid-template-columns:minmax(0,1fr)}.contact address{font-size:var(--fs-17)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}.lang-btn{display:inline-flex;align-items:center;min-height:44px;padding:0;background:none;border:0;font:inherit;color:var(--text-body);cursor:pointer;text-decoration:underline;text-underline-offset:var(--s-4)}.lang-btn:hover{color:var(--text-strong)}.lang-short{display:none}@media (max-width:700px){.lang-long{display:none}.lang-short{display:inline}}
