/* Page frame and print rules that the Claude Design runtime used to inject,
   plus the box model of the old image slots. Loaded first on every page. */

html, body { height: 100%; margin: 0; }
#page, #page > .page-host { height: 100%; }

@media print {
  @page { margin: 0.5cm; }
  figure, table { break-inside: avoid; }
  #page, #page > .page-host { height: auto; }
  *, *::before, *::after {
    print-color-adjust: exact; -webkit-print-color-adjust: exact;
    backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
    animation-delay: -99s !important; animation-duration: .001s !important;
    animation-iteration-count: 1 !important; animation-fill-mode: both !important;
    animation-play-state: running !important; transition-duration: 0s !important;
  }
}

/* Image that fills its box: the frame clips, the image is centred and scaled
   (cover or contain, or a stored zoom/pan set inline). */
.slot { display: block; position: relative; width: 100%; height: 100%; aspect-ratio: 3 / 2; }
.slot-frame { position: absolute; inset: 0; overflow: hidden; background: rgba(127, 127, 127, .08); }
.slot-frame > img { position: absolute; display: block; max-width: none !important; transform: translate(-50%, -50%); user-select: none; -webkit-user-select: none; -webkit-user-drag: none; }
