:root {
  --gs-swatch-grey: #9c9890; --gs-swatch-beige: #d4c5a8; --gs-swatch-light-green: #b6c098;
  --gs-swatch-blue: #7a8fa6; --gs-swatch-amber: #c4a060; --gs-swatch-pink: #c89690;
  --gs-swatch-red: #a85a52; --gs-swatch-light-blue: #a8bdc4; --gs-swatch-brown: #8c6e4d;
  --gs-swatch-green: #7c8c6c; --gs-swatch-dark: #3c3a36; --gs-swatch-yellow: #d4b558;
  --gs-swatch-orange: #bd7648;
}
.gs-editorial-hero { padding-block: clamp(7rem, 13vw, 12rem) clamp(3rem, 6vw, 6rem); }
.gs-editorial-hero h1 { margin: 0; color: #6e6961; font: 400 clamp(4.5rem, 11vw, 10rem)/.82 var(--gs-font-serif); letter-spacing: -.045em; }
.gs-editorial-hero > p:not(.gs-eyebrow, .gs-editorial-hero__count) { max-width: 40rem; margin: 2rem 0 0 auto; color: var(--gs-color-ink-muted); font-size: clamp(1rem, 1.4vw, 1.2rem); }
.gs-editorial-hero__count { margin: 1.5rem 0 0; color: var(--gs-color-caption); font: .72rem var(--gs-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.gs-empty-message { padding-block: 4rem; color: var(--gs-color-ink-muted); text-align: center; }

.gs-about-hero { padding-top: clamp(7rem, 12vw, 11rem); }
.gs-about-hero__copy { position: relative; z-index: 1; padding-bottom: clamp(2.5rem, 5vw, 5rem); }
.gs-about-hero h1 { max-width: 14ch; margin: 0; font: 400 clamp(3rem, 6vw, 6rem)/1.08 var(--gs-font-serif); }
.gs-about-hero h1 em { color: var(--gs-color-accent); font-weight: 400; }
.gs-about-hero__image { height: min(58vw, 42rem); margin: 0; overflow: hidden; background: var(--gs-color-line-soft); }
.gs-about-hero__image img { width: 100%; height: 100%; object-fit: contain; }
.gs-about-layout { display: grid; grid-template-columns: 12rem minmax(0, 1fr); gap: clamp(3rem, 8vw, 9rem); padding-block: clamp(5rem, 10vw, 10rem); }
.gs-about-index { position: sticky; top: 7rem; align-self: start; }
.gs-about-index ol { margin: 0; padding: 0; list-style: none; }
.gs-about-index li + li { margin-top: .45rem; }
.gs-about-index a { display: grid; grid-template-columns: 2.2rem 1fr; color: var(--gs-color-ink-muted); font-size: .78rem; text-decoration: none; }
.gs-about-index a:hover { color: var(--gs-color-accent); }
.gs-about-index span { font-family: var(--gs-font-mono); font-size: .65rem; }
.gs-about-chapter { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); padding-block: clamp(3.5rem, 7vw, 7rem); border-top: 1px solid var(--gs-color-line); scroll-margin-top: 7rem; }
.gs-about-chapter:first-child { border-top: 0; padding-top: 0; }
.gs-about-chapter__meta { color: var(--gs-color-caption); font: .7rem/1.5 var(--gs-font-mono); letter-spacing: .08em; text-transform: uppercase; }
.gs-about-chapter__meta span { display: block; margin-bottom: .5rem; color: var(--gs-color-accent); font: italic 2.5rem/1 var(--gs-font-serif); }
.gs-about-chapter h2 { margin: 0 0 1.8rem; font: 400 clamp(2rem, 3.5vw, 3.4rem)/1.15 var(--gs-font-serif); }
.gs-about-chapter h2 .gs-latin { display: block; margin-top: .5rem; color: var(--gs-color-ink-muted); font-size: .55em; font-style: italic; }
.gs-about-chapter p { margin: 0 0 1.2rem; color: var(--gs-color-ink-muted); line-height: 1.9; }
.gs-about-chapter .gs-mark { color: var(--gs-color-accent); }

.gs-journal-index { padding-bottom: clamp(6rem, 10vw, 10rem); }
.gs-journal-feature { display: grid; grid-template-columns: 1.25fr .75fr; min-height: 34rem; margin: 1rem 0 clamp(4rem, 8vw, 8rem); background: var(--gs-color-surface); }
.gs-journal-feature__image { display: block; overflow: hidden; background: var(--gs-color-line-soft); }
.gs-journal-feature__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--gs-ease-standard); }
.gs-journal-feature:hover img { transform: scale(1.02); }
.gs-journal-feature__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 5rem); }
.gs-journal-feature h2 { margin: 0 0 1.5rem; font: 400 clamp(2.3rem, 4.5vw, 4.5rem)/1.02 var(--gs-font-serif); }
.gs-journal-feature h2 a { text-decoration: none; }
.gs-journal-feature__copy > p:not(.gs-eyebrow) { color: var(--gs-color-ink-muted); }
.gs-journal-feature .gs-text-link { margin-top: 1.5rem; }

.gs-space-filters { display: flex; gap: 2rem; overflow-x: auto; padding-block: 1rem; border-block: 1px solid var(--gs-color-line); scrollbar-width: thin; }
.gs-space-filter-group { display: flex; flex: 0 0 auto; gap: .45rem; align-items: center; }
.gs-space-filter-group + .gs-space-filter-group { padding-left: 2rem; border-left: 1px solid var(--gs-color-line); }
.gs-space-filter-group > span { margin-right: .3rem; color: var(--gs-color-caption); font: .62rem var(--gs-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.gs-space-filter-group button { padding: .35rem .7rem; color: var(--gs-color-ink-muted); background: transparent; border: 1px solid transparent; border-radius: 999px; cursor: pointer; font-size: .75rem; }
.gs-space-filter-group button:hover, .gs-space-filter-group button.is-active { color: var(--gs-color-ink); border-color: var(--gs-color-ink); }
.gs-space-filter-group--colors button { display: grid; width: 1.8rem; height: 1.8rem; padding: .2rem; place-items: center; }
.gs-space-filter-group--colors i { display: block; width: 1rem; height: 1rem; background: var(--swatch); border-radius: 50%; }
.gs-spaces-grid { columns: 3; column-gap: 1rem; padding-block: 2rem clamp(6rem, 10vw, 10rem); }
.gs-space-card { break-inside: avoid; margin-bottom: 1rem; }
.gs-space-card[hidden] { display: none; }
.gs-space-card__button { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; color: white; background: var(--gs-color-line-soft); border: 0; cursor: zoom-in; text-align: left; }
.gs-space-card__button::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(15,14,10,.75)); opacity: 0; transition: opacity var(--gs-motion-slow); }
.gs-space-card__button img { width: 100%; transition: transform .9s var(--gs-ease-standard); }
.gs-space-card__button > span { position: absolute; z-index: 1; right: 1rem; bottom: 1rem; left: 1rem; opacity: 0; transform: translateY(.5rem); transition: opacity var(--gs-motion-slow), transform var(--gs-motion-slow); }
.gs-space-card__button:hover::after, .gs-space-card__button:focus-visible::after, .gs-space-card__button:hover > span, .gs-space-card__button:focus-visible > span { opacity: 1; }
.gs-space-card__button:hover > span, .gs-space-card__button:focus-visible > span { transform: translateY(0); }
.gs-space-card__button:hover img { transform: scale(1.025); }
.gs-space-card__button small, .gs-space-card__button em { display: block; font: .62rem/1.4 var(--gs-font-mono); letter-spacing: .08em; }
.gs-space-card__button strong { display: block; margin: .35rem 0; font: 400 1.5rem/1.1 var(--gs-font-serif); }
.gs-space-card__button em { color: rgba(255,255,255,.75); font-style: normal; }
.gs-space-dialog { width: min(72rem, calc(100% - 2rem)); max-height: calc(100svh - 2rem); padding: 0; color: var(--gs-color-ink); background: var(--gs-color-paper); border: 0; }
.gs-space-dialog::backdrop { background: rgba(15,14,10,.86); backdrop-filter: blur(4px); }
.gs-space-dialog [data-gs-space-dialog-content] { display: grid; grid-template-columns: 1.25fr .75fr; }
.gs-space-dialog__image { min-height: 36rem; background: #222; }
.gs-space-dialog__image img { width: 100%; height: 100%; object-fit: contain; }
.gs-space-dialog__copy { align-self: center; padding: clamp(2rem, 5vw, 5rem); }
.gs-space-dialog__copy h2 { margin: 0; font: 400 clamp(2.2rem, 4vw, 4rem)/1 var(--gs-font-serif); }
.gs-space-dialog__copy > p:not(.gs-eyebrow) { color: var(--gs-color-ink-muted); }
.gs-space-dialog dl { margin: 2rem 0; border-top: 1px solid var(--gs-color-line); }
.gs-space-dialog dl div { display: grid; grid-template-columns: 6rem 1fr; padding: .7rem 0; border-bottom: 1px solid var(--gs-color-line); }
.gs-space-dialog dt { color: var(--gs-color-caption); font: .65rem var(--gs-font-mono); text-transform: uppercase; }
.gs-space-dialog dd { margin: 0; font-size: .85rem; }
.gs-space-dialog__links { display: flex; gap: .6rem; flex-wrap: wrap; }
.gs-space-dialog__links a { padding: .65rem .9rem; border: 1px solid var(--gs-color-ink); text-decoration: none; font-size: .78rem; }
.gs-space-dialog__close { position: absolute; z-index: 2; top: .75rem; right: .75rem; width: 2.5rem; height: 2.5rem; color: white; background: rgba(0,0,0,.6); border: 1px solid rgba(255,255,255,.4); border-radius: 50%; cursor: pointer; font-size: 1.4rem; }

.gs-contact-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(3rem, 8vw, 9rem); padding-bottom: clamp(7rem, 12vw, 12rem); }
.gs-contact-info > div { padding-block: 1.2rem; border-top: 1px solid var(--gs-color-line); }
.gs-contact-info a, .gs-contact-info p, .gs-contact-info address { margin: 0; font-style: normal; text-decoration: none; }
.gs-contact-info .gs-text-link { margin-top: 2rem; }
.gs-contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.gs-contact-form label { display: grid; gap: .45rem; }
.gs-contact-form label > span:first-child { color: var(--gs-color-caption); font-size: .75rem; }
.gs-contact-form input, .gs-contact-form select, .gs-contact-form textarea { width: 100%; padding: .85rem 0; color: var(--gs-color-ink); background: transparent; border: 0; border-bottom: 1px solid var(--gs-color-line); border-radius: 0; }
.gs-contact-form textarea { padding: 1rem; border: 1px solid var(--gs-color-line); resize: vertical; }
.gs-contact-form__message, .gs-contact-form__consent, .gs-contact-form__submit { grid-column: 1 / -1; }
.gs-contact-form__consent { display: flex !important; flex-direction: row; gap: .7rem !important; align-items: start; font-size: .78rem; }
.gs-contact-form__consent input { width: auto; margin-top: .3rem; }
.gs-contact-form__submit { justify-self: start; }
.gs-honeypot { position: absolute !important; left: -9999px !important; }
.gs-form-notice { margin-bottom: 2rem; padding: 1rem; border: 1px solid var(--gs-color-line); }
.gs-form-notice--sent { color: var(--gs-color-success); border-color: var(--gs-color-success); }
.gs-form-notice--invalid, .gs-form-notice--failed { color: var(--gs-color-error); border-color: var(--gs-color-error); }

.gs-film-page { padding-top: clamp(7rem, 12vw, 11rem); }
.gs-film-hero { display: grid; grid-template-columns: 1.3fr .7fr; gap: clamp(3rem, 8vw, 9rem); align-items: end; min-height: 38rem; }
.gs-film-hero h1 { margin: 0; font: 400 clamp(3.2rem, 6.5vw, 7rem)/.92 var(--gs-font-serif); }
.gs-film-hero h1 em { color: var(--gs-color-accent); font-weight: 400; }
.gs-film-hero__copy > p:not(.gs-eyebrow) { max-width: 42rem; margin: 2rem 0; color: var(--gs-color-ink-muted); }
.gs-film-brief { padding: clamp(2rem, 4vw, 4rem); background: var(--gs-color-surface); border: 1px solid var(--gs-color-line); }
.gs-film-brief h2 { margin: 0; font: 400 2rem/1.2 var(--gs-font-serif); }
.gs-film-brief > p:not(.gs-eyebrow) { color: var(--gs-color-ink-muted); }
.gs-film-brief dl { margin: 2rem 0 0; border-top: 1px solid var(--gs-color-line); }
.gs-film-brief dl div { display: grid; grid-template-columns: 6rem 1fr; padding: .65rem 0; border-bottom: 1px solid var(--gs-color-line); }
.gs-film-brief dt { font: .65rem var(--gs-font-mono); text-transform: uppercase; }
.gs-film-brief dd { margin: 0; }
.gs-film-process { display: grid; grid-template-columns: repeat(4, 1fr); padding-block: clamp(6rem, 10vw, 10rem); }
.gs-film-process article { padding: 1.5rem; border-top: 1px solid var(--gs-color-line); border-right: 1px solid var(--gs-color-line); }
.gs-film-process article:last-child { border-right: 0; }
.gs-film-process span { color: var(--gs-color-accent); font: italic 1.8rem var(--gs-font-serif); }
.gs-film-process h2 { margin: 2rem 0 1rem; font: 400 1.7rem var(--gs-font-serif); }
.gs-film-process p { color: var(--gs-color-ink-muted); font-size: .85rem; }

.gs-policy-header { padding-block: clamp(7rem, 12vw, 11rem) 4rem; border-bottom: 1px solid var(--gs-color-line); }
.gs-policy-header h1 { margin: 0; font: 400 clamp(3.2rem, 6vw, 6rem)/1 var(--gs-font-serif); }
.gs-policy-header > p:last-child { max-width: 38rem; color: var(--gs-color-ink-muted); }
.gs-policy-layout { display: grid; grid-template-columns: 14rem minmax(0, 1fr); gap: clamp(3rem, 8vw, 9rem); padding-block: 4rem 8rem; }
.gs-policy-layout aside nav { position: sticky; top: 7rem; display: grid; }
.gs-policy-layout aside a { padding: .7rem 0; color: var(--gs-color-ink-muted); border-bottom: 1px solid var(--gs-color-line); text-decoration: none; font-size: .8rem; }
.gs-policy-layout aside a.is-active { color: var(--gs-color-ink); font-weight: 700; }
.gs-policy-content { max-width: 54rem; }
.gs-policy-content :is(.et_pb_section, .et_pb_row, .et_pb_column, .et_pb_module, .et_pb_text_inner) { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; background: transparent !important; }
.gs-policy-content h2 { margin: 4rem 0 1.5rem; font: 400 2.2rem var(--gs-font-serif); }
.gs-policy-content h2:first-child { margin-top: 0; }
.gs-policy-content h3 { margin: 3rem 0 1rem; font-size: 1.1rem; }
.gs-policy-content h4 { margin: 2rem 0 1rem; }
.gs-policy-content p, .gs-policy-content li { color: var(--gs-color-ink-muted); line-height: 1.9; }
.gs-policy-content table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.gs-policy-content th, .gs-policy-content td { padding: .8rem; border: 1px solid var(--gs-color-line); text-align: left; vertical-align: top; }
.gs-policy-content hr { margin-block: 3rem; border: 0; border-top: 1px solid var(--gs-color-line); }

@media (max-width: 64rem) {
  .gs-spaces-grid { columns: 2; }
  .gs-about-layout, .gs-policy-layout { grid-template-columns: 1fr; }
  .gs-about-index, .gs-policy-layout aside nav { position: static; }
  .gs-about-index ol { display: flex; gap: 1rem; overflow-x: auto; }
  .gs-about-index li + li { margin-top: 0; }
  .gs-about-index a { width: max-content; }
  .gs-journal-feature { grid-template-columns: 1fr; }
  .gs-journal-feature__image { min-height: 30rem; }
  .gs-space-dialog [data-gs-space-dialog-content] { grid-template-columns: 1fr; }
  .gs-space-dialog__image { min-height: 22rem; max-height: 52svh; }
  .gs-contact-layout, .gs-film-hero { grid-template-columns: 1fr; }
  .gs-film-process { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 47.938rem) {
  .gs-about-hero__image { height: 65vw; }
  .gs-about-chapter { grid-template-columns: 1fr; gap: 1.25rem; }
  .gs-about-chapter__meta span { display: inline; margin-right: .8rem; }
  .gs-journal-feature__image { min-height: 20rem; }
  .gs-spaces-grid { columns: 2; column-gap: .6rem; }
  .gs-space-card { margin-bottom: .6rem; }
  .gs-space-card__button::after, .gs-space-card__button > span { display: none; }
  .gs-contact-form { grid-template-columns: 1fr; }
  .gs-contact-form label { grid-column: 1; }
  .gs-film-process { grid-template-columns: 1fr; }
  .gs-film-process article { border-right: 0; }
  .gs-policy-content { overflow-wrap: anywhere; }
  .gs-policy-content table { display: block; overflow-x: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .gs-space-card__button img, .gs-space-card__button::after, .gs-space-card__button > span, .gs-journal-feature__image img { transition: none; }
}
