/* Homepage stylesheet bundle. Keep source order in sync with index.html. */

/* tokens.css */
@font-face {
  font-family: "Boxing";
  src: url("assets/Boxing-Regular.otf") format("opentype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --ink: #131313;
  --black: #000;
  --shitake: #2e2818;
  --project-dark: #2e2918;
  --charcoal: #2d3532;
  --parchment: #e4e1c4;
  --linen: #efeddb;
  --privacy-linen: #f3f3e4;
  --rule-light: #d3d0b3;
  --muted-heading: #85837b;
  --muted-breadcrumb: #929087;
  --white: #fff;
  --blue-fg: #003bff;
  --blue-bg: #0549c7;
  --green-shag: #64711e;
  --green-darker: #b8c56e;
  --green-lighter: #c0cd75;
  --olive: #a19329;
  --red-fg: #cf2402;
  --logger-green: #69ac12;
  --logger-yellow: #f4be38;
  --display: "Boxing", "Arial Black", sans-serif;
  --serif: "Montagu Slab", Georgia, serif;
  --caption: "Cossette Texte", Arial, sans-serif;
  --content-max: 1600px;
}

/* base.css */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  background: #2E2818;
  scroll-behavior: smooth;
}

body {
  min-width: 300px;
  overflow-x: hidden;
  margin: 0;
  background: var(--linen);
  color: var(--ink);
  font-family: var(--serif);
  font-synthesis: none;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}

body.home-page {
  background: #2E2818;
}

body:is(.work-page, .arcade-page, .play-page, .logger-page) {
  background: #2E2918;
}

body:is(.about-page, .error-page) {
  background: #EFEDDB;
}

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

button {
  font: inherit;
  font-synthesis: none;
}

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

/* nav.css */
/* Primary navigation owns header layout, wordmark sizing, colors, and interaction. */
:is(.masthead, .work-header) {
  --nav-gutter-total: 128px;
  position: relative;
  z-index: 20;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  column-gap: 24px;
}

.home-page .masthead {
  margin-bottom: 16px;
  color: var(--green-lighter);
}

body.dynamic-wordmark > .masthead {
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
  padding: 48px 64px 0;
}

body.dynamic-wordmark > .masthead .wordmark {
  color: var(--green-darker);
}

body.dynamic-wordmark > .masthead .masthead__nav {
  color: var(--green-shag);
}

:is(.arcade-page, .play-page, .logger-page) > .masthead {
  height: 130px;
  padding: 48px 64px 0;
  background: var(--project-dark);
  color: var(--green-lighter);
}

.work-header {
  min-height: 130px;
  padding: 48px 64px 34px;
  background: var(--project-dark);
  color: var(--green-lighter);
}

:is(.wordmark, .work-header__wordmark) {
  min-width: 0;
  flex: 0 0 auto;
  color: inherit;
  font: 400 48px/.72 var(--display);
  letter-spacing: 0;
  white-space: nowrap;
  transform-origin: left top;
}

.dynamic-wordmark :is(.wordmark, .work-header__wordmark) {
  font-size: clamp(48px, calc((100vw - 425px) / 10), 91px);
}

:is(.masthead__nav, .work-header__nav) {
  display: flex;
  flex: 0 0 auto;
  gap: 24px;
  color: inherit;
  font: 400 16px/20px var(--serif);
  letter-spacing: -.8px;
}

:is(.masthead__nav, .work-header__nav) a {
  position: relative;
  display: inline-flex;
  height: 24px;
  align-items: center;
  color: inherit;
  white-space: nowrap;
  transform: translateY(0);
  transition: transform 180ms ease-out;
}

:is(.masthead__nav, .work-header__nav) a::after {
  content: "";
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  height: 1px;
  background: currentColor;
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: opacity 180ms ease-out, transform 180ms ease-out;
  pointer-events: none;
}

:is(.masthead__nav, .work-header__nav) a:is(.is-current, [aria-current="page"])::after,
:is(.masthead__nav, .work-header__nav) a:focus-visible::after {
  opacity: 1;
  transform: scaleX(1);
}

@media (hover: hover) {
  :is(.masthead__nav, .work-header__nav) a:hover {
    transform: translateY(-3px);
  }

  :is(.masthead__nav, .work-header__nav) a:hover::after {
    opacity: 1;
    transform: scaleX(1);
  }
}

@media (max-width: 1000px) {
  :is(.arcade-page, .play-page, .logger-page) > .masthead {
    height: 112px;
    padding: 36px 64px 0;
  }

  .work-header {
    min-height: 112px;
    padding: 40px 64px 34px;
  }
}

@media (max-width: 900px) {
  :is(.masthead, .work-header) {
    height: auto;
    flex-direction: column;
    gap: 22px;
  }

  :is(.wordmark, .work-header__wordmark) {
    width: 100%;
    max-width: none;
    font-size: calc((100vw - var(--nav-gutter-total)) / 10);
  }

  .dynamic-wordmark :is(.wordmark, .work-header__wordmark) {
    font-size: calc((100vw - var(--nav-gutter-total)) / 10);
  }

  :is(.masthead__nav, .work-header__nav) {
    width: 100%;
    justify-content: space-between;
    gap: 16px;
  }

  body.dynamic-wordmark > .masthead {
    padding-top: 28px;
  }
}

@media (max-width: 800px) {
  :is(.masthead, .work-header) {
    --nav-gutter-total: 48px;
  }

  .home-page .masthead {
    margin-bottom: 24px;
  }

  body.dynamic-wordmark > .masthead {
    padding-right: 24px;
    padding-left: 24px;
  }

  :is(.arcade-page, .play-page, .logger-page) > .masthead {
    padding: 28px 24px;
  }

  .work-header {
    padding-top: 28px;
    padding-right: 24px;
    padding-left: 24px;
  }

  :is(.masthead__nav, .work-header__nav) {
    font-size: 13px;
    line-height: 16px;
    letter-spacing: -.5px;
  }
}

/* buttons.css */
/* All rectangular CTAs share structure and interaction here. */
.rect-cta {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  overflow: hidden;
  height: 48px;
  align-items: center;
  justify-content: center;
  border: 0;
  font: 400 20px/24px var(--serif);
}

.rect-cta::before {
  display: none;
}

.solid-button {
  width: max-content;
  padding: 0 48px;
  background: var(--blue-fg);
  color: var(--white);
}

.solid-button--portfolio {
  flex: none;
  padding-inline: 40px;
  background: var(--green-darker);
  color: var(--black);
  font-weight: 500;
  white-space: nowrap;
}

.booking-button {
  width: 285px;
  flex: 0 0 auto;
  background: var(--green-darker);
  color: var(--black);
  font-weight: 500;
}

.project-hero__visit {
  top: 15px;
  width: 375px;
  justify-self: end;
  background: var(--green-darker);
  color: var(--black);
  font-weight: 500;
}

.site-end__button {
  flex: none;
  padding-inline: 48px;
  background: var(--green-shag);
  color: var(--white);
  letter-spacing: 1px;
}

.rect-cta__label {
  position: relative;
  z-index: 1;
  display: inline-block;
  transform: translateY(0);
  transition: transform 180ms ease-out;
}

.rect-cta__label::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: currentColor;
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: opacity 180ms ease-out, transform 180ms ease-out;
}

@media (hover: hover) {
  .rect-cta:hover .rect-cta__label {
    transform: translateY(-1.5px);
  }

  .rect-cta:hover .rect-cta__label::after {
    opacity: 1;
    transform: scaleX(1);
  }
}

.rect-cta:focus-visible .rect-cta__label {
  transform: translateY(-1.5px);
}

.rect-cta:focus-visible .rect-cta__label::after {
  opacity: 1;
  transform: scaleX(1);
}

@media (max-width: 1000px) {
  .project-hero__visit {
    position: static;
    order: 4;
    width: 280px;
    margin-top: 40px;
  }
}

@media (max-width: 800px) {
  .solid-button--portfolio {
    min-width: 0;
  }
}

@media (max-width: 700px) {
  .booking-button {
    width: 100%;
  }
}

@media (max-width: 680px) {
  .project-hero__visit {
    width: 100%;
    margin-top: 24px;
  }
}

@media (max-width: 520px) {
  .site-end__button {
    padding-inline: 36px;
  }

  .studio-profile__more .solid-button {
    padding-inline: 32px;
  }
}

@media (max-width: 360px) {
  .studio-profile__more .solid-button {
    padding-inline: 16px;
  }
}


/* text-links.css */
/* Shared inline-link behavior, restored from the original site component. */
.text-link {
  position: relative;
  display: inline-block;
  text-decoration: none;
  transform: translateY(0);
  transition: transform 180ms ease-out;
}

.text-link::after {
  content: "";
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  height: 1px;
  background: currentColor;
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: opacity 180ms ease-out, transform 180ms ease-out;
  pointer-events: none;
}

.text-link--underlined::after {
  opacity: 1;
  transform: scaleX(1);
}

.text-link:focus-visible {
  outline: none;
}

.text-link:not(.text-link--underlined):focus-visible {
  transform: translateY(-3px);
}

.text-link:focus-visible::after {
  opacity: 1;
  transform: scaleX(1);
}

.text-link.text-link--underlined,
.text-link.text-link--underlined:is(:hover, :focus-visible) {
  transform: none;
}

.text-link__char {
  display: inline-block;
  white-space: pre;
}

@keyframes text-link-character-pop {
  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-2px);
  }
}

@media (hover: hover) {
  .text-link:not(.text-link--underlined):hover {
    transform: translateY(-3px);
  }

  .text-link--underlined:hover .text-link__char {
    animation: text-link-character-pop 240ms ease-in-out both;
    animation-delay: calc(var(--char-index) * 18ms);
  }

  .text-link:not(.text-link--underlined):hover::after {
    opacity: 1;
    transform: scaleX(1);
  }
}

/* link-rows.css */
/* Shared bordered link rows; contexts only provide accent and sizing variables. */
:is(.case-study__links, .about-connect__links) {
  display: flex;
  flex-direction: column;
}

.case-study__links {
  width: 566px;
}

.about-connect__links {
  width: min(566px, 100%);
}

@media (max-width: 1200px) {
  .case-study__links {
    width: 100%;
    max-width: 600px;
    margin-inline: auto;
  }
}

:is(.project-row, .case-study__links > a, .about-connect__links > a, .studio-profile__row) {
  --link-row-border: var(--rule-light);
  --link-row-accent: var(--olive);
  display: flex;
  width: 100%;
  min-width: 0;
  min-height: 38px;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--link-row-border);
  border-bottom: 1px solid var(--link-row-border);
  font: 400 16px/20px var(--serif);
  letter-spacing: -.64px;
  transition: border-color 220ms ease;
}

.project-row {
  min-height: 43px;
  margin-top: 10px;
}

.project-row--archive {
  --link-row-accent: var(--green-shag);
  min-height: 0;
  margin-top: 0;
  padding-block: 8px;
  color: var(--ink);
}

.project-row--archive > span:first-child {
  color: var(--green-shag);
}

.case-study__links > a {
  --link-row-accent: var(--blue-fg);
  height: 38px;
  font-weight: 300;
}

.case-study__links > .case-study__next {
  --link-row-accent: var(--green-shag);
}

.case-study__links b {
  color: var(--link-row-accent);
  font-weight: 400;
}

:is(.about-connect__links > a, .studio-profile__row) {
  --link-row-accent: var(--green-shag);
  align-items: baseline;
  padding-block: 8px;
  color: var(--link-row-accent);
}

:is(.case-study__links > a, .about-connect__links > a, .studio-profile__row) +
:is(.case-study__links > a, .about-connect__links > a, .studio-profile__row),
.older-projects__links .project-row--archive + .project-row--archive {
  margin-top: -1px;
  border-top-color: transparent;
}

:is(.project-row__name, .case-study__links a > span, .about-connect__end, .studio-profile__row-end) {
  overflow: hidden;
  min-width: 0;
  margin-left: auto;
  font-weight: 300;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-row__name {
  margin: 0;
  font: inherit;
}

:is(.about-connect__end, .studio-profile__row-end) {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  color: var(--ink);
}

:is(.about-connect__end > span, .studio-profile__row-end > span:first-child) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

:is(.project-row__arrow, .case-study__links i, .about-connect__end > i, .studio-profile__row-arrow) {
  position: relative;
  overflow: hidden;
  width: 0;
  height: 20px;
  flex: 0 0 auto;
  margin-left: 0;
  color: var(--link-row-accent);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 20px;
  font-style: normal;
  font-variant-emoji: text;
  line-height: 20px;
  text-align: center;
  opacity: 0;
  transform: translateX(-10px);
  transition: width 220ms ease, margin-left 220ms ease, opacity 160ms ease, transform 220ms ease;
}

:is(.project-row, .case-study__links > a, .about-connect__links > a, .studio-profile__row)[href]:is(:hover, :focus-visible) {
  border-top-color: var(--link-row-accent);
  border-bottom-color: var(--link-row-accent);
  outline: none;
}

:is(.project-row, .case-study__links > a, .about-connect__links > a, .studio-profile__row)[href]:is(:hover, :focus-visible)
:is(.project-row__arrow, i, .studio-profile__row-arrow) {
  width: 20px;
  margin-left: 8px;
  opacity: 1;
  transform: translateX(0);
}

@media (hover: hover) {
  .featured-project:hover:not(:has(.project-row:hover)) .project-row[href] {
    border-color: var(--link-row-accent);
  }

  .featured-project:hover:not(:has(.project-row:hover)) .project-row[href] .project-row__arrow {
    width: 20px;
    margin-left: 8px;
    opacity: 1;
    transform: translateX(0);
  }
}

.featured-work .project-row:focus-visible {
  --link-row-accent: var(--green-shag);
}

/* page-rules.css */
/* Shared line, diamond, circle, and K page-rule ornaments. */
:is(.portfolio-rule, .case-study__divider, .about-divider, .project-archive__divider) {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 27px;
  padding-block: 12px;
}

.portfolio-rule {
  height: 72px;
}

.case-study__divider {
  height: 40px;
  flex: 0 0 auto;
}

:is(.case-study__divider--final, .project-archive__divider) {
  height: 44px;
}

:is(.portfolio-rule__line, .case-study__divider > span, .about-divider > span, .project-archive__line) {
  height: 1px;
  flex: 1 1 auto;
  background: var(--rule-light);
}

:is(.portfolio-rule__diamond, .case-study__divider > i, .about-divider > i, .project-archive__diamond) {
  width: 16px;
  height: 16px;
  flex: none;
  background: var(--rule-light);
  font-style: normal;
  transform: rotate(45deg);
}

:is(.portfolio-rule__diamond--round, .case-study__divider > i.is-round, .about-divider > i.is-round, .project-archive__diamond.is-round) {
  border-radius: 999px;
}

:is(.case-study__divider--final > b, .about-divider > b, .project-archive__mark) {
  width: max-content;
  flex: none;
  color: var(--rule-light);
  font: 400 28px/.7 var(--display);
}

.portfolio-rule__line,
.portfolio-rule__diamond {
  transition: background-color 240ms ease-out;
}

@media (hover: hover) {
  .portfolio-rule:has(.solid-button:hover) :is(.portfolio-rule__line, .portfolio-rule__diamond) {
    background: var(--green-darker);
  }

  .studio-profile__more:has(.solid-button:hover) .portfolio-rule__diamond {
    background: var(--blue-fg);
  }
}

:is(.portfolio-rule, .studio-profile__more):has(.solid-button:is(:hover, :focus-visible)) .portfolio-rule__diamond--round {
  transition-delay: 70ms;
}

.portfolio-rule:has(.solid-button:is(:hover, :focus-visible)) .portfolio-rule__line {
  background: var(--green-darker);
  transition-delay: 140ms;
}

.portfolio-rule:has(.solid-button:focus-visible) .portfolio-rule__diamond {
  background: var(--green-darker);
}

.studio-profile__more:has(.solid-button:focus-visible) .portfolio-rule__diamond {
  background: var(--blue-fg);
}

@media (max-width: 800px) {
  .portfolio-rule {
    gap: 16px;
  }
}

@media (max-width: 680px) {
  .about-divider {
    gap: 12px;
  }
}

@media (max-width: 520px) {
  .portfolio-rule {
    justify-content: center;
  }

  .portfolio-rule__line {
    display: none;
  }
}


/* value-props.css */
/* Shared value-proposition media frame and pointer response. */
[data-value-prop] {
  --value-pan-x: 0px;
  --value-pan-y: 0px;
  --value-scale: 1;
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 336px;
  flex: none;
  border-radius: 16px;
}

[data-value-prop] > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translate3d(var(--value-pan-x), var(--value-pan-y), 0) scale(var(--value-scale));
  transition: transform 220ms ease-out;
  will-change: transform;
}

.pillar__art--view img {
  position: absolute;
  top: -15px;
  left: calc(100% + 28px);
  width: 366px;
  height: 500px;
  max-width: none;
  filter: hue-rotate(4deg);
  object-fit: contain;
  transform: translate3d(var(--value-pan-x), var(--value-pan-y), 0) rotate(90deg) scale(var(--value-scale));
  transform-origin: 0 0;
}

.service-card__visual--clarity span {
  position: absolute;
  top: -15px;
  right: -394px;
  width: 366px;
  height: 500px;
  background: var(--parchment) url("assets/kaleidoscope.svg") center/contain no-repeat;
  filter: hue-rotate(4deg);
  transform: translate3d(var(--value-pan-x), var(--value-pan-y), 0) rotate(90deg) scale(var(--value-scale));
  transform-origin: 0 0;
  transition: transform 220ms ease-out;
  will-change: transform;
}

@media (max-width: 680px) {
  [data-value-prop] {
    height: auto;
    aspect-ratio: 409 / 336;
  }
}

/* video-controls.css */
[data-video-container],
[data-motion-container] { position: relative; }

.video-control {
  position: absolute;
  z-index: 2;
  right: 16px;
  bottom: 16px;
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(19,19,19,.58);
  color: #fff;
  cursor: pointer;
  transition: background-color 180ms ease-out;
}

.video-control__icon {
  position: relative;
  display: block;
  width: 14px;
  height: 16px;
  color: currentColor;
  font-size: 0;
}

.video-control__icon::before,
.video-control__icon::after {
  content: "";
  position: absolute;
  top: 1px;
  width: 4px;
  height: 14px;
  border-radius: 1px;
  background: currentColor;
}

.video-control__icon::before { left: 1px; }
.video-control__icon::after { right: 1px; }

.video-control.is-paused .video-control__icon::before {
  top: 1px;
  left: 2px;
  width: 0;
  height: 0;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 12px solid currentColor;
  border-radius: 0;
  background: transparent;
}

.video-control.is-paused .video-control__icon::after { display: none; }

.video-control:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

@media (hover: hover) {
  [data-video-container]:hover .video-control,
  [data-motion-container]:hover .video-control {
    background: rgba(19,19,19,.78);
  }
}

/* footer.css */
.site-end {
  width: 100%;
  overflow-x: clip;
  font-synthesis: none;
}

.site-end__cta {
  display: flex;
  width: 100%;
  max-width: var(--content-max);
  height: 540px;
  margin-inline: auto;
  padding: 48px 24px 72px;
  overflow: hidden;
  background: var(--green-lighter);
}

.site-end__cta-panel {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 406px;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: 64px;
  padding: 40px 40px 64px;
  overflow: visible;
  border-radius: 6px;
}

.site-end__motif {
  position: absolute;
  top: 0;
  left: 0;
  width: 586.52px;
  height: 801.36px;
  max-width: none;
  object-fit: contain;
  object-position: 100% 50%;
  mix-blend-mode: exclusion;
  transform: translate(1662px, 297px) rotate(129.78deg);
  transform-origin: 0 0;
  pointer-events: none;
}

.site-end__cta-copy {
  position: relative;
  z-index: 1;
  display: flex;
  width: fit-content;
  max-width: 100%;
  flex-direction: column;
  gap: 24px;
}

.site-end__cta-copy h2 {
  max-width: 700px;
  margin: 0;
  color: var(--shitake);
  font: 400 48px/58px var(--serif);
  letter-spacing: -2px;
}

.site-end__cta-copy p {
  width: 664px;
  max-width: 100%;
  margin: 0;
  color: var(--ink);
  font: 300 16px/24px var(--serif);
  letter-spacing: -.64px;
}

.site-end__actions {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 48px;
  align-items: center;
  gap: 16px;
  color: var(--charcoal);
  font: 300 16px/20px var(--serif);
  letter-spacing: -.64px;
}

.site-end__base nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -5px;
  left: 0;
  height: 1px;
  background: currentColor;
}

.site-end__book {
  position: relative;
  display: inline-flex;
  height: 24px;
  align-items: center;
  color: var(--ink);
  font-weight: 400;
  letter-spacing: -.8px;
  white-space: nowrap;
}

.site-end__base {
  width: 100%;
  overflow: hidden;
  background: var(--blue-bg);
  color: var(--white);
}

.site-end__base-content {
  display: flex;
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
  padding: 48px 64px 64px;
  flex-direction: column;
  align-items: flex-start;
}

.site-end__wordmark {
  display: block;
  width: 100%;
  overflow: hidden;
  color: inherit;
  font: 400 min(94px, calc((100vw - 128px) / 10))/121% var(--display);
  letter-spacing: 0;
  white-space: nowrap;
}

.site-end__base-content > p {
  width: 100%;
  max-width: 608px;
  margin: 40px 0 0;
  font: 300 16px/24px var(--serif);
  letter-spacing: -.64px;
}

.site-end__base nav {
  display: flex;
  width: 100%;
  max-width: 608px;
  align-items: center;
  gap: 46px;
  margin-top: 40px;
  font: 400 16px/20px var(--serif);
  letter-spacing: -.8px;
}

.site-end__base nav a {
  position: relative;
  display: inline-flex;
  height: 24px;
  align-items: center;
  flex: none;
  color: inherit;
  white-space: nowrap;
  transition: transform 180ms ease-out;
}

.site-end__base nav a::after {
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: opacity 180ms ease-out, transform 180ms ease-out;
}

.site-end__cornice {
  width: 100%;
  height: 143px;
  background: url("assets/molding.webp") center top / auto 143px repeat-x;
  filter: grayscale(100%);
  mix-blend-mode: hard-light;
}

@media (hover: hover) {
  .site-end__base nav a:hover { transform: translateY(-3px); }
  .site-end__base nav a:hover::after { opacity: 1; transform: scaleX(1); }
}

.site-end__base nav a:focus-visible::after { opacity: 1; transform: scaleX(1); }

@media (max-width: 800px) {
  .site-end__cta { height: auto; min-height: 0; }
  .site-end__cta-panel { min-height: 0; padding-inline: 0; }
  .site-end__cta-copy h2 { font-size: 38px; line-height: 46px; }
  .site-end__actions { flex-wrap: wrap; }
  .site-end__base-content { padding-inline: 24px; }
  .site-end__wordmark { font-size: calc((100vw - 48px) / 10); }
}

@media (max-width: 520px) {
  .site-end__cta { padding-bottom: 64px; }
  .site-end__cta-panel { gap: 48px; padding-bottom: 0; }
  .site-end__cta-copy h2 { font-size: 34px; line-height: 40px; letter-spacing: -1.5px; }
  .site-end__base nav { flex-direction: column; align-items: flex-start; gap: 18px; }
}

@media (max-width: 399px) {
  .site-end__actions { width: 100%; }
  .site-end__button { width: 100%; }
}

/* home.css */
main { overflow: hidden; }

.hero { background: var(--shitake); color: var(--white); }
.hero__inner { display: flex; width: 100%; max-width: var(--content-max); flex-direction: column; gap: 48px; margin: 0 auto; padding: 48px 64px 82px; }
.hero h1 { width: 100%; margin: 0; font-size: 48px; font-weight: 400; letter-spacing: -2px; line-height: 58px; }

.pillars { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); column-gap: 48px; row-gap: 64px; }
.pillar { display: flex; min-width: 0; flex-direction: column; gap: 24px; }
.pillar__art--view { background: var(--linen); }
.pillar__art--whole { background: var(--green-lighter); }
.pillar__art--real { background: var(--blue-bg); }
.pillar__copy { display: flex; flex-direction: column; gap: 12px; }
.pillar h2 { margin: 0; color: var(--parchment); font-size: 20px; font-weight: 400; letter-spacing: -.64px; line-height: 20px; }
.pillar h2 i, .section-kicker i, .project-card h3 i { font-style: normal; text-transform: lowercase; }
.pillar p { margin: 0; color: rgba(255,255,255,.9); font: 400 16px/24px var(--caption); letter-spacing: -.16px; }

.section-kicker { margin: 0; color: var(--green-shag); font-size: 20px; font-weight: 400; letter-spacing: -2px; line-height: 24px; }
.work { display: flex; flex-direction: column; gap: 84px; overflow: hidden; padding: 128px 64px; background: var(--linen); }
.work__intro { display: flex; flex-direction: column; gap: 24px; }
.work__heading { display: flex; flex-direction: column; gap: 12px; }
.work h2 { width: 834px; margin: 0; font-size: 48px; font-weight: 400; letter-spacing: -2px; line-height: 48px; }
.work__intro-bottom { display: flex; align-items: flex-start; justify-content: space-between; gap: 32px; }
.work__intro-bottom > p { width: 626px; max-width: 100%; margin: 0; color: var(--charcoal); font-size: 16px; letter-spacing: -.64px; line-height: 20px; }
.carousel-controls { display: flex; flex: none; gap: 6px; margin-top: 12px; }
.carousel-control { display: grid; width: 48px; height: 48px; place-items: center; border: 0; border-radius: 50%; background: var(--blue-fg); color: var(--white); cursor: pointer; font: 400 28px/1 var(--display); transition: transform 180ms ease-out, opacity 180ms ease-out; }
.carousel-control:disabled { background: var(--parchment); color: rgba(19,19,19,.4); cursor: default; }
.projects-viewport { width: 100vw; margin-left: -64px; overflow-x: auto; overflow-y: hidden; padding-inline: 64px; cursor: grab; overscroll-behavior-inline: contain; scrollbar-width: none; }
.projects-viewport::-webkit-scrollbar { display: none; }
.projects-viewport.is-dragging { cursor: grabbing; user-select: none; }
.projects-track { display: flex; width: max-content; gap: 38px; }
.project-card { position: relative; display: flex; width: 627px; min-width: 627px; flex-direction: column; gap: 24px; opacity: 1; transition: opacity 320ms ease; }
.project-card.is-carousel-dimmed { opacity: .2; }
.project-card__stretched-link { position: absolute; z-index: 1; inset: 0; }
.project-card__media { position: relative; overflow: hidden; width: 100%; height: 630px; flex: none; border-radius: 16px; background: var(--ink); }
.project-card__media-inner { position: relative; display: block; width: 100%; height: 100%; transform: scale(1); transition: transform 360ms cubic-bezier(.2,.75,.2,1); }
.project-card__media--arcade { background: var(--ink) url("assets/arcade/swirl.webp") center/cover no-repeat; }
.project-card__media--arcade img { position: absolute; top: 38px; left: 50%; width: 254px; height: 550px; border-radius: 24px; object-fit: cover; transform: translateX(-50%); }
.project-card__media--play video { width: 100%; height: 100%; object-fit: cover; }
.project-card__media--poppy { width: 100%; background: transparent; }
.project-card img,
.project-card video { -webkit-user-drag: none; user-select: none; }
.project-card__poppy { position: absolute; top: -19px; left: -82px; width: 904px; height: 649px; max-width: none; object-fit: cover; }
.project-card__caption { display: flex; flex-direction: column; gap: 8px; }
.project-card__caption h3 { margin: 0; color: var(--ink); font-size: 20px; font-weight: 500; letter-spacing: -.64px; line-height: 20px; }
.project-card__caption > span { color: var(--charcoal); font: 400 14px/16px var(--caption); }

.studio-profile { position: relative; display: flex; min-width: 300px; align-items: center; flex-direction: column; justify-content: center; overflow: clip; padding: 128px 64px; background: var(--linen); }
.studio-profile__band { position: absolute; top: 0; left: -64px; width: calc(100% - 15px); height: 470px; transform: translate(123px,402px) rotate(-11.41deg); transform-origin: 0 0; }
.studio-profile__strip { position: absolute; inset: 0; overflow: hidden; clip-path: polygon(0 0,100% 0,100% 100%); }
.studio-profile__strip::before { content: ""; position: absolute; inset: 0; background-image: url("assets/bio-strip.webp"); background-position: -9.409px center; background-repeat: repeat-x; background-size: 186px 100%; opacity: .75; animation: studio-profile-marquee 5s linear 1 forwards; animation-play-state: paused; will-change: background-position; }
.studio-profile.is-motion-visible .studio-profile__strip::before { animation-play-state: running; }
@keyframes studio-profile-marquee { 0% { background-position: -195.409px center; animation-timing-function: linear; } 80% { background-position: -182.123px center; animation-timing-function: cubic-bezier(.33,1,.68,1); } 100% { background-position: -181.027px center; } }
@keyframes studio-profile-marquee-down { 0% { background-position: center -240px; animation-timing-function: linear; } 80% { background-position: center -222.857px; animation-timing-function: cubic-bezier(.33,1,.68,1); } 100% { background-position: center -221.443px; } }
.studio-profile__corner { position: absolute; top: 0; left: 0; width: 191.388px; height: 238px; background: url("assets/bio-corner.webp") 100% / cover; transform: translate(-142.514px,-148.121px) rotate(11.41deg); transform-origin: 0 0; }
.studio-profile__content { position: relative; display: flex; width: 100%; align-items: center; flex-direction: column; gap: 32px; }
.studio-profile__card { display: flex; width: min(607px,100%); align-items: stretch; flex-direction: column; gap: 24px; }
.studio-profile__card > h2 { height: 24px; margin: 0; color: var(--green-shag); font: 400 20px/24px var(--serif); letter-spacing: -2px; text-align: center; }
.studio-profile__portrait { width: min(606px,100%); aspect-ratio: 4 / 3; flex: none; overflow: hidden; background-image: url("assets/sitting.webp"); background-position: center; background-repeat: no-repeat; background-size: cover; }
.studio-profile__card > p { width: 100%; margin: 0; color: var(--charcoal); font: 400 16px/20px var(--serif); letter-spacing: -.64px; }
.studio-profile__links { display: flex; width: 100%; flex-direction: column; }
.studio-profile__more { display: flex; width: 100%; align-items: center; justify-content: center; gap: 27px; padding-block: 12px; }
.studio-profile__more .solid-button { flex: none; letter-spacing: 1px; }

@media (hover:hover) {
  .projects-track:has(.project-card:hover) .project-card:not(:hover):not(.is-carousel-dimmed) { opacity: .45; }
  .projects-track:has(.project-card:hover) .project-card:hover { opacity: 1; }
  .project-card:hover .project-card__media-inner { transform: scale(1.025); }
}

@media (max-width:1100px) {
  .pillars { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .project-card { width: min(627px,calc(100vw - 128px)); min-width: min(627px,calc(100vw - 128px)); }
}

@media (max-width:800px) {
  .hero__inner { gap: 40px; padding: 28px 24px 64px; }
  .hero h1 { font-size: 32px; line-height: 40px; letter-spacing: -1.5px; }
  .work { gap: 64px; padding: 80px 24px; }
  .work__heading,
  .work h2 { min-width: 0; max-width: 100%; }
  .work h2 { width: 100%; overflow-wrap: anywhere; font-size: 38px; line-height: 40px; }
  .work h2 br { display: none; }
  .work__intro-bottom { display: flex; flex-direction: column; gap: 28px; }
  .work__intro-bottom > p { width: 100%; line-height: 24px; }
  .carousel-controls { align-self: flex-end; margin-top: 0; }
  .projects-viewport { width: 100vw; margin-left: -24px; padding-inline: 24px; }
  .projects-track { gap: 24px; }
  .project-card { width: min(627px,calc(100vw - 112px)); min-width: min(627px,calc(100vw - 112px)); }
  .project-card__media { height: auto; aspect-ratio: 1/1; }
  .project-card__media--arcade img { top: 6%; width: 40.5%; height: 88%; }
  .project-card__media--poppy { width: 100%; }
  .studio-profile { padding-inline: 24px; }
  .studio-profile__card > h2 { height: auto; color: var(--white); font-size: 40px; line-height: 48px; }
  .studio-profile__band { top: 0; left: 0; width: 100%; height: calc(200px + min(454.5px,calc(75vw - 36px))); transform: none; }
  .studio-profile__strip { clip-path: polygon(0 0,100% 0,50% 100%); }
  .studio-profile__strip::before { background-position: center -240px; background-repeat: repeat; background-size: 186px 240px; animation-name: studio-profile-marquee-down; }
  .studio-profile__corner { display: none; }
}

@media (max-width:680px) {
  .pillars { grid-template-columns: 1fr; }
}

@media (max-width:520px) {
  .pillar h2 { line-height: 24px; }
  .project-card__caption h3 { line-height: 24px; }
  .studio-profile__more { gap: 12px; }
}

@media (max-width:500px) {
  .carousel-controls { display: none; }
  .projects-viewport { width: 100%; margin-left: 0; overflow: visible; padding-inline: 0; cursor: default; }
  .projects-track { width: 100%; flex-direction: column; gap: 64px; }
  .project-card { width: 100%; min-width: 0; opacity: 1 !important; transition: none; }
}

@media (max-width:360px) {
  .studio-profile__more { gap: 7px; }
}

/* motion.css */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation: none !important;
    transition: none !important;
  }

  [data-marquee-control] { display: none !important; }

  [data-value-prop] {
    --value-pan-x: 0px !important;
    --value-pan-y: 0px !important;
    --value-scale: 1 !important;
  }

  .masthead__nav a:hover,
  .work-header__nav a:hover,
  .site-end__base nav a:hover,
  .text-link:hover {
    transform: none !important;
  }

  .rect-cta:hover .rect-cta__label {
    transform: none !important;
  }

  .project-card:hover .project-card__media-inner,
  .featured-project__media:hover > img,
  .featured-project__media:hover > video,
  .featured-experiment__media:hover video {
    transform: none !important;
  }

  .featured-project__media--arcade:hover > img {
    transform: translateX(-50%) !important;
  }
}
