/* Ajustements de V2, d’après la référence et les consignes de Manon. */
:root{--serif:Didot,'Bodoni MT','Times New Roman',Georgia,serif;--line:#d7d5d0}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.page-shell,.site-header__inner{width:min(calc(100% - 112px),1280px)}
.main-nav{font-size:0.875rem;letter-spacing:.035em;text-transform:none;font-weight:400;gap:30px}
.language-switch{display:inline-flex;gap:15px;align-items:center}
.language-option{font-size:0.875rem;letter-spacing:.04em;padding:6px 0;font-weight:400;opacity:.68}
.language-option.is-selected{font-weight:700;opacity:1;border-bottom:1px solid currentColor}
.language-option:hover{opacity:1}
.hero{height:min(760px,88svh);min-height:580px}
.hero h1,.hero h2{font-size:clamp(2.875rem,5.3vw,5.125rem);line-height:1.06;letter-spacing:-.025em;max-width:800px}
.hero-panel__content{padding-top:92px;padding-bottom:105px}
.hero-panel__content .eyebrow{font-size:0.875rem;letter-spacing:.12em;margin-bottom:20px;padding-top:19px}
.hero-panel__lede{font-size:1rem;max-width:480px;line-height:1.7;margin:23px 0 24px}
.hero-panel__shade{background:linear-gradient(90deg,rgba(8,10,13,.86),rgba(8,10,13,.60) 39%,rgba(8,10,13,.06) 82%),linear-gradient(0deg,rgba(8,10,13,.3),transparent 35%)}
.hero-panel__image--star{object-position:77% center}
.text-link{font-size:0.875rem;letter-spacing:.025em;font-weight:500;gap:24px;padding-bottom:7px}
.scroll-cue{font-size:0.75rem;letter-spacing:.07em}
.slide-count{font-size:0.875rem;margin-right:5px}
.slide-arrow,.slide-pause{height:40px;width:40px;border-radius:50%;border:1px solid rgba(255,255,255,.45);color:#fff;background:rgba(255,255,255,.05);padding:0}
.slide-pause{font-size:1.125rem;line-height:1}
.pause-icon{position:relative;display:block;width:12px;height:14px;margin:auto}
.pause-icon::before,.pause-icon::after{content:"";position:absolute;top:0;width:3px;height:14px;border-radius:1px;background:#fff}
.pause-icon::before{left:1px}
.pause-icon::after{right:1px}
.pause-icon.is-play::before{left:2px;top:0;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:11px solid #fff;border-radius:0;background:transparent}
.pause-icon.is-play::after{display:none}
.slide-pause:hover{background:rgba(255,255,255,.2)}
.slide-pause[aria-pressed=true]{background:rgba(255,255,255,.16)}
.work-section{padding:60px 0 82px}
.work-intro{font-size:1rem;line-height:1.65;color:#636360;max-width:680px;margin:0 0 25px}
.filters{padding:20px 0 24px;gap:32px;margin-bottom:0;flex-wrap:wrap;display:none}
.js .filters{display:flex}
.filter{font-size:0.875rem;letter-spacing:.055em;font-weight:500;text-transform:none;color:#656560}
.filter.is-selected{font-weight:650}
.filter span{font-size:0.75rem;vertical-align:baseline;color:#767672}
.work-card{grid-template-columns:minmax(0,4fr) minmax(175px,1fr);padding-bottom:14px}
.work-card__media{height:330px;background:#e4e2db}
.work-card__info{padding:20px 0 16px 29px}
.work-card__number{font-size:0.75rem;margin-bottom:18px;color:#72736f}
.work-card h3{font-size:clamp(1.5rem,2.1vw,1.9375rem);line-height:1.12;letter-spacing:-.025em;max-width:220px;overflow-wrap:break-word}
.work-card__category{font-size:0.75rem;line-height:1.65;letter-spacing:.025em;text-transform:none;margin:12px 0 auto;color:#62635d}
.work-card__line{width:26px;height:1px;background:#9b9b94;margin-top:22px;transition:width .3s}
.work-card:hover .work-card__line,.work-card:focus-visible .work-card__line{width:43px}
.work-more{padding-top:27px}
.outline-button{font-size:0.875rem;letter-spacing:.025em;text-transform:none;font-weight:500;padding:13px 24px}
.site-footer{padding-top:52px}
.footer-main{padding-bottom:38px}
.footer-main>div>p,.footer-links{font-size:0.875rem;letter-spacing:.02em}
.footer-links{gap:16px 26px;text-transform:none}
.footer-bottom{font-size:0.75rem;gap:20px;align-items:flex-start}
.footer-contact{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:0.875rem;line-height:1.6}
.footer-email{overflow-wrap:anywhere}
.eyebrow{font-size:0.75rem;letter-spacing:.12em}
.about-hero{padding:140px 0 75px;min-height:650px}
.about-hero__grid{grid-template-columns:1.3fr 1fr;gap:8%}
.about-hero h1{font-size:clamp(2.75rem,4.9vw,4.625rem);line-height:1.06;letter-spacing:-.027em;margin-bottom:25px}
.large-copy{font-family:var(--sans);font-size:1.125rem;line-height:1.7;max-width:580px;margin-bottom:26px}
.about-hero__photo{max-width:420px;outline-offset:8px}
.about-hero__photo img{transition:filter .65s ease,transform .65s ease;filter:grayscale(1);aspect-ratio:1/1.03}
.about-hero__photo:hover img,.about-hero__photo:focus-visible img{filter:grayscale(0)}
.about-hero__photo figcaption{font-size:0.75rem;letter-spacing:.035em;text-transform:none;color:#666661}
.profile-section,.resume-section{padding:82px 0 90px}
.profile-intro h2,.skills-section h2{font-size:clamp(2.625rem,4.25vw,4rem);line-height:1.09;letter-spacing:-.025em}
.profile-grid,.skills-grid{gap:10%;grid-template-columns:1fr 1.1fr}
.profile-copy{font-size:1rem;line-height:1.8}
.resume-grid{grid-template-columns:.7fr 1.6fr;gap:9%}
.resume-side h2{font-size:clamp(2.625rem,4.5vw,4rem);line-height:1.06;letter-spacing:-.025em}
.timeline-item{grid-template-columns:125px minmax(0,1fr);gap:25px;padding:26px 0 30px}
.timeline-item>span{font-size:0.875rem;line-height:1.7;letter-spacing:0}
.timeline-item h3{font-size:1.6875rem;line-height:1.2;margin-bottom:14px}
.timeline-item p{font-size:1rem;line-height:1.75;max-width:none}
.timeline-item p+p{margin-top:12px}
.skills-section{padding:83px 0 90px}
.skills-section h3{font-size:1.75rem}
.software-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
.software-list li{display:flex;align-items:center;gap:13px;min-width:0;padding:13px 0;border-top:1px solid #424345;font-size:0.9375rem;color:#e6e6e4;line-height:1.45}
.software-logo{display:flex;flex:none;align-items:center;justify-content:center;width:45px;height:45px;background:transparent;border-radius:4px;padding:7px}
.software-logo img{width:100%;height:100%;object-fit:contain}
.education-list{font-size:1rem;line-height:1.75;color:#c9cac8}
.education-list li{padding:13px 0}
.contact-strip{padding:65px 0}
.contact-strip h2{font-size:clamp(2.25rem,4.4vw,3.75rem)}
.contact-strip__link{font-size:clamp(1.75rem,3vw,2.625rem)}
.project-page{padding-top:128px;padding-bottom:78px}
.back-link{font-size:0.875rem;letter-spacing:.03em;text-transform:none;margin-bottom:45px}
.project-intro{margin-bottom:34px;grid-template-columns:minmax(0,1fr) auto;gap:25px}
.project-intro h1{font-size:clamp(2.5rem,5.1vw,4.75rem);line-height:1.08;letter-spacing:-.03em;overflow-wrap:break-word}
.project-intro .eyebrow{font-size:0.75rem;margin-bottom:17px}
.project-intro__index{font-size:0.75rem;white-space:nowrap}
.project-cover img{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.project-cover button{font-size:0.875rem;letter-spacing:.01em;padding:11px 14px}
.project-details{padding:42px 0 48px;gap:9%}
.project-details h2{font-size:2rem;line-height:1.25}
.project-details p{font-size:1rem;line-height:1.8}
.project-details aside,.project-details aside p{font-size:0.875rem}
.project-details aside h3{font-size:0.75rem;letter-spacing:.08em}
.project-gallery{gap:22px;margin-top:40px}
.project-gallery button{background:#e3e1da}
.project-gallery img{height:auto;aspect-ratio:auto;object-fit:contain}
.project-gallery figcaption{font-size:0.75rem;line-height:1.6;margin-top:9px;color:#65655e}
.next-project{margin-top:58px;padding-top:22px;align-items:flex-start}
.next-project>span{font-size:0.75rem;line-height:1.7;letter-spacing:.05em}
.next-project strong{font-size:clamp(1.6875rem,3vw,2.625rem);line-height:1.2}
.embed-prompt p,.embed-prompt button{font-size:0.875rem}
.lightbox{padding-top:50px;width:min(96vw,1500px);max-width:100vw}
.lightbox__frame img{width:auto;height:auto;aspect-ratio:auto}
.lightbox__frame p,.lightbox__count{font-size:0.875rem;line-height:1.6}
.lightbox__controls button{height:44px;width:44px}
.legacy-links{font-size:1.125rem;line-height:2}
@media(hover:none){.about-hero__photo img{filter:grayscale(0)}}
@media(min-width:1700px){.hero-panel__content{padding-top:100px}.hero h1,.hero h2{font-size:5.125rem}}
@media(max-width:1020px){.page-shell,.site-header__inner{width:calc(100% - 72px)}.hero{height:680px;min-height:560px}.work-card__media{height:270px}.work-card{grid-template-columns:minmax(0,3fr) minmax(165px,1fr)}.work-card__info{padding-left:22px}.work-card h3{font-size:1.5625rem}.about-hero__grid{gap:5%}.resume-grid{grid-template-columns:.6fr 1.5fr;gap:7%}.timeline-item{grid-template-columns:100px minmax(0,1fr);gap:18px}.software-list{grid-template-columns:1fr}.footer-bottom{flex-wrap:wrap}}
@media(max-width:700px){
 .page-shell,.site-header__inner{width:calc(100% - 38px)}
 .main-nav{padding:16px 19px 30px;font-size:1.375rem;gap:0}
 .main-nav>a{padding:18px 0}.language-switch{margin-top:28px;gap:23px}
 .language-option{font-size:1.125rem;padding:10px 0}
 .hero{height:690px;min-height:560px;max-height:none}
 .hero-panel__content{padding-top:82px;padding-bottom:116px}
 .hero h1,.hero h2{font-size:clamp(2.5rem,10.2vw,3.875rem);max-width:100%;line-height:1.09;letter-spacing:-.026em}
 .hero-panel__content .eyebrow{font-size:0.75rem;letter-spacing:.1em;margin-bottom:19px}
 .hero-panel__lede{font-size:1rem;max-width:340px;margin:23px 0;line-height:1.7}
 .hero-panel__image{object-position:64% center}
 .hero-panel__image--star{object-position:center center;object-fit:cover}
 .hero-panel__shade{background:linear-gradient(90deg,rgba(9,11,14,.82),rgba(9,11,14,.36)),linear-gradient(0deg,rgba(9,11,14,.48),transparent 45%)}
 .hero-controls{bottom:25px;align-items:center;gap:12px}
 .scroll-cue{font-size:0.75rem;letter-spacing:.035em;max-width:132px;line-height:1.7}
 .scroll-cue span{display:none}.hero-controls__right{gap:5px}
 .slide-count{font-size:0.75rem;min-width:42px;margin-right:3px}
 .slide-arrow,.slide-pause{width:36px;height:36px;font-size:1.0625rem}
 .work-section{padding:39px 0 54px}.work-intro{font-size:1rem;line-height:1.75;margin-bottom:23px}
 .filters{gap:22px;padding:18px 0 23px}.filter{font-size:0.875rem;letter-spacing:.015em}
 .work-card{display:block;padding-bottom:31px}.work-card__media{height:auto;aspect-ratio:1.45}
 .work-card__info{padding:13px 0 0;display:grid;grid-template-columns:27px minmax(0,1fr);gap:5px 10px}
 .work-card__number{font-size:0.75rem;margin:5px 0 0}
 .work-card h3{font-size:1.75rem;line-height:1.12;max-width:none}
 .work-card__category{grid-column:2;grid-row:2;font-size:0.875rem;line-height:1.55;margin:4px 0 0}
 .work-card__line{display:none}.work-more{padding-top:0}
 .footer-main{padding-bottom:31px}.footer-links{font-size:0.875rem;gap:14px 22px}
 .footer-bottom{display:flex;flex-direction:column;font-size:0.75rem;gap:16px}
 .footer-contact{flex-direction:column;gap:5px;font-size:0.875rem}.site-footer{padding-top:40px}
 .about-hero{padding:116px 0 58px;min-height:0}
 .about-hero__grid{grid-template-columns:1fr;gap:34px}.about-hero__copy{padding:0}
 .about-hero h1{font-size:clamp(2.5625rem,10.5vw,4rem);line-height:1.07;letter-spacing:-.027em}
 .large-copy{font-size:1.125rem;line-height:1.7}.about-hero__actions{gap:20px 27px}
 .about-hero__photo{width:100%;max-width:420px;justify-self:start}
 .profile-grid,.resume-grid,.skills-grid{grid-template-columns:1fr;gap:38px}
 .profile-section,.resume-section,.skills-section{padding:58px 0 65px}
 .profile-intro h2,.skills-section h2{font-size:clamp(2.1875rem,9.4vw,3.25rem);line-height:1.12}
 .resume-side h2{font-size:3rem}.resume-side .eyebrow{margin-bottom:19px}
 .timeline-item{grid-template-columns:1fr;gap:11px;padding:23px 0 28px}
 .timeline-item>span{padding:0;font-size:0.875rem}.timeline-item h3{font-size:1.6875rem;margin-bottom:15px}
 .timeline-item p{font-size:1rem;line-height:1.8}
 .software-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
 .software-list li{font-size:0.875rem;gap:9px;padding:12px 0}.software-logo{width:38px;height:38px;padding:6px}
 .education-list{font-size:1rem}.skills-section h3:not(:first-child){margin-top:40px}
 .contact-strip{padding:48px 0}.contact-strip h2{font-size:2.625rem;line-height:1.1}
 .contact-strip__link{font-size:1.9375rem;margin-top:23px}
 .project-page{padding-top:106px;padding-bottom:52px}.back-link{margin-bottom:33px}
 .project-intro h1{font-size:clamp(2.3125rem,10.1vw,3.9375rem);line-height:1.1}
 .project-intro .eyebrow{font-size:0.75rem;line-height:1.8}.project-intro{margin-bottom:27px}
 .project-cover img{aspect-ratio:auto;height:auto}.project-cover button{font-size:0.75rem;bottom:10px;right:10px;padding:8px 11px}
 .project-details{display:block;padding:30px 0 37px}.project-details h2{font-size:1.8125rem}
 .project-details aside{margin-top:27px}.project-gallery{grid-template-columns:1fr;gap:25px;margin-top:30px}
 .next-project{display:block;margin-top:44px}.next-project>span{display:block;margin-bottom:13px}
 .next-project strong{font-size:2.0625rem}.next-project a{display:block}
 .lightbox{height:100dvh;max-height:100dvh;padding-inline:12px}
 .lightbox__frame{height:calc(100dvh - 142px)}.lightbox__frame img{max-height:calc(100dvh - 190px)}
 .lightbox__frame p{font-size:0.75rem;text-align:center}
}
@media(max-width:390px){.hero h1,.hero h2{font-size:clamp(2.1875rem,10vw,2.5rem)}.hero-controls__right{gap:4px}.scroll-cue{max-width:112px;font-size:0.75rem}.slide-count{font-size:0.75rem;min-width:41px}.slide-arrow,.slide-pause{width:33px;height:33px}.software-list{grid-template-columns:1fr}}
html:not(.js) .hero-controls__right,html:not(.js) .project-cover button,html:not(.js) #load-model{display:none}
@media(max-width:700px){html:not(.js) .menu-toggle{display:none}html:not(.js) .site-header__inner{height:auto;min-height:68px;flex-wrap:wrap;gap:14px;padding:17px 0}html:not(.js) .main-nav{display:flex;position:static;min-height:0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:15px;width:100%;padding:0;background:none;font-size:0.875rem}html:not(.js) .main-nav>a{width:auto;padding:0;border:0}html:not(.js) .language-switch{margin-top:0;gap:12px}html:not(.js) .language-option{font-size:0.875rem;padding:0}}
@media(prefers-reduced-motion:reduce){.hero-panel__image{animation:none}.about-hero__photo img{transition:none}.slide-pause{display:none}}

/* Conserver assez de place lorsque la taille de texte augmente. */
.hero{min-height:max(580px,36.25rem)}
@media(max-width:700px){.hero{height:max(690px,43.125rem);min-height:max(560px,35rem)}}
.hero h1,.hero h2,.profile-intro h2,.skills-section h2,.about-hero h1{overflow-wrap:break-word}
.software-list li>span:last-child{min-width:0;overflow-wrap:anywhere}


/* --- Interface refinements: arrows, headings and slideshow indicators --- */

/* Headline emphasis stays typographic, but no longer switches to italics. */
.hero h1 em,
.hero h2 em,
.about-hero h1 em,
.profile-intro h2 em,
.skills-section h2 em{
  font-style:normal;
}

/* Simple chevrons: transparent background, no circular outline. */
.slide-arrow,
.lightbox__controls button{
  position:relative;
  font-size:0;
  color:transparent;
  background:transparent;
  border-color:transparent;
}

.slide-arrow:hover,
.slide-arrow:focus-visible,
.lightbox__controls button:hover,
.lightbox__controls button:focus-visible{
  background:transparent;
}

.slide-arrow::before,
.lightbox__controls button::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:10px;
  height:10px;
  border-top:2.5px solid #fff;
  border-right:2.5px solid #fff;
}

.slide-arrow[data-slide="prev"]::before,
.lightbox__controls button[data-lightbox="prev"]::before{
  transform:translate(-35%,-50%) rotate(-135deg);
}

.slide-arrow[data-slide="next"]::before,
.lightbox__controls button[data-lightbox="next"]::before{
  transform:translate(-65%,-50%) rotate(45deg);
}

/* Slideshow position: translucent white squares instead of 01 / 05. */
.slide-count{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:auto;
  margin-right:8px;
}

.slide-dot{
  display:block;
  width:7px;
  height:7px;
  background:#fff;
  opacity:.28;
  transition:opacity .25s ease,transform .25s ease;
}

.slide-dot.is-active{
  opacity:.88;
}

@media(max-width:700px){
  .slide-count{gap:6px;min-width:auto;margin-right:5px}
  .slide-dot{width:6px;height:6px}
}


/* Footer: simple, thicker up-chevron beside “Retour en haut” / “Back to top”. */
.back-top{
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.back-top span[aria-hidden="true"]{
  position:relative;
  display:inline-block;
  width:12px;
  height:12px;
  font-size:0;
  color:transparent;
}

.back-top span[aria-hidden="true"]::before{
  content:"";
  position:absolute;
  top:55%;
  left:50%;
  width:9px;
  height:9px;
  border-top:2.5px solid currentColor;
  border-left:2.5px solid currentColor;
  color:inherit;
  transform:translate(-50%,-35%) rotate(45deg);
}

.back-top span[aria-hidden="true"]::before{
  border-color:#fff;
}


/* Correct footer back-to-top chevron */
.footer-bottom > a[href="#main"]{
  display:inline-flex;
  align-items:center;
  gap:9px;
}

.footer-bottom > a[href="#main"] .back-top-chevron{
  display:inline-block;
  width:8px;
  height:8px;
  border-top:2.5px solid #fff;
  border-left:2.5px solid #fff;
  transform:translateY(2px) rotate(45deg);
  flex:none;
}
