*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#111;background:#fff;font-weight:400}.wrap{width:min(1740px,calc(100% - 112px));margin:auto}.header{height:82px;display:flex;align-items:center;position:relative;padding:0 56px;background:#fff}.brand{display:flex}.brand img{width:76px;height:auto}.header nav{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:42px}.header nav a,.expertises a,.studio a,.footer-inner a{color:inherit;text-decoration:none;font-size:10px;letter-spacing:.14em;font-weight:600}.hero{width:min(1760px,calc(100% - 160px));margin:34px auto 0;position:relative;overflow:hidden;background:#fff}.hero>img,.hero-media{display:block;width:100%;height:auto}.hero-media{object-fit:contain;background:#fff}.hero-copy{position:absolute;z-index:2;left:50%;top:12%;transform:translateX(-50%);width:90%;text-align:center}.hero-copy h1{font-size:clamp(22px,2vw,38px);line-height:1.05;letter-spacing:-.025em;font-weight:400;margin:0;white-space:nowrap}.hero-rule{display:block;width:58px;height:1px;background:#111;margin:28px auto 0}.hero-meta{position:absolute;z-index:2;left:4.5%;bottom:28px;display:flex;flex-direction:column;font-size:10px;line-height:1.5}.expertises{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:130px 0 145px}.expertises article{max-width:620px}.expertises article+article{border-left:1px solid #ddd;padding-left:11%}.num{font-size:13px;color:#999;margin-bottom:28px}.expertises h2,.studio h2{font-size:clamp(30px,2.4vw,47px);line-height:1.04;letter-spacing:-.035em;font-weight:400;margin:0 0 28px}.expertises p{font-size:14px;line-height:1.6;max-width:520px;margin:0 0 18px}.expertises .detail{font-size:11px;color:#555;line-height:1.65;margin-bottom:28px}.expertises a span{margin-left:10px}.projects{padding-bottom:145px}.section-head{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid #d7d7d7;padding-bottom:17px;margin-bottom:32px}.section-head h2{font-size:27px;font-weight:400;letter-spacing:-.025em;margin:0}.section-head span,.eyebrow{font-size:9px;letter-spacing:.16em;font-weight:600}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.pic{aspect-ratio:1.48/1;overflow:hidden;background:#eee}.pic img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.grid article:hover img{transform:scale(1.015)}.grid h3{font-size:11px;letter-spacing:.03em;margin:15px 0 6px}.grid p{font-size:11px;margin:0;color:#555}.studio{border-top:1px solid #d7d7d7;padding:105px 0 120px;display:grid;grid-template-columns:.8fr 1.2fr;gap:12%}.studio>div:first-child{max-width:650px}.studio h2{margin-top:24px}.studio>div:first-child p{font-size:14px;line-height:1.65;max-width:590px;margin-bottom:28px}.collab{padding-top:4px}.collab p{font-size:clamp(19px,1.55vw,29px);line-height:1.55;letter-spacing:-.02em;margin-top:25px}footer{background:#0b0b0b;color:#fff}.footer-inner{min-height:400px;padding:82px 0 52px;display:flex;justify-content:space-between;align-items:flex-start}.footer-inner h2{font-size:clamp(42px,4vw,72px);font-weight:400;line-height:.95;letter-spacing:-.04em;margin:0 0 42px}.social{display:flex;flex-direction:column;gap:15px;align-items:flex-end}.social span{font-size:9px;letter-spacing:.14em;margin-top:30px;color:#aaa}@media(max-width:800px){.wrap{width:calc(100% - 40px)}.header{padding:0 20px;height:70px}.header nav{display:none}.brand img{width:64px}.hero{width:calc(100% - 40px);margin-top:20px}.hero-copy{left:50%;right:auto;top:8%;width:92%;max-width:none}.hero-copy h1{font-size:clamp(15px,4.1vw,24px);white-space:normal}.hero-rule{width:40px;margin-top:16px}.expertises{grid-template-columns:1fr;gap:75px;padding:85px 0}.expertises article+article{border-left:0;border-top:1px solid #ddd;padding-left:0;padding-top:65px}.grid{grid-template-columns:1fr;gap:50px}.studio{grid-template-columns:1fr;gap:75px;padding:80px 0}.footer-inner{min-height:360px;flex-direction:column;gap:70px}.social{align-items:flex-start}}

/* V19 — hero title option 3: bottom-left */
.hero-copy{left:4.5%;right:auto;top:auto;bottom:78px;transform:none;width:auto;max-width:90%;text-align:left}.hero-rule{margin:20px 0 0}.hero-copy h1{font-size:clamp(20px,1.65vw,31px)}
@media(max-width:800px){.hero-copy{left:5%;bottom:62px;width:90%}.hero-rule{margin-top:14px}}

/* V20 — animated hero title, top-right */
.hero-copy{left:auto;right:4.5%;top:9%;bottom:auto;transform:none;width:auto;max-width:42%;text-align:right;color:#fff}
.hero-copy h1{display:flex;flex-direction:column;align-items:flex-end;gap:.08em;font-size:clamp(24px,2.15vw,41px);line-height:1.02;letter-spacing:-.03em;font-weight:500;white-space:normal}
.hero-copy h1 span{display:block;opacity:0;transform:translateY(10px);animation:heroWordIn .65s cubic-bezier(.22,.61,.36,1) forwards}
.hero-copy h1 span:nth-child(1){animation-delay:1s}
.hero-copy h1 span:nth-child(2){animation-delay:2.25s}
.hero-copy h1 span:nth-child(3){animation-delay:3.5s}
.hero-rule{display:none}
@keyframes heroWordIn{to{opacity:1;transform:translateY(0)}}
@media(max-width:800px){.hero-copy{left:auto;right:5%;top:7%;bottom:auto;width:auto;max-width:70%;text-align:right}.hero-copy h1{font-size:clamp(20px,6vw,31px)}}
@media(prefers-reduced-motion:reduce){.hero-copy h1 span{animation:none;opacity:1;transform:none}}

/* V21 — left-aligned animated hero words + project collaboration links */
.hero-copy{text-align:left}
.hero-copy h1{align-items:flex-start}
.grid p a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .25s ease}
.grid p a:hover{border-bottom-color:currentColor}
@media(max-width:800px){.hero-copy{text-align:left}.hero-copy h1{align-items:flex-start}}


/* V22 — studio aligned to the project grid + fixed-width rotating profession */
.studio{display:block;border-top:1px solid #d7d7d7;padding:58px 0 100px}
.studio>.eyebrow{display:block;margin-bottom:28px}
.studio-statement{max-width:1480px;margin:0;font-size:clamp(24px,2vw,38px);line-height:1.28;letter-spacing:-.035em;font-weight:400}
.role-cycle{position:relative;display:inline-block;width:6.35em;height:1.28em;vertical-align:baseline;white-space:nowrap}
.role-cycle>span{position:absolute;left:0;top:0;line-height:inherit;font:inherit;letter-spacing:inherit;opacity:0;animation:roleFade 9s infinite}
.role-cycle>span:nth-child(1){animation-delay:0s}
.role-cycle>span:nth-child(2){animation-delay:3s}
.role-cycle>span:nth-child(3){animation-delay:6s}
@keyframes roleFade{0%{opacity:0}8%{opacity:1}27%{opacity:1}34%{opacity:0}100%{opacity:0}}
.studio-detail{margin-top:34px;max-width:520px}
.studio-detail p{font-size:14px;line-height:1.65;color:#555;margin:0 0 28px}
.collab{margin-top:62px;padding-top:30px;border-top:1px solid #d7d7d7}
.collab-grid{display:grid;grid-template-columns:repeat(4,1fr);column-gap:50px;row-gap:26px;margin-top:28px;font-size:clamp(16px,1.15vw,22px);line-height:1.2;letter-spacing:-.02em}
@media(max-width:800px){.studio{padding:48px 0 72px}.studio-statement{font-size:clamp(23px,5.8vw,32px)}.role-cycle{width:6.35em}.studio-detail{margin-top:28px}.collab{margin-top:48px}.collab-grid{grid-template-columns:1fr 1fr;gap:22px 28px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.role-cycle>span{animation:none;opacity:0}.role-cycle>span:first-child{opacity:1}}

/* V24 — studio statement: smaller type, true baseline, compact fixed slot */
.studio-statement{
  font-size:clamp(22px,1.65vw,32px);
  line-height:1.32;
  letter-spacing:-.03em;
  max-width:1380px;
}
.role-cycle{
  display:inline-grid;
  grid-template-areas:"role";
  width:5.55em;
  height:auto;
  position:relative;
  vertical-align:baseline;
  white-space:nowrap;
  line-height:inherit;
}
.role-cycle>span{
  grid-area:role;
  position:static;
  align-self:baseline;
  font:inherit;
  line-height:inherit;
  letter-spacing:inherit;
  opacity:0;
  animation:roleFade 9s infinite;
}
@media(max-width:800px){
  .studio-statement{font-size:clamp(21px,5.2vw,28px);line-height:1.34}
  .role-cycle{width:5.55em}
}

/* V25 — fixed Studio statement + contact proposition 1 */
.role-cycle{display:none!important}
.contact-footer{background:#fff;color:#111}
.contact-cta{border-top:1px solid #d7d7d7;border-bottom:1px solid #d7d7d7;min-height:410px;padding:62px 0 70px;display:flex;align-items:center;justify-content:space-between;gap:70px}
.contact-copy{align-self:center}
.contact-kicker{display:block;font-size:12px;letter-spacing:.28em;color:#666;margin-bottom:24px}
.contact-copy h2{font-size:clamp(54px,5vw,92px);font-weight:400;line-height:.92;letter-spacing:-.045em;margin:0 0 24px}
.contact-copy p{font-size:17px;line-height:1.5;color:#666;margin:0}
.contact-action{display:flex!important;align-items:center;gap:30px;color:#111!important;text-decoration:none!important;font-size:14px!important;letter-spacing:.24em!important;font-weight:500!important;white-space:nowrap}
.contact-circle{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-size:30px;font-weight:300;letter-spacing:0;transition:transform .3s ease}
.contact-action:hover .contact-circle{transform:translateX(5px)}
.footer-bottom{min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:40px}
.footer-id,.footer-links{display:flex;align-items:center}
.footer-id{gap:36px}.footer-id img{width:76px;height:auto}.footer-id span{font-size:12px;color:#555;padding-left:36px;border-left:1px solid #cfcfcf}
.footer-links{gap:0}.footer-links span,.footer-links a{font-size:12px!important;letter-spacing:0!important;font-weight:400!important;color:#444!important;text-decoration:none!important;padding:0 26px;border-left:1px solid #cfcfcf}.footer-links span{border-left:0}.footer-links a:last-child{padding-right:0}
@media(max-width:800px){.contact-cta{min-height:0;padding:58px 0 62px;align-items:flex-start;flex-direction:column;gap:48px}.contact-kicker{font-size:10px;margin-bottom:18px}.contact-copy h2{font-size:clamp(46px,14vw,70px);margin-bottom:20px}.contact-copy p{font-size:14px;max-width:90%}.contact-action{align-self:flex-end}.contact-circle{width:64px;height:64px}.footer-bottom{padding:28px 0 34px;align-items:flex-start;flex-direction:column;gap:28px}.footer-id{gap:20px}.footer-id img{width:64px}.footer-id span{padding-left:20px;font-size:10px}.footer-links{flex-wrap:wrap}.footer-links span,.footer-links a{font-size:11px!important;padding:0 15px}.footer-links span{padding-left:0}}

/* V26 — unified display typography */
.studio-statement,
.contact-copy h2{
  font-size:clamp(30px,2.4vw,47px);
  line-height:1.04;
  letter-spacing:-.035em;
  font-weight:400;
}
.contact-copy h2{margin:0 0 24px}
@media(max-width:800px){
  .studio-statement,
  .contact-copy h2{font-size:clamp(28px,8vw,40px);line-height:1.08}
}

/* V27 — architectural collaboration visual proof */
.archi-proof{border-top:1px solid #d7d7d7;padding:58px 0 105px}
.archi-proof-head{display:grid;grid-template-columns:1.25fr .75fr;gap:9vw;align-items:end;margin-bottom:42px}
.archi-proof-head h2{font-size:clamp(30px,2.4vw,47px);line-height:1.04;letter-spacing:-.035em;font-weight:400;margin:22px 0 0}
.archi-proof-head>p{max-width:480px;font-size:14px;line-height:1.65;color:#555;margin:0 0 4px}
.archi-proof-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:18px;align-items:stretch}
.archi-proof figure{margin:0}.built-photo{display:flex;flex-direction:column}.built-photo img,.detail-photo img{width:100%;display:block;object-fit:cover;filter:saturate(.72)}
.built-photo img{aspect-ratio:4/5;height:100%;min-height:530px}.detail-photo img{aspect-ratio:1.35/1;height:100%}
.archi-proof figcaption{display:flex;flex-direction:column;gap:4px;margin-top:11px;font-size:10px;letter-spacing:.08em;line-height:1.45}.archi-proof figcaption span{color:#777;letter-spacing:0}
.drawing-stack{display:grid;grid-template-rows:1fr 1fr;gap:18px}.drawing-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;min-height:0}
.drawing{background:#f6f6f3;padding:28px 28px 16px;display:flex;flex-direction:column;justify-content:center;min-height:0}.drawing svg{width:100%;height:100%;max-height:300px;fill:none;stroke:#111;stroke-width:2;vector-effect:non-scaling-stroke}.drawing svg .thin{stroke:#777;stroke-width:1}.drawing figcaption{margin-top:4px}.detail-photo{display:flex;flex-direction:column;min-height:0}.detail-photo img{flex:1;min-height:0}
/* requested contact band */
.contact-cta{background:#070f17;color:#fff;border:0;max-width:none;width:100%;padding-left:max(5vw,40px);padding-right:max(5vw,40px)}
.contact-copy p,.contact-kicker{color:rgba(255,255,255,.66)}.contact-action{color:#fff!important}.contact-circle{background:#fff;color:#070f17}
@media(max-width:800px){.archi-proof{padding:48px 0 72px}.archi-proof-head{grid-template-columns:1fr;gap:24px;margin-bottom:30px}.archi-proof-grid{grid-template-columns:1fr}.built-photo img{min-height:0;aspect-ratio:4/3}.drawing-stack{grid-template-rows:auto}.drawing-row{grid-template-columns:1fr}.drawing{min-height:260px}.contact-cta{padding-left:6vw;padding-right:6vw}}

/* V28 — visuals integrated directly into the two expertise blocks */
.expertises{gap:4%;align-items:stretch;padding-bottom:130px}
.expertises .expertise{max-width:none;display:flex;flex-direction:column}
.expertises .expertise+article{padding-left:4%;border-left:1px solid #ddd}
.expertise-top{min-height:300px;position:relative;padding-bottom:38px}
.expertise-top>a{position:absolute;right:0;bottom:40px}
.expertise-visual{margin-top:auto;height:470px;overflow:hidden}
.visu-image img{width:100%;height:100%;object-fit:cover;display:block}
.archi-collage{display:grid;grid-template-columns:.82fr 1.18fr;grid-template-rows:1fr 1fr;gap:12px;background:#fff}
.archi-collage figure{margin:0;min-width:0;min-height:0;overflow:hidden}
.collage-photo{grid-row:1/3}.collage-photo img,.collage-detail img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.78)}
.collage-cut,.collage-plan{background:#f7f7f4;padding:20px;display:flex;align-items:center;justify-content:center}
.collage-cut{grid-column:2;grid-row:1}.collage-plan{grid-column:2;grid-row:2;width:56%;justify-self:start}
.collage-detail{grid-column:2;grid-row:2;width:42%;justify-self:end}
.archi-collage svg{width:100%;height:100%;fill:none;stroke:#111;stroke-width:2;vector-effect:non-scaling-stroke}.archi-collage svg .thin{stroke:#777;stroke-width:1}
@media(max-width:800px){.expertises{gap:70px}.expertises .expertise+article{padding-left:0;border-left:0;border-top:1px solid #ddd;padding-top:65px}.expertise-top{min-height:0;padding-bottom:60px}.expertise-top>a{position:static;display:inline-block;margin-top:10px}.expertise-visual{height:380px}.archi-collage{grid-template-columns:.9fr 1.1fr}.collage-plan{width:55%}.collage-detail{width:43%}}
/* V29 — collaboration architecturale: photos de réalisations + dessins techniques */
.archi-collage{grid-template-columns:1.05fr .8fr .8fr;grid-template-rows:1fr .72fr;gap:14px}
.archi-collage .collage-photo{grid-column:1;grid-row:1 / 3}
.archi-collage .collage-cut{grid-column:2 / 4;grid-row:1}
.archi-collage .collage-plan{grid-column:2;grid-row:2}
.archi-collage .collage-detail{grid-column:3;grid-row:2}
.archi-collage .collage-stair{display:none}
.archi-collage figure{overflow:hidden;margin:0;background:#f7f7f5}
.archi-collage img{width:100%;height:100%;object-fit:cover;display:block}
.archi-collage .collage-photo img{object-position:50% 58%}
.archi-collage .collage-detail img{object-position:50% 48%}
.archi-collage svg{width:100%;height:100%;display:block;padding:5%;box-sizing:border-box;fill:none;stroke:#171717;stroke-width:2;background:#fff}
.archi-collage svg .thin{stroke:#9a9a96;stroke-width:1}

/* V30 — expertise composition tightened to match approved visual reference */
.expertises{gap:3.5%;padding-top:110px;padding-bottom:118px;align-items:start}
.expertises .expertise+article{padding-left:3.5%}
.expertise-top{min-height:245px;padding-bottom:22px}
.expertise-top .num{margin-bottom:22px}
.expertises h2{font-size:clamp(27px,2.05vw,40px);margin-bottom:20px}
.expertises p{margin-bottom:12px;line-height:1.5}
.expertises .detail{margin-bottom:18px;line-height:1.55}
.expertise-top>a{bottom:24px}
.expertise-visual{height:455px;margin-top:0}
.archi-collage{grid-template-columns:1.02fr .78fr .78fr;grid-template-rows:1fr .72fr;gap:10px}
.archi-collage figure{margin:0;background:#f7f7f5}
.archi-collage .collage-photo{grid-column:1;grid-row:1/3}
.archi-collage .collage-cut{grid-column:2/4;grid-row:1;padding:0}
.archi-collage .collage-plan{grid-column:2;grid-row:2;width:auto;justify-self:stretch;padding:0}
.archi-collage .collage-detail{grid-column:3;grid-row:2;width:auto;justify-self:stretch}
.archi-collage .collage-stair{display:none}
.archi-collage .collage-photo img{object-position:50% 55%;filter:none}
.archi-collage .collage-detail img{object-position:50% 48%;filter:none}
.archi-collage svg{padding:7%;background:#fafaf8;stroke-width:1.7}
.visu-image img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:800px){.expertise-top{min-height:0;padding-bottom:34px}.expertise-top>a{position:static;margin-top:12px}.expertise-visual{height:380px}.archi-collage{gap:7px;grid-template-columns:1fr .78fr .78fr}}

/* V31 — complete architectural collage: 3 project photos + generated plan/section */
.archi-collage{
  grid-template-columns:1.12fr .68fr .58fr .68fr;
  grid-template-rows:1fr .76fr;
  gap:10px;
}
.archi-collage .collage-photo{grid-column:1;grid-row:1/3}
.archi-collage .collage-cut{grid-column:2/5;grid-row:1;padding:0;background:#fafaf8}
.archi-collage .collage-plan{grid-column:2;grid-row:2;padding:0;background:#fafaf8}
.archi-collage .collage-stair{display:block;grid-column:3;grid-row:2}
.archi-collage .collage-detail{grid-column:4;grid-row:2;width:auto;justify-self:stretch}
.archi-collage .collage-cut img,.archi-collage .collage-plan img,.archi-collage .collage-stair img,.archi-collage .collage-detail img,.archi-collage .collage-photo img{width:100%;height:100%;display:block;object-fit:cover}
.archi-collage .collage-cut img{object-fit:cover;object-position:center}
.archi-collage .collage-plan img{object-fit:cover;object-position:center}
.archi-collage .collage-stair img{object-position:50% 45%}
.archi-collage .collage-detail img{object-position:50% 48%}
@media(max-width:800px){
  .archi-collage{grid-template-columns:1.1fr .72fr .62fr .72fr;gap:7px}
}

/* V32 — four selected projects on one line */
.projects .grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.projects .pic{aspect-ratio:1.48/1}
@media(max-width:1100px) and (min-width:801px){.projects .grid{gap:14px}.projects .grid h3,.projects .grid p{font-size:10px}}
@media(max-width:800px){.projects .grid{grid-template-columns:1fr;gap:50px}}

/* V33 — collaboration names are external links */
.collab-grid a{color:inherit;text-decoration:none;display:inline-block;width:max-content;max-width:100%;font-size:inherit;letter-spacing:inherit;font-weight:inherit;line-height:inherit;border-bottom:1px solid transparent;transition:border-color .22s ease,opacity .22s ease}
.collab-grid a:hover{border-bottom-color:currentColor}
.collab-grid a:focus-visible{outline:1px solid currentColor;outline-offset:4px}


/* V67 — menu mobile FIGUR */
.nav-toggle,.nav-button{display:none}
@media(max-width:800px){
  .header{height:70px;min-height:70px;padding:0 20px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:0;overflow:visible;position:relative;z-index:1000}
  .header .brand{position:relative;z-index:1002}
  .header .brand img{width:64px}
  .nav-toggle{position:absolute;opacity:0;pointer-events:none}
  .nav-button{display:flex;width:34px;height:34px;align-items:center;justify-content:center;flex-direction:column;gap:6px;cursor:pointer;position:relative;z-index:1002}
  .nav-button span{display:block;width:22px;height:1px;background:#111;transition:transform .25s ease,opacity .25s ease}
  .header nav{position:absolute;left:0;right:0;top:70px;transform:none;width:100%;max-width:none;display:flex;flex-direction:column;align-items:flex-start;gap:0;background:#fff;padding:8px 20px 22px;overflow:visible;white-space:normal;border-top:1px solid #eee;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}
  .header nav a{width:100%;padding:14px 0;font-size:10px;line-height:1;letter-spacing:.14em;border-bottom:1px solid #eee}
  .header nav a:last-child{border-bottom:0}
  .nav-toggle:checked ~ nav{opacity:1;visibility:visible;pointer-events:auto}
  .nav-toggle:checked + .nav-button span:first-child{transform:translateY(3.5px) rotate(45deg)}
  .nav-toggle:checked + .nav-button span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
}
