/* Preserve the desktop typography when mobile browsers fit the 1440px canvas. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
/* 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; }
.portfolio-coordinate { display: inline-block; white-space: nowrap; overflow-wrap: normal; }

/* These portraits keep their original frames instead of filling stretched grid rows. */
.portfolio-responsive #page :is(.fe-block-6a81a4d81cd902b2dc06, .fe-block-e1beeccd7d3b9fb450a8, .fe-block-934e4245282246dd7a59) {
  height: auto;
  min-height: 0;
  aspect-ratio: var(--portfolio-image-ratio);
  align-self: start;
}
@media (min-width: 1101px) {
  .portfolio-responsive #page :is(.fe-block-e1beeccd7d3b9fb450a8, .fe-block-934e4245282246dd7a59) { align-self: end; }
}

/* 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: 2 / 2 / 3 / 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-caption .aurora-location { margin-top: 0; }
.aurora-photo-1 { grid-area: 2 / 9 / 3 / 20; }
.aurora-credits { grid-area: 2 / 1 / 3 / 5; align-self: end; text-align: left; padding: 0; }
.aurora-credits p { margin-top: 0; }
.aurora-photo-2 { grid-area: 2 / 6 / 3 / 15; }
.aurora-photo-3 { grid-area: 2 / 15 / 3 / 20; align-self: center; }
.aurora-photo-4 { grid-area: 2 / 20 / 3 / 25; align-self: center; }
@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-credits { align-self: stretch; }
  .aurora-credits p { margin-top: 0; }
  .aurora-photo { align-self: stretch; }
  .portfolio-responsive #page .aurora-story { scroll-margin-top: 110px; }
}

/* A portrait phone must not stretch the spacing of the desktop composition. */
@media (min-width: 1101px) and (orientation: portrait) {
  .portfolio-responsive #page .page-section.section-height--small { min-height: 22.916667vw; }
  .portfolio-responsive #page .page-section.section-height--small > .content-wrapper {
    padding-top: 3.3vw;
    padding-bottom: 3.3vw;
  }
}

/* Aurora: the landscape canvas follows the existing Rose on Fire background ratio.
   Crop toward the foot of Look 2 to retain the seated model, not the empty wall. */
.aurora-panorama {
  grid-area: 1 / 1 / 2 / -1;
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  aspect-ratio: 4907 / 2920;
  isolation: isolate;
}
.aurora-panorama .aurora-photo-2 {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.aurora-panorama .aurora-photo-2 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 94%;
}
.aurora-panorama :is(.aurora-photo-3, .aurora-photo-4) {
  position: absolute;
  top: 15%;
  width: 24%;
  z-index: 1;
}
.aurora-panorama .aurora-photo-3 { left: 7%; }
.aurora-panorama .aurora-photo-4 { right: 7%; }
.aurora-panorama .aurora-credits {
  position: absolute;
  left: 4%;
  bottom: 4%;
  z-index: 2;
  color: #f6f3eb;
  text-align: left;
  text-shadow: 0 1px 6px rgba(0,0,0,.25);
}
.aurora-panorama .aurora-credits p {
  font-size: clamp(.68rem, .3vw + .55rem, .85rem);
  line-height: 1.5;
}
@media (max-width: 1100px) {
  .aurora-panorama .aurora-credits p { font-size: 1.05vw; }
}

/* Keep the complete credit on one editorial line. */
.aurora-credits .portfolio-credit-line { display: inline-block; white-space: nowrap; overflow-wrap: normal; }

/* Aurora diptych: smaller cafe portrait at left, balloon dress at right. */
.aurora-look5-pair {
  grid-area: 2 / 1 / 3 / -1;
  display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr));
  column-gap: 11px;
  align-items: end;
}
.aurora-look5-pair .aurora-photo-5 { grid-area: 1 / 2 / 2 / 7; align-self: end; }
.aurora-look5-pair .aurora-photo-1 { grid-area: 1 / 7 / 2 / 16; align-self: end; }
.aurora-look5-pair > .aurora-caption { grid-area: 1 / 17 / 2 / 25; align-self: start; padding-top: 0; text-align: left; }

/* The supplied text treatments align with the main photographs, never above. */
@media (min-width: 1101px) {
  .portfolio-responsive #page :is(.fe-677fae11dce4e23896fca4d2, .fe-677fe19b6845c74654c586c2) {
    grid-template-rows: auto auto;
  }
  .portfolio-responsive #page :is(.fe-block-ad0ed5ae8e64f054feaf, .fe-block-0fb730988b3cea9c60fd) {
    aspect-ratio: var(--portfolio-image-ratio);
    height: auto;
    align-self: end;
  }
  .portfolio-responsive #page .fe-block-ad0ed5ae8e64f054feaf { grid-area: 1 / 11 / 2 / 20; align-self: start; }
  .portfolio-responsive #page .fe-block-0fb730988b3cea9c60fd { grid-area: 1 / 21 / 2 / 26; }
  .portfolio-responsive #page .fe-block-yui_3_17_2_1_1736771594706_9916 { grid-area: 1 / 3 / 2 / 11; }
  .portfolio-responsive #page .fe-block-2d4f9b672da2e60ed5e5 { grid-area: 2 / 2 / 3 / 8; }
  .portfolio-responsive #page .fe-block-e1beeccd7d3b9fb450a8 { grid-area: 1 / 7 / 2 / 16; align-self: start; }
  .portfolio-responsive #page .fe-block-934e4245282246dd7a59 { grid-area: 1 / 2 / 2 / 7; }
  .portfolio-responsive #page .fe-block-429f10475fc5e12b1a00 { grid-area: 1 / 17 / 2 / 26; }
  .portfolio-responsive #page .fe-block-07e3e2096d9576f98480 { grid-area: 2 / 17 / 3 / 26; }
}
.portfolio-responsive :is(.fe-block-yui_3_17_2_1_1736771594706_9916, .fe-block-429f10475fc5e12b1a00) p {
  line-height: 1.12;
  text-align: left;
  text-indent: 0;
  text-wrap: pretty;
  margin: 0;
}


.portfolio-editorial-lead { display: block; text-align: right; white-space: nowrap; }

/* Both captions share the vertical centre of Anna's full-width photograph. */
@media (min-width: 1101px) {
  .portfolio-responsive #page .fe-677fdf42e539d40456cba546 > .portfolio-caption {
    grid-row: 1 / -1;
    align-self: center;
  }
}

/* Give Jade's editorial copy the available right margin, retaining the shared type scale. */
@media (min-width: 1101px) {
  .portfolio-responsive #page .fe-block-02cd544dcbeb50684502 {
    grid-column: 17 / -1;
    max-width: 720px;
    margin-right: 4vw;
  }
}

/* Jade: indented opening and an unbroken closing phrase, at the shared font size. */
.portfolio-responsive .fe-block-02cd544dcbeb50684502 p { text-indent: 36%; }
.portfolio-editorial-ending { display: inline-block; white-space: nowrap; text-indent: 0; }

/* A wide editorial measure and an indented opening for Create with Intention. */
@media (min-width: 1101px) {
  .portfolio-responsive #page .fe-block-99d8a1b85c7da0e1904e {
    grid-column: 1 / -1;
    width: min(1600px, 92vw);
    justify-self: center;
  }
}

/* The styling paragraph follows the supplied wide, indented text treatment. */
@media (min-width: 1101px) {
  .portfolio-responsive #page .fe-block-e6e2e99af1ae7d18db02 {
    grid-column: 1 / -1;
    width: min(1050px, 56vw);
    margin-left: 4vw;
  }
}

.portfolio-styling-term { white-space: nowrap; }

/* Widen Minimalism into the free left margin; keep its opening aligned right. */
@media (min-width: 1101px) {
  .portfolio-responsive #page .fe-block-yui_3_17_2_1_1736771594706_9916 {
    grid-column: 1 / 11;
    width: min(700px, calc(100% - 4vw));
    justify-self: end;
  }
}

/* Widen the light paragraph to increase the opening indent without changing type. */
@media (min-width: 1101px) {
  .portfolio-responsive #page .fe-block-429f10475fc5e12b1a00 {
    grid-column: 17 / -1;
    max-width: 720px;
    margin-right: 4vw;
  }
}

/* Centre the opening motto between the preceding and following photo groups.
   Account for the two section paddings and the 11px grid gap. */
@media (min-width: 1101px) {
  .portfolio-responsive #page .fe-block-yui_3_17_2_1_1735909866609_71294 {
    align-self: center;
    transform: translateY(calc(3.3vw - 5.5px));
  }
}

/* Give the Minimalism paragraph a little more breathing room beside the photograph. */
@media (min-width: 1101px) {
  .portfolio-responsive #page .fe-block-yui_3_17_2_1_1736771594706_9916 {
    transform: translateX(-16px);
  }
}

/* Balance the motto between Marta's captions and the following photo group. */
@media (min-width: 1101px) {
  .portfolio-responsive #page .fe-block-12d93ce9143e05167071 {
    align-self: center;
    /* Half of both section paddings, minus the grid gap and the unused
       part of the caption row (row height minus caption line height). */
    transform: translateY(calc(3.3vw - 5.5px - min(13.8245px, .989vw) + clamp(8.16px, .225vw + 6.6px, 10.2px)));
  }
}

/* Give the centred dream-life paragraph a substantially wider measure. */
@media (min-width: 1101px) {
  .portfolio-responsive #page .fe-block-yui_3_17_2_1_1736961276559_14208 {
    grid-column: 1 / -1;
    width: min(1400px, 92vw);
    justify-self: center;
  }
}
