@font-face{font-family:Plex;src:url('/assets/mono-text.woff2') format('woff2');font-display:swap}@font-face{font-family:Utah;src:url('/assets/logo.woff2') format('woff2');font-display:swap}*{box-sizing:border-box}body{margin:0;background:#fff;color:#000;font:16px/1.6 Plex,'Courier New',monospace}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:1px solid;outline-offset:6px}header{text-align:center;padding-top:40px;height:110px}.brand{display:block;font:20px/28px Utah,'Arial Narrow',sans-serif}nav{display:flex;justify-content:center;gap:28px;line-height:22.4px}header nav a{color:#bfbfbf}.home .projects-link,.info .info-link{color:#000}.grid{display:grid;grid-template-columns:repeat(7,110px);justify-content:space-between;row-gap:250px;padding:107px 3.16vw 140px}.project{text-align:center;display:block;line-height:22px}.project img{display:block;width:100%;height:auto;aspect-ratio:480/272;object-fit:cover;margin-bottom:44px}.project span{display:block}h1{font:inherit;text-align:center;margin:0;height:23px}.back{position:absolute;top:52px;left:26px;font:24px/1 Arial}.gallery{height:calc(100vw * .598);min-height:450px;max-height:860px;position:relative;display:flex;align-items:center;justify-content:center;margin:0 auto}.slides{width:100%;height:100%;display:grid;place-items:center}figure{margin:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center}figure[hidden]{display:none}figure img{display:block;max-width:80vw;max-height:33.333vw;width:auto;height:auto;object-fit:contain}.arrow{position:absolute;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;font:42px/1 Arial;font-weight:200;padding:12px}.previous{left:6vw}.next{right:6vw}.project-nav{justify-content:space-between;padding:0 30px;font:24px/24px Arial}.detail details{text-align:center;margin:12px auto 50px;max-width:760px;padding:0 24px}.detail summary{cursor:pointer;list-style:none;display:inline-block;padding:8px 12px}.detail summary::-webkit-details-marker{display:none}.detail details p{text-align:center;font-size:14px;margin:25px 0 45px}.information{max-width:760px;margin:88px auto 90px;font-size:16px;line-height:25.6px}.information p{margin:0;min-height:25.6px}.information a{text-decoration:none}.contact{max-width:600px;margin:88px auto;padding:0 24px}.contact label{display:block;margin-bottom:24px}.contact input,.contact textarea{display:block;width:100%;border:0;border-bottom:1px solid #aaa;border-radius:0;background:white;padding:8px 0;outline-offset:5px}.contact button{border:0;background:#000;color:#fff;padding:14px 20px;cursor:pointer}.hint{font-size:11px;margin:16px 0 40px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:751px) and (max-width:1000px){.grid{grid-template-columns:repeat(4,110px)}}@media(max-width:750px){body{font-size:13px}header{padding-top:30px;height:95px}.grid{grid-template-columns:repeat(2,minmax(0,110px));padding:80px 7vw 90px;row-gap:120px;column-gap:40px}.information{margin:65px 24px;line-height:1.65;font-size:12px}.information p{min-height:20px}.gallery{height:68vh;min-height:360px;max-height:650px}figure img{max-width:90vw;max-height:58vh}.arrow{font-size:30px;background:transparent;padding:9px}.previous{left:0}.next{right:0}.back{top:42px;left:18px}.detail details p{font-size:12px}.contact{margin-top:60px}}
.contact{max-width:580px;margin-top:58px}.contact h2{font:20px/1.4 Plex,monospace;margin:0}.contact>p{font-size:14px;color:#777;margin:6px 0 24px}.contact label{font-size:12px;color:#777;margin-bottom:16px}.contact input,.contact textarea{border:1px solid #000;padding:8px;color:#000;margin-top:5px}.contact input{height:37px}.contact textarea{height:94px;resize:vertical}.contact button{width:100%;font-size:14px}.contact .return{display:block;text-align:center;font-size:12px}.contact .hint{margin:10px 0 24px}

.contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#contact-feedback{font-size:12px;margin:18px 0}



#contact-form > button[type="submit"]:hover{background:#fff;color:#000;border:0;box-shadow:none}
#contact-form input:focus,#contact-form textarea:focus{outline:none;box-shadow:none}
.contact .return:hover{background:#000;color:#fff;border:0;box-shadow:none}

#contact-form > button[type="submit"],.contact .return{display:flex;align-items:center;justify-content:center;width:100%;padding:14px 20px;line-height:22.4px;border:0;box-sizing:border-box}

body{ text-transform:uppercase }
input,textarea,button,select,option,input::placeholder,textarea::placeholder{ text-transform:uppercase }

.chevron-icon{display:inline-block;flex:none;width:16px;height:20px;vertical-align:middle;color:#000}
.chevron-icon.chevron-left{transform:rotate(180deg)}
.arrow{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;font-size:0}
.back{display:flex;align-items:center;justify-content:center;width:32px;height:32px;top:46px;left:18px;font-size:0}
.project-nav a{display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:0}
@media(max-width:750px){.back{top:36px;left:10px}}

/* Keep information in normal flow below the image, fully clickable. */
.detail .gallery{height:calc((clamp(450px,59.8vw,860px) + 33.333vw)/2);min-height:0;max-height:none;padding-top:max(0px,calc((clamp(450px,59.8vw,860px) - 33.333vw)/2))}
.detail .slides{height:33.333vw}
.detail .gallery .arrow{top:calc(100% - 16.6665vw)}
.detail details{position:relative;margin:12px auto 24px}
.detail .project-nav{margin-bottom:40px}
@media(max-width:750px){.detail .gallery{height:auto;padding-top:56px}.detail .slides{height:58vh}.detail .gallery .arrow{top:6px;transform:none;background:transparent}.detail .gallery .previous{left:5vw}.detail .gallery .next{right:5vw}.detail details{margin-top:8px}}



.brand-logo{height:28px;line-height:0}
.brand-logo-frame{position:relative;display:block;width:88px;height:21px;margin:3px auto 4px;overflow:hidden}
.brand-logo img{position:absolute;width:223px;height:223px;max-width:none;left:50%;top:50%;transform:translate(-50%,-50%)}
/* Logo MARCH : format légèrement réduit et cadrage complet. */
.brand-logo-frame{width:68px;height:18px;margin:4px auto 6px}
.brand-logo img{width:173px;height:173px;top:calc(50% + 4px)}

/* Switch the project overview between compact and enlarged images. */
.home .grid-toggle{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#000;font:24px/1 Plex,monospace;cursor:pointer;touch-action:manipulation}
.home .grid-toggle:focus-visible{outline:1px solid #000;outline-offset:2px}
.home .grid.grid-expanded{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:8vw;row-gap:150px}
@media(max-width:750px){.home .grid.grid-expanded{grid-template-columns:minmax(0,1fr);row-gap:100px}}

.home .grid-toggle .grid-plus{display:block;flex:none;width:16px;height:16px}

/* Compact public header: logo and navigation centered in a 64px menu. */
.home>header,.info>header,.detail>header{height:64px;padding-top:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.detail .back{top:0;left:0;width:44px;height:44px}

/* Keep exactly 32px below the public site footer. */
body.home,body.info,body.detail{padding-bottom:32px}

/* A restrained image zoom, matching the reference's 2% hover scale. */
.home .project{transform-origin:center;transition:transform 300ms cubic-bezier(.4,0,.2,1)}
@media(hover:hover) and (pointer:fine){.home .project:hover,.home .project:focus-visible{transform:scale(1.02)}}
@media(prefers-reduced-motion:reduce){.home .project{transition:none;transform:none!important}}

.detail .project-title{height:auto;margin:24px 24px 0;text-align:center;font:inherit}

/* Center the project image on the viewport, accounting for the 64px header. */
.detail{--project-gallery-height:max(120px,min(33.333vw,calc(100svh - 224px)))}
.detail .gallery{height:var(--project-gallery-height);min-height:0;max-height:none;padding-top:0;margin:max(24px,calc((100svh - var(--project-gallery-height))/2 - 64px)) auto 0}
.detail .slides{height:100%;min-height:0;display:flex;align-items:center;justify-content:center}
.detail figure{min-width:0;min-height:0;max-height:100%}
.detail figure img{max-height:var(--project-gallery-height);width:auto;height:auto}
.detail .gallery .arrow{top:50%;transform:translateY(-50%)}
@media(max-width:750px){.detail{--project-gallery-height:max(120px,min(58svh,calc(100svh - 224px)))}.detail .gallery{margin-top:max(56px,calc((100svh - var(--project-gallery-height))/2 - 64px))}.detail figure img{max-width:90vw}.detail .gallery .arrow{top:-50px;transform:none}}

.site-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:24px;padding:32px 24px 0;text-align:center;font-size:14px;line-height:20px}
.site-footer a{display:inline-block;color:#888}
.site-footer a:hover{color:#777}

.site-footer .footer-shop{margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#888;font:inherit;line-height:inherit;opacity:1;-webkit-text-fill-color:#888;cursor:default}

/* Center the contact block between the menu and footer. */
body.contact-page{min-height:100svh;display:flex;flex-direction:column}
.contact-page>header,.contact-page>.site-footer{flex:none}
.contact-page .contact{flex:none;width:100%;max-width:580px;margin:auto;padding:48px 24px}
.contact-page .contact>h2,.contact-page .contact>p{text-align:center}
@media(max-width:750px){.contact-page .contact{padding-top:32px;padding-bottom:32px}}

/* Keep the footer at the bottom on short pages, after content on long pages. */
body.home,body.info,body.detail{min-height:100svh;display:flex;flex-direction:column}
body.home>header,body.info>header,body.detail>header{flex:0 0 auto}
body.home>main,body.detail>main{flex:0 0 auto;width:100%}
body.info:not(.contact-page)>.information{flex:0 0 auto;width:calc(100% - 48px)}
.site-footer{flex:0 0 auto;margin-top:auto}
.contact-page>.site-footer{margin-top:0}

/* Keep outgoing and incoming photos in one clipped, fixed-height stage. */
.detail .slides{position:relative;overflow:hidden;touch-action:pan-y}
.detail .slides>figure{position:absolute;inset:0;width:100%;height:100%;margin:0}
.detail .slides img{user-select:none;-webkit-user-drag:none}

/* Small image indicators beneath each project gallery. */
.detail .gallery-dots{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0;margin:12px 24px 0}
.detail .gallery-dot{display:flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px;margin:0;padding:0;border:0;background:transparent;color:#c8c8c8;cursor:default}
.detail .gallery-dot::before{content:"";display:block;width:5px;height:5px;border-radius:50%;background:currentColor}
.detail .gallery-dot[aria-current="true"]{color:#000}
.detail .gallery-dot:hover{color:#777}
.detail .gallery-dot[aria-current="true"]:hover{color:#000}
.detail .gallery-dot:disabled{cursor:default;opacity:1}
.detail .gallery-dots+.project-title{margin-top:12px}
