/* Image-led portfolio. Consistent frame geometry on every listing. */
.home{background:#151515;color:#f5f5f0}.home .header{position:relative;background:#151515;color:#f5f5f0;border-color:#333}.home .header-inner{height:82px}.home .header .brand{font-size:1rem}.home .header .brand small{font-size:.58rem}.home .header .nav{font-size:.8rem}.home .header .btn{font-size:.76rem;padding:11px 19px;min-height:42px}.home .header .text-link{color:white}.minimal-intro{text-align:center;padding-top:64px;padding-bottom:62px}.minimal-intro h1{font-family:'Manrope',Arial,sans-serif;font-size:clamp(2.5rem,5.2vw,5.2rem);font-weight:700;letter-spacing:-.05em;max-width:none;line-height:1.05}.minimal-intro p{color:#efefea;font-size:.85rem;letter-spacing:.18em;margin-top:22px}.minimal-intro>span{display:block;color:#90938c;letter-spacing:.11em;font-size:.67rem;margin-top:9px}.visual-work{padding-bottom:65px}.visual-work .grid,.grid{align-items:start;gap:30px 20px}.project{margin-top:0!important}.project .image{border-radius:0!important;overflow:hidden}.project .image img,.selected-work .project img,.selected-work .project:nth-child(even) img{width:100%;height:auto;aspect-ratio:16/10!important;object-fit:cover;object-position:var(--position,center);transition:transform .85s cubic-bezier(.22,1,.36,1)}.project-meta{align-items:baseline;margin-top:13px;min-height:42px;gap:14px}.project h3{font-family:'DM Sans',Arial,sans-serif;font-size:.84rem;line-height:1.4;font-weight:500;text-transform:uppercase;letter-spacing:.035em;max-width:80%}.project small{font-size:.68rem;letter-spacing:.04em}.home .project small{color:#a2a49b}.home .project .image:after{border-radius:0;background:#151515d9;color:white;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}.home .project:hover img{transform:scale(1.035)}.home .client-section{padding:27px 0 20px;background:#e8e8e0;color:#292e22}.home .client-intro{margin-bottom:7px}.home .client-mark{height:83px;width:168px}.home .client-mark img{height:60px;width:140px}.home .client-mark span{font-size:.88rem}.home .logo-group{gap:20px;padding-right:20px}.short-about{padding-top:70px;padding-bottom:65px;text-align:center;max-width:850px}.short-about .eyebrow{color:#afb3a7;font-size:.7rem;margin-bottom:20px}.short-about p{color:#eee;font-size:1.45rem;line-height:1.4;font-weight:400;letter-spacing:-.02em;max-width:650px;margin:0 auto 22px}.short-about .text-link{font-size:.8rem}.home .reviews-section{padding-top:35px;padding-bottom:55px;border-top:1px solid #333}.home .reviews-section .section-head{margin-bottom:20px;align-items:center}.home .reviews-section h2{display:none}.home .reviews-section .eyebrow{margin-bottom:0;color:#999f90;font-size:.66rem}.home .reviews-section .text-link{font-size:.76rem}.home .review-feature{padding:30px 35px;border-radius:0;background:#222420}.home .quote-mark{display:none}.home .review-feature blockquote{font-family:Georgia,serif;font-style:italic;font-size:1.55rem;line-height:1.35;letter-spacing:-.02em;margin:0 0 25px;max-width:900px}.home .review-person p{color:#a5aa9c}.home .review-person strong{font-size:.8rem}.home .review-person a{font-size:.72rem}.home .review-avatar{width:38px;height:38px}.minimal-contact{padding-top:60px;padding-bottom:90px;border-top:1px solid #333}.minimal-contact h2{font-family:'Manrope',Arial,sans-serif;font-weight:600;font-size:clamp(2.8rem,6vw,5.6rem);line-height:1;letter-spacing:-.045em}.minimal-contact .actions{margin-top:30px}.minimal-contact .btn{background:#ededdf;color:#181a16;border-color:#ededdf}.minimal-contact .text-link{font-size:.87rem}.home .footer{border-top:1px solid #333;background:#151515;padding-top:40px}.home .footer-bottom{margin-top:28px;border-color:#333}.home .mobile-contact{background:#151515ef;border-color:#333}.home .mobile-contact .btn{background:#f3f3e7;color:#191b14;border-color:#f3f3e7}.home .reveal{transition-duration:.65s,.85s}.inner-page .project h3{font-size:.88rem}.inner-page .project small{font-size:.7rem}.inner-page .grid{gap:35px 24px}.inner-page .page-intro{padding-bottom:40px}.project p{display:none}.home .header .nav a.active{border-color:white}
@media(max-width:1050px){.project-meta{display:block}.project h3{max-width:none}.project small{display:block;margin-top:5px}.home .nav{gap:20px}}
@media(max-width:760px){.home .header-inner{height:72px}.home .nav{top:71px;background:#151515;border-bottom:1px solid #333}.home .header .brand{font-size:.93rem}.home .header .menu-toggle{font-size:.75rem}.minimal-intro{padding-top:45px;padding-bottom:37px}.minimal-intro h1{font-size:clamp(2rem,7.8vw,3.4rem);letter-spacing:-.055em}.minimal-intro p{font-size:.67rem;letter-spacing:.12em;margin-top:17px}.minimal-intro>span{font-size:.57rem;letter-spacing:.1em}.visual-work{padding-left:4vw;padding-right:4vw;padding-bottom:35px}.visual-work .grid{grid-template-columns:1fr;gap:25px}.project-meta{min-height:auto;display:flex;margin-top:10px;align-items:start}.project h3{font-size:.74rem;max-width:76%;line-height:1.4}.project small{font-size:.6rem;margin-top:0;white-space:normal;text-align:right}.home .client-intro{gap:20px}.home .client-intro .eyebrow{font-size:.54rem}.home .motion-toggle{font-size:.6rem}.home .client-mark{width:140px;height:74px}.home .client-mark img{width:120px;height:52px}.short-about{padding-top:45px;padding-bottom:45px}.short-about .eyebrow{font-size:.58rem}.short-about p{font-size:1.22rem;max-width:330px}.home .reviews-section{padding-top:27px;padding-bottom:40px}.home .reviews-section .section-head{display:flex;gap:20px}.home .reviews-section .section-head .text-link{margin-top:0;font-size:.64rem}.home .reviews-section .eyebrow{font-size:.58rem}.home .review-feature{padding:24px}.home .review-feature blockquote{font-size:1.28rem}.home .review-person a{margin-left:50px;font-size:.68rem}.minimal-contact{padding-top:40px;padding-bottom:55px}.minimal-contact h2{font-size:2.9rem}.minimal-contact .actions{gap:24px}.home .footer{padding-bottom:95px}.inner-page .project h3{font-size:.8rem}.inner-page .project small{font-size:.64rem}.inner-page .grid{gap:30px}}
/* Two-page portfolio: motion stays light and visitor-controlled. */
.intro-film{padding-bottom:45px}.film-frame{position:relative;background:#252723;aspect-ratio:16/7;overflow:hidden}.film-frame video{display:block;width:100%;height:100%;object-fit:cover}.film-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:16px;border:0;background:#0002;color:white;font:500 .78rem 'Manrope',sans-serif;letter-spacing:.1em;cursor:pointer;text-shadow:0 1px 4px #000}.film-play[hidden]{display:none}.film-play span{display:grid;place-items:center;width:70px;height:70px;border:1px solid #fffb;border-radius:50%;background:#0003;font-size:18px}.film-caption{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:15px;font-size:.75rem;color:#bdbfb6}.film-caption a{font-size:.72rem}.portfolio-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:65px 0 30px}.portfolio-heading h2{font-family:'Manrope',sans-serif;font-size:2.1rem;letter-spacing:-.05em}.portfolio-heading>span{font-size:.6rem;letter-spacing:.06em;color:#bcbfb3}.about-visual{display:grid;grid-template-columns:1fr 1.15fr;gap:8vw;align-items:center;padding-top:65px;padding-bottom:85px}.personal-photo{overflow:hidden}.personal-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 35%}.about-copy h2{font-family:'Manrope',sans-serif;font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.05em;margin-bottom:25px}.about-copy p{max-width:490px;color:#c4c6bd;font-size:1rem;line-height:1.8}.qualities{margin-top:35px}.qualities>span{display:flex;align-items:center;gap:25px;padding:17px 0;border-top:1px solid #3c3e37;font-size:clamp(1.35rem,2.8vw,2.5rem);letter-spacing:-.04em}.qualities small{font-size:.65rem;color:#a2a797;letter-spacing:0}.landing-contact{padding-top:70px;padding-bottom:90px;display:grid;grid-template-columns:1fr 1.1fr;gap:7vw;border-top:1px solid #3c3e37}.contact-heading h2,.contact-heading h1{font-family:'Manrope',sans-serif;font-size:clamp(2.5rem,4.8vw,4.7rem);letter-spacing:-.06em;line-height:1.05}.contact-heading p{color:#bcbfb3;margin:25px 0}.home .inquiry-form .notice{color:#c3c7b8;background:#252822;border-color:#444b3c;font-size:.78rem}.home .field input,.home .field textarea,.home .field select{background:#20221e;color:#fafbf5;border-color:#555c4b}.home .field input::placeholder,.home .field textarea::placeholder{color:#a7ab9f}.home .field label span,.home .form-note{color:#b3b9a8}.home .inquiry-form .btn{background:#e9eddd;color:#1c2116;border-color:#e9eddd}.home .form-status{color:#e3e9d8}.home .form-status a{text-decoration:underline}.contact-page .landing-contact{border-top:0;padding-top:80px}.legal-inline{padding-bottom:50px;font-size:.85rem;color:#b6bdab}.legal-inline details{border-top:1px solid #394132;padding:18px 0}.legal-inline summary{cursor:pointer}.legal-inline p{max-width:800px;margin-top:14px}.project-dialog{width:min(1100px,94vw);max-height:92dvh;background:#181a16;color:#f5f6ec;border:1px solid #454b3c;padding:35px;overscroll-behavior:contain}.project-dialog::backdrop{background:#000d;backdrop-filter:blur(7px)}.dialog-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}.close-gallery{background:#e8eddc;border:0;padding:12px 20px;color:#21271a;cursor:pointer}.project-dialog h2{font-size:clamp(1.8rem,4vw,3rem)}.project-dialog>p{max-width:650px;margin:20px 0 30px;color:#bfc7b2}.dialog-images{display:grid;gap:18px}.dialog-images img{display:block;width:100%;height:auto;max-height:76vh;object-fit:contain;background:#111}.project-dialog .btn{background:#e8eddc;color:#21271a}.home .mobile-contact{position:static;display:none}html{scroll-padding-top:25px}.home .header .nav{display:flex}.home .menu-toggle{display:none}.home .nav a{min-height:44px;display:flex;align-items:center}.home .nav a.active{border-bottom:1px solid}.home .header .brand small{font-size:.55rem}
@media(max-width:760px){.home .header-inner{gap:15px}.home .header .nav{position:static;width:auto;flex-direction:row;background:none;border:0;padding:0;gap:17px;font-size:.7rem}.home .header .brand small{display:none}.film-frame{aspect-ratio:4/3}.film-frame video{object-position:50% 50%}.intro-film{padding-left:4vw;padding-right:4vw;padding-bottom:28px}.film-caption{font-size:.65rem;gap:10px}.film-caption>a{font-size:.6rem}.film-play{font-size:.65rem;flex-direction:column;gap:10px}.film-play span{width:55px;height:55px}.portfolio-heading{align-items:flex-start;flex-direction:column;gap:12px;padding-top:40px}.portfolio-heading h2{font-size:1.75rem}.portfolio-heading>span{font-size:.51rem}.about-visual{grid-template-columns:1fr;gap:35px;padding-top:35px;padding-bottom:45px}.personal-photo{max-width:400px;width:100%}.personal-photo img{aspect-ratio:4/4.5}.about-copy p{font-size:.91rem}.qualities>span{font-size:1.7rem;padding:14px 0}.qualities{margin-top:25px}.landing-contact{grid-template-columns:1fr;gap:35px;padding-top:40px;padding-bottom:45px}.contact-heading h2,.contact-heading h1{font-size:2.9rem}.home .footer{padding-bottom:25px}.contact-page .landing-contact{padding-top:45px}.project-dialog{padding:20px;width:96vw;max-height:94dvh}.home .minimal-intro p{font-size:.62rem;letter-spacing:.09em}.home .header .brand{font-size:.82rem}.dialog-images img{max-height:70vh}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Integrated silent film and a quieter personal introduction. */
.film-toggle{position:absolute;bottom:18px;right:18px;min-width:66px;min-height:44px;padding:10px 15px;border:1px solid #ffffff80;border-radius:2px;background:#151515a8;color:#fff;font:500 .8rem 'Manrope',sans-serif;cursor:pointer;backdrop-filter:blur(8px)}.film-toggle[hidden]{display:none}.film-toggle:hover{background:#151515}.film-toggle:focus-visible{outline:2px solid white;outline-offset:4px}.personal-photo img{aspect-ratio:3/2;object-position:center}.about-visual{grid-template-columns:1.2fr 1fr;gap:5vw}.about-copy p+p{margin-top:20px}.contact-heading p{max-width:360px;line-height:1.7}.contact-heading h2,.contact-heading h1{font-size:clamp(2.6rem,4.3vw,4.2rem)}
@media(max-width:760px){.about-visual{grid-template-columns:1fr}.personal-photo{max-width:none}.personal-photo img{aspect-ratio:3/2}.film-toggle{bottom:12px;right:12px}.contact-heading h2,.contact-heading h1{font-size:2.7rem}.contact-heading p{max-width:100%}}

/* Retouches demandées : film monochrome, références fixes et portrait arrondi. */
.film-frame video{filter:grayscale(1)}
.personal-photo{border-radius:16px}
.home .client-section{padding:32px 0;background:#1c1c1c;color:#f5f5f0;border-block:1px solid #333}
.home .client-section .eyebrow{font-size:.875rem;color:#bfc1b8}
.client-names{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center}
.client-names li{font-size:1rem;line-height:1.6;font-weight:500;max-width:100%;overflow-wrap:break-word}
@media(max-width:760px){.personal-photo{border-radius:12px}.client-names{gap:12px 22px}.client-names li{font-size:.875rem}.home .client-section{padding:26px 0}}

/* Client names: continuous, controllable movement; static without JS. */
.home .client-intro{margin-bottom:18px}
.client-track{display:flex;width:max-content}
.client-track .client-names{display:flex;flex-wrap:nowrap;align-items:center;gap:48px;margin:0;padding:0 48px 0 0;flex-shrink:0}
.client-track .client-names li{white-space:nowrap;font-size:1rem;color:#d4d5ce;font-weight:500}
.client-marquee{overflow:hidden}
.client-copy{display:none!important}
.client-section.is-animated .client-copy{display:flex!important}
.client-section.is-animated .client-track{animation:client-scroll 70s linear infinite}
.client-section.is-paused .client-track{animation-play-state:paused}
.home .client-pause{font:inherit;font-size:.875rem;min-height:44px;padding:8px 14px;color:#e6e6df;background:transparent;border:1px solid #65655d;border-radius:3px;cursor:pointer}
.client-pause:focus-visible{outline:2px solid #fff;outline-offset:4px}
@keyframes client-scroll{to{transform:translateX(-50%)}}
.client-section:not(.is-animated) .client-track{width:100%}
.client-section:not(.is-animated) .client-names{flex-wrap:wrap;gap:14px 28px;padding:0 6vw}
.client-section:not(.is-animated) .client-names li{white-space:normal}
.home .project .image:after{content:none;display:none}
.google-reviews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}
.google-review{padding:30px;background:#20211f;border:1px solid #363832;min-width:0}
.review-stars{font-size:1rem;letter-spacing:.14em;color:#e7d7a2;margin-bottom:18px}
.google-review blockquote{margin:0;font-family:inherit}
.google-review blockquote p{font-size:1rem;line-height:1.7;color:#e1e2dc;white-space:normal}
.google-review blockquote p+p{margin-top:14px}
.google-review footer{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;margin-top:24px}
.google-review footer strong{font-size:1rem}.google-review footer span{font-size:.875rem;color:#b7b9af}
.home .form-status[data-state="success"]{color:#d5e8c0}
@media(max-width:760px){.google-reviews{grid-template-columns:1fr}.google-review{padding:24px}.client-track .client-names{gap:32px;padding-right:32px}.client-track .client-names li{font-size:.875rem}.home .client-intro{gap:14px}.home .client-intro .eyebrow{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.client-section.is-animated .client-track{animation:none!important;width:100%}.client-section .client-copy{display:none!important}.client-section .client-track .client-names{flex-wrap:wrap;gap:14px 28px;padding:0 6vw}.client-track .client-names li{white-space:normal}.client-pause{display:none}}

/* Real project categories; overlays also respond to keyboard focus. */
.project-category{position:absolute;left:16px;bottom:16px;z-index:2;padding:9px 14px;border:1px solid #ffffff40;background:#151515d9;color:#fff;font-size:.875rem;line-height:1.4;letter-spacing:.02em;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s;pointer-events:none}
.project a:hover .project-category,.project a:focus-visible .project-category{opacity:1;transform:none}
.project a:focus-visible{outline:2px solid #f3f3e7;outline-offset:6px}
.review-organization{flex-basis:100%;color:#d4d7cc!important}
@media(hover:none),(max-width:760px){.project-category{opacity:1;transform:none;left:12px;bottom:12px}}

/* Presentation-only photo adjustment: original image bytes are preserved. */
.foundation-photo{display:block;overflow:hidden;aspect-ratio:16/10;background:#151515}
.foundation-photo img,.dialog-images .foundation-photo img{width:100%;height:100%;max-height:none;aspect-ratio:auto!important;object-fit:cover;object-position:50% 50%;filter:contrast(1.10)}
.dialog-images .foundation-photo{width:100%;max-width:100%}
.film-frame video{filter:grayscale(1) contrast(1.10)}
.contact-heading h1,.contact-heading h2{max-width:11ch;line-height:1.08}

/* Compact, continuously scrolling testimonials, stopped during interaction. */
.home .reviews-section{padding-top:30px;padding-bottom:36px}
.reviews-viewport{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#656b5c transparent;overscroll-behavior-x:contain}
.reviews-track{display:flex;width:max-content}
.reviews-group{display:flex;gap:18px;padding-right:18px}
.review-slide{flex:0 0 var(--review-width, min(85vw,420px));width:var(--review-width,min(85vw,420px));min-width:0;padding:22px;background:#20211f;border:1px solid #363832;display:flex;flex-direction:column}
.review-source{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-bottom:12px}
.review-source .review-stars{margin:0;line-height:1.4}.review-source a{font-size:.875rem;color:#c7cabf;text-decoration:underline;text-underline-offset:3px}
.review-slide blockquote{margin:0;font-family:inherit}.review-slide blockquote p{font-size:1rem;line-height:1.6;color:#e0e2d8}.review-slide blockquote p+p{margin-top:10px}
.review-slide footer{display:flex;flex-direction:column;gap:4px;margin:14px 0 10px}.review-slide footer strong{font-size:1rem}.review-slide footer span{font-size:.875rem;line-height:1.4;color:#b6bca9}
.review-read,.review-close{min-height:44px;padding:8px 0;border:0;background:transparent;color:#e8ebdf;font:inherit;font-size:.875rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.review-read:focus-visible,.review-close:focus-visible{outline:2px solid #fff;outline-offset:3px}
.review-read{margin-top:auto;align-self:flex-start}
.reviews-section.is-ready .review-preview{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;height:4.8em;font-size:1rem;line-height:1.6}
.reviews-section.is-ready .reviews-viewport{scrollbar-width:none}.reviews-section.is-ready .reviews-viewport::-webkit-scrollbar{display:none}
.review-dialog{width:min(680px,94vw);max-height:88dvh;overflow:auto;padding:30px;background:#20211f;color:#f0f2e8;border:1px solid #626855;overscroll-behavior:contain}
.review-dialog::backdrop{background:#000c}.home .review-dialog h2{display:block;font-family:inherit;font-size:1.5rem;margin:16px 0 8px;line-height:1.3}
.review-dialog .review-close{display:block;margin-left:auto}.review-dialog .review-org{font-size:.875rem;color:#bcc3af;margin-bottom:18px}
.review-dialog blockquote{margin:20px 0;font:inherit}.review-dialog blockquote p{font-size:1rem;line-height:1.7}.review-dialog blockquote p+p{margin-top:14px}
.client-section:hover .client-track,.client-section:focus-within .client-track{animation-play-state:paused}
@media(max-width:760px){.review-slide{padding:20px}.review-dialog{padding:22px}.home .reviews-section .section-head{flex-wrap:wrap;gap:14px}.home .reviews-section .section-head .text-link{font-size:.875rem}.home .reviews-section .eyebrow{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.reviews-viewport{scroll-behavior:auto!important}.reviews-section.is-ready .reviews-viewport{scrollbar-width:thin}}
