:root {
    --bg: #ffffff;
    --fg: #111111;
    --muted: rgba(17,17,17,.55);
    --muted-2: rgba(17,17,17,.42);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--fg);
    font-family: "Inter Tight", Arial, sans-serif;
}

img {
    max-width: 100%;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

.site-shell {
    width: calc(100% - 2rem);
    margin: 0 auto;
}

.site-main {
    min-height: 60vh;
}

/* Header */

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    backdrop-filter: blur(18px);
    background: rgba(255,255,255,.82);
}

.site-header__inner {
    min-height: 4rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.site-brand {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    flex-shrink: 0;
}

.site-brand img {
    display: block;
    width: auto;
    height: 2rem;
    max-width: 100%;
}

.site-brand span {
    display: block;
    font-size: 1.25rem;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.site-nav {
    margin-left: auto;
}

.site-nav__menu,
.site-footer__menu,
.mobile-menu__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-nav__menu {
    display: flex;
    gap: 1.5rem;
}

.site-nav__menu a,
.mobile-menu__list a {
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .18em;
    color: var(--muted);
}

.site-nav__menu .current-menu-item > a {
    color: var(--fg);
}

.site-menu-toggle {
    display: none;
    appearance: none;
    background: none;
    border: 0;
    padding: .5rem;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-direction: column;
}

.site-menu-toggle__bar {
    width: 18px;
    height: 2px;
    background: #111;
    display: block;
    transition: transform .2s ease, opacity .2s ease;
}

.site-menu-toggle.is-open .site-menu-toggle__bar:first-child {
    transform: translateY(3px) rotate(45deg);
}

.site-menu-toggle.is-open .site-menu-toggle__bar:last-child {
    transform: translateY(-3px) rotate(-45deg);
}

.mobile-menu {
    background: #fff;
    box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

.mobile-menu__inner {
    padding: 1rem 0 1.5rem;
}

.mobile-menu__list li + li {
    margin-top: .8rem;
}

.mobile-menu__list a {
    display: block;
    padding: .35rem 0;
    font-size: 0.5rem;
}

/* Shared mono text */

.home-intro__count,
.project-card__meta,
.archive-filter,
.home-archive-link,
.site-footer__label,
.site-footer__bottom {
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .18em;
}

/* Work search */

.work-search {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 1.75rem 0 1.5rem;
}

.work-search__clear {
    font-family: "JetBrains Mono", monospace;
    opacity: 0.4;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--muted-2);
}

.work-search__clear:hover {
    opacity: 1;
}

.work-search input {
    background: transparent;
    border: 0;
    padding: 0;

    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--fg);
}

.work-search input::placeholder {
    color: var(--muted-2);
}

.work-search input:focus {
    outline: none;
}
.work-search-no-results {
    grid-column: 1 / -1;
    padding: 2.75rem 0 3rem;
}

.work-search-no-results p {
    margin: 0;
    max-width: 8ch;
    font-size: clamp(3.6rem, 7vw, 6.7rem);
    line-height: .88;
    font-weight: 700;
    letter-spacing: -.06em;
    text-transform: uppercase;
    color: var(--fg);
}

@media (max-width: 900px) {
    .work-search-no-results p {
        max-width: none;
        font-size: clamp(2.8rem, 11vw, 4.7rem);
    }
}

/* Showreel hero */

.showreel-hero {
    padding-top: 1.5rem;
}

.showreel-hero__frame {
    background: #000;
    overflow: hidden;
}

.showreel-hero__frame iframe,
.showreel-hero__frame img,
.showreel-hero__placeholder {
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    display: block;
}

.showreel-hero__frame img {
    object-fit: cover;
}

.showreel-hero__placeholder {
    background: linear-gradient(135deg, #050505 0%, #151515 50%, #1f1f1f 100%);
}

/* Home / archive / standard page intros */

.home-intro,
.standard-page-intro {
    padding: 2.5rem 0 1.5rem;
}

.archive-intro {
    padding: 2.75rem 0 3rem;
}

.archive-intro__label {
    margin: 0 0 1rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
}

.home-intro__title,
.standard-page-intro h1 {
    margin: 0;
    max-width: 12ch;
    font-size: clamp(3rem, 8vw, 7rem);
    line-height: .92;
    text-transform: uppercase;
    letter-spacing: -.05em;
}

.archive-intro h1 {
    margin: 0;
    max-width: 8ch;
    font-size: clamp(3.6rem, 7vw, 6.7rem);
    line-height: .88;
    letter-spacing: -.06em;
    text-transform: uppercase;
}

.home-intro__meta,
.archive-intro__meta {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    margin-top: 1.25rem;
}

.home-intro__text {
    max-width: 52rem;
    font-size: 0.98rem;
    line-height: 1.6;
    color: rgba(17,17,17,.62);
}

.archive-intro__meta p,
.standard-page-content {
    color: var(--muted);
    line-height: 1.7;
}

/* Project grid */

.project-grid {
    padding: 1rem 0 0;
}

.project-grid__inner {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 2rem;
    align-items: start;
}

.project-card {
    grid-column: span 6;
}

.project-card--narrow {
    grid-column: span 4;
}

.project-card--tall {
    grid-column: span 4;
}

.project-card__link {
    display: block;
}

.project-card__media {
    aspect-ratio: 1.58 / 1;
    overflow: hidden;
    background: #f3f3f3;
}

.project-card--narrow .project-card__media {
    aspect-ratio: 1.38 / 1;
}

.project-card--tall .project-card__media {
    aspect-ratio: 4 / 5;
}

.project-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.project-card__link:hover .project-card__media img {
    transform: scale(1.02);
}

.project-card__content {
    padding-top: 1rem;
}

.project-card__meta {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--muted-2);
}

.project-card__title {
    margin: .45rem 0 0;
    font-size: clamp(1.7rem, 2.4vw, 2.7rem);
    line-height: .98;
    letter-spacing: -.045em;
}

.project-card--narrow .project-card__title,
.project-card--tall .project-card__title {
    font-size: clamp(1.45rem, 2vw, 2.1rem);
}

.project-card__summary {
    max-width: 52ch;
    margin: .45rem 0 0;
    font-size: .92rem;
    line-height: 1.55;
    color: rgba(17,17,17,.62);
}

.project-card--narrow .project-card__summary,
.project-card--tall .project-card__summary {
    max-width: 40ch;
}

.home-archive-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding-top: 2rem;
}

.archive-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem;
    padding-bottom: 1rem;
    color: var(--muted-2);
}

.archive-filter .is-active {
    color: var(--fg);
}

/* Project Card - Label */
.project-card__media {
    position: relative;
}

.project-card__image-label {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 2;

    display: inline-block;
    padding: 0.45em 0.65em;

    background: #fff;
    color: #000;

    font-size: 0.9rem;
    line-height: 1;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

/* Project archive list */

.project-media-block--wide-text .project-media-block__text {
    width: 100%;
    max-width: none;
}

.project-archive-list {
    width: 100%;
    max-width: none;

    columns: 2;
    column-gap: 3rem;

    list-style: none;
    padding: 0;
    margin: 1.5rem 0 0;

    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    line-height: 1.8;
}

.project-archive-list li {
    margin: 0;
    break-inside: avoid;
}

@media (max-width: 700px) {
    .project-archive-list {
        columns: 1;
    }
}

/* Archive pagination */
.archive-pagination--minimal {
    margin-top: 5rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(0, 0, 0, 0.18);

    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;

    font-size: 0.75rem;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.archive-pagination--minimal a {
    color: inherit;
    text-decoration: none;
}

.archive-pagination--minimal a:hover {
    opacity: 0.45;
}

.archive-pagination__prev {
    text-align: left;
}

.archive-pagination__count {
    text-align: center;
    opacity: 0.45;
    white-space: nowrap;
}

.archive-pagination__next {
    text-align: right;
}

@media (max-width: 700px) {
    .archive-pagination--minimal {
        margin-top: 3rem;
        grid-template-columns: 1fr;
        gap: 0.85rem;
    }

    .archive-pagination__prev,
    .archive-pagination__next,
    .archive-pagination__count {
        text-align: center;
    }
}

/* Homepage selected projects */

.project-grid--home .project-grid__inner {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: 2rem;
    row-gap: 5.75rem;
    align-items: center;
}

.project-grid--home .project-card,
.project-grid--home .project-card--standard,
.project-grid--home .project-card--narrow,
.project-grid--home .project-card--tall {
    grid-column: span 6;
}

.project-grid--home .project-card--home-small {
    grid-column: span 5;
}

.project-grid--home .project-card--home-large {
    grid-column: span 7;
}

.project-grid--home .project-card__media,
.project-grid--home .project-card--standard .project-card__media,
.project-grid--home .project-card--narrow .project-card__media,
.project-grid--home .project-card--tall .project-card__media,
.project-grid--home .project-card--home-small .project-card__media,
.project-grid--home .project-card--home-large .project-card__media {
    aspect-ratio: 1.58 / 1;
}

.project-grid--home .project-card__title,
.project-grid--home .project-card--home-small .project-card__title,
.project-grid--home .project-card--home-large .project-card__title {
    font-size: clamp(1.7rem, 2.4vw, 2.7rem);
}

.project-grid--home .project-card__summary,
.project-grid--home .project-card--home-small .project-card__summary,
.project-grid--home .project-card--home-large .project-card__summary {
    max-width: 44ch;
}

/* Single project hero */

.project-hero {
    width: 100%;
}

.project-hero__media {
    width: 100%;
    background: #000;
    overflow: hidden;
}

.project-hero__media--video {
    position: relative;
    aspect-ratio: 16 / 9;
}

.project-hero__iframe {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

.project-hero__mobile-poster {
    display: none;
}

.project-hero__media:not(.project-hero__media--video) img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

/* Mobile: show poster instead of Vimeo */
@media (max-width: 700px) {
    .project-hero__media--has-mobile-poster .project-hero__iframe {
        display: none;
    }

    .project-hero__media--has-mobile-poster .project-hero__mobile-poster {
        display: block;
        width: 100%;
        aspect-ratio: 16 / 9;
        object-fit: cover;
    }
}

.project-layout {
    display: grid;
    grid-template-columns: minmax(0, 3.35fr) minmax(15rem, 0.55fr);
    gap: 3.25rem;
    padding: 2.5rem 0 4rem;
    align-items: start;
}

.project-layout__main {
    min-width: 0;
    max-width: 80rem;
}

.project-layout__aside {
    min-width: 0;
    padding-top: 4.5rem;
}

.project-back-link {
    display: inline-block;
    margin-bottom: 1.75rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
}

.project-category {
    margin: 0 0 1rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
}

.project-title {
    margin: 0;
    max-width: 14ch;
    font-size: clamp(2.2rem, 4vw, 3.7rem);
    line-height: 0.96;
    letter-spacing: -0.045em;
    text-transform: uppercase;
}

.project-client {
    margin: 0.7rem 0 1.2rem;
    font-family: "Inter Tight", Arial, sans-serif;
    font-size: 0.9rem;
    line-height: 1.45;
    letter-spacing: 0;
    text-transform: none;
    color: var(--muted);
}

.project-intro {
    margin: 0 0 1.5rem;
    max-width: 52rem;
    font-size: clamp(1rem, 1.15vw, 1.12rem);
    line-height: 1.5;
    color: rgba(17,17,17,.68);
}

.project-body {
    max-width: 80rem;
    font-size: 0.94rem;
    line-height: 1.65;
    color: rgba(17,17,17,.78);
}

.project-body > *:first-child {
    margin-top: 0;
}

.project-body p {
    margin: 0 0 1.2rem;
}

.project-body h2,
.project-body h3 {
    margin: 2.25rem 0 0.8rem;
    font-size: 0.95rem;
    line-height: 1.25;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Project meta */

.project-meta {
    display: grid;
    gap: 1.2rem;
}

.project-meta__block {
    display: grid;
    gap: 0.4rem;
}

.project-meta__label {
    margin: 0;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
}

.project-meta__stack {
    display: grid;
    gap: 0.28rem;
}

.project-meta__stack p,
.project-meta__stack li {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.4;
    color: rgba(17,17,17,.70);
}

.project-meta__stack ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Flexible media blocks */

.project-media-blocks {
    display: grid;
    gap: 1.5rem;
    margin-top: 2.5rem;
}

.project-media-block__embed iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    display: block;
}

.project-media-block__figure {
    margin: 0;
}

.project-media-block__figure img {
    width: 100%;
    height: auto;
    display: block;
}

.project-media-block__caption {
    margin: 0.6rem 0 0;
    font-size: 0.85rem;
    line-height: 1.5;
    color: rgba(17,17,17,.5);
}

.project-media-block__text {
    max-width: 44rem;
    font-size: 0.95rem;
    line-height: 1.68;
    color: rgba(17,17,17,.75);
}

/* Project Section Heading */
.project-section-block {
    margin-top: 3rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(0,0,0,0.12);
}

.project-section-block__title {
    margin: 0 0 0.85rem;
    font-size: clamp(1.5rem, 3vw, 2.75rem);
    line-height: 1;
    font-weight: 700;
    letter-spacing: -0.035em;
    text-transform: uppercase;
}

.project-section-block__intro {
    max-width: 42rem;
}

.project-section-block__intro p {
    margin: 0 0 1.25rem;
    font-size: 1rem;
    line-height: 1.6;
}

/* Video grid */

.project-video-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.project-video-grid__embed {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.project-video-grid__embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* Square */
.project-video-grid__item--square .project-video-grid__embed {
    aspect-ratio: 1 / 1;
}

/* Portrait */
.project-video-grid__item--portrait .project-video-grid__embed {
    aspect-ratio: 9 / 16;
}

/* Four-Five */
.project-video-grid__item--four-five .project-video-grid__embed {
    aspect-ratio: 4 / 5;
}

/* Landscape */
.project-video-grid__item--landscape .project-video-grid__embed {
    aspect-ratio: 16 / 9;
}

/* Legacy gallery fallback */

.project-gallery {
    display: grid;
    gap: 1rem;
    margin-top: 2.5rem;
}

.project-gallery__item {
    margin: 0;
}

.project-gallery__item img {
    display: block;
    width: 100%;
    height: auto;
}

/* Clients page */

.clients-page {
    padding: 2.75rem 0 3rem;
}

.clients-page__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.45fr);
    gap: 3rem 4rem;
    align-items: start;
}

.clients-page__intro {
    max-width: 34rem;
}

.clients-page__label {
    margin: 0 0 1rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
}

.clients-page__title {
    margin: 0;
    max-width: 8ch;
    font-size: clamp(3.6rem, 7vw, 6.7rem);
    line-height: 0.88;
    letter-spacing: -0.06em;
    text-transform: uppercase;
}

.clients-page__text {
    margin: 1.4rem 0 0;
    max-width: 33rem;
    font-size: 0.98rem;
    line-height: 1.6;
    color: rgba(17,17,17,.62);
}

.clients-page__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 3rem;
    align-items: start;
}

.clients-page__column {
    display: grid;
    gap: 0.95rem;
    align-content: start;
}

.clients-page__item {
    margin: 0;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    line-height: 1.35;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(17,17,17,.58);
}

/* Contact page */

.contact-page {
    padding: 2.75rem 0 3rem;
}

.contact-page__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.45fr);
    gap: 3rem 4rem;
    align-items: start;
}

.contact-page__intro {
    max-width: 34rem;
}

.contact-page__label {
    margin: 0 0 1rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
}

.contact-page__title {
    margin: 0;
    max-width: 10ch;
    font-size: clamp(3.6rem, 7vw, 6.7rem);
    line-height: 0.88;
    letter-spacing: -0.06em;
    text-transform: uppercase;
}

.contact-page__text {
    margin: 1.35rem 0 0;
    max-width: 33rem;
    font-size: 0.98rem;
    line-height: 1.6;
    color: rgba(17,17,17,.62);
}

.contact-page__primary {
    margin-top: 1.5rem;
}

.contact-page__primary p {
    margin: 0 0 0.55rem;
    font-size: 1rem;
    line-height: 1.5;
    color: rgba(17,17,17,.72);
}

.contact-page__content {
    min-width: 0;
    width: 100%;
    max-width: none;
    padding-top: 0.25rem;
}

.contact-page__content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 2rem 3rem;
    align-items: start;
    width: 100%;
}

.contact-page__column {
    display: grid;
    align-content: start;
    gap: 1.75rem;
}

.contact-page__block,
.contact-page__block-text,
.contact-page__form-block,
.contact-page__form,
.contact-page__form .wpcf7 {
    width: 100%;
}

.contact-page__block-label {
    margin: 0 0 0.6rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
}

.contact-page__block-text,
.contact-page__form {
    font-size: 0.96rem;
    line-height: 1.65;
    color: rgba(17,17,17,.72);
}

.contact-page__block-text p {
    margin: 0 0 0.85rem;
}

.contact-page__form-block {
    margin-top: 0;
}

.contact-page__form input,
.contact-page__form textarea,
.contact-page__form select {
    width: 100%;
    border: 0;
    background: rgba(17,17,17,.04);
    padding: 0.9rem 1rem;
    font: inherit;
    color: var(--fg);
}

.contact-page__form textarea {
    min-height: 10rem;
    resize: vertical;
}

.contact-page__form input::placeholder,
.contact-page__form textarea::placeholder {
    color: rgba(17,17,17,.45);
}

.contact-page__form p {
    margin: 0 0 0.75rem;
}

.contact-page__form button,
.contact-page__form input[type="submit"] {
    appearance: none;
    border: 0;
    background: var(--fg);
    color: #fff;
    padding: 0.9rem 1.2rem;
    font: inherit;
    cursor: pointer;
}

/* Contact Form 7 refinement */

.contact-page__form .wpcf7-form {
    display: grid;
    gap: 0.85rem;
}

.contact-page__form .wpcf7-form-control-wrap {
    display: block;
}

.contact-page__form input[type="text"],
.contact-page__form input[type="email"],
.contact-page__form textarea {
    width: 100%;
    border: 0;
    background: rgba(17,17,17,.04);
    padding: 0.95rem 1rem;
    font: inherit;
    font-size: 0.96rem;
    line-height: 1.4;
    color: var(--fg);
    border-radius: 0;
    box-shadow: none;
}

.contact-page__form textarea {
    min-height: 12rem;
    resize: vertical;
}

.contact-page__form input::placeholder,
.contact-page__form textarea::placeholder {
    color: rgba(17,17,17,.45);
}

.contact-page__form .wpcf7-not-valid-tip {
    margin-top: 0.4rem;
    font-size: 0.82rem;
    line-height: 1.4;
    color: #c43b2f;
}

.contact-page__form .wpcf7-response-output {
    margin: 1rem 0 0 !important;
    padding: 0.85rem 1rem !important;
    border: 1px solid rgba(17,17,17,.16) !important;
    font-size: 0.9rem;
    line-height: 1.5;
    color: rgba(17,17,17,.72);
    background: rgba(17,17,17,.02);
}

.contact-page__form .wpcf7-submit {
    appearance: none;
    width: 100%;
    border: 0;
    background: var(--fg);
    color: #fff;
    padding: 0.95rem 1.2rem;
    font: inherit;
    font-size: 0.95rem;
    line-height: 1;
    cursor: pointer;
    border-radius: 0;
}

.contact-page__form .wpcf7-spinner {
    margin: 0.5rem 0 0;
}

/* About page */

.about-page {
    padding: 2.75rem 0 3rem;
}

.about-page__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.45fr);
    gap: 3rem 4rem;
    align-items: start;
}

.about-page__intro {
    max-width: 34rem;
}

.about-page__label {
    margin: 0 0 1rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
}

.about-page__title {
    margin: 0;
    max-width: 10ch;
    font-size: clamp(3.6rem, 7vw, 6.7rem);
    line-height: 0.88;
    letter-spacing: -0.06em;
    text-transform: uppercase;
}

.about-page__content {
    min-width: 0;
    max-width: none;
    padding-top: 0.15rem;
}

.about-page__section + .about-page__section {
    margin-top: 2.5rem;
}

.about-page__section-label {
    margin: 0 0 1rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
}

.about-page__text {
    max-width: none;
    font-size: 1rem;
    line-height: 1.65;
    color: rgba(17,17,17,.68);
}

.about-page__text p {
    margin: 0 0 1.35rem;
}

.about-page__capabilities {
    margin-top: 2.75rem;
}

.about-page__services-label {
    margin: 0 0 1rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
}

.about-page__services-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.95rem 2rem;
}

.about-page__service-item {
    break-inside: avoid;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    line-height: 1.35;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(17,17,17,.58);
}

/* Showreel page */

.showreel-page {
    padding-bottom: clamp(4rem, 8vw, 8rem);
}

.showreel-page__embed {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
    overflow: hidden;
}

.showreel-page__embed iframe {
    width: 100%;
    height: 100%;
    display: block;
    border: 0;
}

/* All Credits */

.simple-credits-list {
    margin-top: 0.2rem;
}

.simple-credit-year-group {
    display: grid;
    grid-template-columns: 7rem 1fr;
    gap: 2rem;
    border-top: 1px solid rgba(17,17,17,.12);
}

.simple-credit-year {
    margin: 0;
    padding-top: 0.7rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(17,17,17,.45);
}

.simple-credit-year-items {
    display: grid;
}

.simple-credit-row--grouped {
    display: block;
    padding: 0.7rem 0;
    border-bottom: 1px solid rgba(17,17,17,.1);
}

.simple-credit-row__main {
    display: grid;
    gap: 0.15rem;
}

.simple-credit-row__title {
    margin: 0;
    font-size: 1rem;
    line-height: 1.3;
    letter-spacing: -0.02em;
    text-transform: uppercase;
}

.simple-credit-row__client {
    margin: 0;
    font-size: 0.85rem;
    line-height: 1.35;
    color: rgba(17,17,17,.55);
}

@media (max-width: 700px) {
    .simple-credit-year-group {
        grid-template-columns: 1fr;
        gap: 0.35rem;
        padding-top: 1.6rem;
    }

    .simple-credit-year {
        padding-top: 0;
    }

    .simple-credit-row--grouped {
        padding: 0.85rem 0;
    }
}

/* Footer */

.site-footer {
    margin-top: 30rem;
}

.site-footer__grid {
    display: grid;
    grid-template-columns: 5fr 3fr 4fr;
    gap: 3rem;
    padding: 3rem 0;
}

.site-footer__brand {
    min-width: 0;
}

.site-footer__logo {
    display: block;
    width: auto;
    height: 2rem;
    max-width: 100%;
    object-fit: contain;
}

.site-footer__wordmark {
    display: block;
    font-size: 1.25rem;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.site-footer__text {
    max-width: 22rem;
    color: var(--muted);
    line-height: 1.45;
    font-family: "Inter Tight", Arial, sans-serif;
    font-size: 0.95rem;
}

.site-footer__menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-footer__menu li {
    display: block;
    margin: 0;
}

.site-footer__menu > * + * {
    margin-top: 0.25rem;
}

.site-footer__menu a {
    display: block;
    font-family: "Inter Tight", Arial, sans-serif;
    font-size: 0.95rem;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.01em;
    text-transform: none;
    color: var(--muted);
}

.site-footer__label {
    margin: 0 0 1rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .18em;
    color: var(--muted-2);
}

.site-footer__bottom {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--muted-2);
    padding: 1rem 0 2rem;
}

/* 404 page */

.error-page {
    position: relative;
    padding: 2.75rem 0 4rem;
    min-height: calc(100vh - 10rem);
    overflow: hidden;
}

.error-page__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.45fr);
    gap: 3rem 4rem;
    align-items: start;
}

.error-page__intro {
    max-width: 34rem;
}

.error-page__label {
    margin: 0 0 1rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
}

.error-page__title {
    margin: 0;
    max-width: 8ch;
    font-size: clamp(3.6rem, 7vw, 6.7rem);
    line-height: 0.88;
    letter-spacing: -0.06em;
    text-transform: uppercase;
}

.error-page__content {
    min-width: 0;
    width: 100%;
    max-width: none;
    padding-top: 0.1rem;
}

.error-page__lead {
    margin: 0 0 1.1rem;
    max-width: none;
    font-size: 1rem;
    line-height: 1.65;
    color: rgba(17,17,17,.72);
}

.error-page__text {
    margin: 0 0 2rem;
    max-width: none;
    font-size: 0.96rem;
    line-height: 1.65;
    color: rgba(17,17,17,.62);
}

.error-page__links {
    display: grid;
    gap: 1.25rem;
    max-width: none;
    margin-top: 2.25rem;
}

.error-page__link {
    display: block;
    padding: 0;
}

.error-page__link-label {
    display: block;
    margin: 0 0 0.45rem;
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted-2);
    white-space: nowrap;
}

.error-page__link-text {
    display: block;
    font-size: clamp(1.2rem, 1.7vw, 1.6rem);
    line-height: 0.98;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: -0.03em;
    color: var(--fg);
    transition: opacity .2s ease, transform .2s ease;
}

.error-page__link::after {
    content: none;
}

.error-page__link:hover .error-page__link-text {
    opacity: 0.6;
    transform: translateX(0.15rem);
}

/* Responsive */

@media (max-width: 1200px) {
    .project-layout__aside {
        padding-top: 3rem;
    }
}

@media (max-width: 1100px) {
    .clients-page__grid,
    .contact-page__grid,
    .about-page__grid,
    .error-page__grid {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .clients-page__intro,
    .contact-page__intro,
    .about-page__intro,
    .error-page__intro {
        max-width: 42rem;
    }

    .clients-page__title,
    .contact-page__title,
    .about-page__title,
    .error-page__title {
        max-width: 9ch;
    }

    .clients-page__list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 2rem;
    }

    .about-page__services-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .site-nav {
        display: none;
    }

    .site-menu-toggle {
        display: inline-flex;
    }

    .project-grid__inner {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .project-card,
    .project-card--narrow,
    .project-card--tall {
        grid-column: auto;
    }

    .project-grid--home .project-grid__inner {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .project-grid--home .project-card,
    .project-grid--home .project-card--home-small,
    .project-grid--home .project-card--home-large {
        grid-column: auto;
    }

    .home-intro__meta,
    .archive-intro__meta,
    .site-footer__bottom,
    .home-archive-link,
    .project-layout {
        grid-template-columns: 1fr;
        display: grid;
    }

    .site-footer__grid {
        display: grid;
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
        gap: 2rem 1.5rem;
        align-items: start;
    }

    .site-footer__grid > :first-child {
        grid-column: 1;
        grid-row: 1 / span 2;
        min-width: 0;
    }

    .site-footer__brand {
        min-width: 0;
    }

    .site-footer__logo {
        width: auto;
        height: auto;
        max-width: 100%;
        max-height: 2rem;
        object-fit: contain;
    }

    .site-footer__grid > :nth-child(2) {
        grid-column: 2;
        grid-row: 1;
    }

    .site-footer__grid > :nth-child(3) {
        grid-column: 2;
        grid-row: 2;
    }

    .site-footer__wordmark {
        white-space: nowrap;
    }

    .project-layout {
        gap: 2.5rem;
        padding: 2.5rem 0 4rem;
    }

    .project-layout__main,
    .project-body,
    .project-intro {
        max-width: none;
    }

    .project-layout__aside {
        padding-top: 0;
    }

    .project-title {
        font-size: clamp(2.4rem, 10vw, 3.6rem);
        max-width: none;
    }

    .project-video-grid {
        grid-template-columns: 1fr;
    }

    .archive-intro h1,
    .clients-page__title,
    .contact-page__title,
    .about-page__title,
    .error-page__title {
        max-width: none;
        font-size: clamp(2.8rem, 11vw, 4.7rem);
    }

	.archive-intro,
	.standard-page-intro,
	.clients-page,
	.contact-page,
	.about-page,
	.error-page {
    	padding: 2.25rem 0 2.5rem;
}
    .clients-page__text,
    .contact-page__text,
    .contact-page__content,
    .about-page__content,
    .about-page__text,
    .error-page__content {
        max-width: none;
    }

    .clients-page__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 1.5rem;
    }

    .contact-page__content-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .contact-page__column {
        gap: 1.5rem;
    }

    .about-page__section + .about-page__section {
        margin-top: 2rem;
    }

    .about-page__capabilities {
        margin-top: 2.25rem;
    }

    .about-page__services-list {
        grid-template-columns: 1fr;
        gap: 0.7rem;
    }

    .site-footer__bottom {
        display: grid;
    }

    .project-meta {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.35rem 2rem;
    }

    .project-meta__block {
        display: grid;
        gap: 0.4rem;
        margin: 0;
    }

    .error-page__link-text {
        font-size: 1.1rem;
    }
}

@media (max-width: 640px) {
    .clients-page__list {
        grid-template-columns: 1fr;
    }

    .project-meta {
        grid-template-columns: 1fr;
    }
}

/* Mobile: homepage + footer detail text only */
@media (max-width: 700px) {
    .home-intro__count,
    .home-archive-link,
    .site-footer__bottom {
        font-size: 0.48rem;
        line-height: 1.45;
        letter-spacing: 0.12em;
    }

    .site-footer__bottom {
        gap: 0.35rem;
        padding: 0.75rem 0 1.5rem;
    }
}

/* Mobile: footer section labels only */
@media (max-width: 900px) {
    .site-footer__label {
        font-size: 0.6875rem;
        line-height: 1.35;
        letter-spacing: 0.18em;
    }
}

/* Mobile: project detail panel only */
@media (max-width: 700px) {
    .project-meta {
        gap: 1rem;
    }

    .project-meta__block {
        gap: 0.3rem;
    }

    .project-meta__label {
        font-size: 0.58rem;
        line-height: 1.25;
        letter-spacing: 0.15em;
    }

    .project-meta__stack p,
    .project-meta__stack li {
        font-size: 0.82rem;
        line-height: 1.42;
    }
}

/* Mobile: large mono lists */
@media (max-width: 700px) {
    .clients-page__item,
    .about-page__service-item,
    .project-archive-list {
        font-size: 0.68rem;
        line-height: 1.5;
        letter-spacing: 0.12em;
    }

    .clients-page__column {
        gap: 0.45rem;
    }

    .clients-page__item {
        margin-bottom: 0;
    }

    .project-archive-list {
        line-height: 2;
    }
}

/* Mobile: page mono labels */
@media (max-width: 700px) {
    .about-page__section-label,
    .about-page__services-label,
    .contact-page__block-label {
        font-size: 0.52rem;
        line-height: 1.35;
        letter-spacing: 0.15em;
    }
}
/* Global visual scale refinement
   Brings the live site closer to the previous 85–90% staging view
-------------------------------------------------- */

html {
    font-size: 87%;
}

/* Fixed mono type that is not affected by html font-size */
.site-nav__menu a,
.mobile-menu__list a,
.home-intro__count,
.project-card__meta,
.archive-filter,
.home-archive-link,
.site-footer__label,
.site-footer__bottom,
.work-search__clear,
.work-search input,
.archive-intro__label,
.project-back-link,
.project-category,
.project-meta__label,
.clients-page__label,
.clients-page__item,
.contact-page__label,
.contact-page__block-label,
.about-page__label,
.about-page__section-label,
.about-page__services-label,
.about-page__service-item,
.simple-credit-year,
.error-page__label,
.error-page__link-label {
    font-size: 10px;
}

/* Header */
.site-header__inner {
    min-height: 3.6rem;
}

.site-brand img {
    height: 1.8rem;
}

.site-nav__menu {
    gap: 1.35rem;
}

/* Large page headings */
.home-intro__title,
.standard-page-intro h1 {
    font-size: clamp(2.7rem, 7.1vw, 6.2rem);
}

.archive-intro h1,
.clients-page__title,
.contact-page__title,
.about-page__title,
.error-page__title,
.work-search-no-results p {
    font-size: clamp(3.15rem, 6.15vw, 5.9rem);
}

/* Project cards */
.project-card__title,
.project-grid--home .project-card__title,
.project-grid--home .project-card--home-small .project-card__title,
.project-grid--home .project-card--home-large .project-card__title {
    font-size: clamp(1.5rem, 2.1vw, 2.35rem);
}

.project-card--narrow .project-card__title,
.project-card--tall .project-card__title {
    font-size: clamp(1.3rem, 1.75vw, 1.85rem);
}

.project-card__summary {
    font-size: 0.86rem;
}

/* Single project pages */
.project-title {
    font-size: clamp(2rem, 3.5vw, 3.25rem);
}

.project-intro {
    font-size: clamp(0.95rem, 1vw, 1.05rem);
}

.project-body {
    font-size: 0.88rem;
}

/* Section headings */
.project-section-block__title {
    font-size: clamp(1.35rem, 2.65vw, 2.4rem);
}

/* Body copy */
.home-intro__text,
.clients-page__text,
.contact-page__text,
.about-page__text,
.error-page__lead {
    font-size: 0.9rem;
}

/* Footer */
.site-footer__logo {
    height: 1.8rem;
}

.site-footer__wordmark,
.site-brand span {
    font-size: 1.1rem;
}

.site-footer__text,
.site-footer__menu a {
    font-size: 0.88rem;
}

/* Mobile refinement */
@media (max-width: 900px) {
    .project-title {
        font-size: clamp(2.1rem, 9vw, 3.2rem);
    }

    .archive-intro h1,
    .clients-page__title,
    .contact-page__title,
    .about-page__title,
    .error-page__title,
    .work-search-no-results p {
        font-size: clamp(2.5rem, 9.8vw, 4.15rem);
    }
}