/* Small runtime replacements; all portfolio grid and theme rules are preserved. */
html.wf-loading * { animation: none !important; }
.sqs-block-image img, .section-background img { opacity: 1; }
.js-content-mode-element-wrapper { height: 100%; width: 100%; }
.js-content-mode-element { height: 100%; width: 100%; }
.section-background img { width: 100%; height: 100%; object-fit: cover; }
.header-burger-btn { cursor: pointer; }
body.replica-menu-open { overflow: hidden; }
body.replica-menu-open .header-menu { opacity: 1; visibility: visible; pointer-events: auto; }
body.replica-menu-open .top-bun { transform: translateY(4px) rotate(45deg); }
body.replica-menu-open .bottom-bun { transform: translateY(-4px) rotate(-45deg); }
.replica-gallery { position: relative; width: 100%; aspect-ratio: 2/3; }
.replica-gallery .slide { position: absolute !important; inset: 0; width: 100%; height: 100%; opacity: 0; visibility: hidden; transition: opacity .5s ease; }
.replica-gallery .slide.replica-active { opacity: 1; visibility: visible; }
.replica-gallery .slide img { width: 100%; height: 100%; object-fit: contain; position: static; }
.replica-gallery .replica-control { position: absolute; top: 45%; width: 44px; height: 56px; padding: 0; border: 0; background: transparent; color: white; text-shadow: 0 1px 5px #000; cursor: pointer; font: 35px/1 Arimo,sans-serif; z-index: 3; opacity: 0; transition: opacity .15s; }
.replica-gallery:hover .replica-control, .replica-gallery:focus-within .replica-control { opacity: 1; }
.replica-gallery .replica-prev { left: 0; }
.replica-gallery .replica-next { right: 0; }
.replica-lightbox { border: 0; padding: 0; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; margin: 0; background: #141414; }
.replica-lightbox::backdrop { background: #141414; }
.replica-lightbox img { width: 100%; height: 100%; object-fit: contain; padding: 30px; box-sizing: border-box; }
.replica-lightbox button { position: absolute; right: 16px; top: 12px; width: 44px; height: 44px; border: 0; background: #141414; color: white; font: 30px Arimo,sans-serif; cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .replica-gallery .slide { transition: none; } }
@media (pointer: coarse) { .replica-gallery .replica-control { opacity: 1; } }

/* Portfolio typography: content defines its height, never spacing characters. */
.portfolio-responsive .portfolio-text {
  min-width: 0;
  min-height: min-content;
  height: auto;
  align-self: start;
  position: relative !important;
  top: auto !important;
}
.portfolio-responsive .portfolio-text .sqs-block,
.portfolio-responsive .portfolio-text .sqs-block-content,
.portfolio-responsive .portfolio-text .sqs-text-block-container {
  height: auto !important;
  min-height: 0;
  width: 100%;
  box-sizing: border-box;
}
.portfolio-responsive .sqs-html-content { min-width: 0; }
.portfolio-responsive .portfolio-text :is(p,h4,pre,code) {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
}
.portfolio-responsive .portfolio-caption h4 {
  font-family: Satoshi, Arimo, sans-serif;
  font-size: clamp(.68rem, .3vw + .55rem, .85rem);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .035em;
  margin: 0;
}
.portfolio-responsive .portfolio-editorial p {
  font-family: 'EB Garamond', Georgia, serif;
  font-size: clamp(1.5rem, 2.8vw, 3.25rem);
  line-height: 1.12;
  letter-spacing: -.025em;
  margin: 0 0 .75em;
  text-wrap: pretty;
}
.portfolio-responsive .portfolio-editorial p:last-child { margin-bottom: 0; }
.portfolio-responsive .portfolio-editorial em { font-weight: 400; }
.portfolio-responsive .portfolio-empty { display: none; }
/* Contact labels and values are paired in the same row, including wrapped links. */
.portfolio-responsive .portfolio-contact {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, .65fr);
  grid-template-rows: auto auto auto;
  gap: clamp(1.5rem, 4vw, 4rem);
  padding: clamp(1.25rem, 4vw, 4rem);
  box-sizing: border-box;
}
.portfolio-responsive .portfolio-contact .fe-block-aca62a58665e80752edc { grid-area: 2 / 1 / 3 / 3; }
.portfolio-responsive .portfolio-contact .fe-block-aca62a58665e80752edc p { margin: 0; font-size: clamp(1.75rem, 3vw, 3rem); line-height: 1.1; }
.portfolio-responsive .portfolio-contact .fe-block-yui_3_17_2_1_1735909866609_20467 { grid-area: 3 / 1 / 4 / 3; }
.portfolio-responsive .portfolio-contact .fe-block-626bef8e9b8566c25d27 { grid-area: 1 / 3 / 3 / 4; aspect-ratio: 2 / 3; align-self: start; }
.portfolio-contact-details { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .45rem 1.5rem; margin: 0; font: .8rem/1.5 Satoshi, Arimo, sans-serif; letter-spacing: .035em; }
.portfolio-contact-details dt, .portfolio-contact-details dd { margin: 0; min-width: 0; }
.portfolio-contact-details dd, .portfolio-contact-details a { overflow-wrap: anywhere; }
/* Reflow before desktop columns become too narrow, including tablet widths. */
@media (max-width: 1100px) {
  .portfolio-responsive #page .fluid-engine {
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 4vw, 2.5rem);
    padding: clamp(1.25rem, 5vw, 3rem);
    box-sizing: border-box;
    overflow: visible;
  }
  .portfolio-responsive #page .fluid-engine > .fe-block {
    order: var(--portfolio-order, 0);
    grid-area: auto !important;
    width: 100%;
    min-width: 0;
    height: auto;
    position: relative !important;
    top: auto !important;
    align-self: stretch;
  }
  .portfolio-responsive #page .portfolio-image {
    aspect-ratio: var(--portfolio-image-ratio, 2 / 3);
    min-height: 0;
  }
  .portfolio-responsive #page .portfolio-image .sqs-block { height: 100%; }
  .portfolio-responsive .portfolio-caption h4 { text-align: left !important; }
  .portfolio-responsive .portfolio-editorial p { font-size: clamp(1.6rem, 4vw, 2.65rem); }
  .portfolio-responsive .fe-block-yui_3_17_2_1_1735909866609_71294 p { text-indent: 0; }
  .portfolio-responsive #page .portfolio-empty { display: none; }
  .portfolio-responsive #page .portfolio-contact .fe-block-aca62a58665e80752edc { order: 0; }
  .portfolio-responsive #page .portfolio-contact .fe-block-yui_3_17_2_1_1735909866609_20467 { order: 1; }
  .portfolio-responsive #page .portfolio-contact .fe-block-626bef8e9b8566c25d27 { order: 2; max-width: 22rem; }
  .portfolio-responsive #page .page-section .content-wrapper { padding-top: 0; padding-bottom: 0; }
}

/* Full official webfonts: the same families/weights used in the supplied PDF. */
@font-face { font-family: Satoshi; src: url('/assets/fonts/Satoshi-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: Satoshi; src: url('/assets/fonts/Satoshi-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
.portfolio-responsive .header-nav-item a,
.portfolio-responsive .header-menu-nav-item a {
  font-family: Satoshi, Arimo, sans-serif !important;
  font-weight: 400;
  letter-spacing: .08em;
}
.portfolio-responsive .header-nav-item a { font-size: clamp(.65rem, .2vw + .5rem, .8rem); }
.portfolio-responsive .portfolio-contact-details { font-weight: 500; }
/* Restore the original centered opening; never simulate alignment with an indent. */
.portfolio-responsive #page .fe-block-yui_3_17_2_1_1735909866609_71294 p {
  text-align: center !important;
  text-indent: 0;
  text-wrap: balance;
  max-width: 38ch;
  margin-inline: auto;
}
.portfolio-responsive .portfolio-editorial p {
  overflow-wrap: normal;
  hyphens: none;
  orphans: 2;
  widows: 2;
}
.portfolio-responsive .portfolio-caption h4 { text-wrap: pretty; }

/* Keep the centered motto centered in its symmetric grid area at every width. */
.portfolio-responsive #page .fe-block-12d93ce9143e05167071 .sqs-html-content,
.portfolio-responsive #page .fe-block-12d93ce9143e05167071 p {
  text-align: center !important;
  width: 100%;
  text-indent: 0;
  text-wrap: balance;
  margin-inline: auto;
}

/* Aurora Chopin Sand: original photographs, with Look 5 opening the series. */
.portfolio-responsive #page .aurora-story {
  display: block;
  min-height: 0;
  padding: 0;
  scroll-margin-top: 140px;
}
.aurora-layout {
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  column-gap: 11px;
  row-gap: clamp(64px, 7vw, 112px);
  max-width: 1500px;
  margin-inline: auto;
  padding: clamp(32px, 4vw, 64px) 4vw clamp(64px, 7vw, 112px);
  box-sizing: border-box;
}
.aurora-photo {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: zoom-in;
  align-self: start;
}
.aurora-photo img { display: block; width: 100%; height: auto; }
.aurora-photo:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.aurora-caption { grid-area: 1 / 2 / 2 / 8; align-self: start; padding-top: 4px; text-align: right; }
.aurora-caption h2, .aurora-caption p {
  font-family: Satoshi, Arimo, sans-serif;
  font-size: clamp(.68rem, .3vw + .55rem, .85rem);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .035em;
  margin: 0;
  text-wrap: pretty;
}
.aurora-caption p { margin-top: 1.5em; }
.aurora-photo-1 { grid-area: 1 / 9 / 2 / 20; }
.aurora-photo-2 { grid-area: 2 / 2 / 3 / 12; }
.aurora-photo-3 { grid-area: 2 / 15 / 3 / 24; align-self: end; }
.aurora-photo-4 { grid-area: 3 / 4 / 4 / 13; }
.aurora-photo-5 { grid-area: 3 / 15 / 4 / 25; align-self: end; }
.aurora-photo-6 { grid-area: 4 / 2 / 5 / 12; }
.aurora-photo-7 { grid-area: 4 / 15 / 5 / 24; align-self: end; }
.aurora-photo-8 { grid-area: 5 / 4 / 6 / 13; }
.aurora-photo-9 { grid-area: 5 / 15 / 6 / 25; align-self: end; }
@media (max-width: 1100px) {
  .aurora-layout { display: flex; flex-direction: column; gap: clamp(24px, 5vw, 48px); padding: clamp(20px, 5vw, 48px); }
  .aurora-caption { text-align: left; padding: 0; }
  .aurora-caption p { margin-top: .5em; }
  .aurora-photo { align-self: stretch; }
  .portfolio-responsive #page .aurora-story { scroll-margin-top: 110px; }
}
