.feed-block { max-width: var(--full); margin: 0 auto; } .feed-block > *:not(.feed-grid){ max-width: var(--alignWide); margin: 1rem var(--mr) 1rem var(--ml)!important; } .feed-block > h1:first-of-type { margin-top: 6rem!important; } .feed-block[data-loading="true"] { opacity: 0.7; } .feed-block:empty::before { content: "Looks like there's nothing here yet."; display: block; text-align: center; padding: 2rem; } .feed-filters { margin: 2rem auto; } .filter-group { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: .25rem; position: relative; padding-top: 1.5rem; } .filter-button { padding: 0.5rem 1rem; border: 1px solid #ddd; border-radius: 4px; background: none; cursor: pointer; } .filter-button.active { background: #000; color: #fff; } .advanced-filters { display: flex; gap: 1rem; flex-wrap: wrap; } .feed-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; margin-bottom: 2rem; } @media (min-width: 768px){ .feed-grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1rem; } } .feed-item { position: relative; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.1); height: fit-content; } .feed-item.artist { grid-column: span 2; } .feed-item summary { border: none; position: relative; padding: .25rem; } .feed-item summary a, .feed-item summary img { width: 100%; height: 100%; aspect-ratio: 1; } .feed-item summary:after { z-index: 11; position: absolute; bottom: .35rem; right: .7rem; width: 1.5rem; height: 1.5rem; cursor: pointer; } .feed-item:hover summary, .feed-item[open] summary { background-color: transparent; } .feed-item summary:hover:after, .feed-item[open] > summary:after { background-color: var(--light-0); transform: rotate(0); } .feed-item-image img { width: 100%; height: 250px; object-fit: cover; } .feed-item-info { padding: 1rem; background: #fff; } .order-filter { padding: 0.5rem; border: 1px solid #ddd; border-radius: 4px; background: white; } .order-filter:focus { border-color: #000; outline: none; } .scroll-sentinel { height: 10px; margin: 2rem 0; } .loading-spinner { display: flex; justify-content: center; padding: 2rem; } .loading-spinner::after { content: ''; width: 40px; height: 40px; border: 4px solid #ddd; border-top-color: #000; border-radius: 50%; animation: spin 0.6s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } .feed-item { --increase: 300ms; --delay: var(--increase); opacity: 0; transition: opacity var(--timing) var(--function) var(--delay); } /* Progressive loading animation */ .feed-item[data-loaded] { opacity: 1; } .feed-item[data-loaded] + .feed-item[data-loaded]{ --delay: var(--delay) + var(--increase); transition: opacity var(--timing) var(--function) var(--delay); } @keyframes fadeIn { to { opacity: 1; transform: translateY(0); } } .feed-loader { display: flex; flex-direction: column; align-items: center; margin-top: 2rem; gap: 1rem; } .load-more { opacity: 1; display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1.5rem; background: #1b1b1b; color: #f9f9f9; border: none; border-radius: 4px; font-family: var(--heading); font-size: 1.2rem; cursor: pointer; transition: all var(--timing) var(--timing); } .load-more[hidden]{ opacity: 0; transition: all var(--timing) var(--function); } .load-more:hover { background: #FF0080; transform: translateY(-2px); } .load-more:focus-visible { outline: 2px solid #FF0080; outline-offset: 2px; } .loading-spinner { display: flex; align-items: center; gap: 0.5rem; color: #666; } .loading-spinner svg { animation: spin 1s linear infinite; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* Hide load more when no more content */ .feed-loader[data-empty] { display: none; } .feed-loader { display: flex; flex-direction: column; align-items: center; margin-top: 2rem; gap: 1rem; } .load-more { display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1.5rem; background: #1b1b1b; color: #f9f9f9; border: none; border-radius: 4px; font-family: var(--heading); font-size: 1.2rem; cursor: pointer; transition: all var(--timing) var(--timing); } .load-more:hover { background: #FF0080; transform: translateY(-2px); } .load-more:focus-visible { outline: 2px solid #FF0080; outline-offset: 2px; } .loading-spinner { display: flex; align-items: center; gap: 0.5rem; color: #666; } .loading-spinner[hidden] { display: none; } .loading-spinner svg { animation: spin 1s linear infinite; } .loading-spinner[hidden] svg { animation: none; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* Hide load more when no more content */ .feed-loader[data-empty] { display: none; } .type-filter[hidden]{ display: none; } .type-filter input[type=checkbox] { position: absolute; opacity: 0; width: 0; height: 0; } .feed-filters .filter-toggle, .feed-filters label { display: flex; justify-content: center; align-items: center; padding: .35rem; white-space: nowrap; width: fit-content; height: fit-content; cursor: pointer; border: 1px solid #ddd; border-radius: 4px; font-size: .875rem; transition: border-color var(--timing) var(--function); margin-bottom: .5rem; } .feed-filters .type-filter label { flex-direction: column; } .feed-filters svg { width: 25px; height: 25px; } .feed-filters .order-options label svg { width: 20px; height: 20px; } .feed-filters label:hover, .feed-filters input:checked + label { background-color: var(--light-0); border-color: var(--pink); color: var(--pink); } .feed-filters label .label { position: absolute; visibility: hidden; top: 0; right: 4rem; opacity: 0; transition: transform var(--timing) var(--function); transition-property: max-width, transform; } .feed-filters input:checked + label .label { visibility: visible; opacity: 1; } .feed-block > details.more-info[open] { margin-bottom: 3rem!important; position: relative; background-color: var(--light-0); padding-bottom: 1rem!important; } details.more-info[open]:after { content: ''; display: block; margin: -25px auto 0; width: 80%; height: 25px; border-radius: 125px / 12px; box-shadow: 0 0 8px #000; z-index: -1; position: absolute; bottom: 0; left: 10%; } .feed-filters details summary { display: flex; border: 0; flex-wrap: nowrap; padding: 2rem 0 0; gap: .125rem; } .feed-filters details summary:after { position: absolute; top: 0; right: -1rem; width: 4rem; mask-position: right; height: 1.5rem; } .feed-filters details summary:hover:after { background-color: var(--pink); } .feed-filters details[open] > summary:after { mask-image: var(--minus); background-color: var(--pink); transform: none; transition: none; } .type-filter.favourites-toggle { margin-left: .35rem; } .type-filter.favourites-toggle label { position: relative; } .type-filter.favourites-toggle label .label { top: 100%; right: 0; } .feed-filters details summary:hover, .feed-filters details[open] summary { background-color: transparent; color: var(--black); transition: none; } .feed-filters .order-options label .label { transform: scaleX(0); max-width: 0; transform-origin: right; } .feed-filters .content-types label .label { max-height: 0; transform: scaleY(0); transform-origin: top; } .feed-filters input:checked + label .label { opacity: 1; transition: transform var(--timing) var(--function); transition-property: max-width, transform; } .feed-filters .order-options input:checked + label .label { max-width: 200px; margin-left: .5rem; transform: scaleX(1); } .feed-filters .content-types input:checked + label .label { margin-top: .5rem; transform: scaleY(1); max-height: 40px; } /* Visual feedback for checked state */ .type-filter input[type=checkbox]:checked + label { background: rgba(0, 0, 0, 0.1); border-radius: 4px; } /* Focus state for accessibility */ .type-filter input[type=checkbox]:focus-visible + label { outline: 2px solid #FF0080; outline-offset: 2px; border-radius: 4px; } /* Filter buttons */ .filter-button { position: relative; padding: 0.5rem; border: none; background: none; cursor: pointer; transition: all var(--timing) var(--function); } .filter-button .label { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); font-size: 0.8rem; white-space: nowrap; opacity: 0; transition: opacity var(--timing) var(--function); } .filter-button.active .label { opacity: 1; } /* Taxonomy filters */ .filter-toggle { position: relative; padding: 0.5rem; border: none; background: none; cursor: pointer; } .filter-toggle .label { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); font-size: 0.8rem; white-space: nowrap; opacity: 0; transition: opacity var(--timing) var(--function); } .filter-toggle[aria-expanded="true"] .label { opacity: 1; } /*.filter-dropdown {*/ /* position: absolute;*/ /* top: 100%;*/ /* left: 0;*/ /* min-width: 200px;*/ /* background: #fff;*/ /* border-radius: 4px;*/ /* box-shadow: 0 2px 8px rgba(0,0,0,0.1);*/ /* z-index: 100;*/ /* padding: 0.5rem;*/ /*}*/ .selected-filters { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-top: 0.25rem; } .selected-filter { display: flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.5rem; background: #f0f0f0; border-radius: 4px; font-size: 0.8rem; } .selected-filter button { border: none; background: none; padding: 0; cursor: pointer; color: #666; } .feed-item { position: relative; border-radius: 0.5rem; overflow: hidden; background: #fff; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } button.favourite { position: absolute; top: 0.5rem; right: 0.5rem; z-index: 2; background: rgba(255,255,255,0.9); border: none; border-radius: 50%; padding: 0.5rem; cursor: pointer; transition: transform var(--timing) var(--function); } button.favourite:hover { transform: scale(1.1); } button.favourite.favourited svg { fill: #FF0080; stroke: #FF0080; } .feed-image { display: block; aspect-ratio: 1; overflow: hidden; } .feed-image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--timing) var(--function); } .feed-image:hover img { transform: scale(1.05); } .item-info { padding: .25rem 1rem; } .item-info h3 { margin: 0!important; font-size: 1.1rem; text-align: center; } .taxonomy-lists { margin: 0.5rem 0; } .taxonomy-group { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; margin-bottom: 0.25rem; } .taxonomy-group ul { list-style: none; margin: 0; padding: 0; } .taxonomy-group a { color: inherit; text-decoration: none; font-size: 0.9rem; } .taxonomy-group a:hover { color: #FF0080; } .item-labels { margin-top: 0.5rem; display: flex; flex-wrap: wrap; gap: 0.5rem; } .label { display: flex; align-items: center; gap: 0.25rem; font-size: 0.9rem; } .label a { color: inherit; text-decoration: none; } .label a:hover { color: #FF0080; } button.favourite { position: absolute; top: .5rem; right: .5rem; z-index: 10; background: rgba(255,255,255,0.75); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.1); border: none; cursor: pointer; width: 2rem; height: 2rem; display: flex; justify-content: center; align-items: center; backdrop-filter: blur(5px); transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } button.favourite:hover { transform: scale(1.1); color: var(--pink); background: white; box-shadow: 0 4px 8px rgba(0,0,0,0.15); } button.favourite.favourited { color: #ff4b6c; animation: favourite-pop 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); } @keyframes favourite-pop { 0% { transform: scale(1); } 50% { transform: scale(1.3); } 75% { transform: scale(0.9); } 100% { transform: scale(1); } } .artist-tattoos { display: grid; grid-template-columns: repeat(3, 1fr); } .artist-tattoos a { overflow: hidden; } .artist-tattoos .feed-image { grid-row: span 2; grid-column: span 2; } .tattoo-preview { position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: 4px; } .tattoo-preview img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--timing) var(--function); } .tattoo-preview:hover img { transform: scale(1.1); } .notification-popup-container { position: fixed; display: flex; flex-direction: column-reverse; gap: 0.5rem; z-index: 1000; pointer-events: none; padding: 1rem; } .notification-popup-container.bottom-right { right: 0; bottom: 5rem; } .notification-popup-container.top-right { right: 0; top: 1rem; } .notification-popup { background: #f9f9f9; border-radius: 8px; padding: 1rem; display: flex; align-items: flex-start; gap: 1rem; box-shadow: 0 2px 8px rgba(0,0,0,0.1); transform: translateX(100%); opacity: 0; transition: all var(--timing) var(--function); pointer-events: all; max-width: 400px; width: 100%; border-left: 4px solid; } .notification-popup.show { transform: translateX(0); opacity: 1; } /* Priority styles */ .notification-popup.priority-high { border-color: #dc3545; } .notification-popup.priority-medium { border-color: #FF0080; } .notification-popup.priority-low { border-color: #28a745; } .notification-icon { flex-shrink: 0; width: 24px; height: 24px; color: #1b1b1b; } .notification-content { flex-grow: 1; } .notification-message { margin: 0 0 0.5rem; font-size: 0.875rem; line-height: 1.4; } .notification-actions { display: flex; gap: 0.5rem; margin-top: 0.5rem; } .notification-action { padding: 0.25rem 0.5rem; border-radius: 4px; border: none; background: #1b1b1b; color: white; font-size: 0.75rem; display: flex; align-items: center; gap: 0.25rem; cursor: pointer; transition: all var(--timing) var(--function); } .notification-action:hover { opacity: 0.9; } .notification-action.accept { background: #28a745; } .notification-action.decline { background: #dc3545; } .close-notification { background: none; border: none; padding: 0.25rem; color: #666; cursor: pointer; flex-shrink: 0; } .floating-notification-button { position: fixed; right: 2rem; bottom: 2rem; width: 3rem; height: 3rem; border-radius: 50%; background: #1b1b1b; border: none; color: white; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,0.2); transition: all var(--timing) var(--function); z-index: 1000; } .floating-notification-button:hover { transform: scale(1.1); } .floating-notification-button.has-notifications { background: #FF0080; } .notification-count { position: absolute; top: -8px; right: -8px; background: #1b1b1b; color: white; border-radius: 50%; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: bold; opacity: 0; transform: scale(0); transition: all var(--timing) var(--function); } .notification-count.show { opacity: 1; transform: scale(1); } @media (min-width: 768px){ .feed-filters details summary { gap: .5rem; justify-content: flex-start; } .type-filter.favourites-toggle { margin-left: auto; } } @media (max-width: 768px) { .notification-popup-container { padding: 0.5rem; } .notification-popup { max-width: calc(100vw - 1rem); } .floating-notification-button { right: 1rem; bottom: 1rem; } } .feed-item.highlighted { position: relative; animation: highlight 2s ease-out; } @keyframes highlight { 0%, 100% { box-shadow: none; } 50% { box-shadow: 0 0 0 4px #FF0080; } } .feed-filters { margin-bottom: 2rem; } .type-filter.label { font-weight: bold; color: #666; padding-right:.25rem; position: absolute; top: 0; } .filter-toggle:hover, .filter-toggle[aria-expanded="true"] { border-color: #FF0080; color: #FF0080; } .selected-filters-section { display: flex; align-items: flex-start; gap: 1rem; width: 100%; } .selected-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; flex: 1; } .clear-filters { display: flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.75rem; border: none; background: none; color: #666; cursor: pointer; font-size: 0.875rem; border-radius: 2rem; } .clear-filters:hover { color: #FF0080; background: #f5f5f5; } .clear-filters[hidden] { display: none; } .selected-filter { display: flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.75rem; background: #f5f5f5; border-radius: 2rem; font-size: 0.875rem; } .selected-filter svg { width: 20px; height: 20px; color: #666; } .selected-filter .filter-name { margin-right: 0.25rem; } .selected-filter .remove-filter { padding: 0; border: none; background: none; color: #666; cursor: pointer; display: flex; align-items: center; } .selected-filter .remove-filter:hover { color: #FF0080; } .filter-dropdowns { position: relative; } .filter-dropdown::backdrop { backdrop-filter: blur(5px); background-color: rgba(19, 20, 22,.4); } .filter-dropdown[open] { width: min(500px, 90vw); border-radius: 1rem; height: 90vh; overflow: hidden; padding: 1.5rem; display: flex; flex-direction: column; } input[type=search]{ font-family: var(--body); font-size: var(--medium); padding: 1rem 1.5rem; border-radius: var(--radius); background-color: var(--light-0); outline: none; border: 1px solid transparent; border-bottom: 2px solid var(--offwhite); width: calc(100% - 3.25rem); transition: background-color var(--timing) var(--function); transition-property: background-color, border; } .filter-dropdown .options-container { overflow: hidden; overflow-y: auto; max-height: 100%; } .filter-dropdown .options-container::-webkit-scrollbar { width: 12px; } .filter-dropdown .options-container::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); border-radius: 10px; } .filter-dropdown .options-container::-webkit-scrollbar-thumb { border-radius: 10px; -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5); } .filter-dropdown #close { position: fixed; bottom: 1rem; right: 1rem; width: 4rem; height: 4rem; border-radius: 4px; background-color: var(--light-0); } /*.filter-dropdown {*/ /* position: absolute;*/ /* top: 100%;*/ /* left: 0;*/ /* right: 0;*/ /* background: white;*/ /* border: 1px solid #ddd;*/ /* border-radius: 4px;*/ /* box-shadow: 0 2px 8px rgba(0,0,0,0.1);*/ /* padding: 1rem;*/ /* z-index: 100;*/ /* max-height: 400px;*/ /* overflow-y: auto;*/ /*}*/ .search-container { display: flex; margin-bottom: 2rem; } .search-container .icon { width: 5rem; height: 5rem; } .options-container { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: space-evenly; padding: 1rem; align-items: flex-start; } #filter-dropdown-e_theme .options-container, #filter-dropdown-e_arttheme .options-container { display: flex; flex-direction: column; justify-content: flex-start; gap: 4px; position: relative; } nav .options-container li { display: block; min-height: 0; } .term-content { display: flex; justify-content: space-between; } .options-container ul { display: block; padding: 0; margin: 0; list-style: none; } .options-container li > .children ul { max-height: 0; border-left: 1px solid var(--blackish); border-radius: 1rem; transform: scaleY(0); overflow: hidden; transition: transform var(--timing) var(--function); transition-property: transform, max-height; transform-origin: top; } .options-container li.open > .children > ul { max-height: 100%; padding: .5rem 0 .5rem 1rem; transform: scaleY(1); transition: transform var(--timing) var(--function); transition-property: transform, max-height; } .filter-option { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem; cursor: pointer; position: relative; z-index: 1; width: 100%; } .filter-option:hover { background: #f5f5f5; } .feed-filters { position: relative; } .feed-filters .feed-controls { display: flex; justify-content: space-between; align-items: center; gap: 2rem; width: 100%; } .feed-filters .order-options { padding-top: 1.5rem; position: relative; } .feed-filters .order-options, .feed-filters .order-by { display: flex; align-items: center; gap: 0.75rem; justify-content: space-between; } .feed-filters .radio-group-label { display: flex; gap: 0.5rem; } .feed-filters .radio-group-label input[type=radio], .feed-filters .order-direction input[type=radio] { position: absolute; opacity: 0; width: 0; height: 0; } .feed-filters *[hidden], .feed-filters input[type=radio][hidden] + label { display: none!important; } .feed-filters .order-direction { display: flex; gap: 0.25rem; } @media (max-width: 768px) { .feed-filters .feed-controls { flex-direction: column; gap: 1rem; } .feed-filters .order-options { width: 100%; } .feed-filters .order-by { flex: 1; } .feed-filters .radio-group-label { flex: 1; justify-content: flex-start; } .feed-filters .radio-group-label .label { display: none; } .feed-filters .radio-group-label label { padding: 0.35rem; } } .filter-controls { display: flex; justify-content: space-between; align-items: flex-start; } .filter-option .shop-name { color: #666; font-size: 0.875rem; margin-left: 0.5rem; opacity: 0.8; } .filter-option .shop-name::before { content: "at"; margin-right: 0.25rem; opacity: 0.6; } /* Improve filter option layout */ .filter-option { display: flex; align-items: center; padding: 0.5rem; transition: background-color 0.2s; } .filter-option:hover { background-color: rgba(0, 0, 0, 0.05); } .filter-option input[type=checkbox] { margin-right: 0.5rem; } .filter-option label { display: flex; align-items: center; flex-wrap: wrap; cursor: pointer; flex: 1; } /* Search results highlighting */ .filter-option.highlight { background-color: rgba(183, 51, 46, 0.1); } /* Empty state */ .options-container:empty::after { content: "No results found"; display: block; padding: 1rem; text-align: center; color: #666; font-style: italic; } /** Loading **/ .feed-overlay { display: none; opacity: 0; visibility: hidden; } .loading .feed-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; margin: 0!important; max-width: none!important; width: 100%; height: 100%; background: rgba(19, 20, 22, 0.75); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); display: flex; justify-content: center; align-items: center; z-index: 1000; opacity: 1; visibility: visible; transition: opacity 0.3s ease, visibility 0.3s ease; } .feed-overlay-content { background: white; padding: 2rem; border-radius: 1rem; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); text-align: center; width: min(400px, 60vw); } /* Loader Container */ .loading .loader-container { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 200px; padding: 2rem; background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(5px); border-radius: 1rem; margin: 2rem 0; } /* Icon Container */ .loading .loading-icon-container { position: relative; margin-bottom: 1.5rem; animation: dance 1s ease-in-out infinite; transition: opacity 0.2s ease; will-change: transform, opacity; } .loading .loading-message .icon svg { width: 24px; height: 24px; margin-right: 1rem; animation: spin 2s ease-in-out infinite; transition: color 0.3s ease; } /* Message Styling */ .loading .loading-message { will-change: opacity; font-size: 1rem; color: #666; text-align: center; min-height: 24px; transition: opacity 0.2s ease; margin-bottom: 1rem; } /* Dancing Animation */ @keyframes dance { 0%, 100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } } /* Spin Animation */ @keyframes spin { 0% { transform: rotate(0deg); } 25% { transform: rotate(-15deg); } 75% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } } /* Fade Animations */ .loading .fade-out { animation: fadeOut 0.3s ease-in-out forwards; } @keyframes fadeOut { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(10px); } } /* Entry Animation */ .loading .loader-container { animation: fadeIn 0.3s ease-in-out; } @keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } /* Shimmer effect on message */ .loading .feed-overlay::after { content: ''; position: absolute; z-index: -1; top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient( 90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.05) 50%, rgba(255,255,255,0) 100% ); animation: shimmer 3s ease-in-out infinite; } @keyframes shimmer { 0% { transform: translateX(-100%); } 50%, 100% { transform: translateX(100%); } } .loading .loading-message { display: flex; justify-content: center; align-items: center; overflow: hidden; } .loading .loading-message p { opacity: 1; transform: scaleY(1); transform-origin: bottom; transition:opacity var(--timing) var(--function); transition-property: transform, opacity; } .loading .changing .loading-message p { opacity: 0; transform: scaleY(0); transform-origin: top; transition:opacity var(--timing) var(--function); transition-property: transform, opacity; } .loading .dots-wrapper { display: flex; justify-content: center; align-items: center; } /*.loading .loading-dots,*/ /*.loading .loading-dots:before,*/ /*.loading .loading-dots:after {*/ /* position: relative;*/ /* width: 8px;*/ /* height: 8px;*/ /* border-radius: 4px;*/ /* background-color: var(--pink);*/ /* color: var(--pink);*/ /* animation: bounce .666s infinite;*/ /* margin: 0 4px;*/ /*}*/ /*.loading .loading-dots:before {*/ /* animation-delay: -.3s;*/ /* left: -16px;*/ /*}*/ /*.loading .loading-dots:after {*/ /* right: -8px;*/ /* animation-delay: 0s;*/ /*}*/ /*.loading .loading-dots {*/ /* animation-delay: -.15s;*/ /*}*/ /*.loading .loading-dots::before, .loading-dots::after {*/ /* content: "";*/ /* display: block;*/ /* position: absolute;*/ /* top: 0;*/ /*}*/ /*@keyframes bounce {*/ /* 0%, 100% {*/ /* transform: translateY(-25%);*/ /* animation-timing-function: cubic-bezier(0.8,0,1,1);*/ /* }*/ /* 50% {*/ /* transform: none;*/ /* animation-timing-function: cubic-bezier(0,0,0.2,1);*/ /* }*/ /*}*/ /*.loading .loading-dots {*/ /* width: 15px;*/ /* aspect-ratio: 1;*/ /* border-radius: 50%;*/ /* clip-path: inset(-45px);*/ /* box-shadow: -60px 15px,-60px 15px,-60px 15px;*/ /* transform: translateY(-15px);*/ /* animation: l19 1s infinite linear;*/ /*}*/ /*@keyframes l19{*/ /* 16.67% {box-shadow:-60px 15px,-60px 15px,19px 15px}*/ /* 33.33% {box-shadow:-60px 15px, 0px 15px,19px 15px}*/ /* 40%,60%{box-shadow:-19px 15px, 0px 15px,19px 15px}*/ /* 66.67% {box-shadow:-19px 15px, 0px 15px,60px 15px}*/ /* 83.33% {box-shadow:-19px 15px, 60px 15px,60px 15px}*/ /* 100% {box-shadow: 60px 15px, 60px 15px,60px 15px}*/ /*}*/ .loading .loading-dots { color: var(--pink); width: 4px; aspect-ratio: 1; border-radius: 50%; box-shadow: 19px 0 0 7px, 38px 0 0 3px, 57px 0 0 0; transform: translateX(-38px) scale(.666); animation: bubble .5s infinite alternate linear; } @keyframes bubble { 50% {box-shadow: 19px 0 0 3px, 38px 0 0 7px, 57px 0 0 3px} 100% {box-shadow: 19px 0 0 0 , 38px 0 0 3px, 57px 0 0 7px} } .loading .feed-overlay h2 { width: fit-content; margin: 1rem auto !important; color: #0000; -webkit-text-stroke: 1px #000; --g:conic-gradient(var(--pink) 0 0) no-repeat text; background:var(--g) 0,var(--g) 1ch,var(--g) 2ch,var(--g) 3ch,var(--g) 4ch,var(--g) 5ch,var(--g) 6ch; animation: l17-0 1s linear infinite alternate, l17-1 2s linear infinite; } @keyframes l17-0 { 0% {background-size: 1ch 0 } 100% {background-size: 1ch 100%} } @keyframes l17-1 { 0%,50% {background-position-y: 100%, 0} 50.01%,to {background-position-y: 0, 100%} } .feed-grid details summary .handle { position: absolute; bottom: 0; left: 0; right: 0; background-color: rgba(250, 250, 250,.3); backdrop-filter: blur(5px); border-radius: var(--radius); z-index: 1; padding: .25rem .25rem .25rem 1.1rem; } .feed-grid details summary .handle { background-color: rgba(250, 250, 250,.2); backdrop-filter: blur(5px); border: none; } .feed-grid details:hover summary .handle, .feed-grid details[open] summary .handle { background-color: rgba(183, 51, 46,.4); backdrop-filter: blur(5px); } .feed-grid .empty-state { width: 100%; grid-column-end: 100; text-align: center; padding: 4rem 1rem; color: var(--blackish); } .feed-grid .empty-state h3 { font-family: var(--heading); font-size: var(--xlarge); margin-bottom: 2rem; text-transform: uppercase; } .feed-grid .empty-state p { font-family: var(--body); font-size: var(--medium); line-height: 1.6; margin: 0.5rem 0; } .feed-grid .empty-state p:last-child { margin-top: 2rem; color: #FF0080; } @media (max-width: 768px) { .feed-grid .empty-state { padding: 2rem 1rem; } .feed-grid .empty-state h3 { font-size: var(--large); } } .feed-empty-state { grid-column-start: 1; grid-column-end: 2; text-align: center; padding: 2rem; background: #f9f9f9; border-radius: 1rem; margin: 0 auto; max-width: 600px; } .feed-empty-state h3 { text-align: center; font-family: var(--heading); font-size: clamp(1.5rem, 3vw, 2.5rem); margin: 0 0 2rem 0!important; color: #FF0080; } .feed-empty-state p { font-family: var(--body); margin: 1rem 0; font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.4; } .feed-empty-state p:last-child { color: #FF0080; margin-top: 2rem; } @media (max-width: 768px) { .feed-empty-state { grid-column-end: none; padding: 2rem 1rem; margin: 1rem; } }