:root{--ink:#101010;--paper:#f2eee8;--white:#fff;--muted:#a9a39a;--line:rgba(16,16,16,.16);--serif:"Italiana",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}.shell{width:min(1180px,calc(100% - 64px));margin-inline:auto}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;font-weight:600;margin:0 0 1.2rem}.hero{min-height:100svh;background:#080808;color:#fff;position:relative;overflow:hidden}.hero-media{position:absolute;inset:0;background:url("assets/hero-desktop.webp") center 42%/cover no-repeat;transform:scale(1.02)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.67) 37%,rgba(0,0,0,.12) 72%),linear-gradient(0deg,rgba(0,0,0,.55),transparent 40%)}.nav{height:100px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.brand{font-family:var(--serif);font-size:1.2rem;line-height:.82;text-transform:uppercase;letter-spacing:.08em}.nav-links{display:flex;gap:2.3rem;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem}.nav-links a{opacity:.8;transition:.25s}.nav-links a:hover{opacity:1}.hero-content{position:relative;z-index:1;padding-top:clamp(12vh,18vh,22vh)}.hero h1{font-family:var(--serif);font-size:clamp(3.9rem,7.4vw,7.4rem);font-weight:400;line-height:.92;letter-spacing:-.035em;margin:0;max-width:760px}.hero-copy{max-width:500px;margin:2rem 0 0;color:rgba(255,255,255,.74)}.actions{display:flex;gap:12px;margin-top:2.4rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 1.8rem;border:1px solid transparent;text-transform:uppercase;letter-spacing:.08em;font-size:.69rem;font-weight:600;cursor:pointer}.button-light{background:#f3ede4;color:#151515}.button-outline{border-color:rgba(255,255,255,.62);color:#fff}.scroll{position:absolute;bottom:34px;left:50%;z-index:2;transform:translateX(-50%);font-size:.63rem;text-transform:uppercase;letter-spacing:.2em;text-align:center;color:rgba(255,255,255,.7)}.scroll span{display:block;font-size:1.2rem;margin-top:4px}.services{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,36vw);background:#f4f0ea}.services-grid{width:auto;margin:0;padding:90px max(40px,calc((100vw - 1180px)/2)) 90px max(32px,calc((100vw - 1180px)/2));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 64px}.services article{border-top:1px solid var(--line);padding-top:18px}.services article span{font-family:var(--serif);font-size:2rem}.services h2{font-size:.92rem;text-transform:uppercase;letter-spacing:.08em;margin:1rem 0 .7rem}.services p{font-size:.82rem;color:#605b55;margin:0;max-width:260px}.services-image{margin:0;min-height:560px}.services-image img{object-position:center}.portfolio{padding:120px 0;background:#0b0b0b;color:white}.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:60px}.section-head h2,.about h2,.contact h2{font:400 clamp(3rem,5.6vw,5.8rem)/.96 var(--serif);letter-spacing:-.03em;margin:0}.section-head>p{max-width:440px;color:rgba(255,255,255,.58);margin:0}.gallery{display:grid;grid-template-columns:1.15fr .85fr .95fr;grid-template-rows:320px 230px 420px;gap:8px}.tile{margin:0;overflow:hidden}.tile img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}.tile:hover img{transform:scale(1.025)}.tile-a{grid-row:1/3}.tile-b{grid-column:2;grid-row:1}.tile-c{grid-column:2;grid-row:2}.tile-d{grid-column:3;grid-row:1/3}.tile-e{grid-column:1/2;grid-row:3}.tile-f{grid-column:2/4;grid-row:3}.tile-a img{object-position:53% 52%}.tile-b img{object-position:center 31%}.tile-d img{object-position:center 22%}.tile-e img{object-position:center 35%}.references{padding:55px 0;background:#eee8df}.reference-row{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:50px}.reference-intro p{font-family:var(--serif);font-size:1.3rem;line-height:1.15;margin:0 0 .8rem}.reference-intro small{font-size:.68rem;color:#777068}.reference-names{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.reference-names span{font-family:var(--serif);font-size:1.45rem;white-space:nowrap}.about{display:grid;grid-template-columns:1fr 1.15fr;min-height:700px;background:#f6f3ee}.about-copy{padding:110px max(45px,calc((100vw - 1180px)/2)) 100px max(32px,calc((100vw - 1180px)/2))}.about-copy h2{font-size:clamp(2.7rem,4.4vw,4.7rem);max-width:590px}.about-copy>p:not(.eyebrow){max-width:560px;color:#5e5a54}.about-image{margin:0;min-height:700px}.about-image img{object-position:center 35%}.text-link{display:inline-flex;gap:1rem;margin-top:1.5rem;padding-bottom:5px;border-bottom:1px solid}.editorial-band{display:grid;grid-template-columns:1fr 1.1fr 1fr;min-height:470px;background:#111;color:white}.editorial-band figure{margin:0;overflow:hidden}.editorial-band figure:first-child img{object-position:center 44%}.editorial-band figure:last-child img{object-position:center 25%}.editorial-band>div{padding:90px 60px;display:flex;flex-direction:column;justify-content:center}.editorial-band blockquote{font:400 clamp(2.2rem,3.6vw,4.2rem)/1.06 var(--serif);margin:0}.contact{display:grid;grid-template-columns:.85fr 1.15fr;background:#080808;color:#fff}.contact-intro{padding:100px max(42px,calc((100vw - 1180px)/2)) 100px max(32px,calc((100vw - 1180px)/2))}.contact-intro p{color:rgba(255,255,255,.62)}.contact-intro a:hover{color:#fff}.socials{display:flex;gap:30px;margin-top:45px;text-transform:uppercase;font-size:.65rem;letter-spacing:.15em}.contact-form{padding:120px max(32px,calc((100vw - 1180px)/2)) 100px 60px;display:grid;grid-template-columns:1fr 1fr;gap:32px 28px;align-content:center}.contact-form label{font-size:.62rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.62)}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;font:inherit;padding:12px 0;outline:none;border-radius:0}.contact-form select option{color:#111}.contact-form input:-webkit-autofill,.contact-form input:-webkit-autofill:hover,.contact-form input:-webkit-autofill:focus,.contact-form textarea:-webkit-autofill,.contact-form textarea:-webkit-autofill:hover,.contact-form textarea:-webkit-autofill:focus,.contact-form select:-webkit-autofill,.contact-form select:-webkit-autofill:hover,.contact-form select:-webkit-autofill:focus{-webkit-text-fill-color:#fff;box-shadow:0 0 0 1000px #080808 inset;-webkit-box-shadow:0 0 0 1000px #080808 inset;transition:background-color 9999s ease-out 0s}.contact-form .wide{grid-column:1/-1}.contact-form button{justify-self:start;border:0}footer{background:#080808;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.43);display:flex;justify-content:space-between;padding:22px 4vw;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em}
@media(max-width:900px){.shell{width:min(100% - 36px,1180px)}.nav-links{display:none}.hero-media{background-image:url("assets/hero-tablet.webp");background-position:62% center}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.18)),linear-gradient(0deg,rgba(0,0,0,.65),transparent)}.services{grid-template-columns:1fr}.services-grid{padding:75px 28px;width:100%;grid-template-columns:1fr 1fr}.services-image{height:550px;min-height:0}.section-head{align-items:flex-start;flex-direction:column}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:420px 260px 420px}.tile-a{grid-column:1;grid-row:1}.tile-b{grid-column:2;grid-row:1}.tile-c{grid-column:1;grid-row:2}.tile-d{grid-column:2;grid-row:2}.tile-e{grid-column:1;grid-row:3}.tile-f{grid-column:2;grid-row:3}.reference-row{grid-template-columns:1fr}.reference-names{justify-content:flex-start}.about{grid-template-columns:1fr}.about-copy{padding:90px 28px}.about-image{min-height:650px}.editorial-band{grid-template-columns:1fr 1fr}.editorial-band>div{grid-column:1/-1;grid-row:1;padding:80px 28px}.editorial-band figure{min-height:460px}.contact{grid-template-columns:1fr}.contact-intro,.contact-form{padding:85px 28px}.contact-form{border-top:1px solid rgba(255,255,255,.12)}}
@media(max-width:600px){.nav{height:76px}.hero-media{background-image:url("assets/hero-mobile.webp")}.hero-content{padding-top:18vh}.hero h1{font-size:3.45rem}.hero-copy{font-size:.9rem;max-width:82%}.actions{align-items:stretch;flex-direction:column;width:min(310px,100%)}.services-grid{grid-template-columns:1fr;gap:38px}.services-image{height:460px}.portfolio{padding:90px 0}.section-head{margin-bottom:38px}.gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;width:100%;padding-left:18px;gap:8px}.tile{flex:0 0 82vw;height:520px;scroll-snap-align:center}.reference-names span{font-size:1.15rem}.about-image{min-height:560px}.editorial-band{grid-template-columns:1fr}.editorial-band>div{grid-column:1;position:relative;z-index:2;background:rgba(0,0,0,.35)}.editorial-band figure:last-child{display:none}.contact-form{grid-template-columns:1fr}.contact-form .wide{grid-column:auto}footer{gap:16px;flex-direction:column}}


/* --- Section artistique --- */
.artistic{padding:120px 0;background:var(--paper);color:var(--ink)}
.artistic-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:60px}
.artistic-head h2{font:400 clamp(3rem,5.6vw,5.8rem)/.96 var(--serif);letter-spacing:-.03em;margin:0}
.artistic-head>p{max-width:440px;color:#68625b;margin:0}
.artistic-gallery{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:repeat(2,minmax(0,440px));gap:8px}
.artistic-tile{margin:0;overflow:hidden;background:#111}
.artistic-main{grid-row:1/3}
.artistic-tile img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.artistic-tile:hover img{transform:scale(1.025)}
.artistic-main img{object-position:center 34%}
.artistic-silver img{object-position:center 42%}
.artistic-lines img{object-position:center 24%}

/* Évite un flash blanc et réserve visuellement l'espace pendant le chargement. */
.gallery .tile,.artistic-tile,.services-image,.about-image,.editorial-band figure{background:#111}

@media(max-width:900px){
  .artistic-head{align-items:flex-start;flex-direction:column}
  .artistic-gallery{grid-template-columns:1fr 1fr;grid-template-rows:620px 500px}
  .artistic-main{grid-column:1/-1;grid-row:1}
  .artistic-silver{grid-column:1;grid-row:2}
  .artistic-lines{grid-column:2;grid-row:2}
}

@media(max-width:600px){
  /* Hero : centrage fiable et espace réservé au lien Scroll sur les écrans courts. */
  .hero{min-height:100svh;display:flex;flex-direction:column}
  .hero-content{flex:1;padding-top:clamp(92px,15vh,125px);padding-bottom:112px;display:flex;flex-direction:column;justify-content:center}
  .hero h1{font-size:clamp(3rem,15vw,3.45rem)}
  .hero-copy{margin-top:1.35rem}
  .actions{width:min(310px,100%);margin:1.65rem auto 0}
  .actions .button{width:100%}
  .scroll{bottom:16px}

  /* Rythme vertical mobile : conserve la respiration sans grands vides accidentels. */
  .services-grid{padding-top:64px;padding-bottom:64px}
  .portfolio{padding:72px 0}
  .section-head{margin-bottom:30px}
  .about-copy{padding:72px 28px 60px}
  .about-image{min-height:480px}
  .editorial-band>div{padding:64px 28px}
  .contact-intro{padding:72px 28px 54px}
  .contact-form{padding:58px 28px 72px}

  /* Section artistique en carrousel éditorial, cohérente avec le portfolio mobile. */
  .artistic{padding:72px 0}
  .artistic-head{margin-bottom:30px}
  .artistic-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;width:100%;padding-left:18px;padding-right:18px;gap:8px;scrollbar-width:none}
  .artistic-gallery::-webkit-scrollbar{display:none}
  .artistic-tile,.artistic-main,.artistic-silver,.artistic-lines{flex:0 0 82vw;height:520px;scroll-snap-align:center}
}

@media(max-width:600px) and (max-height:700px){
  .hero-content{justify-content:flex-start;padding-top:92px;padding-bottom:88px}
  .hero h1{font-size:2.85rem}
  .hero-copy{margin-top:1rem;font-size:.84rem}
  .actions{margin-top:1.2rem}
  .button{min-height:46px}
  .scroll{bottom:8px}
}

/* Apparition douce au chargement, sans JS. */
@keyframes reveal-up{
  from{opacity:0;transform:translate3d(0,10px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}

@keyframes reveal-fade{
  from{opacity:0}
  to{opacity:1}
}

@keyframes hero-zoom-in{
  from{opacity:0;transform:scale(1.04)}
  to{opacity:1;transform:scale(1.02)}
}

.hero-media{animation:hero-zoom-in 1.8s cubic-bezier(.22,.61,.36,1) .08s both}
.hero-shade{animation:reveal-fade 1.15s ease-out both}
.nav{animation:reveal-up 1s cubic-bezier(.22,.61,.36,1) .12s both}
.hero .eyebrow{animation:reveal-up .95s cubic-bezier(.22,.61,.36,1) .24s both}
.hero h1{animation:reveal-up 1.15s cubic-bezier(.22,.61,.36,1) .36s both}
.hero-copy{animation:reveal-up 1.05s cubic-bezier(.22,.61,.36,1) .5s both}
.actions{animation:reveal-up 1.05s cubic-bezier(.22,.61,.36,1) .62s both}
.scroll{animation:reveal-fade 1.1s ease-out .84s both}

.services-grid article{animation:reveal-up .95s cubic-bezier(.22,.61,.36,1) both}
.services-grid article:nth-child(1){animation-delay:.12s}
.services-grid article:nth-child(2){animation-delay:.18s}
.services-grid article:nth-child(3){animation-delay:.24s}
.services-grid article:nth-child(4){animation-delay:.3s}
.services-grid article:nth-child(5){animation-delay:.36s}
.services-image{animation:reveal-fade 1.2s ease-out .28s both}

.section-head,.artistic-head{animation:reveal-up 1s cubic-bezier(.22,.61,.36,1) .1s both}
.gallery .tile,.artistic-tile{animation:reveal-fade 1.25s ease-out both}
.gallery .tile:nth-child(1),.artistic-tile:nth-child(1){animation-delay:.16s}
.gallery .tile:nth-child(2),.artistic-tile:nth-child(2){animation-delay:.22s}
.gallery .tile:nth-child(3),.artistic-tile:nth-child(3){animation-delay:.28s}
.gallery .tile:nth-child(4){animation-delay:.34s}
.gallery .tile:nth-child(5){animation-delay:.4s}
.gallery .tile:nth-child(6){animation-delay:.46s}

.about-copy .eyebrow{animation:reveal-up .95s cubic-bezier(.22,.61,.36,1) .1s both}
.about-copy h2{animation:reveal-up 1.05s cubic-bezier(.22,.61,.36,1) .2s both}
.about-copy p:not(.eyebrow){animation:reveal-up 1s cubic-bezier(.22,.61,.36,1) both}
.about-copy p:not(.eyebrow):nth-of-type(2){animation-delay:.28s}
.about-copy p:not(.eyebrow):nth-of-type(3){animation-delay:.36s}
.about-copy p:not(.eyebrow):nth-of-type(4){animation-delay:.44s}
.about-copy .text-link{animation:reveal-up 1s cubic-bezier(.22,.61,.36,1) .54s both}
.about-image{animation:reveal-fade 1.3s ease-out .3s both}

.editorial-band figure,.editorial-band>div{animation:reveal-fade 1.2s ease-out both}
.editorial-band figure:first-child{animation-delay:.16s}
.editorial-band>div{animation-delay:.26s}
.editorial-band figure:last-child{animation-delay:.36s}

.contact-intro .eyebrow{animation:reveal-up .95s cubic-bezier(.22,.61,.36,1) .1s both}
.contact-intro h2{animation:reveal-up 1.1s cubic-bezier(.22,.61,.36,1) .2s both}
.contact-intro p,.socials{animation:reveal-up 1s cubic-bezier(.22,.61,.36,1) .32s both}
.contact-form label{animation:reveal-up .95s cubic-bezier(.22,.61,.36,1) both}
.contact-form label:nth-of-type(1){animation-delay:.18s}
.contact-form label:nth-of-type(2){animation-delay:.24s}
.contact-form label:nth-of-type(3){animation-delay:.3s}
.contact-form label:nth-of-type(4){animation-delay:.36s}
.contact-form button{animation:reveal-up 1s cubic-bezier(.22,.61,.36,1) .48s both}
footer span{animation:reveal-fade 1s ease-out .3s both}

@media (prefers-reduced-motion: reduce){
  .hero-media,.hero-shade,.nav,.hero .eyebrow,.hero h1,.hero-copy,.actions,.scroll,
  .services-grid article,.services-image,.section-head,.artistic-head,.gallery .tile,
  .artistic-tile,.about-copy .eyebrow,.about-copy h2,.about-copy p:not(.eyebrow),
  .about-copy .text-link,.about-image,.editorial-band figure,.editorial-band>div,
  .contact-intro .eyebrow,.contact-intro h2,.contact-intro p,.socials,.contact-form label,
  .contact-form button,footer span{
    animation:none!important;
  }
}
