/* Type role aliases preserve the approved visual scale independently of heading level. */
:root { --header-height: 102.344px; }
body #header, body section > .content-wrapper, body footer { animation: auto ease 0s 1 normal none running none !important; }
.portfolio-motion-boot #header, .portfolio-motion-boot section > .content-wrapper, .portfolio-motion-boot footer { opacity: 0 !important; }
.portfolio-reveal-pending { opacity: 0 !important; visibility: hidden !important; }
.portfolio-reveal-word { display: inline-flex; overflow: hidden; vertical-align: top; }
.portfolio-reveal-word > span { display: inline-block; }
.sqs-highlight svg { overflow: visible; }
.sqs-highlight svg path { stroke-dashoffset: 0; }
.sqsrte-scaled-text-container { text-align: center; }
body.header--menu-open .header-menu { opacity: 1; visibility: visible; }
.header-burger-btn { cursor: pointer; }
@media (min-width: 768px) {
  .header-menu .header-menu-nav-item a { font-size: 40px; margin: 16px 24px; }
  .header-menu .header-menu-nav-folder { overflow-y: auto; }
}
@media (max-height: 640px) {
  .header-menu .header-menu-nav-item a { font-size: 32px; margin: 8px 24px; }
  .header-menu .header-menu-actions { margin-bottom: 16px; }
  .header-menu .header-menu-cta a { margin: 12px 24px 24px; }
}
@media (min-width: 768px) and (max-width: 1199px) {
  body { --sqs-site-gutter: 32px; }
  #header .header-announcement-bar-wrapper { padding-inline: 32px; }
  .fluid-engine > .fe-block-6f8e83e6375879e4e061 { grid-column: 2 / 16; }
  .fluid-engine > .fe-block-ee2ce3b1e216feec6224, .fluid-engine > .fe-block-5e02f6d1d5d67a208fc3, .fluid-engine > .fe-block-0ddde08aa42e94c7568b, .fluid-engine > .fe-block-bca085d9ed13fae4fb85 { grid-column: 5 / 23; }
}
@media (min-width: 800px) {
  #header .header-display-desktop .header-nav { position: absolute; top: 50%; left: 50%; width: max-content; transform: translate(-50%, -50%); }
  #header .header-display-desktop .header-nav-list { flex-wrap: nowrap; }
}
@media (max-width: 767px) {
  .header-menu .header-menu-cta { margin-bottom: 64px; }
  .fluid-engine.fe-66910d5c81d92658faeaf7e6 { grid-template-rows: auto auto; row-gap: 32px; }
  .fe-66910d5c81d92658faeaf7e6 > .fe-block-yui_3_17_2_1_1720857581856_109121 { grid-row: 1; }
  .fe-66910d5c81d92658faeaf7e6 > .fe-block-6f8e83e6375879e4e061 { grid-row: 2; }
}
.portfolio-home-link { display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; line-height: 0; }
.portfolio-logo { display: block; width: 72px; height: 72px; flex: 0 0 auto; }
#header .header-display-desktop, #header .header-display-mobile { align-items: center; }
.portfolio-no-wrap { white-space: nowrap; }
.Marquee { overflow: hidden; }
.Marquee .Marquee-display { display: flex; align-items: center; flex: 0 0 100%; width: 100%; min-width: 0px; min-height: 1.5em; }
#block-81f4a2960f40b43641f5 .Marquee-display { height: 160px; min-height: 0px; }
.Marquee .portfolio-marquee-heading { flex: 0 0 auto; width: max-content; }
.portfolio-marquee-track { display: flex; width: max-content; will-change: transform; }
.portfolio-marquee-group { display: inline-flex; flex: 0 0 auto; align-items: center; gap: var(--marquee-item-spacing, .4em); padding-inline-end: var(--marquee-item-spacing, .4em); white-space: nowrap; }
.portfolio-marquee-separator { font-size: 0.5em; }
.sqs-native-video .native-video-player { width: 100%; }
.portfolio-video-placeholder { display: block; width: 100%; height: 100%; object-fit: contain; }
portfolio-video-skin:not(:defined) > hlsjs-video { display: none; }
.sqs-native-video portfolio-video-player { display: contents; }
.sqs-native-video portfolio-video-skin { display: block; width: 100%; height: 100%; aspect-ratio: 16 / 9; --media-accent-color: #fff; --media-accent-text-color: #000; --media-border-color: transparent; --media-border-radius: 0px; --media-font-family: "Manrope", sans-serif; --media-object-fit: contain; --media-scale-unit: 16px; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .portfolio-reveal-pending { opacity: 1 !important; visibility: visible !important; }
}
.portfolio-project-grid { padding-bottom: 128px; overflow: visible; }
.portfolio-project-card { position: relative; }
.portfolio-project-grid > .fe-block-4bd7b79a84993d46d80f { margin-inline-start: max(32px, var(--sqs-site-gutter, 32px)); }
.portfolio-project-caption { position: absolute; top: calc(100% + 16px); inset-inline: 0px; padding: 0px; margin: 0px; }
.portfolio-project-caption a { display: block; color: inherit; text-decoration: none; background-image: none; }
.portfolio-project-caption p:not(:where(.portfolio-type-h1, .portfolio-type-h2, .portfolio-type-h3)) { margin: 0px; }
.portfolio-project-caption .portfolio-project-title { margin-top: 4px; }
.portfolio-project-title-text { background-image: linear-gradient(currentcolor, currentcolor); background-repeat: no-repeat; background-position: right bottom; background-size: 0% 1px; -webkit-box-decoration-break: clone; box-decoration-break: clone; transition: background-size 0.6s cubic-bezier(0.19, 1, 0.22, 1); }
@media (hover: hover) {
  .portfolio-project-caption a:hover .portfolio-project-title-text { background-position: left bottom; background-size: 100% 1px; }
}
.portfolio-project-caption a:focus-visible .portfolio-project-title-text { background-position: left bottom; background-size: 100% 1px; }
#header .header-nav-item a, #header .header-menu-nav-item a { font-weight: 400; }
@media (prefers-reduced-motion: reduce) {
  .portfolio-project-title-text { transition: none; }
}
@media (max-width: 767px) {
  .portfolio-project-grid > .fe-block-4bd7b79a84993d46d80f, .portfolio-project-grid > .fe-block-b29dcfed7ae2bfaea846 { margin-inline-start: 24px; }
  .portfolio-project-grid.fe-66912baa6876b13910b704a6 { grid-template-rows: repeat(32, minmax(24px, auto)); }
  .portfolio-project-grid > .fe-block-4bd7b79a84993d46d80f { grid-row: 11 / 21; }
  .portfolio-project-grid > .fe-block-c3e1cfb92f796d4cd822 { grid-row: 27 / 33; }
}

/* Keep landscape screenshots compact on phones and tablets, with separated panels. */
@media (max-width: 1199px) {
  #page .portfolio-landscape-section { min-height: 360px; }
  #page .portfolio-landscape-section + .portfolio-landscape-section { margin-block-start: 11px; }
  #page .portfolio-landscape-section + .portfolio-landscape-section::before { content: ""; position: absolute; inset: -11px 0 auto; height: 11px; background: #fff; }
  #page .portfolio-landscape-section > .content-wrapper { padding-block: clamp(20px, 6vw, 32px); }
  #page .portfolio-landscape-section .fluid-engine { grid-template-rows: auto; gap: 0; }
  #page .portfolio-landscape-section .fe-block { grid-row: 1; }
  #page .portfolio-landscape-section :is(.sqs-block-image, .sqs-block-content, .image-block-outer-wrapper, .fluid-image-animation-wrapper, .fluid-image-container, .js-content-mode-element-wrapper) { height: auto; }
  #page .portfolio-landscape-section img { position: static; height: auto; }
}
@media (min-width: 768px) and (max-width: 1199px) {
  #page .portfolio-landscape-section { min-height: 400px; }
  /* Keep project highlights close to the preceding video and following text. */
  #page .portfolio-highlights-section { min-height: 0; }
  #page .portfolio-highlights-section > .content-wrapper { padding-block: 48px; }
}

/* Share the centered contact panel across pages, with 32px more space on each side. */
@media (max-width: 1199px) {
  #page .portfolio-contact-section { height: 264px; min-height: 264px; }
  #page .portfolio-contact-section > .content-wrapper { height: 100%; width: 100%; align-items: center; padding: 0; }
  #page .portfolio-contact-section :is(.content, [data-fluid-engine], .sqs-block) { height: auto; }
}
@media (max-width: 767px) {
  #page .portfolio-contact-section .fluid-engine { display: flex; flex-direction: column; align-items: center; gap: 24px; padding: 0 24px; box-sizing: border-box; }
  #page .portfolio-contact-section .fe-block { width: 100%; }
}
@media (min-width: 768px) and (max-width: 1199px) {
  #page .portfolio-contact-section .fluid-engine { grid-template-rows: auto auto; row-gap: 24px; }
  #page .portfolio-contact-section .fe-block:first-child { grid-row: 1; }
  #page .portfolio-contact-section .fe-block:last-child { grid-row: 2; }
}

/* Reserve caption space in the final card and balance the contact panel gaps. */
@media (max-width: 1199px) {
  #page .portfolio-project-final-grid { padding-bottom: 64px; }
  #page .portfolio-project-final-grid > .portfolio-project-card { display: contents; }
  #page .portfolio-project-final-grid > .portfolio-project-card > .sqs-block-image { grid-area: inherit; margin-inline-start: inherit; width: auto; }
  #page .portfolio-project-final-grid > .portfolio-project-card > .portfolio-project-caption { position: static; grid-column: inherit; grid-row: -1; margin: 5px 0 0; margin-inline-start: inherit; }
  #footer-sections.portfolio-home-footer > .page-section { align-items: flex-start; }
  #footer-sections.portfolio-home-footer > .page-section > .content-wrapper { padding-block: 64px 32px !important; }
  #footer-sections.portfolio-home-footer .fluid-engine { grid-template-rows: auto; }
  #footer-sections.portfolio-home-footer .fe-block { grid-row: 1; }
}
@media (max-width: 767px) {
  #page .portfolio-project-final-grid { grid-template-rows: repeat(11, minmax(24px, auto)); }
}

/* Measure the tablet contact gap from the next-project link, without empty trailing rows. */
@media (min-width: 768px) and (max-width: 1199px) {
  #page .portfolio-next-project-section { min-height: 0; }
  #page .portfolio-next-project-section > .content-wrapper { padding-bottom: 64px; }
  #page .portfolio-next-project-section .fluid-engine { grid-template-rows: repeat(2, minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)) auto auto; }
  #page .portfolio-next-project-section .fe-block:last-child { grid-row: 4; }
}
