:root {
        --ink: #1a171b;
        --green: #2c982e;
        --green-dark: #16751d;
        --muted: #60645f;
        --line: #dfe4e1;
        --soft: #f5f7f5;
        --white: #fff;
      }
      * {
        box-sizing: border-box;
      }
      html {
        scroll-behavior: smooth;
      }
      body {
        margin: 0;
        color: var(--ink);
        background: #fff;
        font-family: Archivo, Arial, sans-serif;
        font-size: 16px;
      }
      body.is-locked {
        overflow: hidden;
      }
      a {
        color: inherit;
        text-decoration: none;
      }
      button {
        font: inherit;
      }
      img {
        max-width: 100%;
      }
      .wrap {
        width: min(1180px, calc(100% - 40px));
        margin: auto;
      }
      .nav {
        height: 82px;
        position: sticky;
        top: 0;
        z-index: 30;
        background: rgba(255, 255, 255, 0.96);
        border-bottom: 1px solid var(--line);
        backdrop-filter: blur(12px);
      }
      .nav .wrap {
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
      }
      .brand {
        display: flex;
        align-items: center;
        gap: 12px;
      }
      .brand img {
        display: block;
        width: auto;
        height: 56px;
        object-fit: contain;
      }
      .brand .brand-emblem {
        width: 56px;
      }
      .navlinks {
        display: flex;
        align-items: center;
        gap: 28px;
        font-size: 0.88rem;
        font-weight: 700;
      }
      .navlinks a:not(.pill):hover,
      .navlinks a[aria-current="page"] {
        color: var(--green);
      }
      .pill,
      .primary {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 999px;
        padding: 14px 22px;
        font-weight: 800;
      }
      .pill,
      .primary {
        color: #fff;
        background: var(--green);
      }
      .pill:hover,
      .primary:hover {
        background: var(--green-dark);
      }
      .menu {
        display: none;
        border: 0;
        background: transparent;
        font-size: 1.5rem;
      }
      .hero {
        color: #fff;
        background:
          linear-gradient(90deg, rgba(8, 10, 9, 0.88), rgba(8, 10, 9, 0.38)),
          url("../realisations/cuisine-bois-ilot.webp") center 55% / cover;
      }
      .hero .wrap {
        min-height: 490px;
        padding: 92px 0 80px;
        display: flex;
        align-items: end;
      }
      .hero-copy {
        max-width: 820px;
      }
      .eyebrow {
        margin: 0 0 18px;
        color: #73d378;
        text-transform: uppercase;
        letter-spacing: 0.24em;
        font-size: 0.76rem;
        font-weight: 800;
      }
      h1 {
        margin: 0 0 22px;
        max-width: 780px;
        font-size: clamp(3rem, 7vw, 6rem);
        line-height: 0.98;
        letter-spacing: -0.055em;
      }
      .hero p:not(.eyebrow) {
        margin: 0;
        max-width: 690px;
        font-size: 1.08rem;
        line-height: 1.65;
      }
      .intro {
        padding: 72px 0 38px;
      }
      .intro-row {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 40px;
        align-items: end;
      }
      .intro h2 {
        margin: 0 0 12px;
        font-size: clamp(2rem, 4vw, 3.5rem);
        letter-spacing: -0.045em;
      }
      .intro p {
        margin: 0;
        color: var(--muted);
        line-height: 1.65;
      }
      .filters {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 8px;
      }
      .filter {
        min-height: 46px;
        border: 1px solid #cfd5d1;
        border-radius: 999px;
        padding: 10px 17px;
        color: var(--ink);
        background: #fff;
        font-weight: 800;
        cursor: pointer;
      }
      .filter:hover,
      .filter.is-active {
        color: #fff;
        background: var(--green);
        border-color: var(--green);
      }
      .gallery {
        padding: 14px 0 100px;
      }
      .grid {
        display: grid;
        grid-template-columns: repeat(12, 1fr);
        grid-auto-flow: dense;
        gap: 16px;
      }
      .work {
        grid-column: span 4;
        position: relative;
        min-height: 370px;
        overflow: hidden;
        border: 0;
        border-radius: 20px;
        padding: 0;
        color: #fff;
        background: #e7ebe8;
        cursor: zoom-in;
        box-shadow: 0 10px 30px rgba(14, 25, 18, 0.08);
        opacity: 0;
        transform: translateY(22px);
        animation: reveal 0.65s ease forwards;
      }
      .work.wide {
        grid-column: span 8;
      }
      .work.tall {
        min-height: 540px;
      }
      .work[hidden] {
        display: none;
      }
      .work img {
        width: 100%;
        height: 100%;
        position: absolute;
        inset: 0;
        object-fit: cover;
        transition: transform 0.55s ease;
      }
      .work::after {
        content: "";
        position: absolute;
        inset: 48% 0 0;
        background: linear-gradient(transparent, rgba(0, 0, 0, 0.78));
      }
      .work:hover img {
        transform: scale(1.035);
      }
      .work:hover .zoom {
        transform: translateY(-3px);
        background: #fff;
        color: var(--ink);
      }
      .work-meta {
        position: absolute;
        z-index: 2;
        right: 20px;
        bottom: 18px;
        left: 20px;
        display: flex;
        align-items: end;
        justify-content: space-between;
        gap: 18px;
        text-align: left;
      }
      .work-meta span {
        display: block;
        margin-bottom: 5px;
        color: #b7ecbb;
        font-size: 0.7rem;
        font-weight: 800;
        letter-spacing: 0.16em;
        text-transform: uppercase;
      }
      .work-meta strong {
        font-size: 1.08rem;
        line-height: 1.25;
      }
      .zoom {
        flex: 0 0 auto;
        width: 40px;
        height: 40px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        background: rgba(255, 255, 255, 0.18);
        font-size: 1.25rem;
        backdrop-filter: blur(8px);
        transition: 0.25s ease;
      }
      .photo-count {
        flex: 0 0 auto;
        border: 1px solid rgba(255, 255, 255, 0.36);
        border-radius: 999px;
        padding: 9px 12px;
        color: #fff;
        background: rgba(12, 15, 13, 0.46);
        font-size: 0.72rem;
        font-style: normal;
        font-weight: 800;
        white-space: nowrap;
        backdrop-filter: blur(8px);
      }
      @keyframes reveal {
        to {
          opacity: 1;
          transform: none;
        }
      }
      .cta {
        padding: 80px 0;
        color: #fff;
        background: #121413;
      }
      .cta .wrap {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 40px;
      }
      .cta h2 {
        margin: 0 0 12px;
        max-width: 670px;
        font-size: clamp(2rem, 4vw, 3.6rem);
        line-height: 1.03;
        letter-spacing: -0.045em;
      }
      .cta p {
        margin: 0;
        color: #c7cbc8;
        line-height: 1.6;
      }
      .footer {
        padding: 46px 0 24px;
        color: #c7cbc8;
        background: #0d0f0e;
        border-top: 1px solid #2b2e2c;
      }
      .footgrid {
        display: grid;
        grid-template-columns: 1.4fr 1fr 1fr;
        gap: 50px;
      }
      .footer h3 {
        margin: 0 0 16px;
        color: #fff;
      }
      .footer p,
      .footer address {
        line-height: 1.7;
        font-style: normal;
      }
      .footer a {
        display: block;
        margin: 9px 0;
      }
      .footer a:hover {
        color: #79d57d;
      }
      .legal {
        margin-top: 40px;
        padding-top: 22px;
        border-top: 1px solid #292c2a;
        display: flex;
        justify-content: space-between;
        gap: 20px;
        font-size: 0.78rem;
        color: #858a86;
      }
      .lightbox {
        position: fixed;
        z-index: 100;
        inset: 0;
        display: none;
        place-items: center;
        padding: 32px;
        background: rgba(3, 5, 4, 0.94);
      }
      .lightbox.is-open {
        display: grid;
      }
      .lightbox img {
        max-width: min(1200px, 90vw);
        max-height: calc(100vh - 190px);
        object-fit: contain;
        border-radius: 10px;
        box-shadow: 0 25px 80px rgba(0, 0, 0, 0.5);
      }
      .lightbox-close,
      .lightbox-prev,
      .lightbox-next {
        position: fixed;
        border: 1px solid rgba(255, 255, 255, 0.28);
        color: #fff;
        background: rgba(18, 20, 19, 0.72);
        cursor: pointer;
        backdrop-filter: blur(7px);
      }
      .lightbox-close {
        top: 22px;
        right: 22px;
        width: 48px;
        height: 48px;
        border-radius: 50%;
        font-size: 1.6rem;
      }
      .lightbox-prev,
      .lightbox-next {
        top: 50%;
        width: 52px;
        height: 68px;
        border-radius: 14px;
        font-size: 1.8rem;
      }
      .lightbox-prev {
        left: 22px;
      }
      .lightbox-next {
        right: 22px;
      }
      .lightbox-caption {
        position: fixed;
        bottom: 105px;
        left: 50%;
        transform: translateX(-50%);
        color: #fff;
        text-align: center;
        font-weight: 700;
      }
      .lightbox-thumbs {
        position: fixed;
        right: 74px;
        bottom: 18px;
        left: 74px;
        display: flex;
        justify-content: center;
        gap: 8px;
        min-height: 64px;
        overflow-x: auto;
        scrollbar-width: thin;
      }
      .lightbox-thumb {
        flex: 0 0 72px;
        width: 72px;
        height: 58px;
        overflow: hidden;
        border: 2px solid transparent;
        border-radius: 9px;
        padding: 0;
        background: #1b1e1c;
        cursor: pointer;
        opacity: 0.64;
      }
      .lightbox-thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 6px;
        box-shadow: none;
      }
      .lightbox-thumb.is-active {
        border-color: #69d16d;
        opacity: 1;
      }
      @media (prefers-reduced-motion: reduce) {
        *,
        *::before,
        *::after {
          scroll-behavior: auto !important;
          animation: none !important;
          transition: none !important;
        }
        .work {
          opacity: 1;
          transform: none;
        }
      }
      @media (max-width: 820px) {
        .nav {
          height: 72px;
        }
        .brand img {
          height: 46px;
        }
        .brand .brand-emblem {
          width: 46px;
        }
        .navlinks {
          display: none;
        }
        .navlinks.is-open {
          position: absolute;
          inset: 72px 0 auto;
          display: flex;
          flex-direction: column;
          padding: 24px;
          background: #fff;
          border-bottom: 1px solid var(--line);
        }
        .menu {
          display: block;
        }
        .hero .wrap {
          min-height: 410px;
          padding: 65px 0 58px;
        }
        .intro-row {
          grid-template-columns: 1fr;
          gap: 28px;
        }
        .filters {
          justify-content: flex-start;
        }
        .work,
        .work.wide {
          grid-column: span 6;
          min-height: 390px;
        }
        .work.tall {
          min-height: 480px;
        }
        .cta .wrap {
          align-items: flex-start;
          flex-direction: column;
        }
        .footgrid {
          grid-template-columns: 1fr 1fr;
        }
      }
      @media (max-width: 540px) {
        .wrap {
          width: min(100% - 28px, 1180px);
        }
        h1 {
          font-size: clamp(2.65rem, 14vw, 4rem);
        }
        .intro {
          padding-top: 54px;
        }
        .filter {
          flex: 1 1 auto;
        }
        .grid {
          gap: 12px;
        }
        .work,
        .work.wide {
          grid-column: span 12;
          min-height: 410px;
          border-radius: 16px;
        }
        .work.tall {
          min-height: 500px;
        }
        .footgrid {
          grid-template-columns: 1fr;
        }
        .legal {
          flex-direction: column;
        }
        .lightbox {
          padding: 12px;
        }
        .lightbox-prev,
        .lightbox-next {
          top: 48%;
          bottom: auto;
          width: 48px;
          height: 48px;
        }
        .lightbox-prev {
          left: 14px;
        }
        .lightbox-next {
          right: 14px;
        }
        .lightbox-caption {
          bottom: 96px;
          width: calc(100% - 32px);
          font-size: 0.86rem;
        }
        .lightbox-thumbs {
          right: 14px;
          bottom: 16px;
          left: 14px;
          justify-content: flex-start;
        }
      }
