/* blocks/album.liquid */
.albm { --albm-line: var(--color-border, color-mix(in srgb, currentColor 18%, transparent)); --albm-radius: var(--media-radius, var(--card-radius, .5rem)); }
.albm__head { margin: 0 0 1.25rem; display: grid; gap: .4rem; }
.albm__title, .albm__description { margin: 0; }
.albm__description { color: var(--color-muted, inherit); }
.albm__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 0 1.25rem; }
.albm__grid ~ .albm__actions { margin: 1.25rem 0 0; }
.albm__grid { display: grid; gap: var(--grid-gap, 1rem); grid-template-columns: repeat(var(--albm-columns, 3), minmax(0, 1fr)); }
.albm__grid--masonry { display: block; columns: var(--albm-columns, 3); column-gap: var(--grid-gap, 1rem); }
.albm__grid--masonry .albm__item { break-inside: avoid; margin-bottom: var(--grid-gap, 1rem); }
.albm__item { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .4rem .75rem; align-items: center; min-width: 0; }
.albm__item > .albm__photo, .albm__item > .albm__video { grid-column: 1 / -1; }
.albm__item > .albm__caption { grid-row: 2; grid-column: 1; }
.albm__item > .albm__tools { grid-row: 2; grid-column: 2; }
.albm__photo { display: block; overflow: hidden; border-radius: var(--albm-radius); }
.albm__photo img { display: block; width: 100%; height: auto; }
.albm__grid--grid .albm__photo img { aspect-ratio: 1; object-fit: cover; }
.albm__item--favorite .albm__photo { outline: 3px solid var(--color-accent, currentColor); outline-offset: -3px; }
.albm__caption { min-width: 0; font-size: .85rem; color: var(--color-muted, inherit); }
.albm__tools { display: inline-flex; align-items: center; gap: .75rem; justify-self: end; font-size: .85rem; }
.albm__favorite { margin: 0; }
.albm__favorite button { display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; border: 1px solid var(--albm-line);
  background: transparent; color: inherit; cursor: pointer; }
.albm__favorite svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.albm__favorite button[aria-pressed="true"] svg { fill: currentColor; }
.albm__favorite button:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.albm__download { color: inherit; }
.albm__video summary { position: relative; display: block; cursor: pointer; list-style: none; border-radius: var(--albm-radius); overflow: hidden;
  aspect-ratio: 16 / 9; background: color-mix(in srgb, var(--color-text, currentColor) 12%, transparent); }
.albm__video summary::-webkit-details-marker { display: none; }
.albm__video summary img { display: block; width: 100%; height: 100%; object-fit: cover; }
.albm__video[open] summary { display: none; }
.albm__play { position: absolute; inset: 50% auto auto 50%; width: 4rem; height: 4rem; margin: -2rem 0 0 -2rem; border-radius: 50%;
  background: color-mix(in srgb, var(--color-text, currentColor) 70%, transparent); }
.albm__play::after { content: ""; position: absolute; left: 1.6rem; top: 1.25rem; border-style: solid; border-width: .75rem 0 .75rem 1.2rem;
  border-color: transparent transparent transparent var(--color-background, Canvas); }
.albm__video summary:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.albm__frame { aspect-ratio: 16 / 9; }
.albm__frame iframe { width: 100%; height: 100%; border: 0; border-radius: var(--albm-radius); }
.albm__gate { max-width: 30rem; display: grid; gap: .75rem; justify-items: start; padding: 1.5rem; border: 1px solid var(--albm-line); border-radius: var(--card-radius, .5rem); }
.albm__gate-title, .albm__badge, .albm__error { margin: 0; }
.albm__gate-form { display: grid; gap: .5rem; width: 100%; }
.albm__gate-form input { width: 100%; }
.albm__error { color: var(--color-accent, inherit); }
.albm__cover { display: grid; gap: 1rem; justify-items: start; color: inherit; text-decoration: none; }
.albm__cover img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--albm-radius); }
.albm__empty { margin: 0; padding: 2rem 1.5rem; border: 1px dashed var(--albm-line); border-radius: var(--albm-radius); text-align: center; }
@media (max-width: 749px) {
  .albm__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .albm__grid--masonry { columns: 2; }
}
/* blocks/albums.liquid */
.albg { --albg-line: var(--color-border, color-mix(in srgb, currentColor 18%, transparent)); --albg-radius: var(--media-radius, var(--card-radius, .5rem)); }
.albg__title { margin: 0 0 1.25rem; }
.albg__filters { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.25rem; }
.albg__chip { cursor: pointer; padding: .35rem .9rem; border: 1px solid var(--albg-line); border-radius: 999px; font-size: .9rem; }
.albg__grid { display: grid; gap: var(--grid-gap, 1.5rem); padding: 0; margin: 0; list-style: none; grid-template-columns: repeat(var(--albg-columns, 3), minmax(0, 1fr)); }
.albg__tile { min-width: 0; }
.albg__link { display: grid; gap: .75rem; color: inherit; text-decoration: none; }
.albg__media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; border-radius: var(--albg-radius);
  background: color-mix(in srgb, var(--color-text, currentColor) 6%, var(--color-background, transparent)); }
.albg__grid--square .albg__media { aspect-ratio: 1; }
.albg__grid--landscape .albg__media { aspect-ratio: 3 / 2; }
.albg__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease-out, ease); }
.albg__link:hover .albg__media img, .albg__link:focus-visible .albg__media img { transform: scale(1.03); }
.albg__lock { position: absolute; inset: 0; display: grid; place-items: center; }
.albg__lock svg { width: 2.25rem; height: 2.25rem; fill: none; stroke: var(--color-muted, currentColor); stroke-width: 1.6; }
.albg__badge { position: absolute; left: .75rem; top: .75rem; padding: .2rem .65rem; border-radius: 999px; font-size: .75rem;
  background: var(--color-background, Canvas); color: var(--color-text, CanvasText); }
.albg__body { display: grid; gap: .3rem; }
.albg__name { margin: 0; }
.albg__link:hover .albg__name, .albg__link:focus-visible .albg__name { text-decoration: underline; }
.albg__meta, .albg__description, .albg__unlock { margin: 0; font-size: .9rem; color: var(--color-muted, inherit); }
.albg__unlock { text-decoration: underline; }
.albg__empty { margin: 0; padding: 2rem 1.5rem; border: 1px dashed var(--albg-line); border-radius: var(--albg-radius); text-align: center; }

/* One category at a time, chosen by the radio before everything else. */
.albg__radio:nth-of-type(2):checked ~ .albg__grid .albg__tile:not(.albg__tile--c1),
.albg__radio:nth-of-type(3):checked ~ .albg__grid .albg__tile:not(.albg__tile--c2),
.albg__radio:nth-of-type(4):checked ~ .albg__grid .albg__tile:not(.albg__tile--c3),
.albg__radio:nth-of-type(5):checked ~ .albg__grid .albg__tile:not(.albg__tile--c4),
.albg__radio:nth-of-type(6):checked ~ .albg__grid .albg__tile:not(.albg__tile--c5),
.albg__radio:nth-of-type(7):checked ~ .albg__grid .albg__tile:not(.albg__tile--c6),
.albg__radio:nth-of-type(8):checked ~ .albg__grid .albg__tile:not(.albg__tile--c7),
.albg__radio:nth-of-type(9):checked ~ .albg__grid .albg__tile:not(.albg__tile--c8) { display: none; }
.albg__radio:nth-of-type(1):checked ~ .albg__filters .albg__chip:nth-of-type(1),
.albg__radio:nth-of-type(2):checked ~ .albg__filters .albg__chip:nth-of-type(2),
.albg__radio:nth-of-type(3):checked ~ .albg__filters .albg__chip:nth-of-type(3),
.albg__radio:nth-of-type(4):checked ~ .albg__filters .albg__chip:nth-of-type(4),
.albg__radio:nth-of-type(5):checked ~ .albg__filters .albg__chip:nth-of-type(5),
.albg__radio:nth-of-type(6):checked ~ .albg__filters .albg__chip:nth-of-type(6),
.albg__radio:nth-of-type(7):checked ~ .albg__filters .albg__chip:nth-of-type(7),
.albg__radio:nth-of-type(8):checked ~ .albg__filters .albg__chip:nth-of-type(8),
.albg__radio:nth-of-type(9):checked ~ .albg__filters .albg__chip:nth-of-type(9) {
  background: var(--color-button, currentColor); color: var(--color-button-text, Canvas); border-color: var(--color-button, currentColor);
}
.albg__radio:focus-visible ~ .albg__filters .albg__chip { outline: 2px solid currentColor; outline-offset: 2px; }
@media (max-width: 749px) { .albg__grid { grid-template-columns: repeat(var(--albg-columns-mobile, 1), minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .albg__media img { transition: none; } }
/* blocks/before-after.liquid */
.bfa { margin: 0; display: grid; gap: .6rem; }
.bfa--wide .rn-compare img { aspect-ratio: 16 / 9; }
.bfa--square .rn-compare img { aspect-ratio: 1; }
.bfa .rn-tag--after { background: var(--color-button, currentColor); color: var(--color-button-text, Canvas); }
.bfa__caption { font-size: .9em; text-align: center; color: var(--color-muted, inherit); }
.bfa__empty { margin: 0; padding: 2rem 1.5rem; text-align: center;
  border: 1px dashed var(--color-border, color-mix(in srgb, currentColor 18%, transparent)); border-radius: var(--media-radius, .5rem); }
/* blocks/favorites.liquid */
.albf { max-width: 36rem; display: grid; gap: .75rem; padding: 1.5rem; margin: 2rem auto 0;
  border: 1px solid var(--color-border, color-mix(in srgb, currentColor 18%, transparent)); border-radius: var(--card-radius, .5rem); }
.albf__title, .albf__count, .albf__intro, .albf__notice { margin: 0; }
.albf__count, .albf__intro { color: var(--color-muted, inherit); }
.albf__notice { font-weight: 600; }
.albf__form { display: grid; gap: .5rem; }
.albf__form input, .albf__form textarea { width: 100%; }
.albf__form .button { justify-self: start; margin-top: .25rem; }
.albf__empty { margin: 0; opacity: .75; }
