/* Lutz’Oc: six visual interactions approved in local review. Shared FR/ES/EN. */
/* Isolated trial: French home selected projects only. Visible without JS. */
@keyframes lutzocReveal {
  from { opacity: .60; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
.portfolio-teaser .lutzoc-reveal {
  animation: lutzocReveal 750ms ease-out var(--lutzoc-reveal-delay, 0ms) both;
}
.portfolio-teaser .lutzoc-reveal:focus-within { animation: none; }
@media (max-width:750px) {
  .portfolio-teaser .lutzoc-reveal { animation-duration:550ms; }
}
@media (prefers-reduced-motion:reduce) {
  .portfolio-teaser .lutzoc-reveal { animation:none; opacity:1; transform:none; }
}

/* Trial 02: brass frames react to intent; photographs and layout stay fixed. */
.portfolio-teaser .home-featured-project .realisation-art {
  transition: outline-color 220ms ease, box-shadow 220ms ease;
}
.portfolio-teaser .home-featured-project h3 {
  transition: color 220ms ease;
}
@media (hover:hover) and (pointer:fine) {
  .portfolio-teaser .home-featured-project:hover .realisation-art {
    outline-color:#ead0a1;
    box-shadow:0 0 0 5px #2c251a,0 0 0 6px #b5945e,0 12px 24px #0008;
  }
  .portfolio-teaser .home-featured-project:hover h3 { color:#e6c794; }
}
.portfolio-teaser .home-featured-project:focus-visible {
  outline:2px solid #e6c794; outline-offset:12px;
}
.portfolio-teaser .home-featured-project:focus-visible .realisation-art,
.portfolio-teaser .home-featured-project:active .realisation-art {
  outline-color:#ead0a1;
  box-shadow:0 0 0 5px #2c251a,0 0 0 6px #b5945e,0 12px 24px #0008;
}
.portfolio-teaser .home-featured-project:focus-visible h3,
.portfolio-teaser .home-featured-project:active h3 { color:#e6c794; }
@media (prefers-reduced-motion:reduce) {
  .portfolio-teaser .home-featured-project .realisation-art,
  .portfolio-teaser .home-featured-project h3 { transition:none; }
}

/* Trial 03: reading position, no layout or photographic changes. */
.site-header .lutzoc-reading-line {
  position:absolute; bottom:-1px; left:0; right:0; height:2px;
  pointer-events:none;
  background:linear-gradient(90deg,#947345,#dfc18e 65%,#f0d8ab);
  transform:scaleX(var(--lutzoc-reading-progress,0)); transform-origin:left center;
  box-shadow:0 1px 4px #d5b88a33;
}
@media (prefers-reduced-motion:reduce) {
  .site-header .lutzoc-reading-line { display:none; }
}

/* Trial 04: a single satin reflection on intentional interaction. */
body .button.button-gold,body .nav-contact { isolation:isolate; overflow:hidden; }
body .button.button-gold::after,body .nav-contact::after {
  content:""; position:absolute; inset:0; pointer-events:none; z-index:-1;
  border-radius:inherit;
  background:linear-gradient(110deg,transparent 25%,#fff0 35%,#fff9 49%,#fff0 63%,transparent 75%);
  background-size:250% 100%; background-position:100% 0; opacity:0;
}
@keyframes lutzocSatinPass {
  0% { background-position:100% 0; opacity:0; }
  15% { opacity:.8; }
  80% { opacity:.8; }
  100% { background-position:0% 0; opacity:0; }
}
@media (hover:hover) and (pointer:fine) {
  body .button.button-gold:hover::after,body .nav-contact:hover::after {
    animation:lutzocSatinPass 700ms ease-out 1;
  }
}
body .button.button-gold:focus-visible::after,body .nav-contact:focus-visible::after {
  animation:lutzocSatinPass 700ms ease-out 1;
}
@media (prefers-reduced-motion:reduce) {
  body .button.button-gold::after,body .nav-contact::after { display:none; animation:none!important; }
}

/* Trial 05: menu opening; existing behaviour and focus remain unchanged. */
@keyframes lutzocMenuOpen {
  from { opacity:.8; transform:translateY(-8px); }
  to { opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion:no-preference) {
  .nav-explore[open] > .nav-explore-links {
    animation:lutzocMenuOpen 240ms cubic-bezier(.2,.65,.3,1) both;
  }
  @media (max-width:1049.98px) {
    .site-nav.open { animation:lutzocMenuOpen 260ms cubic-bezier(.2,.65,.3,1) both; }
    .site-nav.open:focus-within { animation:none; }
  }
}

/* Trial 06: editorial underline; no layout changes, no pseudo-element conflicts. */
body .site-nav > a:not(.nav-contact),
body .nav-explore-links a,
body .footer-links a {
  text-decoration:none;
  background-image:linear-gradient(90deg,#a48654,#e4c794);
  background-repeat:no-repeat;
  background-size:0% 1px;
  background-position:left bottom;
  transition:background-size 240ms ease-out,color 180ms ease-out;
}
@media (hover:hover) and (pointer:fine) {
  body .site-nav > a:not(.nav-contact):hover,
  body .nav-explore-links a:hover,
  body .footer-links a:hover { background-size:100% 1px; }
}
body .site-nav > a:not(.nav-contact):focus-visible,
body .nav-explore-links a:focus-visible,
body .footer-links a:focus-visible,
body .site-nav > a:not(.nav-contact):active,
body .nav-explore-links a:active,
body .footer-links a:active { background-size:100% 1px; }
@media (prefers-reduced-motion:reduce) {
  body .site-nav > a:not(.nav-contact),
  body .nav-explore-links a,
  body .footer-links a { transition:none; }
}

/* Local QA correction: keep photo frames within their existing card width. */
.home-selected-grid .realisation-art { width:100%; box-sizing:border-box; }


/* Atelier selection: line rhythm, engraved drawings, chapters and material layers. */
.lc-title-word { display:inline-block; }
.photo-film-working-portrait { position:relative; }
.lc-photo-shutters { position:absolute; inset:0; display:grid; grid-template-columns:repeat(4,1fr); pointer-events:none; }
.lc-photo-shutters i { display:block; background:#171613; transform-origin:center bottom; }
.lc-method-marker { display:none; }
@media(min-width:1000px) and (prefers-reduced-motion:no-preference) {
  .agency-method.lc-method-story > .wrap { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:30px 7vw; align-items:start; }
  .lc-method-story .method-heading { position:sticky; top:130px; }
  .lc-method-story .method-heading h2 { font-size:clamp(40px,3.6vw,62px); }
  .lc-method-story .method-grid { grid-template-columns:1fr; gap:20px; }
  .lc-method-story .method-grid > div { border-left:1px solid #66543a; padding:22px 0 30px 26px; }
  .lc-method-story .method-grid > .lc-step-current { border-left:2px solid #dfc18e; padding-left:25px; }
  .lc-method-story .lc-step-current h3 { color:#e6c794; }
  .lc-method-story .method-note { grid-column:2; margin-top:0; }
  .lc-method-story .lc-method-marker { display:block; color:#d7b78b; font:400 clamp(65px,7vw,110px)/1 var(--serif); margin-top:25px; }
}
/* Do not layer a second animated shine onto existing gold CTA buttons. */
body .footer-univers a, body .capability-grid a { transition:transform 200ms ease-out,border-color 180ms ease-out,background-color 180ms ease-out; }
body .footer-univers a::after { content:'↗'; display:inline-block; margin-left:12px; transition:transform 200ms ease-out; }
@media(hover:hover) and (pointer:fine) {
  body .footer-univers a:hover, body .capability-grid a:hover { transform:translateY(-3px); }
  body .footer-univers a:hover::after { transform:translate(2px,-2px); }
}
body .footer-univers a:focus-visible, body .capability-grid a:focus-visible { transform:translateY(-3px); }
body .footer-univers a:focus-visible::after { transform:translate(2px,-2px); }
/* A schematic of image/support/frame, never a claimed client project. */
.lc-design-scene { position:relative; height:clamp(210px,25vw,310px); max-width:660px; margin:0 auto 42px; perspective:900px; --lc-layer-spread:0; }
.lc-design-plane { position:absolute; inset:17% 22%; border-radius:3px; transform-style:preserve-3d; }
.lc-design-paper { background:linear-gradient(140deg,#f5eddf,#dcd0bb); border:1px solid #ac9878; box-shadow:0 8px 18px #31271926; transform:translate(calc(var(--lc-layer-spread)*-55px),calc(var(--lc-layer-spread)*20px)) rotateY(calc(var(--lc-layer-spread)*-10deg)); }
.lc-design-image { background:#191815; border:1px solid #a38a65; transform:translateY(calc(var(--lc-layer-spread)*-8px)); }
.lc-design-image svg { width:100%; height:100%; display:block; }
.lc-design-frame { border:8px solid #b59a6a; outline:1px solid #715936; outline-offset:2px; box-shadow:inset 0 0 0 1px #f2d6a0,0 5px 12px #31271922; transform:translate(calc(var(--lc-layer-spread)*55px),calc(var(--lc-layer-spread)*-20px)) rotateY(calc(var(--lc-layer-spread)*10deg)); }
@media(max-width:750px) { .lc-design-scene { margin-bottom:30px; } .lc-design-plane { inset:19% 15%; } }
@media(prefers-reduced-motion:reduce) {
  .lc-title-word { transform:none!important; opacity:1!important; }
  .lc-photo-shutters { display:none!important; }
  body .footer-univers a, body .capability-grid a, body .footer-univers a::after { transition:none!important; transform:none!important; }
  .lc-design-plane { transform:none!important; }
}
