/* Motion for ART TERRE PAYSAGE: a small glass lens grows into a light veil. */
:root { --motion-ease: cubic-bezier(.16, 1, .3, 1); --motion-duration:500ms; }
.desktop-nav { position: relative; isolation: isolate; gap: 3px; padding: 5px; border-radius: 999px; }
.desktop-nav a { padding: 10px 14px; border-radius: 999px; white-space: nowrap; transition: color 250ms ease; }
.desktop-nav a::after { display: none; }
.desktop-nav a:hover, .desktop-nav a[aria-current] { color: var(--pine); }
.nav-indicator { position: absolute; inset: 0 auto auto 0; z-index: -1; border-radius: 999px; pointer-events: none; opacity: 0; background: linear-gradient(145deg, #ffffff96, #d9e6b25c); border: 1px solid #ffffffeb; box-shadow: 0 2px 12px #163c3210, inset 0 0 0 1px #163c3209; backdrop-filter: blur(12px); transition: transform 480ms var(--motion-ease), width 480ms var(--motion-ease), height 480ms var(--motion-ease), opacity 200ms ease; }
.nav-indicator.is-ready { opacity: 1; }
.site-header a, .hero-actions a, .text-link, .discover, .site-footer a { position: relative; }
.click-bubble { position: absolute; width: 56px; height: 56px; border-radius: 50%; pointer-events: none; z-index: 2; border: 1px solid #729b8070; background: radial-gradient(circle at 30% 25%, #ffffff70, #d9e6b20d 70%); box-shadow: inset 0 0 12px #ffffff45; }
.section-transition { position: fixed; inset: 0; z-index: 25; display: none; pointer-events: none; overflow: hidden; }
.section-transition.is-running { display: block; }
.transition-glass { position: absolute; inset: 0; background: radial-gradient(circle at var(--bubble-x) var(--bubble-y), #ffffffbc, #e6eed6ed 55%, #e8eee5f2); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.transition-caption { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 19px; padding: 8%; color: var(--pine); opacity: 0; }
.transition-caption > span:first-child { font-size: .75rem; letter-spacing: .16em; }
.transition-title { font-family: var(--serif); font-size: clamp(2.5rem, 6vw, 6rem); font-style: italic; line-height: 1.15; letter-spacing: -.045em; text-align: center; }
html.is-section-navigation { scroll-behavior: auto; }
.transition-strips { position:absolute; inset:0; display:none; }
.transition-strips > span { flex:1; height:100%; margin-right:-1px; background:#163c32; transform:translateY(102%); }
.transition-strips > span:nth-child(2n) { background:#294c36; }
.transition-strips > span:nth-child(3) { background:#3c5c3e; }
.section-transition.is-rising .transition-strips { display:flex; }
.section-transition.is-rising .transition-glass { display:none; }
.section-transition.is-rising .transition-caption { color:#edf3df; }
main > section[tabindex="-1"]:focus { outline: none; }
.reveal { transition: opacity 750ms ease, transform 950ms var(--motion-ease); }
.reveal.is-pending { transform: translateY(28px); }
.title-line { transition: opacity 850ms ease, transform 1050ms var(--motion-ease); }
.title-line:nth-child(2) { transition-delay: 110ms; }
.image-reveal > img { transition: clip-path 1050ms cubic-bezier(.22,.61,.36,1), transform 1450ms var(--motion-ease); transition-delay: var(--reveal-delay, 0ms); }
.image-reveal.is-pending > img { clip-path: inset(0 0 100% 0); transform: scale(1.045); }
.image-reveal:not(.is-pending) > img { clip-path: inset(0); }
.inspiration-caption { transition: opacity 600ms ease 240ms, transform 850ms var(--motion-ease) 170ms; }
.inspiration.is-pending .inspiration-caption { opacity: 0; transform: translateY(16px); }
.image-expand { transition: background 350ms ease, color 350ms ease, transform 450ms var(--motion-ease); }
.inspiration:hover .image-expand, .inspiration:focus-visible .image-expand { background: var(--white); color: var(--pine); transform: rotate(45deg); }
.button { position: relative; overflow: hidden; isolation: isolate; }
.button::before { content: ""; position: absolute; inset: -50%; z-index: -1; pointer-events: none; background: linear-gradient(110deg, transparent 40%, #ffffff22 50%, transparent 60%); transform: translateX(-80%); transition: transform 650ms var(--motion-ease); }
.button:hover::before, .button:focus-visible::before { transform: translateX(80%); }
.button > span { transition: transform 400ms var(--motion-ease); }
.button:hover > span { transform: translate(2px, -2px); }
.gallery-dialog[open] { animation: galleryArrival 420ms var(--motion-ease) both; }
.gallery-dialog[open]::backdrop { animation: backdropArrival 300ms ease both; }
@keyframes galleryArrival { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes backdropArrival { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 1150px) { .desktop-nav a { padding: 10px 9px; } .site-header { gap: 16px; } }
@media (max-width: 950px) {
  .mobile-nav { background: #f4f6f3f5; backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); animation: mobileNavArrival 350ms var(--motion-ease) both; }
  .mobile-nav a { position: relative; border-radius: 12px; padding-left: 14px; margin-left: -14px; transition: background 250ms ease, padding-left 350ms var(--motion-ease); }
  .mobile-nav a[aria-current], .mobile-nav a:hover { background: #d9e6b259; box-shadow: inset 0 0 0 1px #ffffffab; padding-left: 24px; }
  .transition-title { font-size: clamp(2.6rem, 11vw, 4rem); }
  @keyframes mobileNavArrival { from { opacity: 0; clip-path: inset(0 0 100% 0); transform: translateY(-10px); } to { opacity: 1; clip-path: inset(0); transform: none; } }
}
@media (prefers-reduced-motion: reduce) {
  .section-transition, .click-bubble { display: none !important; }
  .reveal.is-pending, .line-reveal.is-pending .title-line { opacity: 1; transform: none; }
  .image-reveal.is-pending > img { clip-path: none; transform: none; }
  .inspiration.is-pending .inspiration-caption { opacity: 1; transform: none; }
  .button:hover, .button:hover > span, .inspiration:hover .image-expand { transform: none; }
}

/* Every visible sequence finishes within half a second, including its stagger. */
.desktop-nav a,.nav-indicator,.button,.button::before,.button>span,.round-arrow,.text-link,.menu-toggle span,.mobile-nav a,.image-expand { transition-duration:var(--motion-duration); }
.hero-enter { animation-duration:calc(var(--motion-duration) - var(--entry-delay,0ms)); animation-delay:var(--entry-delay,0ms); }
.hero-enter:nth-child(2) { --entry-delay:40ms; }
.hero-enter:nth-child(3) { --entry-delay:80ms; }
.hero-enter:nth-child(4) { --entry-delay:120ms; }
.hero-enter:nth-child(n) { animation-delay:var(--entry-delay,0ms); }
.reveal { transition-duration:calc(var(--motion-duration) - var(--entry-delay,0ms)); transition-delay:var(--entry-delay,0ms); }
.steps li:nth-child(2) { --entry-delay:50ms; }
.steps li:nth-child(3) { --entry-delay:100ms; }
.steps li:nth-child(4) { --entry-delay:150ms; }
.steps li:nth-child(n) { transition-delay:var(--entry-delay,0ms); }
.title-line { transition-duration:var(--motion-duration); transition-delay:0ms; }
.title-line:nth-child(2) { transition-duration:400ms; transition-delay:100ms; }
.image-reveal { transition-duration:var(--motion-duration); }
.image-reveal>img { transition-duration:calc(var(--motion-duration) - var(--reveal-delay,0ms)); }
.inspiration-caption { transition-duration:400ms; transition-delay:100ms; }
.mobile-nav,.gallery-dialog[open],.gallery-dialog[open]::backdrop { animation-duration:var(--motion-duration); }
