:root{--blue:#b0cee0;--mint:#d8e9d2;--ink:#172126;--white:#f7f8f4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font-family:'Plus Jakarta Sans',sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:7px}header{height:100px;padding:30px 3.5%;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:20}.logo{width:35px;height:35px}.logo svg{width:100%;height:100%}nav{display:flex;gap:38px;align-items:center;font-size:12px;font-weight:600}nav a{position:relative;padding:7px 0}nav a:after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--ink);transition:width .25s}nav a:hover:after,nav a[aria-current=page]:after{width:100%}.count{font-size:8px;vertical-align:super;margin-left:3px}.menu-toggle{display:none}.gallery{height:calc(100svh - 100px);min-height:720px;max-height:1100px;position:relative;overflow:hidden}.hero-name{position:absolute;z-index:3;top:36%;left:50%;transform:translateX(-50%);margin:0;font-size:clamp(64px,8vw,128px);letter-spacing:-0.025em;line-height:1;font-weight:300;pointer-events:none}.hero-name sup{font-size:14px;letter-spacing:-0.025em;position:absolute;right:-26px;top:23%}.hero-line{position:absolute;top:58%;left:41%;z-index:4;font-size:12px;line-height:1.65;max-width:210px}.eyebrow{font-size:10px;letter-spacing:-0.025em;text-transform:uppercase;font-weight:600}.hero-index{position:absolute;left:3.5%;bottom:66px;font-size:10px;line-height:1.8}.hero-bottom{position:absolute;right:3.5%;bottom:66px;font-size:11px;display:flex;gap:28px;align-items:center}.circle-link{width:34px;height:34px;border:1px solid #17212660;border-radius:50%;display:grid;place-items:center;font-size:18px}.piece{position:absolute;display:block;animation:enter 1s both;animation-delay:var(--delay);}.piece .visual{overflow:hidden;position:relative;width:100%;height:100%;background:#d5ded9}.piece img{height:100%;width:100%;object-fit:cover;transition:transform .65s}.piece .visual:hover img{transform:scale(1.045)}.piece:nth-of-type(1){width:21%;height:39%;left:9%;top:3%;--delay:.1s}.piece:nth-of-type(2){width:27%;height:27%;left:62%;top:0;--delay:.25s}.piece:nth-of-type(3){width:18%;height:30%;left:19%;top:61%;--delay:.4s}.piece:nth-of-type(4){width:25%;height:30%;left:72%;top:56%;--delay:.55s}.caption{display:flex;justify-content:space-between;gap:10px;font-size:10px;padding-top:10px}.caption .category{opacity:.65}.piece .caption{opacity:1}.visual svg,.visual canvas{display:block;width:100%;height:100%;transition:transform .6s}.piece .visual:hover svg{transform:scale(1.035)}.visual-tag{position:absolute;left:14px;bottom:12px;font-size:8px;letter-spacing:-0.025em;color:#f7f8f4}.ghost-note{position:absolute;left:3.5%;top:47%;font-size:9px;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:-0.025em}.page{padding:65px 8% 100px;min-height:calc(100svh - 170px);animation:enter .6s both}.page h1{font-size:clamp(55px,8vw,130px);font-weight:500;letter-spacing:-0.025em;line-height:1.05;margin:30px 0 50px;max-width:1000px}.page-intro{max-width:560px;margin-left:40%;font-size:21px;line-height:1.6;letter-spacing:-0.025em}.page-intro p{margin-top:0}.subnote{font-size:11px;line-height:1.8;opacity:.7}.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px 12%;margin-top:80px}.product-card:nth-child(even){padding-top:100px}.product-card .visual{height:330px;overflow:hidden;position:relative;background:var(--mint)}.product-card:nth-child(3) .visual{height:410px}.product-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.product-card .visual:hover img,.product-card .visual:hover svg{transform:scale(1.03)}.product-card .caption{font-size:12px}.detail-image{height:65vh;min-height:350px;position:relative;overflow:hidden;margin-top:65px;background:var(--mint)}.detail-image img{width:100%;height:100%;object-fit:cover}.detail-meta{display:flex;gap:60px;margin:40px 0;font-size:12px}.next{display:block;border-top:1px solid #17212640;margin-top:70px;padding-top:24px;font-size:28px;letter-spacing:-0.025em}.editorial{display:grid;grid-template-columns:1fr 1.2fr;gap:15%;margin-top:80px;padding-top:25px;border-top:1px solid #17212640}.editorial h2{font-size:14px;font-weight:500}.editorial p{font-size:22px;line-height:1.65;margin-top:0;letter-spacing:-0.025em}.contact-page{display:flex;flex-direction:column;justify-content:center}.email{display:block;font-size:clamp(27px,7.7vw,120px);letter-spacing:-0.025em;border-bottom:1px solid #17212655;padding-bottom:25px}.contact-page h1{font-size:clamp(40px,5vw,75px);margin-bottom:70px}.contact-meta{display:flex;justify-content:space-between;margin-top:30px;font-size:12px}footer{padding:25px 3.5%;display:flex;justify-content:space-between;font-size:9px;border-top:1px solid #17212622}body[data-page=contact]{background:var(--white)}body[data-page=thesis]{background:var(--white)}body{transition:background .5s}.skip{position:fixed;top:-100px;z-index:100;background:var(--white);padding:15px}.skip:focus{top:10px}#mobile-nav{position:absolute;z-index:15;inset:0;background:var(--white);padding:120px 8% 40px}#mobile-nav a{display:block;font-size:48px;letter-spacing:-0.025em;margin:20px 0}@keyframes enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.gallery{max-height:none}}@media(max-width:760px){header{height:82px;padding:23px 6%}nav{display:none}.menu-toggle{display:block;border:0;background:none;font-size:12px;padding:8px}.menu-toggle span{margin-left:14px}.gallery{min-height:1070px;height:auto;max-height:none;padding:0 6% 80px;display:grid;grid-template-columns:1fr 1fr;gap:52px 24px;overflow:hidden}.hero-name{top:60px;font-size:15vw;left:48%;white-space:nowrap}.hero-name sup{font-size:9px;right:-18px}.hero-line{position:relative;left:auto;top:auto;grid-column:1/-1;margin:160px 0 10px 33%;font-size:11px}.piece{position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:auto!important;translate:none!important}.piece:nth-of-type(1){grid-column:1;grid-row:2}.piece:nth-of-type(2){grid-column:2;grid-row:2;margin-top:65px}.piece:nth-of-type(3){grid-column:1;grid-row:3;margin-top:8px}.piece:nth-of-type(4){grid-column:2;grid-row:3;margin-top:65px}.piece .visual{height:200px}.piece:nth-of-type(2) .visual{height:145px}.piece:nth-of-type(3) .visual{height:180px}.piece:nth-of-type(4) .visual{height:150px}.piece .caption{opacity:1;transform:none;flex-direction:column;gap:4px;font-size:10px}.hero-index{bottom:25px;left:6%}.hero-bottom{right:6%;bottom:28px;font-size:10px;gap:12px}.ghost-note{display:none}.page{padding:45px 6% 70px}.page h1{margin:25px 0 40px;font-size:58px}.page-intro{margin-left:15%;font-size:18px}.product-grid{gap:40px 20px;margin-top:45px}.product-card:nth-child(even){padding-top:65px}.product-card .visual{height:200px}.product-card:nth-child(3) .visual{height:230px}.product-card .caption{flex-direction:column;font-size:10px}.editorial{gap:20px;grid-template-columns:1fr;margin-top:50px}.editorial p{font-size:19px}.detail-image{height:45vh;min-height:260px}.detail-meta{gap:25px;flex-wrap:wrap}.contact-page{min-height:75vh}.contact-page h1{font-size:45px}.contact-meta{flex-direction:column;gap:20px}.email{font-size:9vw}footer{padding:22px 6%;font-size:9px;gap:20px}footer span{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.piece{translate:none!important}}
 .detail-image>.visual{width:100%;height:100%;position:relative}.detail-image>.visual>svg{width:100%;height:100%}





/* Espacement demandé pour tous les textes de l’interface. */
body, body *{letter-spacing:-0.025em!important}


.language-switch{display:flex;align-items:center;gap:7px;margin-left:auto;font-size:11px;position:relative;z-index:21}
.language-switch button{background:none;border:0;padding:7px 2px;font-size:inherit;opacity:.55}
.language-switch button[aria-pressed=true]{opacity:1;text-decoration:underline;text-underline-offset:4px}
.language-switch button:hover{opacity:1}
header nav{position:absolute;left:50%;transform:translateX(-50%);margin-left:0}
@media(max-width:760px){.language-switch{margin-left:auto;margin-right:20px}}


/* Identité en touches : bleu dominant, menthe en ponctuation. */
.logo{color:var(--blue)}
.logo img{display:block;width:100%;height:100%;object-fit:contain;object-position:left center}
.logo{width:124px;height:94px;flex-shrink:0;margin-left:calc(20px - 3.5vw);transform:translateY(16px)}
@media(max-width:760px){.logo{width:94px;height:74px;margin-left:calc(16px - 6vw);transform:translateY(12px)}}
nav a::after{background:var(--blue);height:2px}
.eyebrow::before{content:"";display:inline-block;width:20px;height:4px;margin-right:10px;vertical-align:middle;background:var(--blue);box-shadow:7px 0 0 var(--mint)}
.hero-line::before{content:"";display:block;width:34px;height:3px;background:var(--blue);margin-bottom:14px}
.circle-link{border-color:var(--blue);background:var(--blue)}
.language-switch button[aria-pressed=true]{background:var(--blue);text-decoration:none;padding-inline:5px}
.language-switch button{padding-inline:5px}
.editorial,.next,.email{border-color:var(--blue)}
footer{border:0}
main:focus{outline:none}
footer>a:first-child::before{content:"";display:inline-block;width:7px;height:7px;background:var(--blue);margin-right:12px;box-shadow:4px 0 0 var(--mint)}
.contact-meta>span:first-child::before{content:"";display:inline-block;width:7px;height:7px;background:var(--mint);margin-right:9px}
#mobile-nav{border-left:4px solid var(--blue)}
#mobile-nav::after{content:"";display:block;width:28px;height:4px;margin-top:40px;background:var(--mint)}

.email{transition:border-color .25s ease}
.email:hover,.email:focus-visible{border-color:var(--mint)}
nav a[href="#contact"]:hover::after,nav a[href="#contact"]:focus-visible::after{background:var(--mint)}
.sequence-number{color:var(--ink);background:var(--blue);display:inline-flex;align-items:center;justify-content:center;width:2.2em;height:2.2em;vertical-align:middle;line-height:1;flex-shrink:0}

.editorial>div:only-child{grid-column:2}
@media(max-width:760px){.editorial>div:only-child{grid-column:1}}

.brand-initial{color:#000}
.hardware-page{position:relative;min-height:calc(100svh - 170px);display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);align-items:center;gap:2%;padding:0 2%}
body[data-page=home] header{position:fixed;inset:0 0 auto;background:transparent}
body[data-page=home] #mobile-nav{position:fixed}
.home-opening{height:100svh;width:100%;position:relative}
.home-opening-title{position:absolute;z-index:1;top:115px;left:4%;right:4%;margin:0;text-align:center;font-size:2.3715vw;font-weight:300;line-height:1.2;white-space:nowrap}
@media(max-width:760px){.home-opening-title{top:100px}}
.home-opening img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.home-opening{overflow:hidden}
.home-opening img{transition:filter .45s ease,opacity .45s ease,transform .6s ease}
.home-opening.is-leaving img{filter:blur(22px);opacity:0;transform:scale(1.04)}
.hardware-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hardware-heading h1{font-size:clamp(40px,5vw,72px);font-weight:300;line-height:1.1;margin:18px 0 0}
.hardware-page figure{margin:0}
.hardware-page figcaption{font-size:10px;margin-top:12px}
.hardware-gallery{--hardware-size:min(70vw,calc((100svh - 220px)*16/9),1400px);position:relative;display:flex;align-items:center;gap:7vw;padding:25px max(0px,calc((100% - var(--hardware-size))/2));height:calc(100svh - 170px);min-height:340px;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain;scroll-behavior:auto}
.hardware-gallery::-webkit-scrollbar{display:none}
.hardware-gallery:focus-visible{outline:2px solid var(--blue);outline-offset:-4px}
.hardware-render{flex:0 0 var(--hardware-size);transform:scale(.65);filter:blur(9px);opacity:.4;transition:transform .45s ease,filter .45s ease,opacity .45s ease}
.hardware-render.is-active{transform:scale(1);filter:blur(0);opacity:1}
.hardware-square{aspect-ratio:16/9;overflow:hidden;background:var(--white)}
.hardware-square img{display:block;width:100%;height:100%;object-fit:contain}
.hardware-specs{padding:35px 0;max-width:450px;width:100%}
.hardware-specs dl{margin:0}
.hardware-letter{color:var(--blue)}
.hardware-specs dl>div{padding:20px 0;border-bottom:1px solid var(--blue)}
.hardware-specs dl>div:first-child{border-top:1px solid var(--blue)}
.hardware-specs dt{font-size:11px;opacity:.65;margin-bottom:8px}
.hardware-specs dd{font-size:clamp(20px,2.2vw,32px);font-weight:400;margin:0;line-height:1.25}
@media(max-width:760px){.hardware-page{grid-template-columns:minmax(0,1fr);gap:0;padding-bottom:45px}.hardware-gallery{--hardware-size:92vw;height:auto;min-height:0;gap:24px;padding-block:30px}.hardware-specs{max-width:none;padding:10px 0}.hardware-specs dl{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.hardware-specs dl>div:first-child{border-top:0}.hardware-specs dd{font-size:20px}}
.about-page{position:relative;isolation:isolate;min-height:720px;max-height:1100px;height:calc(100svh - 100px);overflow:hidden}
@media(min-width:1600px){.about-page{max-height:none}}
.about-copy{position:relative;z-index:2;width:320px;max-width:28%;margin:25px 0 0 3.5%;font-size:13px;line-height:1.7}
.about-copy h1{margin:0 0 25px;font-size:10px}
.about-copy>p{margin:0 0 25px}
.about-founders{margin:30px 0 0;border-top:1px solid var(--blue);padding-top:20px}
.about-founders>div{display:flex;justify-content:space-between;align-items:baseline;gap:15px;margin-bottom:12px}
.about-founders dt{font-weight:500;white-space:nowrap}
.founder-name{border:0;padding:0;background:none;font:inherit;text-align:left}
.founder-name:hover{text-decoration:underline;text-underline-offset:4px}
.about-founders dd{margin:0;font-size:10px;text-transform:uppercase;text-align:right;opacity:.65}
.about-photos{position:absolute;z-index:1;top:0;bottom:0;left:43%;width:25%;max-width:360px;overflow-y:auto;scrollbar-width:none;scroll-behavior:auto;overscroll-behavior-y:contain}
.about-photos::-webkit-scrollbar{display:none}
.about-photos:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.about-photo-group{display:flex;flex-direction:column;gap:40px;padding-bottom:40px}
.about-photo-group img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;filter:grayscale(1)}
.about-wordmark{left:50%;top:36%;transform:translateX(-50%)}
.about-wordmark-back{z-index:0}
.about-wordmark-front{z-index:3}
.about-wordmark-under{visibility:hidden}

@media(max-width:760px){.about-page{height:auto;min-height:0;max-height:none;padding:160px 6% 60px;display:flex;flex-direction:column;gap:40px}.about-copy{width:100%;max-width:420px;margin:0}.about-photos{position:relative;inset:auto;width:75%;max-width:320px;height:440px;align-self:center}.about-wordmark{left:48%;top:60px;bottom:auto}}
.thesis-page h1{font-size:min(4.4vw,64px);line-height:1.15;max-width:none}
@media(max-width:760px){.thesis-page h1{font-size:5vw}}
.thesis-reader{max-width:1050px;margin-left:10%}
.thesis-paragraph{min-height:220px;font-size:26px;line-height:1.65;white-space:pre-line;overflow-wrap:anywhere}
.thesis-paragraph p{margin:0}
.thesis-paragraph p+p{margin-top:1.25em}
.thesis-paragraph h2{font-size:21px;line-height:1.4;font-weight:600;margin:0 0 28px}
.thesis-navigation{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:24px}
.thesis-dot{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;border-radius:50%}
.thesis-dot::before{content:"";width:14px;height:14px;border-radius:50%;background:var(--blue)}
.thesis-dot[aria-pressed="true"]::before{background:var(--mint)}
.thesis-dot:hover::before{box-shadow:0 0 0 4px #b0cee033}
@media(max-width:760px){.thesis-reader{margin-left:0;max-width:100%}.thesis-paragraph{min-height:250px;font-size:21px}}
.brand-last{color:var(--blue)}
nav a[href="#thesis"],nav a[href="#about"],#mobile-nav a[href="#thesis"],#mobile-nav a[href="#about"]{color:var(--ink)}
nav a[href="#contact"],#mobile-nav a[href="#contact"]{color:var(--blue)}

