.layout-switcher.svelte-t77g67{display:flex;gap:4px;padding:4px;background:var(--bg-secondary, #f5f5f7);border-radius:var(--radius-lg, 16px)}.layout-btn.svelte-t77g67{display:flex;align-items:center;gap:6px;padding:8px 12px;border:none;border-radius:var(--radius-md, 12px);background:transparent;color:var(--text-secondary, #6e6e73);cursor:pointer;transition:all var(--transition-base, .2s ease);font-size:14px;font-weight:500;white-space:nowrap}.layout-btn.svelte-t77g67:hover{background:#0000000d;color:var(--text-primary, #1d1d1f)}.layout-btn.active.svelte-t77g67{background:var(--bg-primary, #ffffff);color:var(--color-primary, #007AFF);box-shadow:var(--shadow-sm, 0 2px 8px rgba(0, 0, 0, .08))}.layout-label.svelte-t77g67{display:none}@media(min-width:640px){.layout-label.svelte-t77g67{display:inline}}@media(prefers-color-scheme:dark){.layout-switcher.svelte-t77g67{background:var(--bg-tertiary, #2c2c2e)}.layout-btn.svelte-t77g67:hover{background:#ffffff1a}.layout-btn.active.svelte-t77g67{background:var(--bg-secondary, #1c1c1e)}}.photo-grid-container.svelte-byzl6c{width:100%}.layout-grid.svelte-byzl6c{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media(min-width:768px){.layout-grid.svelte-byzl6c{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.layout-grid.svelte-byzl6c{grid-template-columns:repeat(4,1fr)}}.layout-grid.svelte-byzl6c .photo-wrapper:where(.svelte-byzl6c){aspect-ratio:1 / 1}.layout-mosaic.svelte-byzl6c{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(150px,auto);grid-auto-flow:dense;gap:12px}@media(max-width:1023px){.layout-mosaic.svelte-byzl6c{grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(120px,auto)}}@media(max-width:767px){.layout-mosaic.svelte-byzl6c{grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(100px,auto)}}.layout-mosaic.svelte-byzl6c .mosaic-normal:where(.svelte-byzl6c){grid-column:span 1;grid-row:span 1}.layout-mosaic.svelte-byzl6c .mosaic-large:where(.svelte-byzl6c){grid-column:span 2;grid-row:span 2}.layout-mosaic.svelte-byzl6c .mosaic-tall:where(.svelte-byzl6c){grid-column:span 1;grid-row:span 2}.layout-mosaic.svelte-byzl6c .mosaic-wide:where(.svelte-byzl6c){grid-column:span 2;grid-row:span 1}@media(max-width:767px){.layout-mosaic.svelte-byzl6c .mosaic-large:where(.svelte-byzl6c){grid-column:span 2;grid-row:span 2}.layout-mosaic.svelte-byzl6c .mosaic-wide:where(.svelte-byzl6c){grid-column:span 2}}.layout-mosaic.svelte-byzl6c .photo-wrapper:where(.svelte-byzl6c){height:100%}.layout-masonry.svelte-byzl6c{-moz-column-count:2;column-count:2;-moz-column-gap:16px;column-gap:16px}@media(min-width:768px){.layout-masonry.svelte-byzl6c{-moz-column-count:3;column-count:3}}@media(min-width:1024px){.layout-masonry.svelte-byzl6c{-moz-column-count:4;column-count:4}}@media(min-width:1280px){.layout-masonry.svelte-byzl6c{-moz-column-count:5;column-count:5}}.layout-masonry.svelte-byzl6c .photo-item:where(.svelte-byzl6c){-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:16px}.layout-masonry.svelte-byzl6c .photo-wrapper:where(.svelte-byzl6c){aspect-ratio:auto}.layout-masonry.svelte-byzl6c .photo-image:where(.svelte-byzl6c){height:auto}.photo-item.svelte-byzl6c{position:relative;cursor:pointer;border-radius:var(--radius-md, 12px);overflow:hidden;background:var(--bg-secondary, #f5f5f7)}.photo-wrapper.svelte-byzl6c{overflow:hidden;border-radius:var(--radius-md, 12px)}.photo-image.svelte-byzl6c{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform var(--transition-slow, .3s ease)}.photo-overlay.svelte-byzl6c{position:absolute;inset:0;background:#0000;display:flex;align-items:center;justify-content:center;transition:background var(--transition-base, .2s ease);pointer-events:none;border-radius:var(--radius-md, 12px)}.view-icon.svelte-byzl6c{width:48px;height:48px;color:#fff;opacity:0;transition:opacity var(--transition-base, .2s ease)}.favorite-btn.svelte-byzl6c{position:absolute;bottom:8px;right:8px;z-index:10}@media(hover:hover)and (pointer:fine){.photo-item.svelte-byzl6c:hover .photo-image:where(.svelte-byzl6c){transform:scale(1.1)}.photo-item.svelte-byzl6c:hover .photo-overlay:where(.svelte-byzl6c){background:#0003}.photo-item.svelte-byzl6c:hover .view-icon:where(.svelte-byzl6c){opacity:1}}@media(hover:none)and (pointer:coarse){.photo-item.svelte-byzl6c:active{transform:scale(.98)}}.photo-item.svelte-byzl6c:focus-visible{outline:2px solid var(--color-primary, #007AFF);outline-offset:2px}
