/* Restrained UI polish. Page composition, type, palette and default scroll motion stay in the runtime. */
:root {
  --polish-accent: #b13a20;
  --polish-image-edge: oklch(0 0 0 / 0.1);
}

/* The existing flat, outlined button language; no new elevation or layout shifts. */
.framer-2UmXE {
  background-color: rgb(23 13 26 / 0.025) !important;
  transition: background-color 150ms ease-out, color 150ms ease-out, opacity 150ms ease-out;
  -webkit-tap-highlight-color: transparent;
}
.framer-2UmXE[data-framer-name="Light"] {
  background-color: rgb(255 255 255 / 0.04) !important;
}
.framer-2UmXE::after {
  transition: border-color 150ms ease-out;
}

/* A neutral inset edge contains photographic highlights without tinting the image. */
[data-framer-background-image-wrapper] > img:not(section img) {
  outline: 1px solid var(--polish-image-edge);
  outline-offset: -1px;
}
.framer-JBk4L {
  --polish-image-edge: oklch(1 0 0 / 0.1);
}

.framer--slideshow-controls button,
.polish-slide-arrow,
form button[type="submit"] {
  transition: background-color 150ms ease-out, border-color 150ms ease-out, opacity 150ms ease-out;
  -webkit-tap-highlight-color: transparent;
}
.framer--slideshow-controls button:is([aria-label="Previous"], [aria-label="Next"]),
.polish-slide-arrow {
  border: 1px solid transparent !important;
}
.framer--slideshow-controls > div:has(> button[aria-label^="Scroll to page"]) {
  outline: 1px solid oklch(1 0 0 / 0.1);
  outline-offset: -1px;
}
[data-framer-name="Projects collection list"] h2 {
  transition: color 150ms ease-out;
}

/* Keep the plum form surface while giving fields a deliberate, legible edge. */
form :is(input, textarea) {
  border-color: #958b97 !important;
  border-radius: 8px !important;
  transition: border-color 150ms ease-out, background-color 150ms ease-out;
}
form button[type="submit"] {
  border-color: #958b97 !important;
}
:is(.framer-2UmXE, .framer--slideshow-controls button, .polish-slide-arrow, form button):focus-visible {
  outline: 2px solid var(--polish-accent);
  outline-offset: 4px;
}
.framer-2UmXE[data-framer-name="Light"]:focus-visible,
.framer--slideshow-controls button:focus-visible {
  outline-color: #fff;
}
form :is(input, textarea):focus-visible {
  border-color: #f7f2f8 !important;
  outline: 2px solid #f7f2f8;
  outline-offset: 3px;
}
form button:disabled {
  cursor: not-allowed !important;
  background-color: #413844 !important;
  color: #fff !important;
  opacity: 0.6;
}
:is(.framer-2UmXE, .framer--slideshow-controls button, .polish-slide-arrow, form button[type="submit"]):not(:disabled):not([aria-disabled="true"]):active {
  opacity: 0.82 !important;
}

/* Menus stay bounded on short screens; scrolling stops at the panel's edge. */
.framer-eJrvG:is([data-framer-name*="Mobile Open"], [data-framer-name*="Tablet Open"]) {
  max-height: 100dvh;
  overflow-y: auto !important;
  overscroll-behavior: contain;
}

@media (hover: hover) {
  .framer-2UmXE:not([aria-disabled="true"]):hover {
    background-color: rgb(23 13 26 / 0.065) !important;
    --border-color: rgb(23 13 26 / 0.42) !important;
  }
  .framer-2UmXE[data-framer-name="Light"]:not([aria-disabled="true"]):hover {
    background-color: rgb(255 255 255 / 0.12) !important;
    --border-color: rgb(255 255 255 / 0.55) !important;
  }
  .framer--slideshow-controls button:is([aria-label="Previous"], [aria-label="Next"]):not(:disabled):hover,
  .polish-slide-arrow:not(:disabled):hover {
    background-color: rgb(255 255 255 / 0.28) !important;
    border-color: rgb(255 255 255 / 0.24) !important;
  }
  [data-framer-name="Projects collection list"] > a:hover h2 {
    --framer-text-color: var(--polish-accent) !important;
    color: var(--polish-accent) !important;
  }
  form :is(input, textarea):hover {
    border-color: #b9aebb !important;
  }
  form button[type="submit"]:not(:disabled):hover {
    background-color: #413844 !important;
    border-color: #b9aebb !important;
  }
}

@media (prefers-reduced-motion: no-preference) {
  :is(.framer-2UmXE, .framer--slideshow-controls button, .polish-slide-arrow, form button[type="submit"]):not([data-static]) {
    transition-property: scale, background-color, border-color, color, opacity;
    transition-duration: 150ms;
    transition-timing-function: ease-out;
  }
  :is(.framer-2UmXE, .framer--slideshow-controls button, .polish-slide-arrow, form button[type="submit"]):not(:disabled):not([aria-disabled="true"]):not([data-static]):active {
    scale: 0.96;
  }
}

/* The reduced-motion slideshow retains manual navigation using opacity alone. */
.polish-reduced-slideshow {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  user-select: none;
}
.polish-reduced-frame {
  position: absolute;
  inset: 0;
  transition: opacity 150ms ease-out;
}
.polish-reduced-controls {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  margin: 0;
  pointer-events: none;
}
.polish-slide-arrow {
  position: absolute;
  top: calc(50% - 16px);
  width: 32px;
  height: 32px;
  border-radius: 40px;
  padding: 0;
  background: rgb(255 255 255 / 0.16);
  pointer-events: auto;
  cursor: pointer;
}
.polish-slide-arrow img { width: 100%; height: 100%; }
.polish-reduced-dots {
  position: absolute;
  left: 50%;
  translate: -50% 0;
  display: flex;
  border-radius: 50px;
  background: rgb(255 255 255 / 0.16);
  pointer-events: auto;
}
.polish-reduced-dots button {
  background: transparent;
  border: 0;
  padding: 12px 8px;
  cursor: pointer;
}
.polish-reduced-dots button:first-child { padding-left: 12px; }
.polish-reduced-dots button:last-child { padding-right: 12px; }
.polish-reduced-dots button > span {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: white;
  transition: opacity 150ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
  /* The normal montage spreads with scroll. Give its still state the same clear center. */
  :has(> .framer-JBk4L) { width: 100% !important; }
  .framer-JBk4L {
    min-height: 100svh;
    width: 100% !important;
  }
  .framer-JBk4L [data-framer-component-type="RichTextContainer"] {
    max-width: 776px;
  }
  .framer-JBk4L :is([data-framer-name="img1"], [data-framer-name="img2"], [data-framer-name="img3"], [data-framer-name="img4"]) {
    inset: auto !important;
    width: clamp(96px, 22vw, 320px) !important;
    height: clamp(120px, 27vw, 280px) !important;
    overflow: hidden !important;
    transform: none !important;
  }
  .framer-JBk4L :is([data-framer-name="img1"], [data-framer-name="img2"], [data-framer-name="img3"], [data-framer-name="img4"]) > div {
    position: absolute !important;
    inset: 0 !important;
    aspect-ratio: auto !important;
    width: 100% !important;
    height: 100% !important;
  }
  .framer-JBk4L [data-framer-name="img1"] { top: 5% !important; right: 2% !important; }
  .framer-JBk4L [data-framer-name="img2"] { top: 5% !important; left: 2% !important; }
  .framer-JBk4L [data-framer-name="img3"] { bottom: 5% !important; right: 2% !important; }
  .framer-JBk4L [data-framer-name="img4"] { bottom: 5% !important; left: 2% !important; }
}

@media (forced-colors: active) {
  :is(.framer-2UmXE, .polish-slide-arrow, .framer--slideshow-controls button) {
    border: 1px solid ButtonText !important;
  }
}

/* Shared states for every link and control, including the recovered footer. */
:root { --interaction-focus: #b13a20; --interaction-hover: rgb(23 13 26 / 0.07); }
.framer-4f9Ol, .framer-JBk4L,
.framer--slideshow-controls,
.framer-eJrvG:is([data-framer-name="Light"], [data-framer-name="Mobile (Light)"], [data-framer-name="Tablet (Light)"]) {
  --interaction-focus: #fff;
  --interaction-hover: rgb(255 255 255 / 0.18);
}
form { --interaction-focus: #f7f2f8; }
.framer-4f9Ol a:not(.framer-2UmXE) {
  color: #fff !important;
  text-decoration-color: #fff !important;
  overflow: visible !important;
}
.framer-4f9Ol :has(a[href]) { overflow: visible !important; }
.framer-4f9Ol a:not(.framer-2UmXE):focus-visible .framer-text {
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 0.3em !important;
}
a[href], button, [role="button"] {
  -webkit-tap-highlight-color: transparent;
}
a[href]:not(.framer-2UmXE):not(.framer-JBk4L),
button, [role="button"] {
  transition: opacity 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out;
}
:is(a[href], button, [role="button"], input, textarea, select):focus-visible {
  outline: 2px solid var(--interaction-focus) !important;
  outline-offset: 5px;
}
:is(a[href], button, [role="button"]):not(:disabled):not([aria-disabled="true"]):not(.framer-JBk4L):active {
  opacity: 0.82 !important;
}
/* Text links underline without moving surrounding text or changing the palette. */
a[href]:not(.framer-2UmXE):not(.framer-JBk4L):not([data-framer-component-type="SVG"]):not([data-framer-name="scroll down button"]):not(:has(img, h2, h3)):focus-visible,
a[href]:not(.framer-JBk4L):focus-visible :is(h2, h3) {
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 0.3em !important;
}
/* Native menu button retains the original icon and header footprint. */
.framer-eJrvG button.framer-9ho4em-container {
  appearance: none;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px !important;
  height: 36px !important;
  margin: -6px;
  padding: 5px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
}
.framer-eJrvG:has(button.framer-9ho4em-container):is([data-framer-name="Mobile (Light)"], [data-framer-name="Mobile (Dark)"], [data-framer-name="Tablet (Light)"], [data-framer-name="Tablet (Dark)"]) .framer-atls5w {
  visibility: hidden;
}
.framer-19rpF [role="button"] { cursor: pointer; opacity: 0.62 !important; }
.framer-19rpF [role="button"][aria-pressed="true"] { opacity: 1 !important; }
.framer-19rpF [role="button"][aria-pressed="true"] p {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
}
.framer-19rpF [role="button"][data-keyboard-pressed="true"]:not([aria-disabled="true"]) {
  opacity: 0.82 !important;
}
.framer--slideshow-controls > div:has(> button[aria-label^="Scroll to page"]) {
  overflow: visible !important;
}
.framer--slideshow-controls button[aria-label^="Scroll to page"] { border-radius: 50px; }
a.framer-text[data-framer-page-link-current="true"] {
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 0.3em !important;
}
.framer-2UmXE[data-framer-page-link-current="true"] {
  --border-color: rgb(23 13 26 / 0.42) !important;
}
.framer-2UmXE[data-framer-name="Light"][data-framer-page-link-current="true"] {
  --border-color: rgb(255 255 255 / 0.55) !important;
}

@media (hover: hover) {
  .framer-4f9Ol a:not(.framer-2UmXE):hover .framer-text {
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 0.3em !important;
  }
  a.framer-text[data-framer-page-link-current="true"]:hover { opacity: 0.88 !important; }
  a[href]:not(.framer-2UmXE):not(.framer-JBk4L):not([data-framer-component-type="SVG"]):not([data-framer-name="scroll down button"]):not(:has(img, h2, h3)):not([aria-disabled="true"]):hover,
  a[href]:not(.framer-JBk4L):hover :is(h2, h3) {
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 0.3em !important;
  }
  a[href][data-framer-component-type="SVG"]:hover,
  a[href]:has(img):not(:has(h2, h3)):not(.framer-JBk4L):hover { opacity: 0.88 !important; }
  a[href][data-framer-name="scroll down button"]:hover {
    background-color: #fff0ea !important;
    --border-color: #b13a20 !important;
  }
  button:not(:disabled):not([aria-disabled="true"]):hover,
  [role="button"]:not([aria-disabled="true"]):hover {
    background-color: var(--interaction-hover) !important;
  }
  .framer-19rpF [role="button"]:hover { opacity: 1 !important; }
  .framer-JBk4L:hover .framer-2UmXE {
    background-color: rgb(255 255 255 / 0.12) !important;
    --border-color: rgb(255 255 255 / 0.55) !important;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .framer-eJrvG button.framer-9ho4em-container {
    transition: scale 150ms ease-out, opacity 150ms ease-out, background-color 150ms ease-out;
  }
  .framer-eJrvG button.framer-9ho4em-container:enabled:active { scale: 0.96; }
}
@media (forced-colors: active) {
  .framer-19rpF [role="button"][aria-pressed="true"] { outline: 1px solid Highlight; }
}

/* Public previews are irreversibly blurred files; the full photo is served only after authentication. */
.project-access-image { position: relative; }
.project-access-badge { position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%,-50%); display: flex; flex-direction: column; align-items: center; gap: 12px; min-width: 132px; padding: 20px 22px; border: 1px solid rgb(255 255 255 / .65); border-radius: 10px; background: rgb(255 255 255 / .88); color: #170d1a; pointer-events: none; font-family: 'Area Regular',Arial,sans-serif; font-size: 10px; letter-spacing: .04em; text-transform: uppercase; transition: background-color 150ms ease-out,border-color 150ms ease-out,color 150ms ease-out; }
.project-access-badge svg { width: 25px; height: 25px; }
.project-access-badge.is-unlocked { left: 16px; top: 16px; transform: none; flex-direction: row; gap: 8px; padding: 10px 14px; border-radius: 24px; min-width: 0; }
.project-access-badge.is-unlocked svg { width: 16px; height: 16px; }
a:focus-visible .project-access-badge { border-color: #b13a20; color: #b13a20; background: white; }
.project-lock-session { position: absolute; bottom: 28px; right: 48px; display: flex; gap: 8px; align-items: center; border: 1px solid rgb(255 255 255 / .65); border-radius: 24px; padding: 10px 16px; color: white; background: transparent; font: 11px 'Area Regular',Arial,sans-serif; cursor: pointer; transition: background-color 150ms ease-out,border-color 150ms ease-out; }
.project-lock-session svg { width: 14px; height: 14px; }
.project-lock-session:focus-visible { outline: 2px solid white; outline-offset: 4px; }
.project-lock-session:disabled { opacity: .5; cursor: default; }
.project-lock-session:not(:disabled):active { background: rgb(255 255 255 / .25); }
@media(hover:hover) { a:hover .project-access-badge { background: white; border-color: white; color: #b13a20; } .project-lock-session:not(:disabled):hover { background: rgb(255 255 255 / .13); border-color: white; } }
@media(prefers-reduced-motion:no-preference) { .project-lock-session { transition: transform 150ms ease-out,background-color 150ms ease-out,border-color 150ms ease-out; } .project-lock-session:not(:disabled):active { transform: scale(.96); } }
@media(max-width:767px) { .project-access-badge { gap: 9px; min-width: 122px; padding: 16px 18px; } .project-lock-session { right: 24px; bottom: 18px; } }
