/* Upload Page Styles */ .upload-container { max-width: 800px; width: 100%; padding: 0; animation: uploadReveal 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards; opacity: 0; margin: 0 auto; } @keyframes uploadReveal { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .upload-container h2 { margin-bottom: 0.5rem; color: var(--accent); text-align: center; } .upload-title { font-size: x-large; } /* Upload Limit Info */ .upload-limit-info { text-align: center; font-size: 0.9rem; opacity: 0.7; } .upload-limit-info i { margin-right: 0.3rem; } .limit-unlimited { color: var(--accent); } .limit-exhausted { color: #ff6b6b; font-weight: 600; opacity: 1; } .limit-remaining { color: rgba(255, 255, 255, 0.7); } /* Upload Form */ .upload-form { display: flex; flex-direction: column; background: rgba(255, 255, 255, 0.02); padding: 1rem; border-radius: 0; border: 1px solid rgba(255, 255, 255, 0.05); gap: 5px; } .form-section label { display: block; margin-bottom: 0.5rem; font-weight: 500; } .required { color: #ff6b6b; } /* Drop Zone */ .drop-zone { border: 2px dashed rgba(255, 255, 255, 0.2); border-radius: 0; padding: 5px; text-align: center; transition: all 0.2s; position: relative; min-height: 100px; display: flex; flex-direction: column; justify-content: center; align-items: center; } .drop-zone:hover, .drop-zone.dragover { border-color: var(--accent); background: rgba(255, 255, 255, 0.02); } .drop-zone input[type="file"] { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; } .drop-zone-prompt { color: rgba(255, 255, 255, 0.5); pointer-events: none; /* Let input handle clicks */ } /* File Preview (Stacked) */ .file-preview { display: flex; flex-direction: column; /* Stacked */ align-items: center; gap: 1rem; width: 100%; } .preview-media { max-width: 100%; max-height: 500px; } .file-preview video { max-width: 100%; max-height: 500px; border-radius: 0; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); outline: none; margin-bottom: 1rem; } .file-meta-row { display: flex; align-items: center; gap: 1rem; width: 100%; justify-content: center; } .file-info { display: flex; gap: 1rem; align-items: center; background: rgba(0, 0, 0, 0.3); padding: 0.5rem 1rem; border-radius: 0; } .file-name { font-weight: 500; } .file-size { opacity: 0.6; font-size: 0.9rem; } .btn-remove { background: #ff6b6b; color: white; border: none; padding: 0.5rem 1.5rem; border-radius: 0; cursor: pointer; font-weight: 600; transition: background 0.2s; /* remove margin-top as it's now in a flex row */ } .btn-remove:hover { background: #fa5252; } /* Default/Non-Shitpost Mode: Centered Card */ .upload-form:not(.shitpost-mode-active) .file-preview-item { flex-direction: column; align-items: center; text-align: center; gap: 16px; padding: 24px; } /* Shitpost Mode: Two-Column Row */ .upload-form.shitpost-mode-active .file-preview-item { flex-direction: row; align-items: flex-start; gap: 16px; padding: 12px; } .file-preview-item { display: flex; width: 100%; background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(5px); border: 1px solid rgba(255, 255, 255, 0.08); position: relative; border-radius: 8px; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); animation: previewItemIn 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards; } .file-preview-item:hover { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.15); } @keyframes previewItemIn { from { opacity: 0; transform: translateX(-15px); } to { opacity: 1; transform: translateX(0); } } .upload-form:not(.shitpost-mode-active) .preview-media-small { width: 100%; max-width: 400px; min-height: auto; height: auto; aspect-ratio: 16 / 9; object-fit: contain; } .upload-form.shitpost-mode-active .preview-media-small { width: 120px; height: 80px; object-fit: contain; min-height: auto; } .preview-media-small { flex-shrink: 0; border-radius: 6px; background: #000; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); transition: transform 0.2s; } .upload-form:not(.shitpost-mode-active) .file-meta-row-small { padding-right: 0; align-items: center; } .upload-form.shitpost-mode-active .file-name-small { padding-right: 30px; /* Space for X button */ } .file-meta-row-small { flex: 1; display: flex; flex-direction: column; overflow: hidden; min-width: 0; } .file-info-small { display: flex; flex-direction: column; gap: 3px; min-width: 0; width: 100%; text-align: left; } .file-name-small { font-size: 0.95rem; font-weight: 500; overflow: hidden; color: #fff; max-width: 100%; display: block; word-break: break-all; } .file-size-small { font-size: 0.7rem; opacity: 0.4; font-family: 'Outfit', sans-serif; letter-spacing: 0.5px; } .btn-remove-small { position: absolute; top: 8px; right: 8px; background: rgba(0, 0, 0, 0.5); color: rgba(255, 255, 255, 0.8); border: 1px solid rgba(255, 255, 255, 0.2); backdrop-filter: blur(4px); z-index: 10; padding: 4px 8px; border-radius: 4px; cursor: pointer; transition: all 0.2s; } width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 0.75rem; border-radius: 6px; transition: all 0.2s; } .btn-remove-small:hover { background: #ff6b6b; color: white; border-color: #ff6b6b; transform: rotate(90deg); } .btn-add-urls { margin-top: 10px; width: 100%; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); color: #fff; padding: 10px; border-radius: 4px; cursor: pointer; font-weight: bold; display: flex; align-items: center; justify-content: center; gap: 8px; transition: all 0.2s; } .btn-add-urls:hover { background: var(--accent); color: var(--bg); } .add-more-item { justify-content: center; align-items: center; gap: 10px; padding: 15px; border: 1.5px dashed rgba(255, 255, 255, 0.15); background: rgba(255, 255, 255, 0.02); cursor: pointer; color: rgba(255, 255, 255, 0.3); font-weight: 600; font-size: 0.9rem; transition: all 0.2s; backdrop-filter: none; border-radius: 8px; } .add-more-item i { font-size: 1.1rem; opacity: 0.8; } .add-more-item:hover { border-color: var(--accent); color: var(--accent); background: rgba(var(--accent-rgb), 0.05); border-style: solid; transform: none; } .upload-form.shitpost-mode-active .global-rating-section, .upload-form.shitpost-mode-active .global-comment-section, .upload-form.shitpost-mode-active .global-tag-section { display: none !important; } /* Per-item Rating Switch */ .item-rating-container { display: flex; gap: 5px; margin-top: 5px; } .item-rating-option { position: relative; cursor: pointer; } .item-rating-option input { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } .item-rating-label { display: inline-block; padding: 2px 6px; font-size: 0.65rem; font-weight: 700; border-radius: 3px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.4); transition: all 0.2s; text-transform: uppercase; } .item-rating-option input:checked + .item-rating-label.sfw { background: var(--badge-sfw); color: #fff; border-color: var(--badge-sfw); } .item-rating-option input:checked + .item-rating-label.nsfw { background: var(--badge-nsfw); color: #fff; border-color: var(--badge-nsfw); } .item-rating-option input:checked + .item-rating-label.nsfl { background: var(--badge-nsfl); color: #fff; border-color: var(--badge-nsfl); } .item-rating-label:hover { background: rgba(255, 255, 255, 0.1); } /* Bigger Previews in Shitpost Mode */ .file-preview-item { display: flex; flex-direction: row; align-items: flex-start; padding: 15px; gap: 0; width: 100%; border-bottom: 1px solid rgba(255,255,255,0.05); } .preview-media-small { flex: 0 0 50%; width: 50% !important; height: auto !important; min-height: 120px; max-height: 350px; object-fit: contain; border-radius: 8px; background: rgba(0,0,0,0.3); } /* Per-item Tags */ .item-tags-container { margin-top: 10px; width: 100%; } .item-tags-list { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 5px; } .item-tag-chip { background: rgba(255, 255, 255, 0.1); padding: 2px 8px; border-radius: 4px; font-size: 0.75rem; display: flex; align-items: center; gap: 5px; } .item-tag-remove { cursor: pointer; opacity: 0.5; } .item-tag-remove:hover { opacity: 1; } .item-tag-input { width: 100%; background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); border-radius: 4px; padding: 6px 10px; color: #fff; font-size: 0.85rem; outline: none; transition: border-color 0.2s; } .item-tag-input:focus { border-color: var(--accent); } .item-meta-suggestions { margin-top: 5px; display: flex; flex-wrap: wrap; gap: 5px; } .item-meta-suggestion { background: rgba(255, 255, 255, 0.05); padding: 1px 6px; border-radius: 3px; font-size: 0.65rem; cursor: pointer; border: 1px dashed rgba(255, 255, 255, 0.1); word-break: break-all; } .item-meta-suggestion:hover { background: rgba(255, 255, 255, 0.1); border-color: var(--accent); } .item-meta-suggestion.selected { background: rgba(255, 255, 255, 0.08); border-color: var(--accent); border-style: solid; color: rgba(255, 255, 255, 0.9); } .item-meta-suggestion.selected i { color: var(--accent); } .item-comment-input { width: 100%; background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); border-radius: 4px; padding: 6px 10px; color: #fff; font-size: 0.85rem; outline: none; transition: border-color 0.2s; margin-top: 10px; resize: vertical; min-height: 40px; font-family: inherit; } .item-comment-input:focus { border-color: var(--accent); } .item-title-container { margin-top: 6px; width: 100%; } .item-title-input { width: 100%; background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); border-radius: 4px; padding: 5px 10px; color: #fff; font-size: 0.8rem; font-family: inherit; outline: none; transition: border-color 0.2s; box-sizing: border-box; } .item-title-input::placeholder { color: rgba(255,255,255,0.3); font-style: italic; } .item-title-input:focus { border-color: var(--accent); } .rating-options { display: flex; gap: 1rem; justify-content: center; } .rating-option input { display: none; } .rating-label { display: block; padding: 0.1rem 2rem; border-radius: 0; border: 2px solid transparent; transition: all 0.2s; font-weight: 600; text-align: center; cursor: pointer; } .rating-label.sfw { background: rgba(6, 115, 24, 0.36); border-color: rgba(19, 134, 38, 0.96); color: #fff; opacity: 0.5; } .rating-label.sfw:hover { background: #04200c9e; } .rating-label.nsfw { background: #cb009866; border-color: rgb(255, 0, 227); color: #f9f9f9; opacity: 0.5; } .rating-label.nsfw:hover { background: rgba(69, 0, 45, 0.74); } .rating-label.nsfl { background: #2b01016e; color: #f2f2f2; border-color: #990000; opacity: 0.5; } .rating-label.nsfl:hover { background: #130101; } .rating-option input:checked + .rating-label.sfw { background: rgba(6, 130, 8, 0.73); border-color: #51cf66; color: var(--white); opacity: 1; } .rating-option input:checked + .rating-label.nsfw { background: #880059; box-shadow: 0 0 0 2px var(--bg-form), 0 0 0 4px #cd0030; color: var(--white); opacity: 1; } .rating-option input:checked + .rating-label.nsfl { background: #500404; box-shadow: 0 0 0 2px var(--bg-form), 0 0 0 4px #660000; color: var(--white); opacity: 1; } /* Tags */ .tag-input-container { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 0; padding: 0.5rem; display: flex; flex-wrap: wrap; position: relative; gap: 0.5rem; z-index: 10000 !important; margin-bottom: 5px; } .tags-list { display: flex; flex-wrap: wrap; gap: 0.5rem; } .tag-chip { display: inline-flex; align-items: center; gap: 0.3rem; background: var(--accent); color: #000; padding: 0.3rem 0.6rem; border-radius: 0; font-size: 0.9rem; font-weight: 500; } .tag-chip button { background: none; border: none; color: inherit; cursor: pointer; padding: 0; font-size: 1.1rem; line-height: 1; } .tag-input { flex: 1; min-width: 120px; background: transparent; border: none; color: inherit; padding: 0.5rem; outline: none; } /* Global title input (normal mode) — matches tag-input-container style */ .upload-title-input { width: 100%; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 0; padding: 0.5rem; color: inherit; font-family: inherit; font-size: 0.9rem; outline: none; transition: border-color 0.2s; box-sizing: border-box; } .upload-title-input:focus { border-color: var(--accent, #7c5cbf); } .upload-title-input::placeholder { color: rgba(255, 255, 255, 0.3); } .tag-count { font-weight: normal; font-size: 0.85rem; opacity: 0.7; } .tag-count.valid { color: #51cf66; font-weight: bold; opacity: 1; } /* Upload Comment */ .upload-comment-input { position: relative; margin: 0px 0px 5px 0px; } .upload-comment { width: 100%; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 0; color: inherit; padding: 0.6rem 0.8rem; font-family: inherit; font-size: 0.9rem; resize: vertical; min-height: 60px; max-height: 200px; outline: none; transition: border-color 0.2s; box-sizing: border-box; } .upload-comment:focus { border-color: var(--accent, #7c5cbf); } .upload-comment::placeholder { color: rgba(255, 255, 255, 0.3); } .upload-comment-input .input-actions { display: flex; align-items: center; gap: 5px; margin-top: 4px; } .upload-comment-input .emoji-picker { position: absolute; top: 100%; left: 0; z-index: 100; } .upload-form .tag-suggestions { position: absolute !important; min-width: 220px !important; max-width: 320px !important; max-height: 260px !important; overflow-y: auto !important; background: var(--dropdown-bg, #1a1a1a) !important; border: 1px solid var(--black, #000) !important; border-radius: 6px !important; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.6) !important; margin-top: 8px !important; /* Spacing from input */ display: none; /* Controlled by JS .style.display */ z-index: 200000 !important; animation: tagDropIn 0.15s ease-out !important; scrollbar-width: thin !important; } .upload-form.shitpost-mode-active .tag-suggestions { position: relative !important; } @keyframes tagDropIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .tag-suggestion-item { display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 10px 12px !important; min-height: 44px !important; cursor: pointer !important; transition: background 0.12s !important; box-sizing: border-box !important; user-select: text !important; } #upload-form .tag-suggestion-item:not(:last-child) { border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important; } #upload-form .tag-suggestion-item:hover, #upload-form .tag-suggestion-item.active { background: rgba(255, 255, 255, 0.1) !important; } #upload-form .tag-suggestion-name { font-size: 14px !important; color: var(--accent, #66d9ef) !important; font-weight: 500 !important; } #upload-form .tag-suggestion-meta { font-size: 11px !important; color: rgba(255, 255, 255, 0.35) !important; margin-left: 12px !important; white-space: nowrap !important; } /* Submit Button */ .btn-upload { background: var(--accent); color: var(--bg); border: none; padding: 1rem 2rem; border-radius: 0; font-size: 1.1rem; font-weight: 700; cursor: pointer; transition: all 0.2s; width: 100%; } .btn-upload:disabled { background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.4); cursor: not-allowed; } .btn-upload:not(:disabled):hover { filter: brightness(1.1); } /* Progress */ .upload-progress { display: flex; align-items: center; gap: 1rem; background: rgba(0, 0, 0, 0.2); padding: 1rem; border-radius: 0; } .progress-bar { flex: 1; height: 10px; background: rgba(255, 255, 255, 0.1); border-radius: 0; overflow: hidden; } .progress-fill { height: 100%; background: var(--accent); width: 0%; transition: width 0.2s; } .progress-text { font-weight: bold; font-family: monospace; } .upload-status { text-align: center; padding: 1rem; font-weight: 600; } .upload-status.error { color: #ff6b6b; } .upload-status.success { color: #51cf66; } /* Login Required */ .login-required { text-align: center; padding: 4rem 2rem; border: 1px dashed rgba(255, 255, 255, 0.2); border-radius: 0; } .btn-login { display: inline-block; margin-top: 1rem; padding: 0.75rem 2rem; background: var(--accent); color: #000; text-decoration: none; border-radius: 0; font-weight: 700; } /* Upload Mode Tabs */ .upload-mode-tabs { display: flex; gap: 0; margin-bottom: 1rem; border: 1px solid rgba(255, 255, 255, 0.1); overflow: hidden; } .upload-mode-tab { flex: 1; display: flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.75rem 1rem; background: transparent; border: none; color: rgba(255, 255, 255, 0.45); font-size: 0.95rem; font-weight: 600; cursor: pointer; transition: all 0.2s; position: relative; } .upload-mode-tab:first-child { border-right: 1px solid rgba(255, 255, 255, 0.1); } .upload-mode-tab:hover { color: rgba(255, 255, 255, 0.7); background: rgba(255, 255, 255, 0.03); } .upload-mode-tab.active { color: var(--accent); background: rgba(255, 255, 255, 0.04); } .upload-mode-tab.active::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: var(--accent); } .upload-mode-tab svg { flex-shrink: 0; } /* URL Upload */ .url-input-container { position: relative; } .url-input-container input[type="url"] { width: 100%; background: rgba(255, 255, 255, 0.05); border: 2px dashed rgba(255, 255, 255, 0.2); color: #fff; padding: 1.5rem 1rem; font-size: 1rem; outline: none; transition: border-color 0.2s; box-sizing: border-box; text-align: center; } .url-input-container input[type="url"]:focus { border-color: var(--accent); } .url-input-container input[type="url"]::placeholder { color: rgba(255, 255, 255, 0.35); } .url-type-badge { display: none; /* shown via JS */ margin-top: 6px; padding: 5px 14px; font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; border-radius: 3px; cursor: pointer; pointer-events: auto; width: fit-content; } .url-type-badge.youtube { background: #ff0000; color: #fff; } .url-type-badge.direct { background: var(--accent); color: #000; } .url-type-badge.fetching { background: rgba(0, 0, 0, 0.4); color: var(--accent); border: 1px solid var(--accent); display: flex; align-items: center; gap: 8px; padding: 3px 12px; } .url-type-badge.success { background: #2b8a3e; color: #fff; } .loading-spinner { display: inline-block; width: 10px; height: 10px; border: 2px solid rgba(255, 255, 255, 0.3); border-radius: 50%; border-top-color: var(--accent); animation: metaSpin 0.8s linear infinite; } @keyframes metaSpin { to { transform: rotate(360deg); } } /* Metadata Sync Spinner */ .sync-spinner { display: none; align-items: center; gap: 8px; font-size: 0.8rem; color: var(--accent); margin: 5px 0 5px 5px; background: rgba(0, 0, 0, 0.4); padding: 4px 10px; border-radius: 4px; border: 1px solid rgba(255, 255, 255, 0.1); white-space: nowrap; } .sync-spinner.active { display: flex; animation: spinnerReveal 0.3s ease-out; } @keyframes spinnerReveal { from { opacity: 0; transform: translateX(-5px); } to { opacity: 1; transform: translateX(0); } } .sync-spinner .spinner-icon { width: 12px; height: 12px; border: 2px solid rgba(255, 255, 255, 0.2); border-top-color: var(--accent); border-radius: 50%; animation: metaSpin 0.8s linear infinite; } .meta-suggestions-container { margin-top: 1rem; padding: 0.75rem; background: rgba(88, 101, 242, 0.05); border: 1px dashed rgba(88, 101, 242, 0.2); border-radius: 8px; } .suggestions-header { font-size: 0.75rem; color: var(--accent); margin-bottom: 0.5rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; display: flex; align-items: center; gap: 0.5rem; } .meta-suggestions-list { display: flex; flex-wrap: wrap; gap: 0.5rem; } .meta-suggestion { padding: 0.35rem 0.75rem; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 50px; font-size: 0.85rem; cursor: pointer; transition: all 0.2s ease; display: flex; align-items: center; gap: 0.5rem; color: rgba(255, 255, 255, 0.8); } .meta-suggestion i { font-size: 0.7rem; opacity: 0.6; } .meta-suggestion:hover i { opacity: 1; } .meta-suggestion.selected { background: rgba(255, 255, 255, 0.08); border-color: var(--accent); color: rgba(255, 255, 255, 0.9); } .meta-suggestion.selected i { color: var(--accent); opacity: 1; } /* GPS Privacy Warning Banner */ .gps-privacy-warning { display: flex; align-items: center; gap: 10px; padding: 10px 14px; margin: 8px 0; background: rgba(255, 160, 0, 0.12); border: 1px solid rgba(255, 160, 0, 0.4); border-radius: 8px; font-size: 0.85em; color: #ffa500; flex-wrap: wrap; } .gps-privacy-warning i { flex-shrink: 0; font-size: 1.1em; } .gps-privacy-warning span { flex: 1; min-width: 160px; color: var(--text, #ccc); } .gps-privacy-warning span strong { color: #ffa500; } .gps-strip-btn { background: #ffa500; color: #000; border: none; border-radius: 5px; padding: 4px 12px; font-size: 0.85em; font-weight: bold; cursor: pointer; white-space: nowrap; transition: background 0.2s; } .gps-strip-btn:hover { background: #ffb733; } .gps-strip-btn:disabled { opacity: 0.6; cursor: not-allowed; } .gps-dismiss-btn { background: transparent; border: none; color: #888; cursor: pointer; font-size: 1.2em; padding: 0 4px; line-height: 1; margin-left: auto; } .gps-dismiss-btn:hover { color: #ccc; } .gps-privacy-warning.gps-stripped { background: rgba(76, 175, 80, 0.12); border-color: rgba(76, 175, 80, 0.4); color: #4caf50; } .gps-privacy-warning.gps-stripped i, .gps-privacy-warning.gps-stripped span { color: #4caf50; } .item-meta-suggestion span { user-select: text !important; } .item-comment-container { position: relative; width: 100%; margin-top: 10px; display: flex; flex-direction: column; } .item-comment-input { min-height: 60px; width: 100%; box-sizing: border-box; } /* Actions bar sits below the textarea, left-aligned */ .item-comment-actions { display: flex; align-items: center; gap: 6px; margin-top: 4px; } .item-emoji-trigger { background: none; border: 1px solid rgba(255, 255, 255, 0.12); color: rgba(255, 255, 255, 0.5); font-size: 1rem; cursor: pointer; padding: 2px 7px; line-height: 1.4; border-radius: 4px; transition: color 0.15s, background 0.15s, border-color 0.15s; } .item-emoji-trigger:hover { color: var(--accent); border-color: var(--accent); background: rgba(255, 255, 255, 0.04); } /* Picker pops up above the actions row */ .item-comment-container .item-emoji-picker, .item-comment-container .emoji-picker { position: relative; bottom: calc(100% + 4px); left: 0; z-index: 10000; } /* Media column wrapper for URL items in shitpost mode: stacks the embed/icon above the url-type-badge (refetch trigger). Mirrors the flex sizing of .preview-media-small so embed size is unchanged. */ .item-media-col { display: flex; flex-direction: column; align-items: stretch; flex: 0 0 50%; width: 50%; min-height: 275px; max-height: 350px; } .item-media-col iframe, .item-media-col .generic-file-icon { width: 100%; flex: 1 1 auto; min-height: 120px; max-height: 320px; border-radius: 8px; background: rgba(0, 0, 0, 0.3); } /* Badge inside the col sits flush below the embed, no extra sizing */ .item-media-col .url-type-badge { flex-shrink: 0; } @media (max-width: 600px) { .upload-form.shitpost-mode-active .file-preview-item { flex-direction: column; align-items: stretch; gap: 15px; } .upload-form.shitpost-mode-active .preview-media-small, .upload-form.shitpost-mode-active .item-media-col { width: 100% !important; flex: 0 0 auto; min-height: auto; } .upload-form.shitpost-mode-active .item-media-col iframe { height: 200px; } } /* Video thumbnail loading animation */ .video-thumbnail-loading { animation: thumbPulse 1.5s ease-in-out infinite; background: rgba(255, 255, 255, 0.05); } @keyframes thumbPulse { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }