.grid-thumb{aspect-ratio:3 / 4;background-size:cover;background-position:center;border-radius:14px;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:12px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer;background-color:#1e293b}.grid-thumb:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000026}.grid-thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#000c,#0000000d 55%,#0003);border-radius:14px;z-index:1;pointer-events:none}.grid-thumb .thumb-views{z-index:2;color:#fff;font-size:.85rem;font-weight:700;background:#0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:4px 10px;border-radius:6px;align-self:flex-start}.grid-thumb .thumb-title{z-index:2;color:#fff;font-size:.95rem;font-weight:600;line-height:1.3;margin-top:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 4px rgba(0,0,0,.9)}.video-modal-backdrop{position:fixed;inset:0;background:#000000e0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:12px;box-sizing:border-box;animation:fadeIn .2s ease;overflow:hidden}.video-modal-container{background:#0f172a;border:1px solid #334155;border-radius:20px;width:100%;max-width:420px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);display:flex;flex-direction:column;position:relative;box-shadow:0 25px 50px -12px #000000d9;overflow:hidden}.modal-close-btn{position:absolute;top:12px;right:12px;z-index:20;width:36px;height:36px;border-radius:50%;background:#000000a6;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.modal-close-btn:hover{background:var(--brand-primary);border-color:var(--brand-primary);transform:scale(1.08)}.video-player-wrapper{width:100%;aspect-ratio:9 / 16;max-height:50vh;max-height:50dvh;min-height:200px;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;flex-shrink:0}.modal-video-element{width:100%;height:100%;object-fit:contain;outline:none}.modal-video-info{padding:16px 20px 20px;color:#fff;display:flex;flex-direction:column;gap:10px;background:#0f172a;overflow-y:auto;overscroll-behavior:contain}.modal-video-info::-webkit-scrollbar{width:4px}.modal-video-info::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.modal-video-meta{display:flex;align-items:center;gap:10px;font-size:.8rem;flex-wrap:wrap}.modal-views-badge{background:#ffffff26;padding:4px 10px;border-radius:9999px;font-weight:700}.modal-user-badge{color:#94a3b8;font-weight:600}.modal-video-desc{color:#f1f5f9;font-size:.9rem;line-height:1.4;margin:0;font-weight:500;word-break:break-word}.modal-actions{margin-top:4px}.modal-download-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;text-decoration:none;padding:12px;font-size:.95rem;font-weight:700;border-radius:var(--radius-md);box-sizing:border-box}.modal-nav-controls{display:flex;gap:12px;margin-top:8px;width:100%}.modal-nav-btn{flex:1;padding:12px;border-radius:var(--radius-md);background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s}.modal-nav-btn:hover{background:#ffffff26}.modal-nav-btn:disabled{opacity:.3;cursor:not-allowed}@media (max-height: 600px) and (orientation: landscape),(min-width: 768px){.video-modal-container{flex-direction:row;max-width:720px;height:90vh;max-height:600px}.video-player-wrapper{width:50%;height:100%;max-height:100%;aspect-ratio:auto}.modal-video-element{object-fit:cover}.modal-video-info{width:50%;padding:24px;height:100%;justify-content:center}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.btn-spinner{width:20px;height:20px;animation:rotate 2s linear infinite;display:inline-block;vertical-align:middle;margin-right:6px}.btn-spinner circle{stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}
