.public-project,
.public-project * { box-sizing: border-box; }
.public-project { width: 100%; min-width: 0; background: var(--fonte-web-cream); }
.public-project.has-project-reveals .fonte-project-reveal { opacity: 0; transform: translateY(0.5rem); transition: opacity 0.5s cubic-bezier(0.2, 0.7, 0.3, 1), transform 0.55s cubic-bezier(0.2, 0.7, 0.3, 1); }
.public-project.has-project-reveals .fonte-project-reveal.is-revealed { opacity: 1; transform: translateY(0); }
.fonte-project-intro { position: sticky; top: 0; z-index: 0; display: flex; width: 100%; min-height: 26.25rem; padding: clamp(6rem, 14vh, 9.375rem) var(--fonte-public-inline-gutter) clamp(2.5rem, 6vh, 4.5rem); overflow: hidden; background: var(--fonte-web-cream); }
.fonte-project-intro__inner { display: flex; width: 100%; max-width: var(--fonte-public-content-max-width); margin: 0 auto; align-items: center; }
.fonte-project-intro__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; justify-content: space-between; gap: clamp(1.5rem, 4vw, 4rem); width: 100%; }
.fonte-project-intro__heading { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 0.875rem; }
.fonte-project-intro__icon { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border: var(--fonte-border-width) solid var(--fonte-web-accent); border-radius: var(--fonte-token-radius-pill); color: var(--fonte-web-accent); }
.fonte-project-intro__icon svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.fonte-project-intro h1 { margin: 0; color: var(--fonte-web-ink); font-family: var(--fonte-project-intro-heading-font-family); font-size: var(--fonte-project-intro-heading-font-size); font-weight: var(--fonte-project-intro-heading-font-weight); letter-spacing: var(--fonte-project-intro-heading-letter-spacing); line-height: var(--fonte-project-intro-heading-line-height); text-wrap: pretty; }
.fonte-project-intro__content { display: flex; min-width: 0; flex-direction: column; align-items: flex-end; gap: clamp(1.125rem, 3vh, 1.75rem); text-align: right; }
.fonte-project-intro__content p { max-width: 52ch; margin: 0; color: var(--fonte-web-ink-soft); font-family: var(--fonte-project-intro-copy-font-family); font-size: var(--fonte-project-intro-copy-font-size); font-weight: var(--fonte-project-intro-copy-font-weight); line-height: var(--fonte-project-intro-copy-line-height); text-wrap: pretty; }
.fonte-project-intro__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.75rem; width: 100%; }
.fonte-project-intro__cta { --fonte-button-color: var(--fonte-web-ink); --fonte-button-font-family: var(--fonte-project-intro-action-font-family); --fonte-button-font-size: var(--fonte-project-intro-action-font-size); --fonte-button-font-weight: var(--fonte-project-intro-action-font-weight); --fonte-button-letter-spacing: var(--fonte-project-intro-action-letter-spacing); --fonte-button-border-color: var(--fonte-web-ink); }
.fonte-project-intro__cta--primary { --fonte-button-background: var(--fonte-web-ink); --fonte-button-color: var(--fonte-web-white); --fonte-button-hover-background: var(--fonte-web-action); --fonte-button-hover-color: var(--fonte-web-white); }
.fonte-project-intro__cta--secondary { --fonte-button-hover-background: var(--fonte-web-ink); --fonte-button-hover-color: var(--fonte-web-white); }
.fonte-project-intro__cta--primary svg { width: 1.125rem; height: 1.125rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
@media (max-width: 56.25rem) {
    .fonte-project-intro { position: relative; min-height: 0; padding-block: 3.125rem; }
    .fonte-project-intro__grid { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 2rem; }
    .fonte-project-intro__content { align-items: flex-start; text-align: left; }
    .fonte-project-intro__actions { justify-content: flex-start; }
}
@media (max-width: 35rem) {
    .fonte-project-intro { padding-block: 3.125rem; }
    .fonte-project-intro__grid { gap: 1.5rem; }
    .fonte-project-intro__heading { gap: 0.875rem; }
    .fonte-project-intro__icon { width: 3.5rem; height: 3.5rem; }
    .fonte-project-intro__icon svg { width: 1.625rem; height: 1.625rem; }
    .fonte-project-intro h1 { font-size: 1.875rem; }
    .fonte-project-intro__content { gap: 1rem; }
    .fonte-project-intro__content p { font-size: 1rem; line-height: 1.5; }
    .fonte-project-intro__actions { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 0.625rem; }
    .fonte-project-intro__cta { width: 100%; min-width: 0; height: 3.125rem; padding-inline: 0.625rem; gap: 0.375rem; font-size: 1rem; white-space: nowrap; }
    .fonte-project-intro__cta--primary svg { width: 1.125rem; min-width: 1.125rem; height: 1.125rem; flex: none; aspect-ratio: 1; }
}

.fonte-project-interiors-stage { position: relative; z-index: 1; width: 100%; height: 200vh; background: var(--fonte-web-ink); }
.fonte-project-interiors { position: sticky; top: 0; z-index: 1; isolation: isolate; width: 100%; min-height: 100vh; overflow: hidden; background: var(--fonte-web-ink); color: var(--fonte-web-white); }
.fonte-project-interiors__media,
.fonte-project-interiors__scrim { position: absolute; inset: 0; }
.fonte-project-interiors__media { z-index: 1; }
.fonte-project-interiors__image { position: absolute; z-index: 0; inset: 0; display: block; width: 100%; height: 100%; opacity: 0; object-fit: cover; object-position: center; transform: scale(1); transition: opacity 1.8s cubic-bezier(0.2, 0.7, 0.3, 1), transform 10s linear; }
.fonte-project-interiors__image:first-child { object-position: 50% 62%; }
.fonte-project-interiors__image.is-active { z-index: 1; opacity: 1; }
.fonte-project-interiors.is-playing .fonte-project-interiors__image.is-active { transform: scale(1.06); }
.fonte-project-interiors__scrim { z-index: 2; background: var(--fonte-project-interiors-scrim); }
.fonte-project-interiors__overlay { position: relative; z-index: 3; min-height: 100vh; display: flex; flex-direction: column; justify-content: space-between; gap: clamp(2rem, 6vh, 4.5rem); padding: clamp(5rem, 12vh, 8.75rem) var(--fonte-public-inline-gutter) clamp(1.75rem, 4vh, 3rem); opacity: 1; transform: none; }
.fonte-project-interiors__content { display: flex; flex: 1 1 auto; flex-direction: column; align-items: center; justify-content: center; gap: clamp(0.875rem, 2vh, 1.375rem); width: 100%; max-width: var(--fonte-public-content-max-width); margin: auto; text-align: center; }
.fonte-project-interiors__content h2 { margin: 0; color: var(--fonte-web-white); font-family: var(--fonte-project-interiors-heading-font-family); font-size: var(--fonte-project-interiors-heading-font-size); font-weight: var(--fonte-project-interiors-heading-font-weight); letter-spacing: var(--fonte-project-interiors-heading-letter-spacing); line-height: var(--fonte-project-interiors-heading-line-height); text-wrap: pretty; }
.fonte-project-interiors__content h2 mark { position: relative; display: inline-block; isolation: isolate; background: transparent; color: inherit; }
.fonte-project-interiors__content h2 mark::after { position: absolute; z-index: -1; right: -3%; bottom: 0.25rem; left: -1%; height: 0.4375rem; border-radius: var(--fonte-token-radius-pill); background: var(--fonte-web-highlight); content: ""; }
.fonte-project-interiors__content p { max-width: 52ch; margin: 0; color: var(--fonte-project-interiors-copy-color); font-family: var(--fonte-project-interiors-copy-font-family); font-size: var(--fonte-project-interiors-copy-font-size); font-weight: var(--fonte-project-interiors-copy-font-weight); line-height: var(--fonte-project-interiors-copy-line-height); text-wrap: pretty; }
.fonte-project-interiors__actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0.875rem; margin-top: 0.375rem; }
.fonte-project-interiors__primary { --fonte-button-background: var(--fonte-web-ink); --fonte-button-color: var(--fonte-web-white); --fonte-button-hover-background: var(--fonte-web-action); --fonte-button-hover-color: var(--fonte-web-white); }
.fonte-project-interiors__primary svg { width: 1.125rem; height: 1.125rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.fonte-project-interiors__text-link { display: inline-flex; align-items: center; height: var(--fonte-button-height); padding: 0 1.25rem; color: var(--fonte-web-white); font-family: var(--fonte-font-public); font-size: var(--fonte-type-public-project-intro-action); font-weight: var(--fonte-font-weight-bold); letter-spacing: -0.005em; text-decoration: none; transition: opacity var(--fonte-token-transition); }
.fonte-project-interiors__text-link:focus-visible { opacity: 0.7; }
@media (min-width: 75.001rem) and (hover: hover) and (pointer: fine) {
.fonte-project-interiors__text-link:hover { opacity: 0.7; }
}
.fonte-project-interiors__navigation { width: 100%; max-width: var(--fonte-public-content-max-width); margin: 0 auto; }
.fonte-project-interiors__steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); align-items: stretch; gap: clamp(0.625rem, 1.6vw, 1.75rem); }
.fonte-project-interiors__step { display: grid; grid-row: span 4; grid-template-rows: subgrid; min-width: 0; align-items: start; gap: 0.5rem; padding: 0; border: 0; background: transparent; color: var(--fonte-project-interiors-description-color); cursor: pointer; font-family: var(--fonte-project-interiors-step-font-family); text-align: left; }
.fonte-project-interiors__step .fonte-project-interiors__number { color: var(--fonte-project-interiors-muted-color); font-size: var(--fonte-type-public-project-interiors-meta); font-weight: var(--fonte-font-weight-regular); letter-spacing: 0.1em; }
.fonte-project-interiors__step strong { max-width: 100%; color: var(--fonte-project-interiors-muted-color); font-size: clamp(0.9375rem, 0.95vw, 1.0625rem); font-weight: var(--fonte-project-interiors-step-font-weight); letter-spacing: 0.025em; line-height: 1.4; text-transform: uppercase; white-space: normal; overflow-wrap: anywhere; text-wrap: pretty; transition: color var(--fonte-token-transition); }
.fonte-project-interiors__step > span:not(.fonte-project-interiors__number) { font-size: clamp(1rem, 1.05vw, 1.125rem); overflow-wrap: anywhere; font-weight: var(--fonte-font-weight-light); line-height: 1.45; text-wrap: pretty; }
.fonte-project-interiors__step > i { width: 100%; height: 0.125rem; margin-top: 0.125rem; overflow: hidden; border-radius: var(--fonte-token-radius-pill); background: var(--fonte-project-interiors-line-color); }
.fonte-project-interiors__step > i b { display: block; width: 100%; height: 100%; background: var(--fonte-web-white); transform: scaleX(0); transform-origin: left; }
.fonte-project-interiors__step.is-active strong { color: var(--fonte-web-white); }
.fonte-project-interiors.is-playing .fonte-project-interiors__step.is-active > i b { animation: fonte-project-interiors-progress 10s linear both; }
.fonte-project-interiors__mobile-nav { display: none; align-items: center; justify-content: center; gap: 0.875rem; width: 100%; }
.fonte-project-interiors__mobile-nav button { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; padding: 0; border: var(--fonte-border-width) solid var(--fonte-project-interiors-control-border-color); border-radius: var(--fonte-token-radius-pill); background: var(--fonte-project-interiors-control-surface-color); color: var(--fonte-web-white); cursor: pointer; }
.fonte-project-interiors__mobile-nav svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.fonte-project-interiors__mobile-nav span { min-width: 4.25rem; color: var(--fonte-project-interiors-description-color); font-family: var(--fonte-font-public); font-size: var(--fonte-type-public-project-interiors-meta); font-weight: var(--fonte-font-weight-bold); letter-spacing: 0.14em; text-align: center; }
@keyframes fonte-project-interiors-progress { to { transform: scaleX(1); } }
@media (min-width: 75.0625rem) {
    .fonte-project-interiors__navigation { max-width: var(--fonte-public-content-max-width); }
    .fonte-project-interiors__steps { column-gap: 1rem; }
    .fonte-project-interiors__step { row-gap: 0.25rem; }
    .fonte-project-interiors__step .fonte-project-interiors__number { font-size: 0.75rem; }
    .fonte-project-interiors__step strong { font-size: 0.9375rem; letter-spacing: 0; line-height: 1.25; text-wrap: wrap; }
    .fonte-project-interiors__title-line,
    .fonte-project-interiors__description-line { display: block; }
    .fonte-project-interiors__step > span:not(.fonte-project-interiors__number) { margin-top: 0.125rem; font-size: 0.9375rem; line-height: 1.35; text-wrap: balance; }
    .fonte-project-interiors__step > i { margin-top: 0.25rem; }
}
@media (max-width: 75rem) {
    .fonte-project-interiors-stage { height: 150lvh; }
    .fonte-project-interiors { top: 0; min-height: 100svh; }
    .fonte-project-interiors__overlay { min-height: 100svh; padding-top: 6rem; gap: 2rem; }
    .fonte-project-interiors__steps { grid-template-columns: minmax(0, 1fr); }
    .fonte-project-interiors__step { display: none; width: 100%; max-width: 36rem; margin-inline: auto; text-align: center; }
    .fonte-project-interiors__step.is-active { display: grid; }
    .fonte-project-interiors__step .fonte-project-interiors__number { display: none; }
    .fonte-project-interiors__step > i { display: none; }
    .fonte-project-interiors__mobile-nav { display: flex; margin-top: 1.25rem; }
}
@media (max-width: 35rem) {
    .fonte-project-interiors__step { grid-row: auto; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto; justify-content: center; align-items: baseline; gap: 0.625rem; }
    .fonte-project-interiors__step.is-active strong { color: var(--fonte-web-white-72); font-weight: var(--fonte-font-weight-bold); line-height: 1.4; letter-spacing: 0; text-transform: lowercase; }
    .fonte-project-interiors__step strong::first-letter { text-transform: uppercase; }
    .fonte-project-interiors__step > span:not(.fonte-project-interiors__number) { grid-column: 1 / -1; max-width: 34ch; margin-inline: auto; color: var(--fonte-web-white-62); line-height: 1.5; text-wrap: balance; }
    .fonte-project-interiors__mobile-nav { margin-top: 1rem; }
    .fonte-project-interiors__overlay { padding-block: 5rem 1rem; }
    .fonte-project-interiors__content { justify-content: center; }
    .fonte-project-interiors__actions { align-items: center; flex-direction: column; width: 100%; }
    .fonte-project-interiors__primary,
    .fonte-project-interiors__text-link { justify-content: center; width: auto; }
    .fonte-project-interiors__primary { --fonte-button-background: var(--fonte-web-action); --fonte-button-color: var(--fonte-web-white); }
}
@media (hover: none), (max-width: 75rem) {
    .fonte-project-interiors__text-link:hover { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .public-project.has-project-reveals .fonte-project-reveal { opacity: 1; transform: none; transition: none; }
    .fonte-project-interiors__image,
    .fonte-project-interiors__overlay,
    .fonte-project-interiors__text-link { transition: none; }
    .fonte-project-interiors__step.is-active > i b { animation: none; transform: scaleX(1); }
    .fonte-project-interiors.is-playing .fonte-project-interiors__image.is-active { transform: scale(1); }
}

.fonte-project-stats { position: relative; z-index: 3; width: 100%; padding: 5.5rem var(--fonte-public-inline-gutter) 6.25rem; overflow: hidden; background: var(--fonte-web-white); }
.fonte-project-stats__inner { display: flex; width: 100%; max-width: var(--fonte-public-content-max-width); margin: 0 auto; flex-direction: column; align-items: flex-start; gap: clamp(1.875rem, 3.6vw, 3.25rem); }
.fonte-project-stats__header { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 0.875rem; }
.fonte-project-stats__icon { display: inline-flex; width: 2.75rem; height: 2.75rem; flex: none; align-items: center; justify-content: center; border: var(--fonte-border-width) solid var(--fonte-web-accent); border-radius: var(--fonte-token-radius-pill); color: var(--fonte-web-accent); }
.fonte-project-stats__icon svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.fonte-project-stats__header h2 { margin: 0; color: var(--fonte-web-ink); font-family: var(--fonte-project-stats-heading-font-family); font-size: var(--fonte-project-stats-heading-font-size); font-weight: var(--fonte-project-stats-heading-font-weight); letter-spacing: var(--fonte-project-stats-heading-letter-spacing); line-height: var(--fonte-project-stats-heading-line-height); }
.fonte-project-stats__grid { display: grid; width: 100%; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); }
.fonte-project-stats__stat { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 0.375rem; }
.fonte-project-stats__stat strong { color: var(--fonte-web-accent); font-family: var(--fonte-project-stats-value-font-family); font-size: var(--fonte-project-stats-value-font-size); font-weight: var(--fonte-project-stats-value-font-weight); letter-spacing: -0.03em; line-height: var(--fonte-project-stats-value-line-height); }
.fonte-project-stats__stat span { color: var(--fonte-web-ink-soft); font-family: var(--fonte-project-stats-label-font-family); font-size: var(--fonte-project-stats-label-font-size); font-weight: var(--fonte-project-stats-label-font-weight); line-height: var(--fonte-project-stats-label-line-height); text-wrap: pretty; }
@media (max-width: 47.5rem) {
    .fonte-project-stats { padding-block: 3.125rem; }
    .fonte-project-stats__inner { gap: 2rem; }
    .fonte-project-stats__icon { width: 3.5rem; height: 3.5rem; }
    .fonte-project-stats__icon svg { width: 1.625rem; height: 1.625rem; }
    .fonte-project-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem clamp(1rem, 4vw, 2rem); }
    .fonte-project-stats__stat { align-items: flex-start; gap: 0.375rem; text-align: left; }
    .fonte-project-stats__stat strong { font-size: var(--fonte-key-numbers-heading-font-size); }
    .fonte-project-stats__stat span { max-width: 9rem; font-size: 0.9375rem; font-weight: var(--fonte-font-weight-medium); line-height: 1.25; text-align: left; text-wrap: balance; }
}

@media (max-width: 75rem) {
    .fonte-project-interiors__navigation { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem; align-items: center; gap: 0.875rem 0.75rem; }
    .fonte-project-interiors__steps { grid-column: 2; grid-row: 2; min-width: 0; }
    .fonte-project-interiors__mobile-nav { display: contents; }
    .fonte-project-interiors__mobile-nav span { grid-column: 2; grid-row: 1; }
    .fonte-project-interiors__mobile-nav button { width: 2.75rem; height: 2.75rem; grid-row: 2; }
    .fonte-project-interiors__mobile-nav button:first-child { grid-column: 1; }
    .fonte-project-interiors__mobile-nav button:last-child { grid-column: 3; }
    .fonte-project-interiors__overlay { padding-bottom: calc(2rem + env(safe-area-inset-bottom, 0px)); }
}

@media (max-width: 75rem) {
    body:has(.fonte-project-interiors) .fonte-cookie-consent__reopen { opacity: 1; translate: 0 0; visibility: visible; transition: opacity 200ms ease, translate 200ms ease, visibility 0s, background-color 180ms ease, color 180ms ease, scale 120ms ease; }
    body:has(.fonte-project-interiors.is-cookie-overlap) .fonte-cookie-consent__reopen { opacity: 0; translate: 0 0.5rem; visibility: hidden; pointer-events: none; transition-delay: 0s, 0s, 200ms, 0s, 0s, 0s; }
}

@media (prefers-reduced-motion: reduce) {
    body:has(.fonte-project-interiors) .fonte-cookie-consent__reopen { transition: none; translate: none; }
}
