/* Aperçu : seule la première séquence de l’accueil est concernée. */
.construction-intro { position: relative; isolation: isolate; overflow: hidden; background: #eee8dc; }
.construction-background { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
#villa-scene { position: absolute; inset: 0; background: linear-gradient(180deg,#e4eced 0%,#f1ecdf 55%,#dfd5be); }
#villa-scene canvas { display: block; width: 100%; height: 100%; }
.construction-wash { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(255,253,249,.99) 0%,rgba(255,253,249,.97) 22%,rgba(255,253,249,.86) 37%,rgba(255,253,249,.38) 48%,rgba(255,253,249,0) 64%),linear-gradient(0deg,rgba(255,253,249,.96),transparent 25%); }
.construction-transition { position: absolute; inset: 0; background: #f4efe5; opacity: 0; }
.construction-intro .home-hero { display: block; position: relative; min-height: clamp(595px,43vw,730px); padding-top: 42px; padding-bottom: 40px; }
.construction-intro .hero-copy { position: relative; width: 47%; max-width: 650px; padding: 0; }
.construction-intro .hero-copy h1 { font-size: clamp(53px,4.8vw,83px); }
.construction-intro .hero-copy>p:not(.eyebrow) { max-width: 440px; padding-right: 0; color: #39342e; }
.construction-intro .hero-actions { gap: 16px 24px; }
.construction-intro .hero-location { margin-top: 27px; }
.construction-background::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,#fffdf9e8 0%,#fffdf955 14%,transparent 29%); pointer-events:none; }
.construction-story { position: absolute; right: 0; top: 30px; width: 39%; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 5px 20px; color: #30271d; }
.construction-kicker { grid-column: 1 / -1; font: 600 11px/1.5 var(--sans); letter-spacing: .15em; }
.construction-story p { margin: 0; font: 400 27px/1.3 var(--serif); }
.construction-story strong { font-weight: 400; }
.construction-story .circle-link { background: #fffdf9cc; border: 1px solid #87745666; color: var(--ink); width: 48px; height: 48px; }
.construction-controls { position: relative; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 9px; padding-block: 18px; min-height: 66px; }
.construction-stage { display: flex; align-items: center; justify-content: flex-end; gap: 10px; text-align: right; font: 500 13px/1.5 var(--sans); color: #55462f; }
.stage-dot { width: 6px; height: 6px; background: var(--gold); border-radius: 50%; }
.construction-buttons { display: flex; gap: 8px; }
.construction-buttons button { font: 500 12px/1.5 var(--sans); color: #3d3327; border: 1px solid #c9bda7; background: #fffdf9e0; border-radius: 2px; padding: 9px 14px; min-height: 42px; cursor: pointer; }
.construction-buttons button:hover { border-color: var(--gold); background: #fffdf9; }
.construction-buttons button:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.construction-timeline { height: 2px; background: #b77a1212; }
.construction-timeline>span { display: block; height: 100%; width: 100%; background: #b77a1299; transform: scaleX(0); transform-origin: left; }
.construction-intro .proof-strip { position: relative; border-top: 0; border-bottom: 0; margin-top: 0; padding-top: 27px; padding-bottom: 34px; }
.construction-intro .proof-strip span { color: #4b443c; }
.construction-intro .proof-strip>div { border-color: #cbbfa9; }
.construction-intro.scene-unavailable #villa-scene { background: url('images/architecture.webp') 72% 55% / cover no-repeat; }
.construction-intro.scene-unavailable .construction-buttons { display: none; }
@media(min-width:1700px) { .construction-intro .home-hero { min-height: 705px; } }
@media(max-width:1100px) {
  .construction-intro .hero-copy { width: 51%; }
  .construction-intro .hero-copy h1 { font-size: clamp(45px,5.6vw,65px); }
  .construction-intro .hero-copy>p:not(.eyebrow) { font-size: 17px; max-width: 360px; }
  .construction-intro .home-hero { min-height: 610px; }
  .construction-wash { background: linear-gradient(90deg,#fffdf9 0%,#fffdf9ec 25%,#fffdf9c2 43%,#fffdf920 65%),linear-gradient(0deg,#fffdf9f5,transparent 35%); }
  .construction-story { width: 40%; top: 30px; }
  .construction-story p { font-size: 25px; }
}
@media(max-width:700px) {
  .construction-intro .home-hero { min-height: 890px; padding-top: 29px; padding-bottom: 290px; }
  .construction-intro .hero-copy { width: 100%; max-width: none; }
  .construction-intro .hero-copy h1 { font-size: clamp(45px,10.5vw,67px); }
  .construction-intro .hero-copy>p:not(.eyebrow) { font-size: 17px; max-width: 480px; }
  .construction-intro .hero-location { margin-top: 23px; }
  .construction-wash { background: linear-gradient(180deg,#fffdf9 0%,#fffdf9f2 24%,#fffdf9ca 42%,#fffdf910 63%,#fffdf905 80%,#fffdf9ed 91%); }
  .construction-story { width: 100%; top: auto; bottom: 0; padding: 12px 0; }
  .construction-story p { font-size: 23px; }
  .construction-controls { gap: 9px; padding-top: 15px; padding-bottom: 15px; }
  .construction-stage { font-size: 12px; }
  .construction-buttons { margin-left: auto; }
  .construction-buttons button { min-height: 44px; }
  .construction-intro .proof-strip { padding-bottom: 22px; }
}
@media(prefers-reduced-motion:reduce) { .construction-transition { display: none; } }
