:root{--green:#10271f;--cream:#eadabd;--black:#111512;--silver:#b9beb9;--wine:#4c202b;--muted:#b9beb9;--line:#b9beb936;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--black);color:var(--cream);font:16px/1.6 Arial,Helvetica,sans-serif}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{background:transparent}img{max-width:100%;display:block}button:focus-visible,a:focus-visible,video:focus-visible{outline:2px solid var(--cream);outline-offset:6px}button:disabled{opacity:.3;cursor:default}.skip{position:fixed;top:-100px;left:15px;z-index:20;background:var(--cream);color:var(--green);padding:10px}.skip:focus{top:10px}.nav{height:92px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:var(--green);border-bottom:1px solid var(--line);position:relative;z-index:2}.brand img{width:124px;height:auto;filter:invert(92%) sepia(22%) saturate(400%) hue-rotate(345deg);object-fit:contain}.nav nav{display:flex;gap:38px;font-size:13px;letter-spacing:.02em}.nav nav a{padding:10px 0}.nav nav a:last-child{border-bottom:1px solid var(--silver)}.hero{background:var(--green);display:grid;grid-template-columns:43% 57%;min-height:650px;position:relative}.hero-copy{padding:100px 0 105px 12%;position:relative;z-index:1}.eyebrow,.small-label{text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:400;color:var(--silver);margin:0 0 24px}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.05;margin:0}h1{font-size:clamp(50px,5.6vw,88px);letter-spacing:-.045em}h1 span{color:var(--silver)}.hero-sub{margin:26px 0 32px;font-size:15px;color:var(--cream);line-height:1.65}.hero-image{overflow:hidden;min-width:0}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:58% 72%}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;padding:16px 22px;font-size:12px;min-height:50px;letter-spacing:.01em}.button.cream{background:var(--cream);color:var(--green)}.button.cream:hover{background:#f3e6ce}.button.outline{border:1px solid currentColor}.hero-note{font-size:10px;color:var(--silver);margin-top:22px;max-width:230px}.hero-bottom{position:absolute;bottom:0;left:0;width:43%;display:flex;justify-content:space-between;padding:18px 12% 18px 5.2%;font-size:10px;color:var(--silver)}.hero-bottom a{white-space:nowrap}.section{padding:105px 6%;max-width:1600px;margin:auto}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:45px}.section-head h2{font-size:clamp(40px,4vw,60px);letter-spacing:-.035em}.section-head h2 span{color:var(--silver)}.section-head p:not(.eyebrow){font-size:12px;color:var(--silver);margin:0 0 4px;line-height:1.8}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 24px}.project-card{width:100%;border:0;text-align:left;padding:0;background:transparent}.project-image{overflow:hidden;aspect-ratio:4/3}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.project-card:hover .project-image img{transform:scale(1.025)}.project-caption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:16px}.project-caption strong{font:400 16px Georgia,serif}.project-caption .arrow{color:var(--silver);font-size:18px}.project-card .category{font-size:10px;color:var(--silver);margin:6px 0 0;display:block}.lustrage-block{margin-top:100px;border-top:1px solid var(--line);padding-top:42px}.compact{margin-bottom:28px}.compact .eyebrow{margin-bottom:12px}.compact h3{font-size:37px}.arrows{display:flex;gap:12px}.arrows button{border:1px solid var(--line);width:46px;height:46px}.lustrage-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--silver) transparent;padding-bottom:18px}.lustrage-slide{flex:0 0 24%;min-width:0;border:0;padding:0;scroll-snap-align:start}.lustrage-slide img{width:100%;height:330px;object-fit:cover}.films-block{margin-top:65px}.video-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}.video-card video{width:100%;aspect-ratio:9/16;background:#080c0a;object-fit:contain;display:block}.video-card h4{font:400 15px Georgia,serif;margin:14px 0 0}.profile{background:var(--cream);color:var(--green);max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:110px max(6%,calc((100% - 1408px)/2))}.profile .eyebrow,.profile .small-label{color:var(--wine)}.profile h2{font-size:clamp(38px,4vw,62px);letter-spacing:-.035em;margin-bottom:32px}.profile h2 span{color:var(--wine)}.profile-intro>p:not(.eyebrow){max-width:450px;font-size:14px;line-height:1.9}.profile .button{margin-top:25px}.profile .button:hover{background:var(--green);color:var(--cream)}.expertise{border-bottom:1px solid #10271f35;padding-bottom:22px}.expertise p,.education p{font-size:12px;line-height:1.9}.small-label{display:block;margin-bottom:12px}.timeline{list-style:none;padding:0;margin:30px 0}.timeline li{padding:0 0 24px 21px;border-left:1px solid #10271f45;position:relative}.timeline li:before{content:'';position:absolute;top:5px;left:-3px;width:5px;height:5px;background:var(--wine);border-radius:50%}.timeline h3{font:400 18px Georgia,serif;line-height:1.3;margin:8px 0}.date{font-size:10px;color:var(--wine);letter-spacing:.08em}.timeline p{font-size:11px;margin:4px 0}.timeline .detail{color:#455148;font-size:12px;line-height:1.8;max-width:390px}.education{border-top:1px solid #10271f35;padding-top:22px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-top:100px;padding-bottom:100px}.contact h2{font-size:clamp(42px,5vw,72px);letter-spacing:-.035em}.contact h2 span{color:var(--silver)}.contact p{font-size:13px;color:var(--silver);line-height:1.9;margin-top:26px}.contact-links{padding-top:30px}.contact-links>a{display:block;font:400 27px Georgia,serif;border-bottom:1px solid var(--line);padding:24px 0}.contact-links>a span{float:right;color:var(--silver)}.contact-links small{display:block;font:11px Arial,sans-serif;color:var(--silver);margin-top:10px}footer{background:var(--green);border-top:1px solid var(--line);padding:28px 6%;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:10px;color:var(--silver)}footer .brand img{width:90px}footer>a:last-child{color:var(--cream)}dialog{border:0;padding:0;color:var(--cream)}dialog::backdrop{background:#090d0bf5}.project-panel{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;background:var(--black);overflow:auto}.project-dialog-bar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:24px 5%;background:var(--green);border-bottom:1px solid var(--line);font-size:12px}.project-dialog-bar>span{font:14px Georgia,serif}.back{padding:8px 0}.project-content{padding:60px 5% 50px;max-width:1400px;margin:auto}.project-content h2{font-size:clamp(38px,5vw,68px);letter-spacing:-.035em}.project-content>p:not(.eyebrow){font-size:14px;max-width:650px;color:var(--silver);margin:24px 0}.project-content>ul{padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px 25px;font-size:11px;color:var(--silver);margin-bottom:45px}.project-content>ul li:before{content:'·';margin-right:8px}.gallery{display:flex;flex-direction:column;gap:20px;width:100%}.gallery-row{display:flex;justify-content:center;gap:16px;align-items:start;width:100%;min-width:0}.photo{border:0;padding:0;margin:0;min-width:0;max-width:100%;display:block;line-height:0}.photo img{width:100%;height:100%;object-fit:contain}.next-project{display:flex;justify-content:flex-end;padding-top:45px}.next-project button{border:0;border-bottom:1px solid var(--silver);padding:12px 0;min-height:44px;font:20px Georgia,serif}.next-project span{margin-left:35px}.viewer{background:#080c0a;position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0}.viewer-bar{display:flex;justify-content:space-between;gap:20px;padding:18px 4%;height:70px;font-size:12px}.viewer-bar button{border:0;min-width:70px;min-height:40px}.viewer-stage{height:calc(100% - 70px);display:grid;grid-template-columns:60px 1fr 60px;align-items:center;gap:12px;padding:0 20px 20px}.viewer-stage img{width:100%;height:100%;min-height:0;object-fit:contain;max-height:calc(100dvh - 90px)}.viewer-stage button{border:1px solid var(--line);height:48px;width:48px;font-size:23px}*[hidden]{display:none!important}@media(min-width:1600px){.hero{min-height:760px}.hero-copy{padding-top:130px}}@media(max-width:1050px){.hero{grid-template-columns:45% 55%;min-height:590px}.hero-copy{padding-top:90px;padding-left:12%}h1{font-size:60px}.hero-bottom{width:45%;padding-right:7%}.section{padding:80px 5%}.video-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profile{gap:7%}.project-caption strong{font-size:15px}.lustrage-slide{flex-basis:31.5%}.lustrage-slide img{height:300px}}@media(max-width:700px){html{scroll-padding-top:25px}.nav{height:76px;padding:0 5%}.brand img{width:96px}.nav nav{gap:18px;font-size:11px}.hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:58px 6% 45px}.hero .eyebrow{margin-bottom:20px}h1{font-size:65px}.hero-sub{font-size:14px;margin:24px 0}.hero-note{display:none}.hero-image{height:auto;aspect-ratio:1.35}.hero-image img{object-position:50% 78%}.hero-bottom{display:none}.section{padding:65px 6%}.section-head{display:block;margin-bottom:30px}.section-head p:not(.eyebrow){margin-top:20px;font-size:12px}.section-head .eyebrow{margin-bottom:17px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 14px}.project-caption{padding-top:12px}.project-caption strong{font-size:15px;line-height:1.3}.project-caption .arrow{font-size:15px}.project-card .category{font-size:9px;line-height:1.5}.lustrage-block{margin-top:60px;padding-top:30px}.section-head.compact{display:flex;align-items:center}.compact h3{font-size:32px}.lustrage-slide{flex-basis:64%}.lustrage-slide img{height:360px}.video-grid{display:flex;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:12px;gap:14px}.video-card{flex:0 0 65%;min-width:0;scroll-snap-align:start}.video-card video{max-height:430px}.films-block .section-head p:not(.eyebrow){display:none}.profile,.contact{display:block}.profile h2{font-size:46px}.profile-details{margin-top:50px}.contact h2{font-size:56px}.contact-links{padding-top:8px}.contact-links>a{font-size:25px}footer{flex-wrap:wrap;gap:18px}footer p{order:3;width:100%;margin:0}.project-dialog-bar{padding:15px 5%;font-size:11px}.project-dialog-bar>span{display:none}.project-content{padding-top:38px}.project-content>ul{display:block;line-height:1.9}.viewer-stage{grid-template-columns:32px 1fr 32px;gap:4px;padding:0 5px 15px}.viewer-stage button{width:32px;height:44px;font-size:19px}.gallery-row{gap:12px}.viewer-bar{font-size:11px;padding:13px 5%;height:60px}.viewer-stage{height:calc(100% - 60px)}}@media(max-width:390px){h1{font-size:56px}.nav nav{gap:12px}.project-grid{grid-template-columns:1fr}.lustrage-slide{flex-basis:83%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.more-projects{margin-top:44px}.project-toggle-wrap{display:flex;justify-content:center;margin-top:42px}.project-toggle-wrap button{min-width:210px}.project-toggle-wrap button:hover{background:var(--cream);color:var(--green)}.films-section{padding-top:0;padding-bottom:70px}.films-section .films-block{margin-top:0;border-top:1px solid var(--line);padding-top:42px}.lustrage-section{padding-top:0}.lustrage-section .lustrage-block{margin-top:0}.contact h2{font-size:clamp(38px,4.8vw,68px)}@media(max-width:700px){.more-projects{margin-top:30px}.project-toggle-wrap{margin-top:30px}.films-section{padding-bottom:55px}.contact h2{font-size:clamp(35px,9vw,54px)}}
/* Lecteurs vidéo : deux, deux, puis le dernier centré. */
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:860px;margin:0 auto;gap:38px 28px;overflow:visible;padding-bottom:0;scroll-snap-type:none;align-items:start}.video-card{min-width:0;width:100%}.video-card:last-child:nth-child(odd){grid-column:1/-1;width:calc((100% - 28px)/2);justify-self:center}.video-stage{position:relative;width:100%;aspect-ratio:var(--stage-ratio,0.5625);overflow:hidden;background:transparent;cursor:pointer}.video-card .video-stage video{position:absolute;inset:auto;top:0;left:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:fill;background:transparent;display:block;opacity:0}.video-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}.video-card.has-started .video-stage video{opacity:1}.video-card.has-started .video-poster{display:none}.video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px solid #eadabd9c;border-radius:50%;width:58px;height:58px;display:grid;place-items:center;background:#10271fbd;color:var(--cream);font-size:19px;padding-left:5px}.video-card.has-started:not(.is-paused) .video-play{opacity:0;pointer-events:none}.video-controls{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;align-items:center;padding:8px 0 0}.video-controls button{height:40px;width:40px;border:0;padding:0;font-size:19px}.video-seek{accent-color:var(--cream);width:100%;margin:0;cursor:pointer;min-height:36px}.video-card h4{line-height:1.45;margin-top:10px}.video-card:fullscreen{width:100vw!important;height:100dvh;background:var(--black);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;margin:0;gap:0}.video-card:fullscreen .video-stage{width:min(100%,calc((100dvh - 85px)*var(--stage-ratio)));flex:none}.video-card:fullscreen .video-controls{width:min(600px,100%);flex:none}.video-card:fullscreen h4{display:none}@media(max-width:700px){.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px;overflow:visible;padding-bottom:0}.video-card{flex:none}.video-card:last-child:nth-child(odd){width:calc((100% - 14px)/2)}.video-card h4{font-size:13px}.video-play{width:45px;height:45px;font-size:15px}.video-controls{grid-template-columns:36px minmax(0,1fr) 36px;gap:2px}.video-controls button{width:36px;min-height:44px;font-size:17px}}

body.video-expanded{overflow:hidden}.video-card.is-expanded{position:fixed;inset:0;z-index:1000;width:100vw!important;height:100dvh;background:var(--black);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;margin:0;gap:0}.video-card.is-expanded .video-stage{width:min(100%,calc((100dvh - 85px)*var(--stage-ratio)));flex:none}.video-card.is-expanded .video-controls{width:min(600px,100%);flex:none}.video-card.is-expanded h4{display:none}
/* Bandeau anthracite et signature plus présente, uniquement dans l’en-tête. */
.nav{background:var(--black)}.nav .brand img{width:160px}@media(max-width:700px){.nav .brand img{width:120px}}@media(max-width:390px){.nav .brand img{width:108px}}
/* Retouches validées : signature argentée, identité et relief discret. */
.brand{position:relative;display:inline-flex;align-items:center;flex-shrink:0}
.brand img{opacity:0}
.brand::after{content:'';position:absolute;inset:0;background:linear-gradient(165deg,#fafafa 0%,#d8dcdf 23%,#8c959b 42%,#f9fbfc 49%,#c8cfd3 57%,#929ba1 76%,#e5e9eb 100%);-webkit-mask:url('assets/signature.png') center/contain no-repeat;mask:url('assets/signature.png') center/contain no-repeat;filter:drop-shadow(0 1px 1px #0009) drop-shadow(0 0 4px #e6ecec20);pointer-events:none}
.hero .hero-name{font-size:clamp(40px,5.1vw,80px)}
.hero-name .given-name{display:inline-block;font-size:.7em;color:var(--cream);letter-spacing:-.035em;margin-top:.14em}
.project-image,.video-stage,.lustrage-slide{border-radius:14px;box-shadow:0 12px 24px -12px #000b,0 3px 7px #0005}
.project-image,.video-stage{position:relative;isolation:isolate}
.project-image::after,.video-stage::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px 0 #ffffff24,inset 0 0 0 1px #ffffff12;pointer-events:none}
.lustrage-slide{overflow:hidden}
.photo img{border-radius:12px;box-shadow:0 10px 24px -12px #0009}
/* Un même traitement pour les cinq miniatures, jamais pour les vidéos. */
.video-poster{object-fit:cover!important;filter:blur(12px) saturate(.45) brightness(.68);transform:scale(1.1)}
.video-play{width:68px;height:68px;padding:0;border:1px solid #f0f2f3a6;background:linear-gradient(145deg,#dce2e330,#11151280);box-shadow:inset 0 1px 0 #ffffff40,0 6px 24px #0005;backdrop-filter:blur(8px)}
.video-play::before{content:'';display:block;width:18px;height:22px;margin-left:4px;background:linear-gradient(145deg,#fff,#c4ccd0);clip-path:polygon(0 0,100% 50%,0 100%)}
.video-card:not(.has-started) .video-controls{display:none}
.video-card:not(.has-started) h4{margin-top:16px}
.video-card.has-started .video-play{width:58px;height:58px}
.video-card:fullscreen .video-stage,.video-card.is-expanded .video-stage{border-radius:0;box-shadow:none}
@media(max-width:700px){.hero .hero-name{font-size:clamp(38px,10.7vw,65px)}.project-image,.video-stage,.lustrage-slide{border-radius:11px}.video-play{width:54px;height:54px}.video-card.has-started .video-play{width:45px;height:45px}.video-play::before{width:15px;height:19px}}

.cv-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:25px}.profile .cv-actions .button{margin-top:0;min-width:220px}

/* Consultation du CV dans une fenêtre intégrée au portfolio. */
.cv-preview{width:min(1100px,94vw);height:min(940px,90dvh);max-width:94vw;max-height:90dvh;margin:auto;background:var(--cream);color:var(--green);border-radius:14px;box-shadow:0 24px 90px #0008;overflow:hidden}
.cv-preview[open]{display:flex;flex-direction:column}
.cv-preview::backdrop{background:#090d0bd9;backdrop-filter:blur(5px)}
.cv-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 22px;border-bottom:1px solid #10271f25;flex:none}
.cv-preview-bar h2{font-size:25px}
.cv-preview-bar button{border:0;min-height:44px;padding:8px 0 8px 16px;font-size:13px}
.cv-preview-document{width:100%;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;background:#353936;padding:20px}.cv-preview-document img{width:100%;max-width:850px;height:auto;margin:auto;box-shadow:0 4px 24px #0005}
.cv-preview-footer{padding:12px 22px;text-align:right;flex:none;font-size:12px}
.cv-preview-footer a{display:inline-block;padding:6px 0;text-decoration:underline;text-underline-offset:4px}
.cv-preview :focus-visible{outline-color:var(--green)}
@media(max-width:700px){.cv-preview{width:96vw;max-width:96vw;height:92dvh;max-height:92dvh;border-radius:10px}.cv-preview-bar{padding:8px 16px}.cv-preview-bar h2{font-size:22px}.cv-preview-footer{padding:8px 16px}}

/* Finitions V1 : accueil, confort de lecture et lecteurs plus compacts. */
.hero-sub{margin-bottom:12px}.hero-objective{font-size:13px;line-height:1.7;max-width:330px;margin:0 0 24px;color:var(--cream)}
.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.hero-secondary{display:inline-flex;align-items:center;gap:24px;min-height:44px;border-bottom:1px solid var(--silver);font-size:12px;padding:8px 0}.hero-secondary:hover{color:var(--silver)}
.video-grid{max-width:740px}.video-poster{filter:blur(7px) saturate(.6) brightness(.78)}
.video-status{min-height:0;font-size:12px;line-height:1.6;color:var(--silver);margin:8px 0 0}.video-status:empty{display:none}.video-status a{text-decoration:underline}
.video-card:fullscreen .video-status,.video-card.is-expanded .video-status{max-width:600px;margin:8px 0}
/* Le zoom change la largeur du document sans rogner le CV. */
.cv-zoom{display:flex;align-items:center;justify-content:center;gap:12px;padding:4px 16px;border-bottom:1px solid #10271f25;flex:none}
.cv-zoom button{min-width:44px;min-height:44px;border:0;font-size:20px}.cv-zoom output{min-width:60px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}.cv-zoom #cv-zoom-reset{font-size:12px;border-left:1px solid #10271f25;padding-left:16px}
.cv-preview-document img{max-width:none;width:var(--cv-width, min(100%,850px));margin:0 auto}
@media(max-width:700px){
 .nav nav{font-size:12px;gap:16px}.nav nav a{display:inline-flex;align-items:center;min-height:44px}
 .eyebrow,.small-label{font-size:11px}.hero-sub{font-size:15px}.hero-objective{font-size:13px;margin-bottom:22px}.hero-secondary{font-size:13px}
 .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-caption strong{font-size:16px}.project-card .category{font-size:11px;line-height:1.6}
 .section-head p:not(.eyebrow){font-size:13px}.video-card h4{font-size:14px;line-height:1.5}
 .profile-intro>p:not(.eyebrow){font-size:15px}.expertise p,.education p{font-size:13px}.timeline p{font-size:12px}.timeline .detail{font-size:13px}.date{font-size:11px}
 .contact p{font-size:14px}.contact-links small{font-size:12px}footer{font-size:11px}
 .cv-preview-document{padding:12px}.cv-zoom{gap:8px;padding:2px 10px}
}
@media(max-width:360px){.project-grid{grid-template-columns:1fr}.nav nav{gap:10px}.nav .brand img{width:96px}}
@media(prefers-reduced-motion:no-preference){.section-head h2,.section-head h3,.profile h2,.contact h2{transition:opacity .28s ease,transform .28s ease}.title-waiting{opacity:0;transform:translateY(8px)}}

/* Corrections après essai iPhone 15 : icônes fixes et accueil épuré. */
.ui-icon{display:inline-block;width:18px;height:18px;flex-shrink:0;vertical-align:middle;pointer-events:none}
.button [aria-hidden],.project-caption .arrow{display:inline-flex;align-items:center}.back,.viewer-bar button,.cv-preview-bar button,.cv-preview-footer a,footer>a:last-child{display:inline-flex;align-items:center;gap:8px}.arrows button,.viewer-stage button,.video-controls button,.cv-zoom button{display:inline-flex;align-items:center;justify-content:center}.video-controls .ui-icon{width:22px;height:22px}.project-caption .ui-icon{align-self:center}
.hero-button{background:transparent;border:1px solid var(--cream);color:var(--cream)}.hero-button:hover{background:#eadabd10}.hero-sub{margin-bottom:28px}
@media(min-width:361px) and (max-width:700px){.more-projects>.project-card:last-child:nth-child(odd){grid-column:1/-1;width:calc((100% - 14px)/2);justify-self:center}}
/* Un seul agrandissement : les mêmes commandes restent dans la fenêtre vidéo. */
.video-expanded-dialog{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;background:var(--black);overflow:hidden}
.video-expanded-dialog::backdrop{background:var(--black)}
.video-card.is-expanded{position:relative;inset:auto;width:100%!important;height:100%;max-height:100%;min-height:0;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
.video-card.is-expanded .video-stage{width:min(100%,calc((100dvh - 120px - env(safe-area-inset-top) - env(safe-area-inset-bottom))*var(--stage-ratio)));touch-action:manipulation;flex:none}
.video-card.is-expanded .video-controls{width:min(600px,100%);min-height:52px;position:relative;z-index:2;flex:none}
.video-controls .video-seek{touch-action:pan-x;min-height:44px}.video-card.is-expanded .video-status{flex:none;text-align:center}

/* Introduction L, M, puis D couché : dessin 1,65 s, pause 1,35 s, fondu 0,5 s (total 3,5 s). */
html{scrollbar-gutter:stable}
body.intro-running{overflow:hidden}
.site-intro{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;background:var(--green);overflow:hidden;outline:none}
.site-intro[open]{display:flex;align-items:center;justify-content:center;animation:intro-exit .5s cubic-bezier(.4,0,.2,1) 3s both;will-change:opacity}
.site-intro::backdrop{background:transparent}
.intro-signature{width:min(86vw,900px);height:auto;overflow:visible;filter:drop-shadow(0 3px 2px #0006)}
.intro-stroke{opacity:0;stroke-dasharray:1;stroke-dashoffset:1;animation:intro-draw .5s cubic-bezier(.25,.1,.6,.95) forwards}
.intro-stroke-1{animation-duration:.58s;animation-delay:0s}.intro-stroke-2{animation-duration:.45s;animation-delay:.58s}.intro-stroke-3{animation-duration:.62s;animation-delay:1.03s}
@keyframes intro-draw{from{opacity:1}to{opacity:1;stroke-dashoffset:0}}@keyframes intro-exit{to{opacity:0}}
.gallery.gallery-pairs .photo{flex-shrink:0}
@media(prefers-reduced-motion:reduce){.site-intro{display:none!important}}

/* Cadence manuscrite : boucle posée et longues traversées plus vives. */
@supports(animation-timing-function:linear(0,1)){
 .intro-stroke-1{animation-timing-function:linear(0,.12 16%,.38 37%,.43 50%,.46 58%,.72 79%,1)}
 .intro-stroke-3{animation-timing-function:linear(0,.11 18%,.22 32%,.40 52%,.58 72%,1)}
}

/* Desktop welcome: keep the whole car above the fold, without the image's intrinsic square height expanding the grid. */
@media(min-width:701px){.hero{height:clamp(570px,calc(100svh - 92px),760px);min-height:0}.hero-copy{padding-top:clamp(60px,9vh,100px);padding-bottom:80px}.hero-image{position:relative}.hero-image img{position:absolute;inset:0;object-position:50% 85%}}
@media(min-width:701px) and (max-width:1200px){.hero-image img{object-fit:contain;object-position:center}}

/* 30 octobre : accueil adapté aux fenêtres basses, cartes alignées et retour discret. */
@media(min-width:701px){.hero{height:min(760px,calc(100svh - 92px))}.hero-copy{padding-top:clamp(24px,7vh,100px);padding-bottom:60px}.hero-image img{width:min(100%,calc((100svh - 92px)*1.6));left:50%;right:auto;transform:translateX(-50%)}}
@media(min-width:701px) and (max-height:650px){.hero .hero-name{font-size:clamp(36px,8vh,56px)}.hero .eyebrow{margin-bottom:18px}.hero-sub{margin:18px 0}.hero-note{margin-top:12px}.hero-bottom{padding-top:10px;padding-bottom:10px}}
.project-card{align-self:start}
.back-to-top{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));z-index:30;width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid #eadabd66;border-radius:50%;background:#10271ff2;color:var(--cream);box-shadow:0 5px 18px #0005;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease,visibility 0s .3s}
.back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}
.back-to-top:hover{background:var(--green);border-color:var(--cream)}
.back-to-top:focus-visible{outline:2px solid var(--cream);outline-offset:4px}
.back-to-top .ui-icon{width:19px;height:19px}
.modal-open .back-to-top,.video-expanded .back-to-top{opacity:0;visibility:hidden;pointer-events:none}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none;transform:none}}

/* Miniatures choisies : Vert signature, sans traitement de la vidéo en lecture. */
.video-poster{filter:grayscale(1);opacity:.14;transform:none}
.video-card:not(.has-started) .video-stage{background:linear-gradient(145deg,#1b3e30,#10271f)}
.video-card:not(.has-started) .video-stage::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,#10271f,transparent 70%)}
.video-card:not(.has-started) .video-play{z-index:3;width:58px;height:58px;border-radius:50%;border:1px solid #eadabdb3;background:transparent;box-shadow:none;backdrop-filter:none}
.video-card:not(.has-started) .video-play::before{width:16px;height:20px;background:var(--cream)}
.video-cover-label{position:absolute;inset:0;z-index:2;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;text-align:center;padding:26px 14px 24px;color:var(--cream)}
.video-cover-author{font-size:10px;letter-spacing:1.8px;line-height:1.6}
.video-cover-title{display:block;font:400 clamp(16px,1.8vw,22px)/1.3 Georgia,serif;margin-bottom:7px}
.video-cover-subtitle{display:block;font-size:11px;letter-spacing:1.2px;line-height:1.6;text-transform:uppercase}
.video-card.has-started .video-cover-label{display:none}
@media(max-width:700px){.video-card:not(.has-started) .video-play{width:48px;height:48px}.video-cover-label{padding:20px 10px 20px}.video-cover-author{font-size:9px;letter-spacing:1.3px}.video-cover-subtitle{font-size:11px;letter-spacing:.8px}}

/* Carrousel vidéo demandé : même navigation que Lustrage. */
#video-grid{display:flex;max-width:none;margin:0;gap:18px;overflow-x:auto;overflow-y:hidden;padding:8px 4px 24px;scroll-snap-type:x mandatory;scroll-padding-inline:4px;scrollbar-width:thin;scrollbar-color:var(--silver) transparent;overscroll-behavior-x:contain;align-items:flex-start}
#video-grid>.video-card{flex:0 0 clamp(210px,24vw,280px);width:auto;max-width:none;margin:0;scroll-snap-align:start}
#video-grid:focus-visible{outline:1px solid var(--cream);outline-offset:5px}
.video-placeholder{scroll-snap-align:start;pointer-events:none}
.back-to-top{touch-action:manipulation;-webkit-tap-highlight-color:transparent;z-index:60}
@media(max-width:700px){#video-grid>.video-card{flex-basis:70%}.back-to-top{bottom:calc(64px + env(safe-area-inset-bottom))}}
@media(min-width:701px) and (pointer:coarse){.back-to-top{bottom:calc(64px + env(safe-area-inset-bottom))}}

/* Finitions de l’audit V1 : focus contrasté et accueil sur écran peu haut. */
.profile :focus-visible{outline:2px solid var(--green);outline-offset:6px}
@media(min-width:701px) and (max-height:500px){.hero-bottom{display:none}.hero-copy{padding-top:20px;padding-bottom:20px}.hero .eyebrow{margin-bottom:12px}.hero-sub{margin:12px 0}.hero-note{margin-top:10px}}

/* Commandes tactiles sans rectangle persistant ; repère arrondi au clavier. */
.video-controls button:focus{outline:none}
.video-controls button:focus-visible{border-radius:50%;box-shadow:inset 0 0 0 1px var(--cream)}
.video-pointer-input .video-controls button:focus{box-shadow:none}

/* Écrin du CV : vert profond, commandes douces et document préservé. */
.cv-preview{background:#111b16;color:var(--cream);border:1px solid #b9beb929;border-radius:24px;box-shadow:0 30px 100px #000b}
.cv-preview::backdrop{background:#080e0ce8;backdrop-filter:blur(10px)}
.cv-preview-bar{padding:18px 24px;background:linear-gradient(120deg,#19362a,#111f18);border-bottom:1px solid #b9beb924}
.cv-preview-bar h2{font-size:27px;letter-spacing:-.025em}
.cv-preview-bar button{padding:8px 14px;gap:10px;border:1px solid #b9beb933;border-radius:24px;font-size:12px;min-height:44px}
.cv-preview-bar button:hover,.cv-zoom button:hover{background:#eadabd12}
.cv-zoom{gap:10px;padding:10px 18px;background:#14241c;border-bottom:1px solid #b9beb924}
.cv-zoom button{border-radius:50%;background:#ffffff06;color:var(--cream)}
.cv-zoom output{color:var(--silver)}
.cv-zoom #cv-zoom-reset{border:1px solid #b9beb933;border-radius:24px;padding:0 15px;margin-left:8px}
.cv-preview-document{background:radial-gradient(ellipse at 50% 0,#2b3930,#101712 80%);padding:24px}
.cv-preview-document img{border-radius:5px;box-shadow:0 16px 48px #0008}
.cv-preview-footer{padding:12px 24px;background:#14241c;border-top:1px solid #b9beb924}
.cv-preview-footer a{padding:9px 16px;min-height:44px;border:1px solid #b9beb94d;border-radius:24px;text-decoration:none;gap:14px}
.cv-preview-footer a:hover{background:#eadabd12}
.cv-preview :focus-visible{outline:2px solid var(--cream);outline-offset:3px}
@media(max-width:700px){.cv-preview{border-radius:20px}.cv-preview-bar{padding:12px 16px}.cv-preview-bar h2{font-size:24px}.cv-zoom{padding:8px 12px;gap:6px}.cv-preview-document{padding:12px}.cv-preview-footer{padding:10px 16px}}

/* Téléphone en paysage : toute la hauteur au document, fermeture toujours accessible. */
@media(orientation:landscape) and (max-height:500px) and (max-width:1000px){
 .cv-preview{inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0;box-shadow:none;background:#fff}
 .cv-preview .cv-zoom,.cv-preview .cv-preview-footer,.cv-preview-bar h2{display:none}
 .cv-preview-bar{position:absolute;top:max(8px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:2;padding:0;background:none;border:0}
 .cv-preview-bar button{width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#10271fe6;color:var(--cream);font-size:0;display:grid;place-items:center}
 .cv-preview-bar button .ui-icon{width:20px;height:20px}
 .cv-preview-document{padding:0;background:#fff}
 .cv-preview-document img{border-radius:0;box-shadow:none}
}
