/* sections/album-list.liquid */
.album-list { list-style: none; margin: 0; padding: 0; }
.album-tile { min-width: 0; }
.album-tile__link { display: flex; flex-direction: column; gap: .85rem; color: inherit; text-decoration: none; height: 100%; }
.album-tile__media { position: relative; overflow: hidden; }
.album-tile__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease-out, ease); }
.album-tile__link:hover .album-tile__media img, .album-tile__link:focus-visible .album-tile__media img { transform: scale(1.03); }
.album-tile__lock { position: absolute; left: .75rem; top: .75rem; padding: .25rem .6rem; border-radius: 999px; font-size: .75rem;
  background: rgba(var(--color-background-rgb), .88); color: rgb(var(--color-text-rgb)); }
.album-tile__body { display: grid; gap: .35rem; }
.album-tile.panel .album-tile__body { padding: 0 1rem 1rem; }
.album-tile__title { margin: 0; }
.album-tile__link:hover .album-tile__title, .album-tile__link:focus-visible .album-tile__title { text-decoration: underline; }
.album-tile__meta, .album-tile__description { margin: 0; font-size: .9rem; }
.album-list--list .album-tile__link { flex-direction: row; align-items: center; }
.album-list--list .album-tile__media { flex: 0 0 min(36%, 16rem); }
.album-list__empty { padding: 2.5rem 1.5rem; border: 1px dashed rgba(var(--color-text-rgb), .3); border-radius: var(--card-radius); text-align: center; }
@media (max-width: 749px) {
  .album-list--list .album-tile__link { flex-direction: column; align-items: stretch; }
  .album-list--list .album-tile__media { flex-basis: auto; }
}
@media (prefers-reduced-motion: reduce) { .album-tile__media img { transition: none; } }
/* sections/lookbook.liquid */
.look__stage { position: relative; }
.look__frame { position: relative; overflow: hidden; aspect-ratio: var(--look-ratio, 3 / 2); background: var(--color-surface); border-radius: var(--radius, 0); }
.look__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.look__frame--natural { aspect-ratio: auto; }
.look__frame--natural .look__photo { position: static; height: auto; }
/* A 44px target around a 22px cream dot with an ink centre, so a thumb lands
   on it without the dot covering the piece it marks. */
.look__point { position: absolute; z-index: 2; inset-inline-start: var(--point-x, 50%); inset-block-start: var(--point-y, 50%); translate: -50% -50%; display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border-radius: 50%; color: var(--color-text); text-decoration: none; }
.look__point > * { grid-area: 1 / 1; }
.look__dot { position: relative; inline-size: 1.375rem; block-size: 1.375rem; border-radius: 50%; background: var(--color-background); box-shadow: 0 0 0 1px rgba(var(--color-text-rgb), .18), 0 6px 16px -6px rgba(var(--color-text-rgb), .55); transition: background-color 150ms var(--ease), transform 150ms var(--ease); }
.look__dot::after { content: ""; position: absolute; inset-block-start: 50%; inset-inline-start: 50%; inline-size: .375rem; block-size: .375rem; border-radius: 50%; background: var(--color-text); translate: -50% -50%; transition: background-color 150ms var(--ease); }
.look__pulse { inline-size: 1.375rem; block-size: 1.375rem; border-radius: 50%; border: 1px solid var(--color-background); opacity: 0; }
@media (prefers-reduced-motion: no-preference) { .look__pulse { animation: look-breathe 2.6s var(--ease) infinite; } }
@keyframes look-breathe { from { transform: scale(1); opacity: .9; } to { transform: scale(2.1); opacity: 0; } }
.look__point:hover .look__dot, .look__point:focus-visible .look__dot { background: var(--color-accent); transform: scale(1.1); }
.look__point:hover .look__dot::after, .look__point:focus-visible .look__dot::after { background: var(--color-on-accent); }
.look__point:focus-visible { outline: 2px solid var(--color-focus-ring); outline-offset: 2px; }
.look__point--unset .look__dot { background: transparent; box-shadow: none; outline: 2px dashed var(--color-background); }
.look__point--unset .look__dot::after { display: none; }
.look__hint { margin-block-start: var(--space-sm); font-size: var(--text-sm); }

/* The quick view: the theme's dialog shell, widened to two columns. */
.look-qv { position: fixed; inset: 0; z-index: 90; display: none; place-items: center; padding: var(--space-sm); background: transparent; }
.look-qv:target { display: grid; }
.look-qv__scrim { position: absolute; inset: 0; background: rgba(var(--color-text-rgb), .45); }
.look-qv__panel { position: relative; display: flex; flex-direction: column; inline-size: min(58rem, 100%); max-block-size: min(85svh, 48rem); background: var(--color-background); color: var(--color-text); border-radius: var(--radius, 0); }
@media (prefers-reduced-motion: no-preference) { .look-qv:target .look-qv__panel { animation: look-rise 280ms var(--ease-out); } }
@keyframes look-rise { from { transform: translateY(1rem); opacity: 0; } }
.look-qv__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); padding: var(--space-sm) var(--space-md); border-block-end: 1px solid var(--color-border); flex-shrink: 0; }
.look-qv__body { display: grid; gap: var(--space-md); padding: var(--space-md); overflow-y: auto; overscroll-behavior: contain; font-size: var(--text-base); }
@media (min-width: 750px) { .look-qv__body { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-lg); align-items: start; } }
.look-qv__picture { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 5; background: var(--color-surface); }
.look-qv__picture img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.look-qv__info { display: grid; gap: var(--space-sm); align-content: start; }
.look-qv__name, .look-qv__price, .look-qv__stock { margin: 0; }
.look-qv__tax { color: var(--color-muted); font-size: var(--text-xs); }
.look-qv__form { display: flex; gap: var(--space-2xs); margin: 0; }
.look-qv__qty { inline-size: 4.5rem; flex: 0 0 auto; padding: .75rem .5rem; border: 1px solid var(--color-input-border); background: transparent; text-align: center; }
.look-qv__add { flex: 1 1 auto; }
.look-qv__more { font-size: var(--text-sm); }
/* sections/main-gallery.liquid */
.gallery-actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; margin: 0 0 var(--grid-gap); }
.gallery-item__bar { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.gallery-item__caption { min-width: 0; }
.gallery-item__tools { display: inline-flex; align-items: center; gap: .75rem; margin-left: auto; }
.gallery-item__favorite { margin: 0; }
.gallery-item__favorite button { display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; border: 1px solid rgba(var(--color-text-rgb), .2);
  background: transparent; color: inherit; cursor: pointer; }
.gallery-item__favorite svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.gallery-item__favorite button[aria-pressed="true"] svg { fill: currentColor; }
.gallery-item__favorite button:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.gallery-item__download { font-size: .8rem; color: inherit; }
.gallery-item--favorite img { outline: 3px solid rgb(var(--color-text-rgb)); outline-offset: -3px; }
.video-poster summary { position: relative; display: block; cursor: pointer; list-style: none; border-radius: var(--media-radius); overflow: hidden; }
.video-poster summary::-webkit-details-marker { display: none; }
.video-poster summary img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.video-poster[open] summary { display: none; }
.video-poster__play { position: absolute; inset: 50% auto auto 50%; width: 4rem; height: 4rem; margin: -2rem 0 0 -2rem; border-radius: 50%; background: rgba(0,0,0,.6); }
.video-poster__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 #fff; }
.video-poster summary:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.gallery-favorites { max-width: 36rem; margin: calc(var(--grid-gap) * 2) auto 0; padding: 1.5rem; display: grid; gap: .75rem; }
.gallery-favorites h2, .gallery-favorites p { margin: 0; }
