@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#191a1b;--muted:#52565a;--line:rgba(25,26,27,.22);--left:clamp(28px,5.2vw,108px);--content:min(44vw,660px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;line-height:1.65;background:#e9e9e8}a{color:inherit;text-decoration:none}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:6px}::selection{background:#242629;color:#fff}.backdrop{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;background:#e9e9e8}.backdrop img{width:100%;height:100%;object-fit:cover;object-position:32% center;filter:grayscale(1) contrast(.82) brightness(1.03);transform:translateX(12vw)}.site-header{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px var(--left);background:transparent;border-bottom:1px solid transparent;transition:padding .3s,border-color .3s}.site-header.scrolled{padding-top:17px;padding-bottom:17px;border-color:var(--line)}.wordmark{font-family:'Manrope',Arial,sans-serif;letter-spacing:.09em;font-size:17px;font-weight:800;line-height:1.35;white-space:nowrap}.wordmark span{display:block;font:500 10px/1.6 'DM Sans',Arial,sans-serif;letter-spacing:.16em;margin-top:3px}nav{display:flex;align-items:center;gap:clamp(16px,2.2vw,40px);font-size:14px;font-weight:500}nav a{position:relative;padding:5px 0}nav a:not(.nav-contact):after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:currentColor;transition:width .2s}nav a:hover:after,nav a[aria-current]:after{width:100%}.nav-contact{border:1px solid #292b2d;padding:9px 17px;display:flex;gap:18px}.nav-contact:hover{background:var(--ink);color:white}.menu-toggle{display:none}.section{width:var(--content);margin-left:var(--left);padding:100px 0 105px;border-top:1px solid var(--line);scroll-margin-top:0}.hero{width:min(50vw,740px);min-height:100svh;border:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-top:155px;padding-bottom:45px}.eyebrow,.section-index{font-size:12px;font-weight:600;letter-spacing:.14em;line-height:1.6}.eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:28px}.hairline{display:block;width:30px;height:1px;background:#25282b}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Manrope',Arial,sans-serif;font-weight:600;letter-spacing:-.065em}h1{font-size:clamp(52px,5.1vw,82px);line-height:1.08;margin-bottom:24px}em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.055em}h1 em{font-size:1.04em}h2{font-size:clamp(36px,3.5vw,55px);line-height:1.15;margin:22px 0 30px}h3{font-size:19px;font-weight:600;line-height:1.4;letter-spacing:-.02em;margin-bottom:8px}.hero-role{font-size:18px;font-weight:550;line-height:1.55;margin-bottom:18px}.intro{font-size:17px;max-width:440px;line-height:1.7;color:#44494c;margin-bottom:28px}.button{display:inline-flex;gap:36px;align-items:center;background:var(--ink);color:white;padding:15px 23px;font-size:15px;font-weight:500;transition:background .2s,transform .2s}.button:hover{background:#383c40;transform:translateY(-2px)}.button span{font-size:21px}.scroll-link{display:flex;gap:21px;font-size:13px;margin-top:42px}.scroll-link:hover{text-decoration:underline;text-underline-offset:5px}.section-index{color:var(--muted)}blockquote{font-family:Georgia,'Times New Roman',serif;font-size:25px;font-style:italic;line-height:1.45;margin:0 0 36px;padding:0}.expertise-list article{display:flex;gap:24px;padding:24px 0;border-top:1px solid var(--line)}.item-index{font-size:12px;letter-spacing:.04em;margin-top:4px;color:var(--muted)}.expertise-list p,.bio p{font-size:16px;color:#3e4448;margin-bottom:0}.subheading{margin-top:42px;margin-bottom:20px}.situations{list-style:none;padding:0;margin:0}.situations li{position:relative;padding-left:20px;margin-bottom:13px;font-size:16px;line-height:1.6;color:#363c40}.situations li:before{content:'•';position:absolute;left:0;top:0;color:#65676a}.section-lead{font-size:18px;line-height:1.7;max-width:570px;margin-bottom:30px;color:#383e42}.applications-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;display:flex;justify-content:space-between;gap:15px;padding:19px 0;cursor:pointer;font-size:17px;font-weight:550;line-height:1.5}summary::-webkit-details-marker{display:none}summary span{font-size:23px;font-weight:400;line-height:1;transition:transform .2s}details[open] summary span{transform:rotate(45deg)}details p{font-size:16px;line-height:1.7;color:#3e4448;margin:0;padding:0 30px 23px 0}.offers{margin-top:32px}.offer{padding:22px 0 24px;border-top:1px solid var(--line)}.offer:last-child{border-bottom:1px solid var(--line)}.offer-heading{display:flex;justify-content:space-between;align-items:baseline}.offer-heading h3{font-size:24px}.offer-heading>span{font-size:12px;color:var(--muted)}.offer p{font-size:16px;max-width:480px;color:#3e4448;margin:10px 0 17px}.offer-meta{display:flex;justify-content:space-between;gap:18px;font-size:14px}.offer-meta strong{font-weight:600}.closing-note{font-family:Georgia,serif;font-style:italic;font-size:21px;line-height:1.6;border-left:1px solid #6d7377;padding-left:22px;margin:36px 0 0}.credentials{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:25px 0 30px;margin:30px 0 36px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.credentials strong{display:block;font-family:'Manrope',sans-serif;font-size:clamp(34px,3.1vw,49px);font-weight:500;letter-spacing:-.055em;line-height:1.4}.credentials span{font-size:13px;color:var(--muted)}.bio p{margin-bottom:19px}.bio .qualifications{font-size:14px;border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.contact{min-height:80vh;padding-bottom:24px;display:flex;flex-direction:column;align-items:flex-start}.contact-email{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--ink);font-size:clamp(19px,2vw,29px);letter-spacing:-.035em;padding:6px 0}.contact-email:hover{opacity:.6}.linkedin{display:flex;gap:22px;margin-top:24px;font-size:14px}.linkedin:hover{text-decoration:underline;text-underline-offset:5px}footer{margin-top:115px;padding-top:20px;border-top:1px solid var(--line);width:100%;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12px;color:var(--muted)}footer a{margin-left:auto;font-size:18px;color:var(--ink)}.reading-progress{position:fixed;bottom:0;left:0;height:2px;width:100%;z-index:30}.reading-progress span{display:block;height:100%;width:0;background:var(--ink)}.skip-link{position:fixed;top:-100px;left:12px;z-index:50;background:white;padding:12px}.skip-link:focus{top:12px}
@media(min-aspect-ratio:19/10){.backdrop img{object-position:center 25%}}
@media(min-width:1800px){:root{--content:min(44vw,760px)}.hero{width:min(50vw,830px);padding-top:160px}.intro{max-width:520px}.hero-role{font-size:22px}.intro{font-size:20px}h1{font-size:94px}}
@media(max-width:1050px){:root{--left:36px;--content:50vw}nav{gap:18px;font-size:13px}.wordmark{font-size:15px}.wordmark span{font-size:9px}.nav-contact{padding:8px 12px}h1{font-size:59px}.section{padding-top:80px;padding-bottom:85px}.hero{width:55vw;padding-top:150px;min-height:100svh}h2{font-size:40px}.eyebrow{font-size:11px}}
@media(max-width:760px){:root{--left:26px;--content:calc(100% - 52px)}html{scroll-padding-top:90px}.site-header{padding:20px 26px;align-items:center}.site-header.scrolled{padding:15px 26px}.wordmark{font-size:15px}.wordmark span{font-size:9px}.menu-toggle{display:flex;align-items:center;gap:12px;background:transparent;border:0;padding:8px 0 8px 12px;font-size:14px}.menu-toggle span{font-size:22px}nav{display:none;position:absolute;left:0;right:0;top:100%;background:#f1f1effa;backdrop-filter:blur(18px);padding:20px 26px 26px;border-bottom:1px solid var(--line);align-items:stretch;flex-direction:column;gap:12px;font-size:16px}nav.open{display:flex}.nav-contact{justify-content:space-between;padding:12px;margin-top:6px}.backdrop img{object-position:68% center;opacity:1}.hero{width:var(--content);min-height:100svh;padding-top:142px;padding-bottom:40px}.eyebrow{font-size:10px;letter-spacing:.1em;margin-bottom:26px;gap:10px}h1{font-size:clamp(44px,10.2vw,67px);line-height:1.11;letter-spacing:-.06em;margin-bottom:28px}.hero-role{font-size:17px}.intro{font-size:16px;max-width:430px}.button{padding:13px 19px;gap:23px}.scroll-link{margin-top:34px}.section{padding-top:67px;padding-bottom:72px}.hero{padding-top:140px}.section-index{font-size:11px}h2{font-size:clamp(34px,8vw,46px);margin-bottom:25px}.section-lead{font-size:17px}.expertise-list article{gap:16px}.offer-meta{flex-wrap:wrap}.contact{padding-bottom:24px;min-height:75svh}.contact-email{font-size:clamp(18px,5.3vw,28px);gap:12px}footer{margin-top:80px;flex-direction:column;position:relative;padding-right:30px}footer a{position:absolute;right:0;top:18px}.credentials{gap:15px}.credentials span{font-size:12px}.closing-note{font-size:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* The wash ends to the left of the portrait, following the cover crop. */
.backdrop::after {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: max(0px, calc(32vw + 38vh));
  background: linear-gradient(90deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.93) 76%, rgba(255,255,255,.78) 88%, rgba(255,255,255,0) 100%);
}
@media (min-aspect-ratio: 19/10) {
  .backdrop::after { width: 51vw; }
}
@media (max-width: 760px) {
  /* Keep the portrait clear above the reading area on narrow screens. */
  body { background: #fafafa; }
  .backdrop { position: absolute; top: 76px; height: 50vw; min-height: 190px; bottom: auto; }
  .backdrop img { object-position: center; }
  .backdrop::after { width: 44%; }
  .site-header { background: #fafafa; }
  .hero { min-height: auto; padding-top: calc(max(50vw, 190px) + 112px); }
}

/* Six viewport-sized chapters, with a transition anchored at the bottom. */
html { scroll-snap-type: y mandatory; scroll-padding-top: 0; }
.section.screen {
  height: 100svh; min-height: 0; padding: 112px 0 24px;
  display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 18px;
  border: 0; scroll-snap-align: start; scroll-snap-stop: always;
}
.screen-body { min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior-x: none; overscroll-behavior-y: contain; touch-action: pan-y; scrollbar-width: none; align-self: center; width: 100%; max-width: 100%; max-height: 100%; }
.screen-body::-webkit-scrollbar { display: none; }
.screen h1 { font-size: clamp(44px, 4.6vw, 72px); margin: 18px 0; }
.hero .screen-body { max-width: 760px; }
.hero h1 { font-size: clamp(38px, 4vw, 62px); line-height: 1.09; }
.hero .hero-role { max-width: 470px; margin: 0 0 22px; font-size: 18px; color: #44494c; }
.screen h2 { font-size: clamp(32px, 3.1vw, 47px); margin: 17px 0 22px; }
.screen .section-lead { font-size: 17px; line-height: 1.55; margin-bottom: 22px; }
.screen .intro { margin-bottom: 22px; }
.screen blockquote { font-size: 22px; margin-bottom: 24px; }
.screen-next { display: flex; align-items: center; justify-content: flex-start; gap: 18px; min-height: 44px; width: 100%; padding: 12px 0 0; border-top: 1px solid var(--line); font-size: 14px; }
.screen-next .screen-next-arrow { display: inline-block; animation: nav-arrow-pulse 1.9s ease-in-out infinite; }
.screen-next .screen-next-arrow { font-size: 21px; transform-origin: center; }
.screen-next .screen-next-label { display: inline-block; font-size: inherit; font-weight: 700; line-height: 1.4; }
@keyframes nav-arrow-pulse {
  0%, 100% { transform: scale(1); opacity: .65; }
  50% { transform: scale(1.16); opacity: 1; }
}
.screen-next:hover { text-decoration: underline; text-underline-offset: 5px; }
.compact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
.compact-grid article { padding-top: 12px; border-top: 1px solid var(--line); }
.compact-grid h3 { font-size: 17px; margin-bottom: 7px; }
.compact-grid p { font-size: 16px; line-height: 1.45; margin-bottom: 0; }
.expertise-accordion { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; align-items: start; }
.expertise-detail { border-top: 1px solid var(--line); }
.expertise-detail > summary { min-height: 104px; padding: 14px 0; flex-direction: column; justify-content: center; align-items: flex-start; gap: 8px; }
.expertise-summary { display: block; min-width: 0; }
.expertise-summary strong { display: block; font-size: 17px; font-weight: 600; line-height: 1.35; letter-spacing: -.02em; }
.expertise-summary small { display: block; margin-top: 6px; color: var(--muted); font-size: 14px; font-weight: 400; line-height: 1.4; }
.expertise-detail .inline-detail-body { padding-top: 4px; }
.expertise-detail .detail-context { color: var(--muted); }
.expertise-detail .detail-context strong { color: var(--ink); font-weight: 600; }
.detail-action { display: block; color: var(--ink); font-size: 12px !important; font-weight: 600; line-height: 1.3 !important; text-decoration: underline; text-underline-offset: 4px; }
.detail-action .action-close { display: none; }
.expertise-detail[open] .detail-action .action-open { display: none; }
.expertise-detail[open] .detail-action .action-close { display: inline; }
.expertise-detail > summary:hover .expertise-summary strong { text-decoration: underline; text-underline-offset: 4px; }
.detail-link { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 13px 0; margin-top: 18px; background: none; border: 0; border-bottom: 1px solid var(--line); color: inherit; text-align: left; cursor: pointer; font-size: 14px; }
.detail-link:hover, .application-button:hover, .compact-offers summary:hover { background: rgba(255,255,255,.45); }
.detail-link span { font-size: 21px; }
.application-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
.application-button { display: flex; justify-content: space-between; gap: 14px; align-items: center; min-height: 62px; padding: 12px 0; color: inherit; border: 0; border-top: 1px solid var(--line); background: none; font-size: 16px; line-height: 1.4; text-align: left; cursor: pointer; }
.application-button span { font-size: 20px; flex-shrink: 0; }
.compact-offers summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; width: 100%; padding: 15px 0; text-align: left; border: 0; border-top: 1px solid var(--line); color: inherit; background: none; cursor: pointer; }
.compact-offers summary > span:last-child { display: flex; gap: 20px; align-items: center; font-size: 15px; }
.compact-offers strong { display: block; font-size: 22px; font-weight: 550; }
.compact-offers small { font-size: 14px; color: var(--muted); }
.compact-offers summary > span:last-child > span { font-size: 21px; }
.compact-offer { padding: 12px 0 14px; border-top: 1px solid var(--line); }
.compact-offer-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; white-space: nowrap; }
.compact-offer h3 { margin: 0; font-size: 21px; font-weight: 550; }
.offer-terms { display: flex; align-items: baseline; gap: 18px; }
.compact-offer .offer-price { flex-shrink: 0; font-size: 14px; }
.compact-offer p { max-width: 570px; margin: 5px 0 0; color: #3e4448; font-size: 15px; line-height: 1.45; }
.screen .credentials { margin: 22px 0; padding: 14px 0 18px; }
.profile-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.screen .credentials strong { font-size: 40px; }
.profile-summary { font-size: 15px; line-height: 1.5; margin-bottom: 12px; }
.profile-qualifications { font-size: 14px; margin-bottom: 0; }
.screen footer { margin-top: 42px; }








@media (max-height: 760px) and (min-width: 761px) {
  .section.screen { padding-top: 96px; padding-bottom: 16px; gap: 12px; }
  .screen h1 { font-size: 50px; margin: 12px 0; }
  .screen h2 { font-size: 35px; margin: 12px 0 16px; }
  .screen .section-lead, .screen .intro { margin-bottom: 16px; }
  .screen blockquote { margin-bottom: 16px; font-size: 20px; }
  .compact-grid { gap: 12px 20px; }
  .application-button { min-height: 53px; padding: 9px 0; }
  .detail-link { margin-top: 12px; padding: 10px 0; }
  .screen .hero-role { margin-bottom: 12px; }
}
@media (max-width: 760px) {
  .backdrop { position: fixed; left: auto; right: 0; top: 72px; bottom: auto; width: 100%; height: 140px; min-height: 0; }
  .backdrop img { object-position: right 25%; }
  .backdrop::after { width: 44%; }
  .section.screen { height: 100svh; min-height: 0; padding-top: 232px; padding-bottom: 16px; gap: 12px; }
  .screen-body { align-self: center; }
  .screen h1 { font-size: 38px; margin: 12px 0; line-height: 1.08; }
  .hero h1 { font-size: clamp(30px, 8vw, 38px); }
  .screen h2 { font-size: 32px; margin: 10px 0 14px; line-height: 1.12; }
  .screen .hero-role { font-size: 16px; line-height: 1.4; margin-bottom: 12px; }
  .screen .intro, .screen .section-lead { font-size: 16px; line-height: 1.45; margin-bottom: 14px; }
  .screen .button { font-size: 14px; padding: 10px 16px; }
  .screen .section-index { font-size: 10px; }
  .screen blockquote { font-size: 19px; margin-bottom: 15px; }
  .compact-grid { gap: 12px 16px; }
  .compact-grid article { padding-top: 9px; }
  .compact-grid h3 { font-size: 16px; margin: 0; }
  .compact-grid p { display: none; }
  .expertise-accordion { column-gap: 16px; }
  .expertise-detail > summary { min-height: 78px; padding: 10px 0; gap: 7px; }
  .expertise-summary strong { font-size: 15px; }
  .expertise-summary small { display: none; }
  .detail-action { font-size: 11px !important; }
  .expertise-detail .inline-detail-body p { font-size: 14px; line-height: 1.5; }
  .detail-link { margin-top: 12px; padding: 9px 0; font-size: 14px; }
  .application-grid { column-gap: 18px; }
  .application-button { min-height: 51px; padding: 8px 0; font-size: 14px; }
  .compact-offers summary { padding: 10px 0; gap: 12px; }
  .compact-offers strong { font-size: 19px; }
  .compact-offers summary > span:last-child { font-size: 14px; gap: 12px; }
  .compact-offer { padding: 8px 0 10px; }
  .compact-offer-heading { gap: 7px; }
  .compact-offer h3 { font-size: 17px; }
  .offer-terms { gap: 8px; }
  .compact-offer small, .compact-offer .offer-price { font-size: 12px; }
  .compact-offer p { margin-top: 4px; font-size: 14px; line-height: 1.35; }
  .screen .credentials { margin: 14px 0; padding: 10px 0; }
  .profile-metrics { gap: 10px; }
  .screen .credentials strong { font-size: 32px; }
  .profile-summary { font-size: 14px; margin-bottom: 9px; }
  .profile-qualifications { font-size: 13px; }
  .screen footer { margin-top: 22px; padding-top: 12px; font-size: 12px; }
  .screen-next { font-size: 14px; padding-top: 7px; }

}
@media (max-width: 760px) and (max-height: 740px) {
  .backdrop { height: 94px; }
  .section.screen { padding-top: 182px; padding-bottom: 12px; gap: 8px; }
  #formats.section.screen { padding-top: 166px; gap: 6px; }
  #formats.screen h2 { font-size: 26px; margin: 6px 0 8px; }
  #formats .compact-offer { padding: 6px 0 7px; }
  #formats .compact-offer p { font-size: 13px; line-height: 1.3; }
  .screen h1 { font-size: 33px; }
  .screen h2 { font-size: 29px; }
  .screen blockquote { display: none; }
  .expertise-detail > summary { min-height: 62px; }
  .screen .intro { font-size: 16px; line-height: 1.4; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-snap-type: none; } }
@media (max-width: 420px) {
  .compact-offer h3 { font-size: 15px; }
  .compact-offer small, .compact-offer .offer-price { font-size: 11px; }
  .offer-terms { gap: 5px; }
}
@media (min-width: 761px) and (max-height: 650px) {
  .screen blockquote, .compact-grid p { display: none; }
  .screen h1 { font-size: 42px; }
  .screen h2 { font-size: 30px; margin: 10px 0 14px; }
  .compact-offers summary { padding: 10px 0; }
  .screen .credentials { margin: 14px 0; padding: 10px 0; }
  .screen footer { margin-top: 20px; }
}

/* Details expand in the reading column, with the next chapter always available. */
.inline-detail { border: 0; min-width: 0; align-self: start; }
.inline-detail > summary { width: 100%; }
.inline-detail > summary span, .inline-detail[open] > summary span { transform: none; font-size: inherit; line-height: inherit; }
.inline-detail > summary .disclosure-icon { font-size: 21px; line-height: 1; flex-shrink: 0; transition: transform .2s; }
.inline-detail[open] > summary .disclosure-icon { transform: rotate(45deg); }
.inline-detail-body { padding: 12px 0 18px; font-size: 15px; line-height: 1.6; }
.inline-detail-body p { padding: 0; margin: 0 0 14px; font-size: 15px; line-height: 1.6; }
.inline-detail-body p:last-child { margin-bottom: 0; }
.inline-detail-body .subheading { margin: 22px 0 12px; }
.inline-detail-body .subheading:first-child { margin-top: 0; }
.inline-detail-body .expertise-list article { padding: 14px 0; gap: 16px; }
.inline-detail-body h3 { font-size: 17px; }
.inline-detail-body .situations li { font-size: 15px; margin-bottom: 9px; }
.inline-detail-body .closing-note { padding-left: 16px; margin-top: 20px; }
.inline-detail-body .bio .qualifications { padding-top: 14px; margin-top: 16px; }
.application-grid { align-items: start; }
.inline-detail[open] > .inline-detail-body { padding-top: 2px; padding-bottom: 10px; }
.application-grid .inline-detail[open] > .application-button { min-height: 48px; padding-bottom: 4px; }

/* Keep the two image layers aligned at every viewport size. */
.backdrop img { object-position: center center; filter: none; transform: none; }

/* The room remains still while the portrait fades in on the last two chapters. */
.backdrop img { position: absolute; inset: 0; }
.backdrop .mesh-layer {
  --mesh-x: -500px;
  --mesh-y: -500px;
  --mesh-radius: clamp(90px, 17vw, 230px);
  opacity: 0;
  filter: grayscale(1) contrast(1.16);
  -webkit-mask-image: radial-gradient(circle var(--mesh-radius) at var(--mesh-x) var(--mesh-y), #000 0%, rgba(0,0,0,.84) 20%, rgba(0,0,0,.49) 40%, rgba(0,0,0,.2) 60%, rgba(0,0,0,.056) 80%, transparent 100%);
  mask-image: radial-gradient(circle var(--mesh-radius) at var(--mesh-x) var(--mesh-y), #000 0%, rgba(0,0,0,.84) 20%, rgba(0,0,0,.49) 40%, rgba(0,0,0,.2) 60%, rgba(0,0,0,.056) 80%, transparent 100%);
  transition: opacity .25s ease;
}
.backdrop.mesh-active .mesh-layer { opacity: 1; }
.backdrop .portrait-layer {
  opacity: 0;
  transform: scale(.9);
  transform-origin: right bottom;
  filter: brightness(.84) contrast(.9) saturate(.82);
  transition: opacity 1.15s ease;
}
.portrait-visible .backdrop .portrait-layer { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .backdrop .portrait-layer, .backdrop .mesh-layer { transition: none; }
  .screen-next .screen-next-arrow { animation: none; opacity: 1; }
}

/* Long accordion content stays inside its chapter and remains reachable. */
.content-screen .screen-body, #profil .screen-body {
  padding-bottom: 20px;
  scrollbar-width: thin;
  scrollbar-color: rgba(25,26,27,.32) transparent;
}
.content-screen .screen-body::-webkit-scrollbar, #profil .screen-body::-webkit-scrollbar { display: block; width: 4px; }
.content-screen .screen-body::-webkit-scrollbar-thumb, #profil .screen-body::-webkit-scrollbar-thumb { background: rgba(25,26,27,.32); border-radius: 4px; }
.content-screen .screen-body::-webkit-scrollbar-track, #profil .screen-body::-webkit-scrollbar-track { background: transparent; }
.screen .profile-metrics { margin-bottom: 8px; }
.profile-tech { margin-top: 0; }
.profile-tech + .profile-summary { margin-top: 14px; }
.profile-tech .inline-detail-body strong { color: var(--ink); font-weight: 600; }
.application-grid { align-items: start; }
.accordion-column { display: flex; flex-direction: column; min-width: 0; align-self: start; }
.accordion-column .inline-detail { width: 100%; }
@media (max-width: 1050px) and (min-width: 761px) {
  nav { gap: 12px; font-size: 12px; }
}
@media (max-width: 760px) {
  #accueil h1 { font-size: clamp(22px, 6.4vw, 38px); }
  .expertise-accordion, .application-grid { grid-template-columns: 1fr; }
  .expertise-summary small { display: block; }
}

/* One heading face and weight across every chapter. */
.screen h1, .screen h2 {
  font-family: 'Manrope', Arial, sans-serif;
  font-weight: 400;
}
.screen h1 em, .screen h2 em {
  font: inherit;
  font-style: normal;
  letter-spacing: inherit;
}
@media (max-width: 760px) and (max-height: 740px) {
  #formats.screen h2 { font-size: 29px; margin: 10px 0 14px; }
}

/* Profile facts and matching expandable sections. */
#profil .profile-metrics {
  border-top: 0;
  border-bottom: 0;
  margin: 10px 0 4px;
  padding: 0;
  gap: 12px;
}
#profil .profile-metrics strong { font-size: 30px; line-height: 1.12; }
#profil .profile-metrics span { display: block; margin-top: 3px; font-size: 12px; line-height: 1.3; }
#profil .profile-tech > summary { border-top: 0; }
#profil .profile-detail > summary {
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: 17px;
  font-weight: 700;
}
#profil .profile-detail > summary .disclosure-icon {
  font-size: 24px;
  font-weight: 700;
}
#profil .profile-detail:not([open]) > summary .disclosure-icon {
  animation: profile-plus-pulse 1.6s ease-in-out infinite;
}
@keyframes profile-plus-pulse {
  0%, 100% { opacity: .55; }
  50% { opacity: 1; }
}
.backdrop .portrait-layer { filter: none; }
@media (prefers-reduced-motion: reduce) {
  #profil .profile-detail > summary .disclosure-icon { animation: none; opacity: 1; }
}
@media (max-width: 760px) {
  #profil .profile-metrics { margin: 8px 0 2px; gap: 8px; }
  #profil .profile-metrics strong { font-size: 25px; }
  #profil .profile-metrics span { font-size: 11px; }
  /* Show the top of the portrait and keep both image layers aligned. */
  .backdrop img { object-position: center 15%; }
}

footer a.legal-link{margin-left:0;position:static;font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
