/* ============================================================
   Production-only overrides for the deployed site.
   Loaded last, after the five kiln stylesheets.
   ============================================================ */

/* Empty photo placeholders: keep the frame as a quiet tonal block, but never
   show the "Drop an image / browse files" affordance to visitors. Drop real
   photos into the slots in the design tool and they travel via
   .image-slots.state.json. */
image-slot:not([data-filled])::part(empty){display:none;}
image-slot:not([data-filled])::part(ring){display:none;}
image-slot:not([data-filled])::part(frame){
  background:linear-gradient(135deg,#EFEADC 0%,#E4E7DE 100%);
}

/* Netlify honeypot field stays out of sight */
.nf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* Form success state, swapped in after a submission */
.kiln .nf-success{padding:clamp(22px,2.4vw,32px);border-radius:20px;background:var(--cream-2);
  box-shadow:inset 0 0 0 1.5px var(--hair);display:grid;gap:10px;}
.kiln .nf-success h3{font-family:var(--display);font-weight:800;font-size:clamp(22px,2.2vw,30px);
  letter-spacing:-.02em;line-height:1.05;}
.kiln .nf-success p{font-size:.96rem;line-height:1.55;color:var(--ink-2);}
.kiln .sec--ink .nf-success,.kiln .sec--deep .nf-success,.kiln .sec--navy .nf-success{color:var(--ink);}

/* Respect the notch on iOS */
@supports (padding:max(0px)){
  .kiln .shell{padding-left:max(var(--gutter),env(safe-area-inset-left));
    padding-right:max(var(--gutter),env(safe-area-inset-right));}
}
